Все вопросы, независимо от тематики задаются на 4 «уровнях».
Базовые знания
Это уровень, который более-мене легко проходят выпускники технических ВУЗов, фактические знания в их голове еще не затерлись, хотя зачастую очень абстрактны. Это вопросы типа «что такое А», «какие Вы знаете методы решения проблемы С» и т.д. В данном случае все, что нужно сделать – это назвать или перечислить. Очень часто работодатель не хочет тратить время на этот уровень вопросов, он либо пропускается, либо выносится как отдельный тест, пройти который можно сразу при подаче резюме в компанию.
Понимание терминов и механизмов работы
К данному уровню относятся просьбы рассказать действия алгоритма по шагам, воспроизвести конкретный метод при решении конкретного примера, описать детально как именно и какие данные передаются в каком направлении и для чего.
«опишите по шагам, как производится выборка данных при запросе?»
«расскажите, как производится индексация в БД полей, содержащих дробные числа»
«какой механизм и как производит проверку безопасности запуска транзакции»
«как компилятор узнает адрес вызова полиморфной функции и впишет ее в exe-файл, если точно адрес сформируется только при непосредственной работе программы»
«докажите оценку алгоритма»
Чтобы успешно пройти опрос на этом уровне кандидат демонстрирует не только знание терминов, но и понимание механизмов и устройство объектов, которые под этими терминами скрыты. Отвечая на вопросы такого типа, лучше быть собранным и очень последовательным. Если трудно отвечать и есть боязнь сбиться – очень поможет набросанный на листочке план ответа. Набросать его, пусть даже пиктограммами и сокращениями, не займет много времени. Вы можете использовать иллюстративный материал, рисуйте схемы на листке или доске, если сложно объяснять словами.
Умение анализировать данную предметную область
Здесь обычно задаются вопросы с просьбой сравнить или обосновать применение того или иного метода или механизма.
«какие достоинства и недостатки есть у алгоритма»
«в условиях такой-то задачи, какое решение будет наиболее оптимальным»
«зачем нужна инструкция join, если можно и без нее?»
Вопросы подразумевают максимальную открытость ответа, разные кандидаты отвечая на одинаковый вопрос замечают и обосновывают диаметрально противоположные вещи. И оба ответа могу быть признаны верными, если они обоснованы.
Часто послушав рассуждения кандидата, работодатель отдает предпочтение кандидату более адекватно обосновывающему и «правильно» мыслящему, даже если вопросы 1-го уровня были отвечены не блестяще.
Если знания по уровням 1 и 2 можно приобрести в ВУЗе, то умение анализировать и принимать решения преподают гораздо реже. Как приобрести такой навык? Можно ли его воспитать, или это талант, как рисование? Гарантий нет, но попробовать такой навык развить все-таки можно. Попробуйте сначала продумать и обосновать для себя ответ на вопросы о плюсах и минусах технологии или подхода, а потом уже прочесть официальную информацию. Безусловно, чем лучше Вы знаете детали – тем точнее будет анализ.
Умение исправить недостатки или модифицировать
Пожалуй, написать стандартный (рекурсивный) QSort может любой второкурсник, предложить варианты оптимизации – это уже сложней. Как ускорить работу алгоритма, как оптимизировать код, обезопасить себя от переполнения стека?
Задавая подобные вопросы, мы ждем от собеседников умения подумать и предложить варианты ответа. Да, большинство вопросов для кандидата будут, возможно, неожиданны или обескураживающи, но ведь и ответ не требуется сию секунду. Можно подумать, поразмышлять, высказать ряд предположений, уточнить что-то. Возможно, даже здравая идея, без деталей реализации, будет удачным ответом на вопрос.
Вопросы 3 и 4 уровней – самые интересные и показательные, инофрмативней их только решение задач. Задачу могут предложить решить на доске или на листке, и как правило, это не слишком сложная задача, однако, в процессе решения кандидат может не заметить вполне очевидных вещей. Поторопиться и не проверить задачу на паре примеров может быть гораздо хуже, чем потратить дополнительное время.
Вот простой check-list:
— условие задачи точно понятно, и Вы уверены в том, что знаете, что именно от Вас хотят. Быстрое «лобовое» решение за секунду или продуманное оптимальное легко-масштабируемое решение?
— Вы точно соблюдаете условия задачи, используете массив, если сказано массив, пишите именно функцию, если условия сформулировано таким образом? Если набор входных параметров перечислен в условии, Ваша функция точно принимает их, а не какие-то другие?
— Вы проверили свое решение при помощи простого примера, оно работает, не зацикливается, и возвращает именно то, что сказали?
— в Вашем решении есть ветки, предусматривающие отказ? Предусмотрено поведение при ошибке?
— Вашему решению точно необходима рекурсия?
Хотелось бы также добавить, что собеседование — это не допрос с пристрастием, а возможность максимально раскрыть потенциал кандидата, обсудить с ним то, чем он интересовался, выслушать его идеи и пожелания.
ссылка на оригинал статьи http://habrahabr.ru/post/181528/
Добавить комментарий