Собеседовалась я в одну Американскую компанию, у которой есть офисы и в Санкт-Петербурге, и в Саратове, и в Харькове, и в Польше, ну и в Силиконовой долине Калифорнии. Много русских там.
собеседование ИТ
Назначили мне техническое интервью на позицию junior QA with java. Я готовилась, писала ручкой на бумаге код задачек по массивам, спискам, коллекциям. Без подглядывания куда-либо. Это, кстати, оказалось не просто. Интервью было по hangouts. В начале собеседования интервьюер попросил рассказать о себе. Затем перешли к задачкам. Он пошарил документ со мною, где был код и мы оба одновременно видели действия друг друга. Первая задачка была на массив с вариантами ответов. Я не буду давать здесь ответ, но хочу предупредить что нужно быть внимательным. Легко проанализировать начало выполнения кода и не заметить небольшой подвох ближе к концу.
//Task1
// What will be the value of the “values” variable after execution of the following code snippet?
//
    public static void main(String[] args) {
        int[] values = {23, 12, 13, 17, 23, 19};

        for (int i = 0; i < values.length - 1; i++) {
            if (values[i] > values[i + 1]) {
                int t = values[i];
                values[i] = values[i + 1];
                values[i + 1] = t;
            }
        }
    }

// 1. {12, 13, 17, 19, 23, 23}
// 2. {23, 23, 19, 17, 13, 12}
// 3. {12, 13, 17, 23, 19, 23}
// 4. {12, 13, 23, 17, 19, 23}
Интервьюер спрашивал "Что делает задачка?" и "Какой вариант ответа правильный?". И "Что напоминает эта задачка?" На последний вопрос я ответила, что напоминает сортировку пузырьком, только там два цикла и один вложенный, который начинается с конца. Эту задачку я решила. И даже обрадовалась, что легко было. Затем шла вторая задачка "Счастливый билет". Где сумма первых трех цифр равна сумме трех последних в 6-ти значном числе.
// Task2
// boolean isMyTicketLucky(? ticketNumber);

// Notes:
// - You need to choose a type of the ticketNumber input parameter yourself.
// - Ticket number consists of 6 digits like 123456 or 404404.
// - The method returns true if sum of the first three digits is equal to sum of the last three digits.
// If the sums are different the method returns false.

    public static void main(String[] args) {
        //isMyTicketLucky("123006");
        System.out.println(isMyTicketLucky("123006"));
    }
Здесь нужно самому выбрать тип номера билета во входящем параметре. Integer или String. Для обоих типов есть решение задачки. Решение для типа билета Integer.
private static boolean isMyTicketLucky(int ticketNumber) {

        int number1 = ticketNumber / 100000;
        int number2 = (ticketNumber / 10000) % 10;
        int number3 = (ticketNumber / 1000) % 10;
        int number4 = (ticketNumber / 100) % 10;
        int number5 = (ticketNumber / 10) % 10;
        int number6 = ticketNumber % 10;

        return number1 + number2 + number3 == number4 + number5 + number6;
    }
Решение для типа билета String.
private static boolean isMyTicketLucky(String ticketNumber) {
        return ticketNumber.charAt(0) + ticketNumber.charAt(1) + ticketNumber.charAt(2)
                == ticketNumber.charAt(3) + ticketNumber.charAt(4) + ticketNumber.charAt(5);
    }
К сожалению я растерялась и не смогла решить вторую задачку во время интервью. После задачек были вопросы о SQL, SQL Join, system version control. Ну и совсем в конце спросил "Есть ли вопросы?" Я попросила дать критику моего собеседования, и интервьюер отметил, что ему понравилось, что я вслух рассуждала что делал код в первой задачке. Я прям шла по коду и проговаривала, что делает каждая строка и каждая итерация в цикле. Это было мое первое интервью в IT. Я его не прошла, но зато я знаю над чем работать сейчас и что подучить.