Разное

Вопросы для программиста на собеседовании: Какие вопросы задавать программистам на собеседовании

Содержание

Какие вопросы задавать программистам на собеседовании

Часто, при собеседовании кандидатов на позиции программистов, сосредотачиваются на технических вопросах, типа «Зачем нужен виртуальный деструктор?», предлагают разобрать какую-нибудь кусочек кода с хитрым синтаксисом, который редко встречается в реальной жизни, или просто дают тестовое задание. В результате какой-нибудь студент-олимпиадник может отлично пройти интервью, а человек с 10 годами работы нет. Между тем, далеко не факт, что студент, начитавшийся книжек, будет эффективно работать, а не тратить время на рассказы неразумному начальству «как правильно программировать» и разработку очередного красивого четырехколесного велосипеда.

Конечно, технические вопросы на собеседовании задавать нужно, но не менее полезно спросить об подходах к разработке, которые использовались на прошлых местах работы и поинтересоваться мнением кандидата о том, как правильно делать, а как нет. Человек, который работал в команде с хорошо поставленными процессами, вероятно избавлен от привычек выкладывать не собирающийся код, ломать тесты и заниматься излишнем рефакторингом.

Список моих вопросов при собеседовании программистов ниже:

  1. Попросить рассказать о разрабатываемом ранее продукте, зачем он и для чего/кого. Если человек реально работал над проектом, то он должен хорошо понимать зачем он, кто его пользователи и т.п.
  2. Что сделал на прошлых местах работы? В резюме часто просто пишут про проект целиком. Возможно, соискатель разрабатывал его архитектура и писал ядро, а может просто нарисовал About диалог.
  3. Какая была роль в команде? Чем занимались другие люди? Интересно узнать, как человек видит себя в проекте и команде.
  4. Какие были процессы разработки? Общий вопрос для начала, чтобы понять направление дальнейшего диалога.
  5. Были ли требования к продукту? Откуда они брались? Были ли аналитики, product manager и т.п.? Оценка умения работать по требованиям, а не городить отсебятину по принципу «я лучше знаю».
  6. Кто осуществлял декомпозицию больших задач на подзадачи? Сразу понятно, какая роль была на прошлой работе.
  7. Кто оценивал трудозатраты по задачам? Часто ли ошибались? Выясняем опыт разработчика в оценке задач, если такого опыта нет, то это не очень хорошо.
  8. Использовались ли Unit Tests? На мой взгляд это полезная практика, уменьшающая число багов. Хорошо, если кандидат ее использовал. К сожалению, часто приходится слышать на собеседовании ответ: «Да я хотел использовать, но времени на написание тестов никогда не выделяли.»
  9. Были ли ночные билды, ночные прогоны автотестов? Показывает, что разработка была не совсем коленочная. Скорее всего, есть привычка не ломать сборку своими коммитами.
  10. Мнение о той или иной процедуре в процессе разработки. Интересно послушать мнение о процессах. Если ответ в стиле: «Начальство самодуры, только мешают работать со своими кодревью», то имеет смысл задуматься 🙂
  11. Были ли процедуры code review? Приходилось ли быть ревьювером? Если ревьювером быть не приходилось, это показатель не самого высокого уровня.
  12. Использовалась ли система контроля версий? Была ли разработка отдельных фичей в отдельных ветках? Если не использовали совсем, то какой-то совсем анахронизм. Если все делали в одной ветке, то можно предположить проблемы с мержами в будущем и боязнь использования веток.
  13. Что такое TDD? Не все такой подход одобряют, но можно задать кандидату вопрос: «Почему это хорошо это или плохо?»
  14. Были ли процедуры типа Gated check-in, проверка собираемости или тестов при коммитах? Дает понять насколько зрелый процесс разработки был на прошлом месте работы соискателя.
  15. На собеседовании имеет смысл спросить соискателя про отношение к «шаблонам по Александреску» и подобным стили программирования. Принцип KISS никто не отменял 🙂
  16. Что сам кандидат спросит про работу и процесс в конторе? Показывает заинтересованность в работе, что реально интересует кандидата в новой работе. Некоторым важен процесс разработки, некоторым продукт, некоторым график работы, а есть такие, которым на все пофиг, лишь бы взяли.

Все новости сайта в телеграм канале:

@pmlife_ru

Справочник по собеседованиям для тех программистов, которые их не понимают / Хабр

На Хабре с завидной периодичностью возникают посты от возмущенных программистов, которые справедливо (наверное) негодуют, почему на собеседовании никто не спросил про их прошлые проекты, не посмотрел их код, но задавал шаблонные справочные вопросы или заставлял решать алгоритмические задачи, которые, скорее всего (в 99%), не будут применяться на вакантной работе.

Чтобы уменьшить поток этих публикаций (святая простота), ниже будет краткий, но лаконичный справочник по типам собеседований, которые вам стоит ожидать от конкретного типа компании. Справочник основан на личном многолетнем опыте. Надеюсь, это поможет вам (именно тебе, да) выбрать лучшую стратегию успешного получения работы.

Собеседование в мировую it компанию

Многие программисты хотят попасть в такие компании, потому что там сухо и тепло (и корпоративные ипотеки под низкие проценты). Поэтому компании просто завалены резюме от кандидатов со всех концов страны (или мира). Чтобы хоть как-то отбирать кандидатов, компании приходят к фильтру по алгоритмическим задачам.

Потому что это:

  • Стандартизировано. Все задачи известны, их много, все решения заранее не заучишь, требуется хорошая теоретическая база.
  • Унифицировано. Все интервью можно проводить одинаково: 40 минут на решение задачи кандидатом, разбор и оценка его типичного решения.
  • Просто и эффективно. Поверьте, если бы можно было как-то иначе найти хорошего кандидата из сотни посредственных, то крупный бизнес бы искал по-другому.

Резюмируем

«Вас много, а я одна!» — кричит нам крупная контора, которую мы дружно закидываем своими резюме. Нам дают сложный, скучный и бесполезный в работе фильтр из задачек. Кто-то проходит, а кто-то — нет (я — нет).

Хотите, чтобы отбор был без задачек? Ну… Давайте сговоримся и будем подавать от всех нас лишь одно резюме в месяц, уверен, тогда уж точно найдется время спросить у кандидата про его прошлые проекты. 🙂

Собеседование в аутсорсную компанию

Давайте сразу проясним: цель любой аутсорсной компании — продать ваше время разработчика задорого, а потом забирать себе часть вашей зарплаты (половину). Это основная бизнес модель.

А значит:

  • Вы должны выглядеть круто для продажи.
  • Вас можно легко перекидывать с проекта на проект.

Отсюда и вытекают вопросы на собеседованиях. Вас будут гонять в хвост и в гриву по всем технологиям, которые вы указали в резюме. Потому что от этого зависит, как быстро вас можно будет пристроить к новому заказчику, какие сладкие эпитеты ему можно будет рассказать про вас, какие именно сокращения технологий можно будет вписать в ваше внутреннее резюме, чтобы оно выглядело «пожирнее» (Spring, EJB, Node.js, Kafka, Redis, Mongo, MySql, JMS, MMQ, UPR, ABCDEFG, ну вы поняли).

Ах да, чтобы казаться солиднее, еще можно у кандидата пару задачек на алгоритмы спросить. Ну а что, вон, Яндекс же так делает.

Резюмируем

«А насколько вы — выгодное вложение для перепродажи?» — хищно смотрит на вас контора. Ну а мы же не лыком шиты, да? Хитро улыбаемся в ответ, зубрим все определения перед собеседованием, решаем несколько простейших алгоритмических задачек (обход дерева в ширину, ага), а потом заламываем хорошую цену за свой будущий труд. И возможно, с грустным лицом, компания согласится отдавать вам не меньшую, а большую часть ваших заработанных непосильным трудом денег.

Собеседование в небольшую компанию

В небольших и средних компаниях, которые выпускают свой продукт или занимаются автоматизацией на заказ, обычно нет общих для всех правил отбора новых кандидатов.
Всё зависит от конкретных людей, проблем, фазы луны. Где-то вас попросят решать задачки (потому что так делает Гугл), где-то будет тестирование на знание всех методов библиотек (потому что так делает Люксофт). А где-то вам предложат разобрать ваш код, поспрашивают о ваших предыдущих проектах, и вообще, вы мило побеседуете обо всем на свете на 2 часа, а потом эти ребята станут вашими лучшими коллегами на много лет вперед (слезы умиления).

Резюмируем

Индивидуальность каждой отдельной компании. Часто именно конкретные люди выбирают лучшую стратегию отбора, и тут уж вы либо подходите под эту стратегию, либо нет. Самый человечный отбор кандидатов со всеми плюсами и минусами: бардак, анархия, и это прекрасно!

Спасибо за потраченное на статью время и удачных собеседований, коллеги!

Вопросы и ответы по программированию на собеседование, техническое интервью

Готовясь к собеседованию, многие начинающие программисты понятия не имеют, каких вопросов ожидать от интервьеюров — будь то собеседование в стартап или технологический гигант вроде Amazon, Microsoft или Google. В статье на Hacker Noon разработчик Джавин Пол собрал вопросы, которые любят задавать на таких интервью, а также ответы на них и дополнительные ресурсы для подготовки.

Все задания, которые с большой вероятностью предложат кодеру на техническом собеседовании, можно условно разделить на две группы: общие логические задачи типа «поменять значения переменных, не используя временную переменную», а также вопросы по структурам данных и алгоритмам. Наиболее частые из последних: массивы, связные списки, строки, двоичные деревья, а также различные вопросы по алгоритмам — именно они будут рассмотрены ниже.

Но прежде чем приступить к ним, понадобится хорошо изучить эти темы, или по крайней мере освежить навыки решения задач по ним. Для этого можно пройти курс по алгоритмам и структурам данных Роберта Хорвика: часть 1 и часть 2.

Список наиболее часто задаваемых вопросов для собеседований по программированию.

1. Массивы

Массив — это важнейшая структура данных, хранящая набор элементов в непрерывном участке памяти. Это излюбленная тема интервьюеров, и много вопросов по ней можно ожидать в любом собеседовании, например на реверс, сортировку или поиск элементов массива.

Главный плюс такой структуры данных, как массив — он обеспечивает быстрый поиск сложностью О (1) при знании индексов, но добавление и удаление элементов из него происходит медленно, потому что нельзя менять размер массива после создания. Чтобы увеличить или уменьшить массив, нужно создать новый и скопировать в него все элементы из старого.

Чтобы с лёгкостью отвечать на вопросы, связанным с массивами, нужно хорошо разбираться как с самими массивами, так и с базовыми конструкторами, такие как рекурсия и основные операторы.

Вот самые частые вопросы:

  1. Как найти пропущенное число в заданном массиве целых чисел от 1 до 100? (решение)
  2. Как найти повторяющееся число в заданном массиве целых чисел? (решение)
  3. Как найти наибольшее и наименьшее число в неотсортированном массиве? (решение)
  4. Как найти все пары в массиве целых чисел, сумма которых равна заданному числу? (решение)
  5. Как найти повторяющиеся числа в массиве, если их несколько? (решение)
  6. Как удалить повторяющиеся элементы из заданного массива в Java? (решение)
  7. Как сортировать массив целых чисел без дополнительной памяти при помощи алгоритма быстрой сортировки? (решение)
  8. Как удалить повторяющиеся элементы из массива без дополнительной памяти? (решение)
  9. Как сделать поменять порядок элементов в массиве на обратный без дополнительной памяти в Java? (решение)
  10. Как удалить повторяющиеся элементы из массива без использования коллекций? (решение)

Эти вопросы помогут не только развить навыки решения задач, но и прокачать знания по массивам. Более сложные вопросы по теме можно найти в курсе по алгоритмам The Coding Interview Bootcamp: Algorithms + Data Structures, разработанном специально для подготовки к собеседованиям в таких технологических гигантах, как Google, Microsoft, Apple или Facebook.

Дополнительно можно поупражняться на этой подборке из 30 вопросов.

Записаться на курс Java Programming and Software Engineering Fundamentals от Coursera

2. Связный список:

Ещё одна базовая структура данных — связный список. Как и массив, это линейная структура данных, и элементы в нём хранятся линейно, но в отличие от массива — не в непрерывных областях. Они разбросаны в памяти и соединяются с помощью узлов. Связный список — ничто иное, как список узлов, каждый из которых содержит собственно данные и ссылку на следующий узел.

Благодаря такой структуре добавлять и удалять элементы в связном списке достаточно легко, так как нужно просто изменить ссылку без необходимости создавать новый список. При этом искать элементы сложнее; поиск по односвязному списку занимает линейное время O (n). В этой статье можно подробнее прочесть о различиях между массивами и односвязными списками.

Есть разные виды связных списков: односвязный список, который позволяет передвигаться только в одну сторону: в начало или в конец; двусвязный список, дающий возможность перемещения как вперёд, так и назад; кольцевой список, который формирует зацикленную структуру.

Чтобы успешно справляться с вопросами по линейным спискам, важно хорошо знать рекурсию. Если извлечь из связного списка один узел, оставшаяся структура по-прежнему будет связным списком, и поэтому для многих задач в этой теме более простыми являются рекурсивные решения, чем итеративные.

Вопросы для собеседования:

  1. Как найти центральный элемент в односвязном списке за один проход? (решение)
  2. Как проверить заданный связный список на цикличность? Как найти исходный узел цикла? (решение)
  3. Как сделать реверс связного списка? (решение)
  4. Как сделать реверс односвязного списка без рекурсии? (решение)
  5. Как удалить повторяющиеся узлы из несортированного связного списка? (решение)
  6. Как найти длину односвязного списка? (решение)
  7. Как найти 3-й узел с конца в односвязном списке? (решение)
  8. Как найти сумму двух связных списков, используя стек? (решение)

Эти вопросы помогут развить умение решать задачи на связные списки и углубить знание этой структуры данных. Если они вызывают трудности, можно обновить свои знания структур данных и алгоритмов, пройдя курс Data Structures and Algorithms: Deep Dive Using Java.

Кроме того, можно потренироваться на этом списке из 30 вопросов.

Записаться на курс Профессия Java-разработчик от Skillfactory

3. Строки

Помимо массивов и связных списков, ещё одной популярной темой являются строки: вопросы по ним неизменно звучат на каждом собеседовании на должности в программировании.

Плюсом здесь можно считать то, что зная массивы, очень легко решать задачи на строки, потому что строка представляет собой массив символов. Следовательно, все методы, усвоенные при решении вопросов на массивы, можно использовать и для решения вопросов на строки.

Вот наиболее частые из них:

  1. Как вывести повторяющиеся символы из строки? (решение)
  2. Как проверить, являются ли две строки анаграммами? (решение)
  3. Как вывести первый неповторяющийся символ из строки? (решение)
  4. Как сделать реверс заданной строки с использованием рекурсии? (решение)
  5. Как проверить, что строка состоит только из цифр? (решение)
  6. Как найти повторяющийся символ в строке? (решение)
  7. Как посчитать количество гласных и согласных звуков в заданной строке? (решение)
  8. Как посчитать, сколько раз в строке встречается заданный символ? (решение)
  9. Как найти все возможные перестановки элементов строки? (решение)
  10. Как сделать реверс слов в заданном предложении, не используя классы-коллекции? (решение)
  11. Как проверить, является ли одна строка перестановкой другой? (решение)
  12. Как проверить, является ли заданная строка палиндромом? (решение)

Способность решить эти вопросы говорит о достаточно хорошем уровне владений строками. Более продвинутые задачи можно найти в книге «Алгоритмы. Руководство по разработке» Стивена Скиены.

Ещё 20 вопросов можно найти здесь.

4. Двоичное дерево поиска

Все рассмотренные выше структуры — линейные, однако в действительности представить всю информацию таким образом невозможно, и здесь помогает такая структура данных, как дерево.

Дерево позволяет хранить данные в виде иерархии. В зависимости от способа хранения информации, существуют различные типы деревьев, например двоичное дерево, в котором каждый узел имеет не более двух дочерних элементов. Наряду с двоичным деревом поиска, это одна из самых широко распространённых древовидных структур данных, а значит, по нему обязательно попадётся множество вопросов, включая их обход, подсчёт узлов, определение глубины и сбалансированности дерева.

Секрет успешного прохождения вопросов, связанных с двоичным деревом — основательное знание теории, например, что такое размер или глубина двоичного дерева, что такое лист и узел, а также понимание основных алгоритмов обхода дерева: в прямом, симметричном и обратном порядке.

Наиболее распространённые вопросы по бинарным деревьям:

  1. Как реализуется двоичное дерево поиска? (решение)
  2. Как выполнить обход в прямом порядке в заданном двоичном дереве? (решение)
  3. Как обойти заданное двоичное дерево в прямом порядке без рекурсии? (решение)
  4. Как выполнить симметричный обход в заданном двоичном дереве? (решение)
  5. Как вывести все узлы заданного двоичного дерева, используя симметричный обход без рекурсии? (решение)
  6. Как применяется алгоритм обхода в обратном порядке? (решение)
  7. Как обойти заданное двоичное дерево в обратном порядке без рекурсии? (решение)
  8. Как вывести на печать все листья двоичного дерева поиска? (решение)
  9. Как посчитать количество листьев в заданном двоичном дереве? (решение)
  10. Как выполнить двоичный поиск в заданном массиве? (решение)

Если пройти эти вопросы самостоятельно слишком сложно, не помешает пройти какой-нибудь качественный курс по структурам данных и алгоритмам, например From 0 to 1: Data Structures & Algorithms in Java. Вот ещё два списка книг и курсов на эту тему.

5. Прочие алгоритмы и вопросы

Помимо вопросов, касающихся структур данных, в большинстве собеседований на должность программиста задают вопросы по алгоритмам, проектированию, поразрядным операциям, а также общие логические задачи.

Очень важно хорошо подготовиться по этим темам, потому что на реальных собеседованиях по ним часто попадаются неожиданные каверзные вопросы. Если прорешать их заранее, они не вызовут проблем, а это придаст уверенности в себе при объяснении решения интервьюеру.

  1. Как реализуется сортировка пузырьком? (решение)
  2. Как реализуется итеративная быстрая сортировка? (решение)
  3. Как реализуется сортировка вставками? (решение)
  4. Как реализуется сортировка слиянием? (решение)
  5. Как реализуется блочная сортировка? (решение)
  6. Как реализуется сортировка подсчётом? (решение)
  7. Как реализуется поразрядная сортировка? (решение)
  8. Как поменять местами значения двух переменных без использования третьей? (решение)
  9. Как определить, пересекаются ли два прямоугольника? (решение)
  10. Как спроектировать торговый автомат? (решение)

Свыше 189 вопросов для прохождения собеседования по программированию с ответами можно найти в книге «Карьера программиста» (6-е издание) Гэйл Лакман Макдауэлл.

Здесь можно пройти ещё 50 вопросов по программированию для прохождения собеседований по телефону; закрепить навыки можно с помощью вот этих подборок книг и курсов.

Вот ещё несколько ресурсов и подборок, которые помогут подготовиться к собеседованию:

20 вопросов, которые задаются на интервью веб-разработчикам

Недавно в SEOmoz состоялись собеседования с кандидатами на должность веб-разработчика. Готовясь к интервью, автор статьи составил список технических вопросов, которые, на его взгляд, было бы уместно задать. После собеседований он решил суммировать результаты и составить более обширный список вопросов, который может пригодиться как интервьюерам, так и интервьюируемым.

Получившийся перечень не ориентирован на какую-то конкретную должность, он сбалансирован, с одной стороны, между дизайном, HTML и юзабилити, с другой – между бэк-эндом, базами данных и программированием. Фокус немного смещен в сторону веб-разработки, поэтому здесь нет вопросов типа «Почему вы хотите работать в такой-то компании?» (порядок вопросов в данном списке произволен).

1. Какие профессиональные сайты и блоги вы регулярно читаете?

Этот вопрос поможет вам составить представление о том, насколько человек осведомлен об актуальных тенденциях, а также – насколько ему вообще интересна данная тематика. Вы сможете отделить людей, для которых это не только работа, но и хобби, от тех, кто просто пытается гнаться за высокой зарплатой.

2. Что вы предпочитаете – работать в одиночку или в команде?

Ответ на этот вопрос важен в зависимости от предполагаемого рабочего окружения. Если ваш проект подразумевает тесное взаимодействие между разработчиками, очень хорошо, если новый человек будет иметь опыт продуктивной командной работы. С другой стороны, у многих разработчиков всё получается гораздо лучше, если они трудятся сольно. Постарайтесь найти человека, который в этом смысле отвечал бы вашим ожиданиям.

3. Насколько уверенно вы чувствуете себя, если приходится писать HTML «от руки»? (+задание)

Несмотря на то, что человек может написать в резюме, что он эксперт в HTML, на деле может оказаться, что писать на HTML с нуля он и не умеет. Такие люди полагаются на сторонние программы или на то, что всегда смогут подглядеть в мануал. Любой сколько-нибудь стоящий разработчик просто обязан быть в состоянии написать простой HTML-код, никуда не подглядывая. Несложное задание может заключаться в том, что вы чертите схему фейкового сайта и просите написать соответствующий HTML-код. Усложнять не надо – вы должны просто убедиться, что человек в курсе самого главного, а также обратить внимание на такие ошибки, как пропуск тегов

<head> </head>

и серьезные упущения некоторых элементов. Если кто-то напишет

<image src="/some/image.gif">

с ним вполне можно попрощаться и позвать следующего кандидата.

4. Что такое w3c?

Это стандарты веб-разработки, в соответствии с которыми (хотелось бы верить) все делается. Не надо требовать цитат по поводу миссии w3c, но человек должен, как минимум, представлять, что это такое.

5. Можете ли вы написать безтабличный XHTML? Валидируете ли вы свой код?

Искореняйте старомодный табличный дизайн! Найдите такого разработчика, который использует элементы HTML так, как они были задуманы изначально. Также бывают разработчики, которые говорят, что могут писать без таблиц, но в реальности – по привычке или из удобства – все равно их используют. Можно нарисовать простое навигационное меню или статью и попросить создать под нарисованное HTML-код. Можно схитрить и представить данные как бы в табличном виде – будет бонусом, если человек догадается, что при таком раскладе таблица как раз вполне уместна.

6. Какой инструмент разработки нравится вам больше всего и почему?

Если человек скажет, что Notepad, вы, наверно, разговариваете не с тем человеком. Такой вопрос не только позволит вам «прощупать» уровень компетентности, но и понять, насколько органично инструментарий соискателя соотносится с тем, что используется у вас.

7. Опишите или покажите, что вы умеете в *nix shell?

Обратите внимание на то, как человек работает без привычного ему интерфейса. Задайте пару вопросов вроде того, как рекурсивно скопировать директорию или как сделать файл доступным для чтения только владельцу. Выясните, с какими операционными системами человек умеет работать.

8. Какие умения и технологии вам больше всего хотелось бы усвоить или усовершенствовать?

Прозондируйте почву на предмет того, насколько планы собеседника соответствуют тому, что от него ожидается на данном рабочем месте или в компании в целом.

9. Покажите мне ваше портфолио!

Портфолио может многое рассказать о разработчике. Есть ли у него вкус? Что для него более важно – креатив или логика? Важнее всего обращать внимание на солидные, масштабные, ЗАВЕРШЕННЫЕ проекты. Пяток-другой набросков и хакнутых скриптов – признак неопытности и некомпетентности.

10. С сайтами каких масштабов вам приходилось работать?

Ищите разработчика, у которого есть опыт с сайтами сходных с вашим масштабов. Человек, умеющий справляться с большим трафиком и большими размерами, может оказаться беспомощным в простой настройке Apache или оптимизации тяжелых SQL-запросов. С другой стороны, разработчики, которые обычно занимаются мелкими сайтами, могут подмечать вещи, которые их «более крупным» коллегам недоступны. Допустим, речь может идти об элементарной визуальной привлекательности решения.

11. Покажите мне ваш код!

Архаичный HTML или навороченный Ruby on Rails? Неважно! Все равно просите показать образцы кода. Исходники могут многое рассказать о привычках человека, гораздо больше, чем вы думаете. Чистый, элегантный код часто может указывать на методичного, мощного разработчика. В резюме может быть написано, что у человека более 7-лет опыта в написании скриптов на perl, но это может быть 7 лет плохой работы. Также постарайтесь получить много исходников, а не просто кусочки HTML. 20-30 строк к собеседованию подготовить может каждый, вам же важно видеть положение дел в целом. Не надо требовать кода полных работающих приложений, просто он должен отвечать на все ваши вопросы.

12. Перечислите несколько сайтов, которые вас по-настоящему восхищают (с точки зрения разработки)?

Поймите, что человека вдохновляет. Это не обязательно должно быть из серии «должен знать каждый», но у хорошего разработчика всегда есть несколько фаворитов.

13. Исправьте это, пожалуйста…

Дайте человеку код, написанный на языке, на котором у вас ведется разработка, который требуется знать на предлагаемой должности. Пусть соискатель пройдет этот код построчно и укажет на все ошибки.

14. Я только что открыл созданный вами сайт, а у меня показывает пустую страницу. Продемонстрируйте мне пошагово, что вы будете делать, чтобы решить проблему…

Это отличный вопрос для того, чтобы определить, как кандидат в целом может применять свои умения. Здесь станут ясны способности в смысле саппорта, от самых основных до решения проблем с сервером.

15. Какой ваш любимый язык разработки и почему? Какие возможности вы хотели бы добавить к этому языку?

Вопрос о дополнительных возможностях исключительно полезен – он выявляет то, насколько человек опытен в программировании вообще.

16. Есть ли какой-нибудь язык, который вас пугает?

Когда проясняется одна загадка, за ней открывается десять других. Если собеседник расскажет вам о своих неудачах, это поможет понять, сколько он на самом деле знает.

17. Время аббревиатур

Некоторые могут заявить, что знание аббревиатур – это чепуха, но есть некоторые такие сокращения, которые должны быть вшиты в мозг разработчика (допустим, HTML и CSS). Это вопрос из серии телефонных, который помогает отсеивать неподходящих людей еще на подступах к вашей компании.

18. Каким браузером вы пользуетесь?

Правильный ответ: всеми. Компетентный разработчик должен быть знаком с понятием кроссбраузерной совместимости, причем — знаком на деле. Ясно, что у каждого есть любимый браузер, который используется для серфинга, но ответ на этот вопрос может помочь плавно перейти к теме кроссбраузинга. Кроме того, если речь идет о должности, связанной с CSS/HTML, полезно поинтересоваться установленными тулбарами.

19. Оцените по шкале от 1 до 5, насколько вам интересны следующие задачи (1 – совсем не интересно, 5 – чрезвычайно интересно)

Предложите список задач на данной позиции. Когда вы увидите рейтинг, это поможет вам понять, насколько человек подходит на место.

20. Какие собственные проекты вы собираетесь продолжать?

Почти у каждого разработчика есть персональные проекты, которыми ему нравится заниматься на досуге. Это еще один вопрос, который помогает отделить страстных разработчиков от тех, кто привык работать строго в режиме с девяти до пяти. Это также хороший вопрос для завершения собеседования (потому что ответ на него обычно легкий и приятный).

Автор перевода — Давиденко Вячеслав, основатель компании MBA Consult.

Как собеседовать инженеров-программистов / Хабр

Мы в компании Triplebyte проводим много собеседований. В реальности за последние два года я собеседовал более 900 инженеров. Насколько это эффективное использование моего времени — здесь можно спорить (иногда я просыпаюсь в холодном поту и сомневаюсь в этом). Но независимо от моих ощущений, главное, что мы стараемся улучшить процедуру собеседований. Для этого мы проводим собеседования без просмотра резюме (background-blind inrterview), определяем навыки программирования, а не оцениваем заслуги и рекомендации. После того, как инженеры прошли наше собеседование, они направляются для финального интервью напрямую в компании, с которыми мы работаем (включая Apple, Facebook, Dropbox и Stripe). Мы собеседуем инженеров, ничего не зная об их биографии, а затем смотрим, как они проявляют себя в разных крупнейших IT-компаниях. На мой взгляд, это самая лучшая проверка эффективности интервью.

В этой статье я собираюсь показать, что нам удалось понять к настоящему моменту. Технические собеседования во многом неправильно организованы. Это легко сказать, и во многих статьях об этом говорится. Сложнее исправить эти недостатки. Моя задача в этой статье — справиться с этой задачей и изложить конкретные советы для найма менеджеров и технических директоров. Собеседование — сложная вещь. Но я думаю, что многие проблемы можно решить, если тщательно продумать процесс. Здесь я пишу об оценке технических навыков. В будущих статьях мы поговорим о культурном соответствии, поведенческих интервью и оценке нетехнических качеств.

Большинство собеседований включает в себя два основных этапа:

  • Отбор кандидатов.
  • Личное финальное интервью.

Цель отбора — отфильтровать кандидатов на первом этапе и сэкономить время инженеров на интервью. В процессе отбора рекрутер обычно сканирует резюме кандидата (примерно за 10 секунд), после чего беседует с ним по телефону от 30 минут до часа. 80% компаний, с которыми мы работаем, дают кандидату ещё и домашнее задание (или вместо телефонного интервью, или вдобавок к нему). Интересно, что на этапе отбора отсеивается подавляющее большинство кандидатов. В самом деле, среди всех компаний, с которыми мы работаем, более 50% кандидатов отсеивается уже после сканирования резюме, а ещё 30% отсеиваются после телефонного собеседования и домашнего задания. Предварительный отсев — тот этап, где процедура найма особенно капризна. Рекрутеры подавлены огромным количеством резюме, им приходится принимать мгновенные решения. Здесь вступают в силу заслуги кандидатов и принцип сопоставления с образцом.

Личные финальные интервью почти всегда состоят из серии 45-60-минутных сессий, каждая с новым интервьюером. Это, в основном, технические сессии (плюс одна или две для каждой компании на культурное соответствие и личные качества). Окончательное решение о найме кандидата принимают на общем совещании после ухода кандидата, с участием HR-менеджера и всех, кто проводил собеседования с кандидатом. По сути, для положительного решения нужно, чтобы кто-то один настаивал на нём, а у остальных не было особых возражений [1].

Многие финальные интервью расширяют стандартный формат и сильно отличаются друг от друга.

39% компаний, с которыми мы работаем, используют доску с маркером.

52% позволяют работать за собственным компьютером (оставшиеся 9% непоследовательны в выборе доски или компьютера).

55% позволяют интервьюеру самому выбрать вопрос (оставшиеся 45% используют стандартный банк вопросов).

40% хотят видеть академические знания по компьютерным наукам, чтобы сделать предложение кандидату.

15% компаний не хотят видеть академические знания по компьютерным наукам (и думают, что академические разговоры о компьютерных науках — признак того, что кандидат будет работать неэффективно).

80% позволяют использовать любой язык программирования на собеседовании (оставшиеся 20% требуют использовать конкретный язык).

5% подробно оценивают каждую мелочь в использовании языка программирования во время собеседования.

Среди всех компаний, с которыми мы работаем, 22% финальных интервью заканчиваются положительным решением о найме. (Эта цифра получена по внутренней статистике самих компаний исходя из их собственной процедура отбора кандидатов. Для кандидатов, которые проходят через Triplebyte, положительное решение принимают в 53% случаев). Около 65% предложений принимаются кандидатами (и они получают работу). После одного года работы компании выражают удовлетворение относительно примерно 30% новых сотрудников и увольняют около 5% [2].

Так что не так с текущим положением вещей? По крайней мере, доля уволенных не кажется существенной. Чтобы понять проблему, нужно учесть, что собеседование считается неудачным по двум причинам. Или наймут плохого инженера, которого позже придётся уволить (ложноположительный результат). Или интервью дисквалифицирует кандидата, который мог бы хорошо выполнять работу (ложноотрицательный результат). Неудачный найм хорошо заметен и дорого обходится компании (зарплата, расходы на управление и мораль всей команды). Неудачный найм высасывает энергию из команды. А вот кандидаты, которые могли хорошо выполнять работу, но им не дали шанса, наоборот, остаются незаметными. Каждый случай всегда неоднозначный. Из-за такой асимметрии в спорных ситуациях компании сильно склоняются к отказу.

Этот эффект усугубляется из-за «шума» в процедуре собеседования. Оценить навыки программирования за один час исключительно сложно. Добавьте к этому принцип сопоставления с образцом и субъективные «инстинктивные» чувства, а также сложную смесь особенностей каждой компании, которые обсуждались выше — и вы получите сильно зашумлённый сигнал.

Чтобы удержать уровень ложноположительных срабатываний на низком уровне при столь зашумлённом сигнале, компаниям приходится ещё больше склоняться к отказу кандидатам. В результате они лишаются хороших инженеров, по-прежнему выше ценят заслуги, чем реальные навыки, и часто кажутся своенравными и вызывают разочарование у тех, кто участвует в собеседованиях. Если каждый в вашей компании должен будет пройти повторное собеседование на текущую должность, какой процент его пройдёт? Это пугающий вопрос. Ответом однозначно будет цифра гораздо меньше 100%. Кандидаты страдают от того, что их отвергают компании, где они могли бы отлично работать, а компании страдают от того, что не могут найти таланты.

Чтобы внести ясность, я не агитирую за то, чтобы снизить планку на собеседованиях. Отказ — это суть собеседования! Я даже не говорю, что компании зря боятся ложноположительных результатов намного сильнее, чем ложноотрицательных. Неудачный найм обходится дорого. Я только привожу доводы, что зашумлённый сигнал вкупе со страхом неудачных наймов приводят к действительно высокому уровню ложноотрицательных результатов, и это плохо для всех. Решение в том, чтобы улучшить качество сигнала.

1. Определите, какие навыки вы ищете.

Нет единого набора навыков, которые определяют хорошего программиста. Наоборот, существует целый океан разнообразных наборов навыков. Никакой инженер не может быть силён сразу во всех областях. На самом деле, мы в Triplebyte часто видим отличных, успешных программистов с абсолютно несвязными наборами навыков. Таким образом, первый шаг к проведению хорошего интервью — определить, какой именно набор навыков подходит для данной должности. Рекомендую задать себе несколько вопросов (это вопросы, которые мы задаём, когда принимаем новую компанию на обслуживание в Triplebyte).

Вам нужны быстрые, итеративные программисты или внимательные и скрупулёзные?

Вам нужен тот, кто мотивирован к решению технических проблем или к созданию продукта?

Вам нужны навыки в конкретной технологии или умный программист, который обучится в ходе работы?

Являются ли важными академические знания компьютерных наук, математики, алгоритмов?

Является ли важным знание параллелизма, модели памяти C или HTTP?

На эти вопросы нет правильных ответов. Мы работаем с успешными компаниями, которые выбирают разные варианты в каждом случае. Но самое главное — сделать сознательный выбор на основании ваших потребностей. Нужно избегать случайного выбора вопросов на интервью (или позволяя самому кандидату выбирать). Когда такое происходит, культура программирования в компании может скатиться в направлении, где всё больше и больше разработчиков обладают определённым навыком или подходом к разработке, который не особенно важен для компании, а инженеры без этого навыка (но с другими важными навыками) отвергаются.

2. Задавайте вопросы, максимально приближённые к реальной работе

Профессиональных программистов нанимают для решения больших, разрастающихся проблем на протяжении недель и месяцев. Но у интервьюеров нет недель или месяцев для оценки кандидатов. У каждого из них есть обычно 1 час. А интервьюеры проверяют, насколько быстро кандидаты решают маленькие проблемы, находясь под принуждением. Это другой навык. Да, он имеет отношение к делу (интервью всё-таки не полностью рандомные). Но он не идеально коррелирует с тем, что нужно. Минимизация этой разницы — вот цель разработки вопросов для собеседования.

Этого можно достичь, если вопросы на собеседовании будут максимально приближены к той работе, выполнения которой вы ожидаете от кандидата (или к навыку, который вы пытаетесь оценить). Например, если вы ищете программиста для бэкенда, попросите кандидата разработать конечную точку API и добавить функциональность к ней — это почти наверняка будет лучше, чем решение проблемы обхода графа путём поиска в ширину. Если вас волнует знание алгоритмов, то попросите применить алгоритм к решению конкретной проблемы (например, построить простой поисковый индекс, возможно, с поддержкой BST и HashMap для лучшей производительности при удалении) — это почти наверняка лучше, чем задача на определение, принадлежит ли данная точка вогнутому полигону. А в задачах на отладку почти всегда лучше дать кандидату поработать с реальной кодовой базой, чем просить его решить маленькую проблему на доске.

При этом есть довод и в пользу использования доски с маркером. Как интервьюеру мне не важно, что кандидат помнит наизусть все итераторы из набора itertools в Python. Мне важно, способен ли он найти способ применить эти итераторы для решения проблемы. Когда кандидат чертит на доске, он свободен от ограничений точного синтаксиса и может сконцентрироваться на логике. Но в конечном итоге я думаю, что это неудачный довод, просто потому что не хватает обоснований для использования другого формата. На самом деле вы можете получить все те же преимущества, разрешив кандидату работать на собственном компьютере, но сняв условие на обязательный запуск этого кода (или ещё лучше, проведя собеседование open book, то есть с возможностью искать справочную информацию в Google).

Есть важное предостережение при разработке вопросов, которые отражают реальную работу. Важно, чтобы вопрос был свободен от внешних зависимостей. Например, просьба написать простой веб-скрапер на Ruby кажется хорошей проблемой из реального мира. Однако если кандидату требуется установить Nokogiri (библиотека парсинга на Ruby, которую может быть непросто установить) и ему придётся 30 минут потратить на борьбу с нативными расширениями, то это ужасное собеседование. Не только теряется время, но и уровень стресса у кандидата зашкаливает выше крыши.

Ещё одно хорошее правило для вопросов на собеседовании — избегать вопросов, на которые существует краткий и полный ответ, то есть существует некий магический фрагмент информации, который кандидат мог заранее прочитать на Glassdoor — и это позволит ему легко ответить на вопрос. Очевидно, это сразу же исключает из числа вопросов головоломки или любые вопросы, требующие озарения. Более того, вопросы должны состоять из нескольких шагов, где каждый последующий шаг основан на предыдущем, а не однократными вопросами о центральной проблеме. Почему ещё это полезно — спросите себя, как вы можете помочь кандидату, который производит общее хорошее впечатление, но застрял на каком-то вопросе. В случае с однократными вопросами, если вы оказываете значительную помощь кандидату, то собеседование провалено. В составной задаче из нескольких частей вы можете помочь на одном этапе, а кандидат успешно пройдёт остальные шаги самостоятельно.

Это важно не только потому что ваши вопросы могут попасть на Glassdoor. Более важно, что составные вопросы снижают уровень шума. Хорошие кандидаты могут из-за стресса застрять на каком-то этапе. Возможность помочь им и наблюдать процесс восстановления — очень существенна. Присутствует значительный шум в том, насколько хорошо кандидат справляется с конкретным кусочком программистской логики, в зависимости от того, сталкивался ли он в последнее время с похожей проблемой, это просто случайная вероятность. Составные задачи из нескольких частей устраняют часть этого шума. Они также дают возможность кандидатам наблюдать, как нарастает эффект. Усилия на одном этапе часто помогают решить задачу на следующем этапе. Это важная динамика реальных процессов разработки, а её изучение во время собеседования уменьшает уровень шума.

Если нужны примеры, то просьба к кандидату реализовать игру «Четыре в ряд» в терминале (серия из многократных шагов), вероятно, будет лучшим заданием, чем просьба повернуть матрицу (единственный шаг, с некоторыми приёмами, которые предельно упрощают задачу). А кластеризация методом k-средних (несколько операций, основанных друг на друге), вероятно, будет лучшим заданием, чем определение крупнейшего прямоугольника, который помещается под гистограммой.

4. Избегайте сложных вопросов

Если кандидат действительно хорошо решил сложную проблему, это много говорит о его способностях. Но поскольку вопрос сложный, большинство кандидатов не смогут хорошо на него ответить. В этом случае ожидаемое количество информации, полученное от вопроса, напрямую зависит от его сложности. Мы пришли к выводу, что оптимальный уровень сложности значительно ниже, чем полагает большинство интервьеров.

Эффект усиливается за счёт того факта, что при собеседовании кандидата есть два источника информации: 1) даёт ли он «правильный» ответ на вопрос и 2) процесс размышления, то есть насколько легко он додумался до этого ответа. Мы в Triplebyte собираем эти показатели (оценка за правильность ответа и оценка за количество усилий, которые ему понадобились для этого, а затем делаем прогноз, какие оценки коррелируют с успехом сотрудника в разных компаниях). То, что мы нашли, — это своеобразный компромисс. Если кандидат отвечает на более сложные вопросы, то мы получаем более сильный сигнал непосредственно от ответа. Для более простых вопросов, наоборот, важнее процесс и то, как сильно мучился кандидат. С учётом обоих источников сигнала оптимум находится ближе к простым вопросам.

На практике выработалось такое правило: сам интервьюер должен решить задачу за 25% того времени, которое он ожидает от кандидата для решения этой задачи. Так что если я разрабатываю новое задание для часового интервью, то мои коллеги (без предупреждения) должны дать правильный ответ за 15 минут. Учитывая факт, что мы предлагаем решать многоступенчатые проблемы из реального мира, оптимальная задача на интервью действительно должна быть довольно понятной и простой.

Чтобы внести ясность, я не агитирую за снижение планки в смысле понижения проходного балла. Я только привожу доводы в пользу простых вопросов и дальнейшей оценки, как кандидаты на них отвечают. Я выступаю за простые вопросы и очень строгую оценку ответов. Вот что лучше всего оптимизирует сигнал, по нашему опыту. Здесь есть и дополнительная польза в снижении уровня стресса для большинства кандидатов.

Приведу примеры. Попросить кандидата создать простой интерфейс командной строки с командами для помещения в хранилище и извлечения оттуда пар ключ-значение (и добавления дополнительной функциональности, если кандидат хорошо справляется), вероятно, будет лучше, чем попросить сделать парсер для арифметических выражений. А вопрос о самых обычных структурах данных (списки, хэши, может быть, деревья), вероятно, лучше, чем вопрос о списках с пропусками, дучах (дерево+куча) или других малоизвестных структурах.

5. Задавайте одинаковые вопросы каждому кандидату

Суть интервью в сравнении кандидатов. Цель — отсортировать кандидатов на тех, кто способен помочь компании и на тех, кто не способен (а в случае заполнения единственной вакансии — выбрать самого лучшего). Учитывая это, совершенно нелогично задавать разные вопросы разным кандидатам. Если вы оцениваете разными способами кандидатов на одну и ту же работу, вы добавляете лишний шум.

Думаю, причина того, что интервьюеры часто выбирают разные вопросы для разных кандидатов — в личных предпочтениях интервьюера. Инженеры в IT-комипаниях обычно не любят проводить собеседования. Это нечто такое, что они делают лишь эпизодически, и это отвлекает от основной работы. Чтобы стандартизировать вопросы для каждого кандидата, интервьюерам придётся потратить больше времени на изучение этих вопросов, усвоить систему оценок и отчётности. И им придётся заново проходить эту процедуру при каждой смене вопроса. И ещё задавать всегда один и тот же вопрос немного более скучно.

К сожалению, единственным выходом для интервьюеров здесь будет приложить больше усилий. Единообразие — ключевой элемент проведения хороших собеседований, а это означает задавать каждому кандидату один и тот же вопрос и стандартизировать отчёты. Здесь просто нет другого варианта.

6. Рассмотрите возможность нескольких путей

Хотя это противоречит предыдущему пункту, но рассмотрите возможность нескольких совершенно разных версий собеседования. С самого начала при разработке интервью подумайте, какие навыки кандидата имеют значение. Но некоторые из ответов могут противоречить друг другу! Например, вполне нормальная ситуация, если компании нужны хорошо разбирающиеся в математике инженеры, но при этом нужны ещё и очень продуктивные/итеративные инженеры (может быть, даже на одну и ту же должность). Для таких случаев рассмотрите несколько путей проведения интервью. Здесь ключевым фактором является то, что масштаб задачи должен позволить полностью стандартизировать каждый из путей. Вот что мы делаем в Triplebyte. Мы пришли к выводу, что можно просто спросить кандидата, какой вариант интервью он предпочитает.

7. Не позволяйте резюме кандидата влиять на вас

Резюме не совсем бессмысленно. Выпускники Массачусетского технологического института и Стэнфорда или с опытом работы в Google и Apple действительно лучше, как группа, чем остальные. Проблема в том, что абсолютное большинство инженеров (включая меня) не принадлежат к этой группе. Так что если компания слишком сильно полагается на эти сигналы, то большинство квалифицированных кандидатов пройдут мимо неё. Учитывать резюме в какой-то степени на этапе предварительной степени может иметь какой-то смысл. Мы в Triplebyte такого не делаем (все наши оценки в «слепых тестах» делаются совершенно без учёта опыта и заслуг человека). Но дать какой-то вес резюме на этапе предварительного отбора имеет смысл.

Но учитывать резюме на этапе собеседования уже совершенно не имеет смысла. А у нас есть данные, что так оно происходит на самом деле. При одинаковых оценках в наших «слепых тестах» кандидаты с дипломом топового университета успешно проходят собеседования в компаниях на 30% чаще, чем кандидаты без брендового названия в резюме. Если интервьюеры знают, что у кандидата есть диплом Массачусетского технологического института, они более склонны закрывать глаза на недочёты во время собеседования.

Это шум, и его следует избегать. Самый простой способ — просто удалить названия университетов и компаний из резюме перед тем, как давать их интервьюерам. Некоторые кандидаты могут упомянуть вуз или компанию во время разговора, но мы всегда проводим интервью, не учитывая эту информацию, и кандидаты очень редко обращают внимание на эти факты в процессе технических тестов.

8. Не издевайтесь над кандидатами

Один из самых мерзких способов провала на собеседовании — когда оно заканчивается издевательским способом. Интервьюеры уже не только оценивают способности кандидата, они также превращаются в участников группы или команды, которая принимает нового члена в свою группу. В этом втором качестве они проводят нечто вроде обряда посвящения. Да, интервью само по себе вызывает стресс, но все мы прошли через этот стресс, так что и кандидатам придётся пройти через него. Ситуация усугубляется, когда кандидат никак не справляется с заданием. В качестве интервьюера вы можете испытать сильное разочарование, наблюдая, как кандидат бьётся головой о стену, решая задачу, где ответ настолько очевиден! Вы можете вспылить и сорваться. Конечно, это только увеличивает стресс для кандидата — и ему становится ещё труднее решить задачу.

Таких ситуаций лучше не допускать ни в коем случае. Решением будет обсудить проблему и обучить интервьюеров, как её преодолеть. Здесь мы используем одну хитрость: когда кандидат вообще не справляется, нужно переключиться из режима оценки, где цель — оценить человека, в режим обучения, где цель — заставить кандидата понять ответ на вопрос. Ментальное переключение из одного режима в другой очень сильно помогает. Когда вы находитесь в режиме обучения, то нет причин скрывать информацию или проявлять какие-то другие эмоции кроме дружелюбия.

9. Принимайте решения на основе максимального навыка, а не среднего или минимального

До сих пор я говорил только об отдельных вопросах, а не о решении на финальном интервью. Здесь мой совет — принимать решение на основании максимального навыка, который продемонстрировал кандидат (среди всех навыков, которые для вас важны), а не на среднем уровне или минимальном.

Вероятно, вы уже поступаете таким образом, умышленно или нет! Окончательное решение принимается на общем собрании всех, кто проводил собеседования, и предложение кандидату делают, если хотя бы один интервьюер настоятельно рекомендует это сделать, а остальные не сильно возражают. Чтобы впечатлился один интервьюер, кандидату достаточно блеснуть на одной секции интервью. Судя по нашим данным, максимальный навык — это атрибут, который сильно коррелирует с тем, чтобы хорошо проявить себя хотя бы на одной секции интервью в компании. Однако, чтобы получить предложение о работе, кандидату также нужно не настроить против себя никого из остальных интервьюеров. Категоричные возражения от них могут появиться, если кандидат выглядел реально глупо при ответе на вопрос.

Здесь мы имеем дело просто с большим уровнем шума. Существует так много областей деятельности высококвалифицированного инженера, что почти ни один человек не способен достичь совершенства во всех областях сразу. Это значит, что если вы зададите правильный (или неправильный) вопрос, то любой инженер может выглядеть глупо. После этого кандидаты получают предложения в том случае, если хотя бы одно собеседование затронуло зону прочных знаний (максимальный навык) и ни одно не затронуло области значительной слабости. Проблема в том, что это увеличивает уровень шума. Один и тот же инженер, проваливший одно интервью, потому что выглядел глупо после вопроса о сетевых технологиях, блестяще проходит остальные интервью, где эта тема не затрагивалась.

По-моему, лучше всего компаниям сконцентрироваться на максимальном навыке и не так сопротивляться найму сотрудников, которые плохо проявили себя в отдельных секциях собеседования. То есть искать сильные аргументы в пользу кандидата и не беспокоиться так сильно о технических областях, где он слаб. Здесь я не хочу быть однозначно категоричным. Конечно, есть технические обалсти, которые просто очень важны для компании. И ваше решение, что все сотрудники должны иметь определённый уровень знаний в этих областях, вполне имеет смысл. Но концентрация именно на максимальных навыках кандидата реально уменьшает шум на собеседовании.

Последний вопрос, который я хотел бы задать — зачем вообще проводить собеседования? Уверен, что многие читатели уже скрипели зубами, приговаривая: «Какой смысл так подробно обсуждать неэффективную систему? Просто используйте домашние задания! Или просто берите людей на испытательный срок!» В конце концов, некоторые очень успешные компании действительно применяют испытательный срок (где кандидат работает с командой в течение недели) или полностью заменяют личные собеседования домашними заданиями. Испытательный срок во многом имеет смысл. Провести неделю бок о бок с новым сотрудником (или смотреть, как команда с ним выполняет важный проект) почти всегда даёт лучшую оценку навыков кандидата, чем наблюдение в течение всего лишь одного часа, как он решает задачи. Однако есть две проблемы, которые не дают испытательному сроку заменить стандартные собеседования:

  1. Испытательный срок дорого обходится компании. Ни одна компания не может взять на неделю каждого, кто хочет трудоустроиться. Чтобы решить, кого взять на испытательный срок, придётся проводить собеседования.
  2. Испытательный срок (и крупные проекты для домашнего выполнения) дорого обходятся кандидату. Даже если работа оплачивается, не у всех есть время. Например, если инженер работает полный рабочий день и у него нет возможности взять отгул. И даже если есть возможность, многие не хотят его брать. Если у инженера уже есть работа, то он не так настроен принимать неопределённость испытательного срока. Мы хорошо видим это на примере кандидатов Triplebyte. Многие из самых лучших кандидатов (уже имеющих предложения от других фирм) просто не будут выполнять крупные проекты и не согласятся на испытательный срок.

Получается, что испытательный срок — отличный вариант для некоторых кандидатов. Думаю, если масштаб позволяет использовать разные пути собеседования, то добавить к ним испытательный срок — отличная мысль. Однако нецелесообразно полностью заменять им собеседования.

Обсуждения опыта работы над прошлыми проектами тоже часто рассматривают как замену техническим собеседованиям. Логика такая: чтобы убедиться, что кандидат успешно выполнит работу в будущем, просто посмотрим, что он делал в прошлом. Мы в Triplebyte пробовали такую методику. К сожалению, она не показала хороших результатов. Выяснилось, что коммуникативная способность (способность продавать себя) оказалась более сильным сигналом, чем технические способности кандидата. Просто слишком часто возникает ситуация, когда умеющий красиво говорить кандидат преувеличивает свою роль (присваивает результат всей команды) или когда скромный человек преуменьшает свои заслуги. При наличии достаточного времени и достаточном количестве вопросов можно докопаться до сути. Однако мы выяснили, что при стандартном ограничении по времени обсуждение прошлого опыта не является универсальной заменой собеседованию. Это хороший способ растопить лёд в начале разговора, понять смысл интересов человека (также оценить коммуникационные способности и культурное соответствие). Но обсуждение прошлого опыта не подходит в качестве полной замены собеседованию.

Хочу закончить эту статью на более приятной ноте. Наряду со всеми недостатками собеседований, они всё-таки приносят большую пользу.

Собеседования — это прямая оценка способностей. У меня есть друзья, которые работают учителями. Они говорят, что интервью учителей — это, в основном, оценка коммуникативной способности (умения продавать себя) и резюме/рекомендации. Судя по всему, такая ситуация во многих, многих профессиях. Кремниевая долина — не идеальная меритократия. Но мы по крайней мере пытаемся напрямую измерить навыки, которые имеют значение, и придерживаемся идеи, что любой человек с такими навыками может стать хорошим профессионалом, независимо от его образования и опыта работы. Оценка резюме часто этому мешает. Но мы в Triplebyte сумели во многом преодолеть эту проблему и помогаем большому количеству людей с нестандартными резюме получить отличную работу в IT. Сомневаюсь, что компания вроде Triplebyte смогла бы работать, например, в юридической сфере. Там слишком сильно полагаются на резюме и рекомендации.

Программисты тоже предпочитают собеседования. Хотя это очень спорная тема (наверняка найдутся программисты с иной точкой зрения), но когда мы проводили эксперименты с альтернативными методами оценки кандидатов, большинство программистов по-прежнему выбирали стандартные собеседования. И мы обнаружили, что только небольшую часть программистов интересуют компании, которые предлагают испытательный срок или домашнее задание. Хорошо это или плохо, но судя по всему, собеседования для программистов никуда не денутся. Другие способы — это хорошее дополнение, но вряд ли они заменят интервью как основной способ оценки программистов. Если неправильно процитировать Черчилля: «Собеседование — самый худший способ оценить инженера, если не считать остальных способов, которые мы иногда пробуем».

Собеседование — непростая штука. Человеческие существа безнадёжно сложны. В каком-то смысле попытка оценить возможности человека за 4 часа собеседований кажется дурацкой. Думаю, здесь важно сохранять скромность. Любой процесс собеседования обречён на частые неудачи. Люди просто слишком сложные.


[1] Конечно, здесь есть разные варианты. На противоположных конца спектра находятся компании, которые требуют единогласного положительного решения от каждого интервьюера, и компании, где HR-менеджер единолично принимает решение. ↑

[2] Это цифры из внутренней статистики самих компаний об их собственных кандидатах. И они сильно отличаются в разных компаниях (например, доля уволенных, варьируется от 1% до 30%). У кандидатов Triplebyte цифры значительно лучше. К настоящему моменту наши кандидаты получают предложения о работе после 53% собеседований, а уровень уволенных составляет 2%. ↑

Самые распространённые вопросы на собеседовании программиста графики / Хабр

Недавно я проходил собеседования в игровых студиях на младшего программиста графики. По итогу я узнал, каких навыков они ожидают от начинающего программиста и какие вопросы могут задать. В этой статье я собрал вопросы в удобный список. Смысл в том, чтобы другие начинающие программисты могли использовать его для подготовки, прежде чем идти на первое собеседование. Но хочу оговориться, что я не рекомендую просто запоминать ответы на эти вопросы. Темы в списке — это темы, которые следует понять и освоить, чтобы решать реальные проблемы программирования графики. Их нужно понять, а не запомнить ответы.

Вопросы делятся по темам: С++, математика, оптимизация и компьютерная графика. Очевидно, это главные темы в повседневной работе. C++ часто используется в реальных задачах, поэтому естественно, что на собеседовании задают много вопросов по нему. Кроме того, в программировании графики требуется лучшее знание математики, чем в большинстве других видов программирования, поэтому математические навыки имеют первостепенное значение. Наконец, для достижения 60 FPS и рендеринга с высокой графической точностью обязательными являются сильные навыки оптимизации. Давайте рассмотрим популярные вопросы в каждой категории.

  • Когда следует использовать виртуальные деструкторы? (Интервьюеры в совершенном восторге от этого вопроса!)
  • В чём разница между выделением памяти в куче и стеке?
  • Какие фичи C++11 и C++14 вы используете?
  • Для чего используются шаблоны?
  • Объясните ключевое слово inline.
  • Что такое прямой и обратный порядок байтов (от старшего к младшему и от младшего к старшему)?
  • Объясните, что такое const-корректность.
  • Какие накладные расходы связаны с вызовом виртуальной функции?
  • Вероятно, в каком-то вопросе вас попросят выполнить некие трюки по жонглированию битами с помощью операторов вроде &, / и им подобным.
  • Вероятно, в каком-то вопросе вас попросят что-то сделать со структурами данных, связанными указателями, вроде дерева. Например, обратить связный список.
  • Каков размер указателя в C++ (то есть что показывает sizeof для указателя)?

Как правило, о продвинутых функциях языка ничего не спрашивают. Например, меня ни разу не просили выполнить метапрограммирование шаблонов, к счастью.
На самом деле вопросы по математике довольно однообразны.

  • Что такое скалярное произведение?
  • Что такое векторное произведение?
  • Почему следует использовать кватернионы вместо углов Эйлера?
  • Как применить матрицы для преобразования объекта? Например, как с помощью матриц масштабировать, преобразовать и повернуть объект?
  • Как рассчитать пересечение между лучом и плоскостью/сферой/треугольником?
  • Объясните концепции пространства мира, пространства объектов и пространства камеры.

Вероятно, предложат решить некоторые практические задачи, связанные с использованием скалярных произведений, векторных произведений и кватернионов.

  • Как применить иерархию ограничивающих объёмов (или octree, или что-то подобное) для ускорения трассировщика лучей?
  • Расскажите о кэш-памяти (кэши L1, L2 и так далее).
  • Что такое дизайн на основе данных?
  • Объясните, как оптимизировать отсечение по пирамиде видимости с помощью многопоточности и SIMD (например, см. пост в блоге Андреаса Асплунда).
  • У вас есть опыт использования инструментов профилирования производительности для GPU?

Похоже, игровые студии предполагают, что у вас должен быть опыт профилирования и оптимизации кода с помощью инструментов вроде NVIDIA Nsight, так что ознакомьтесь с ними. Вот ещё хорошая книга по компьютерной архитектуре, в том числе кэш-памяти.

  • Какие вы знаете методы сглаживания (варианты: MSAA, MLAA, FXAA и TXAA)?
  • Каковы типичные элементы движка рендеринга (например, система для обработки отсечения по пирамиде видимости, рендеринга теней, обработки источников света с чем-то вроде отложенного/прямого затенения, система обработки материалов в движке и проч.)?
  • Какие вы знаете методы генерации теней (есть КУЧА техник генерации теней, например, разностные теневые карты, сглаживание порога с помощью экспоненциальной функции и более свежий метод моментов)?
  • В чём плюсы и минусы отложенного рендеринга?
  • Объясните, что такое физически корректный рендеринг?
  • Можете объяснить, как работает уравнение рендеринга?
  • Что такое BRDF? Что имеют в виду, когда говорят, что «BRDF сохраняет энергию»?
  • Как сказываются на производительности ветвления в шейдере (подсказка: почитайте о концепции варпов в архитектуре GPU)?
  • Какие преимущества у новых API, таких как Vulkan и DirectX 12, по сравнению со старыми OpenGL и DirectX 11 (подсказка: главное — сниженная нагрузка на драйвер)?
  • Какую последнюю научную статью по графике вы читали, можете ли её объяснить (это довольно распространённый вопрос)?
  • Опишите весь графический конвейер (вероятно, ответ будет довольно длинным. Вы расскажете о вершинном шейдере и фрагментном шейдере, о перспективно-корректной интерполяции, о Z-буфере, о двойной буферизации фреймбуфера, об альфа-смешивании, матрицах преобразования, однородных координатах, моделях отражения во фрагментном шейдере и так далее).

Последний вопрос особенно часто встречается в ходе собеседований. Если вы не совсем уверены во всех частях конвейера, то советую написать небольшой программный растеризатор. Такое упражнение позволяет получить глубокое представление о конвейере, поскольку создание программного растеризатора во многом похоже на реализацию графического конвейера с нуля.

Многое из перечисленного — это вопросы для разминки. После них последуют более глубокие вопросы (их я не буду раскрывать, чтобы не подставлять компании). Тем не менее, приведённый список вопросов даёт хорошее понимание, каких знаний работодатель ожидает от начинающего программиста.

Некоторые из вас ещё учатся и выбирают предметы учебной программы для работы в компьютерной графике. Мой совет — сосредоточить усилия в первую очередь на высокопроизводительных вычислениях и прикладной математике. Из предметов по программированию попробуйте освоить многопоточность, компьютерную архитектуру и GPGPU, а также другие темы, связанные с высокопроизводительными вычислениями. Из курсов математики — линейная алгебра, многомерное исчисление (думаю, в США этот курс называется Calculus III), теория вероятностей, численная оптимизация, дифференциальные уравнения и вычислительная геометрия. В первую очередь сосредоточьте внимание именно на прикладной математике, а не на более абстрактных математических темах, таких как топология и абстрактная алгебра, поскольку они не так нужны в компьютерной графике.

В общем, от вас не ожидают, что вы разбираетесь во всех нюансах компьютерной графики. Понятие «компьютерная графика» охватывает широкий диапазон тем, таких как глобальное освещение, отбраковка с учётом препятствий (occlusion culling), генерация теней, трассировка пути, жидкостное моделирование, обработка геометрии, GPGPU, физически корректный рендеринг и так далее. Было бы неразумно ожидать, что джун знает все нюансы этих тем. Но если вы что-то укажете в резюме, будьте готовы подробно ответить на эту тему.

Таким образом, не нужно знать ВСЁ о компьютерной графике. Часто бывает, что вас просят рассказать о главных проектах, над которыми вы работали. Затем интервьюер задаст много дополнительных вопросов и попросит подробно объяснить детали вашего проекта. Поэтому мой совет: перед собеседованием выберите несколько проектов, которыми особенно гордитесь — и готовитесь к подробному объяснению.

По-моему, лучший способ подготовиться к собеседованию — поработать в свободное время над большим количеством сторонних проектов. Демонстрация проектов, над которыми вы работали — хороший способ показать себя и продемонстрировать, что вы действительно увлечены этим делом. Наконец, работа над сторонними проектами позволит отточить навыки программирования. А это, в свою очередь, сильно поможет отвечать на все вопросы, которые я перечислил в этой статье.

Шпаргалка для технического собеседования / Блог компании Mail.ru Group / Хабр

Эта шпаргалка поможет вам подготовиться к техническому собеседованию, чтобы вы могли освежить в памяти ключевые вещи. По сути, это содержание курса по информатике безо всяких подробностей.

Основы структур данных

Массив

Определение:

  • Хранит элементы данных на основе последовательного индекса, чаще всего с нулевой базой.
  • В его основе лежат кортежи из теории множеств.
  • Массив — одна из старейших и наиболее используемых структур данных.

Что вам нужно знать:

  • Массив оптимален для индексирования; плох для поиска, вставки и удаления (если не делать этого в самом конце массива).
  • Основная разновидность — линейные массивы, или одноразмерные.
    • Их размер статичен, то есть при объявлении линейного массива задаётся фиксированный размер.
  • Динамические массивы подобны линейным, но в них зарезервировано пространство для дополнительных элементов.
    • При заполнении динамического массива его содержимое копируется в массив большего размер.
  • Двумерные массивы имеют два индекса x и y, как сетки или вложенные массивы.

Эффективность («О» большое):

  • Индексирование: линейный массив — O(1), динамический массив — O(1).
  • Поиск: линейный массив — O(n), динамический массив — O(n).
  • Оптимизированный поиск: линейный массив — O(log n), динамический массив — O(log n).
  • Вставка: линейный массив — недопустимо, динамический массив — O(n).

Связный список

Определение:

  • Данные хранятся в узлах, указывающих на другие узлы.
    • Узел содержит один элемент данных и одну ссылку (на другой узел).
    • Связный список соединяет узлы друг с другом с помощью ссылок от одного узла к другому.

Что вам нужно знать:

  • Связный список разработан для оптимизирования вставки и удаления. Медленно работает при индексировании и поиске.
  • Двусвязный список содержит узлы, которые ссылаются на предыдущие узлы.
  • Кольцевой связный список — это простой связный список, хвост которого (последний узел) ссылается на голову (первый узел).
  • Стек обычно реализуется с помощью связных списков, но может быть создан и из массивов.
    • Стеки — это LIFO-структуры данных (last in, first out).
    • Голова связного списка, лежащего в основе стека, единственное место для вставки и удаления элементов.
  • Очереди тоже могут быть реализованы с помощью связного списка или массива.
    • Очереди — это FIFO-структуры данных (first in, first out).
    • Очередь представляет собой двусвязный список, в котором элементы удаляются из головы, а добавляются в хвост.

Эффективность («О» большое):

  • Индексирование: связный список — O(n).
  • Поиск: связный список — O(n).
  • Оптимизированный поиск: связный список — O(n).
  • Вставка: связный список — O(1).

Хэш-таблица

Определение:

  • Данные хранятся в виде пар ключ-значение.
  • Хэш-функции принимают ключ и возвращают выходные данные, соответствующие только этому ключу.
    • Этот процесс называется хэшированием: однозначным сопоставлением друг другу входных и выходных данных.
    • Хэш-функции возвращают для данных уникальные адреса в памяти.

Что вам нужно знать:

  • Хэш-функции разработаны для оптимизирования поиска, вставки и удаления.
  • Хэш-коллизиями называются ситуации, когда для двух разных входных данных функция возвращает одинаковые выходные данные.
    • Эта проблема свойственна всем хэш-функциям.
    • Часто она решается с помощью увеличения хэш-таблиц до огромного размера.
  • Хэши важны для ассоциативных массивов и индексирования баз данных.

Эффективность («О» большое):

  • Индексирование: хэш-таблицы — O(1).
  • Поиск: хэш-таблицы — O(1).
  • Вставка: хэш-таблицы — O(1).

Двоичное дерево

Определение:

  • Двоичное дерево — это такая структура данных, в которой каждый узел имеет максимум два дочерних элемента.
    • Дочерние элементы бывают левым и правым.

Что вам нужно знать:

  • Деревья разработаны для оптимизирования списка и сортировки.
  • Вырожденное дерево — это несбалансированное дерево. Если оно полностью одностороннее, то представляет собой, по сути, связный список.
  • Деревья относительно просты в реализации по сравнению с другими структурами данных.
  • Используются для создания двоичных деревьев поиска.
    • Двоичное дерево с помощью сравнивания ключей решает, в каком направлении следовать к дочернему узлу.
    • Ключ левого дочернего узла меньше, чем у родительского.
    • Ключ правого дочернего узла больше, чем у родительского.
    • Не может быть дублирующих узлов.
    • В связи с вышесказанным такое дерево чаще используется как структура данных, чем двоичное дерево.

Эффективность («О» большое):

  • Индексирование: двоичное дерево поиска — O(log n).
  • Поиск: двоичное дерево поиска — O(log n).
  • Вставка: двоичное дерево поиска — O(log n).

Поиск

Поиск в ширину

Определение:

  • Поиск в ширину — это алгоритм, ищущий по дереву (или графу), просматривая по уровням начиная с корня.
    • Алгоритм находит все узлы текущего уровня, обычно двигаясь слева направо.
    • В ходе этого процесса он регистрирует все дочерние узлы, связанные с узлами на текущем уровне.
    • По завершении поиска на текущем уровне, алгоритм переходит на крайний левый узел следующего уровня.
    • Последним анализируется крайний правый узел самого нижнего уровня.

Что вам нужно знать:

  • Поиск в ширину оптимален для поиска по дереву, чья ширина превышает глубину.
  • Во время хождения по дереву, алгоритм сохраняет информацию о нём в очереди.
    • В связи с использованием очереди такой метод поиска потребляет больше памяти, чем поиск в глубину.
    • Очередь использует память для хранения указателей.

Эффективность («О» большое):

  • Поиск: поиск в ширину — O(|E| + |V|).
  • E — количество рёбер (граней?).
  • V — количество вершин.

Поиск в глубину

Определение:

  • Поиск в глубину — это алгоритм, ищущий по дереву (или графу) сначала в глубину начиная с корня.
    • Алгоритм идёт по дереву, переходя между уровнями по левым дочерним узлам, пока не дойдёт до самого низа.
    • Завершив проход по ветви, алгоритм возвращается обратно, просматривая правые дочерние узлы этой ветви. Причём, если возможно, выбирает самые левые из узлов, расположенных справа от предыдущего маршрута.
    • Завершив просмотр всей ветви, алгоритм переходит к узлу, расположенному справа от корня, и снова идёт по левым дочерним узлам до самого дна.
    • Последним анализируется крайний правый узел (расположенный справа от всех своих предшественников).

Что вам нужно знать:

  • Алгоритм оптимален для поиска по дереву, чья глубина превышает ширину.
  • Для работы алгоритма используется стек.
    • Поскольку стек является LIFO-структурой, ему не нужно отслеживать указатели узлов, поэтому потребляется меньше памяти, чем в случае с поиском в ширину.
    • Когда алгоритм не может дальше идти по левой стороне, он начинает анализировать стек.

Эффективность («О» большое):

  • Поиск: поиск в глубину — O(|E| + |V|).
  • E — количество рёбер (граней?).
  • V — количество вершин.

Сравнение поисков в ширину и в глубину

  • Выбирайте тип поиска в соответствии с размером и формой дерева.
    • Для широких, мелких деревьев используйте поиск в ширину.
    • Для глубоких, узких деревьев используйте поиск в глубину.

Нюансы:

  • Поскольку поиск в ширину использует очереди для хранения информации об узлах и их детях, то он может занять больше памяти, чем доступно на вашем компьютере. (Но вам вряд ли придётся об этом беспокоиться.)
  • Если применять поиск в глубину по очень глубокому дереву, то алгоритм может уходить слишком далеко вниз. Подробнее об этом читайте здесь.
  • Поиск в ширину — циклический алгоритм.
  • Поиск в глубину — рекурсивный алгоритм.

Эффективная сортировка

Сортировка слиянием

Определение:

  • Сравнение данных с помощью алгоритма сортировки:
    • Весь набор данных делится минимум на две группы.
    • Пары значений сравниваются между собой, наименьшее перемещается влево.
    • После сортировки внутри всех пар, сравниваются левые значения двух левых пар. Таким образом, создаётся группа из четырёх значений: два наименьшие — слева, наибольшие — справа.
    • Процесс повторяется до тех пор, пока не останется только один набор.

Что вам нужно знать:

  • Это один из фундаментальных алгоритмов сортировки.
  • Данные делятся на как можно более маленькие наборы, которые потом сравниваются.

Эффективность («О» большое):

  • Наилучший вариант сортировки: сортировка слиянием — O(n).
  • Средний вариант сортировки: сортировка слиянием — O(n log n).
  • Худший вариант сортировки: сортировка слиянием — O(n log n).

Быстрая сортировка

Определение:

  • Алгоритм сортировки на основе сравнения.
    • Весь набор данных делится пополам путём выбора среднего элемента и перемещения всех, кто меньше него, влево.
    • Затем такая же процедура итерационно выполняется с левой частью до тех пор, пока не останутся только два элемента. В результате левая часть окажется отсортированной.
    • Затем всё то же самое делается с правой частью.
  • Этот алгоритм предпочитают использовать в архитектурах вычислительных систем.

Что вам нужно знать:

  • Хотя «О» большое здесь имеет те же значения (а в ряде случаев — хуже), что и у многих других алгоритмов сортировки, но на практике этот алгоритм зачастую работает быстрее, например, той же сортировки слиянием.
  • Данные будут последовательно делиться пополам, пока не будут целиком отсортированы.

Эффективность («О» большое):

  • Наилучший вариант сортировки: быстрая сортировка — O(n).
  • Средний вариант сортировки: быстрая сортировка — O(n log n).
  • Худший вариант сортировки: быстрая сортировка — O(n^2).

Пузырьковая сортировка

Определение:

  • Алгоритм сортировки на основе сравнения.
    • Итерирует слева направо, сравнивая значения внутри каждой пары и перемещая наименьшее влево.
    • Процесс повторяется до тех пор, пока ни одно значение уже не может быть перемещено.

Что вам нужно знать:

  • Алгоритм очень прост в реализации, но наименее эффективен из всех трёх, описанных здесь.
  • Сравнив два значения и переместив наименьшее влево, алгоритм переходит на одну позицию вправо.

Эффективность («О» большое):

  • Наилучший вариант сортировки: пузырьковая сортировка — O(n).
  • Средний вариант сортировки: пузырьковая сортировка — O(n^2).
  • Худший вариант сортировки: пузырьковая сортировка — O(n^2).

Сравнение алгоритмов сортировки слиянием и быстрой сортировки

  • Быстрая сортировка на практике зачастую эффективнее.
  • Сортировка слиянием сразу делит набор данных на наименьшие возможные группы, а затем восстанавливает набор, инкрементально сортируя и укрупняя группы.
  • Быстрая сортировка последовательно делит набор по среднему значению, пока он не будет отсортирован рекурсивно.

Основные типы алгоритмов

Рекурсивные алгоритмы

Определение:

  • Как следует из определения, этот алгоритм вызывает самого себя.
    • Рекурсивный сценарий — когда условный оператор используется для запуска рекурсии.
    • Базовый сценарий — когда условный оператор используется для прерывания рекурсии.

Что вам нужно знать:

  • Слишком глубокий уровень стека и переполнение стека.
    • Если при работе рекурсивного алгоритма вы столкнулись с чем-то из перечисленного, значит, вы всё испортили.
    • Это означает, что базовый сценарий не был ни разу запущен из-за ошибок, либо проблема была столь серьёзной, что у вас кончилась память, прежде чем рекурсия была прервана.
    • Знание того, сможете ли вы достичь базового сценария, является неотъемлемой частью правильного использования рекурсии.
    • Такие алгоритмы часто используются при поиске в глубину.

Итеративные алгоритмы

Определение:

  • Итеративным называется алгоритм, вызываемый неоднократно, но ограниченное количество раз. Каждый вызов является отдельной итерацией.
    • Часто применяются для инкрементального прохождения по набору данных.

Что вам нужно знать:

  • Обычно итерации представлены в виде циклов, выражений for, while и until.
  • Итерация — это однократный проход по набору данных.
  • Такие алгоритмы часто применяются для обработки массивов.

Сравнение рекурсивности и итеративности

  • Отличить рекурсивность от итеративности бывает сложно, поскольку обе они используются для реализации друг друга. Однако:
    • Рекурсивность обычно более выразительна и проста в реализации.
    • Итеративность потребляет меньше памяти.
  • Функциональные языки склонны к использованию рекурсивности (например, Haskell).
  • Императивные языки склонны к использованию итеративности (например, Ruby).
  • Больше информации вы можете получить из поста на Stack Overflow.

Псевдокод прохождения по массиву (вот почему для этого применяется итеративность)

Рекурсивность                     | Итеративность
----------------------------------|----------------------------------
recursive method (array, n)       | iterative method (array)
  if array[n] is not nil          |   for n from 0 to size of array
    print array[n]                |     print(array[n])
    recursive method(array, n+1)  |
  else                            |
    exit loop                     |

Жадные алгоритмы

Определение:

  • Жадными называют алгоритмы, выбирающие только ту информацию, которая удовлетворяет определённым критериям.
  • Жадный алгоритм содержит пять основных компонентов:
    • Набор кандидатов (candidate set), на основе которого создаётся решение.
    • Функция выбора, которая решает, какой лучший кандидат будет добавлен в решение.
    • Функция обоснования (feasibility function), которая решает, может ли кандидат внести вклад в решение.
    • Целевая функция (objective function), которая присваивает значение решению или частичному значению.
    • Функция решения (solution function), которая сигнализирует о том, что мы нашли полное решение.

Что вам нужно знать:

  • Жадные алгоритмы используются для поиска оптимального решения данной проблемы.
  • Обычно они применяются к наборам данных, в которых лишь небольшая порция обработанной информации даёт желаемый результат.
  • Часто жадные алгоритмы могут помочь в уменьшении «О» большого другого алгоритма.

Псевдокод жадного алгоритма для поиска самой большой разницы между двумя числами в массиве

greedy algorithm (array)
  var largest difference = 0
  var new difference = find next difference (array[n], array[n+1])
  largest difference = new difference if new difference is > largest difference
  repeat above two steps until all differences have been found
  return largest difference

Этому алгоритму не нужно сравнивать друг с другом все разницы, что экономит нам целую итерацию.

Общие вопросы на собеседовании для программистов

Главная »FAQ» Какие вопросы работодатель может задать во время собеседования?

Поскольку информатика и информационные технологии являются очень популярными темами обучения в колледжах и технических школах, работодатели имеют широкий спектр кандидатов на должности начального уровня программирования. К хорошему программисту предъявляется множество требований, помимо технических навыков и специальных сертификатов.

Хотя такие качества личности, как настойчивость и креативность, ценятся на должности программиста намного выше, чем даже обычные рабочие навыки, такие как общение и уважение, разносторонний программист, обладающий всеми этими качествами (и многими другими), является наиболее востребованным сотрудником. .

Существует два основных подхода к вопросам собеседования для программистов: практический и личный. Практические вопросы могут включать в себя решение проблемы потенциального сотрудника во время собеседования. Этот метод может передать подходы программиста к общению и решению проблем в стрессовой ситуации.

Другой метод интервьюирования более традиционный. Вместо того, чтобы напрямую тестировать потенциальных программистов, интервьюер просит их объяснить их методы или рассказать историю о времени, когда они столкнулись с аналогичной проблемой или задачей.Вот пять примеров распространенных вопросов на собеседовании.

Общие вопросы на собеседовании для программистов

1. С какими языками программирования можно работать? Опишите свой опыт общения с ними.

В этом вопросе подчеркиваются технические навыки, но при этом респонденты не демонстрируют, на что они способны. Таким образом, вместо того, чтобы писать строчку кода на C #, интервьюируемый может описать пример простой игры, которую он или она создали, используя язык программирования. Это показывает, что программист имеет представление о программировании в целом.

2. Как вы подходите к ситуациям с высоким давлением, когда все идет не так? Приведите пример из своего опыта.

В этом примере вопроса у интервьюируемых есть возможность рассказать об уровне своих навыков не только в программировании, но и в решении проблем. Программистов часто просят работать со сложными временными рамками, которые включают широкий спектр переменных и влияний, которые могут существенно повлиять на их работу.

3.Что вы делаете в первую очередь при создании чего-то нового?

Возможность оценивать, расставлять приоритеты и планировать проект сильно влияет на успех программиста. Способность видеть весь проект от начала до конца и визуализировать, как выглядят промежуточные этапы, требует глубокого понимания программирования. Визуализация и практика необходимы для успеха.

4. Как вы следите за текущими тенденциями и достижениями в этой области?

Из-за стремительного развития технологий программист также должен быть вечным учеником.Участие в непрерывном образовании, получение обновленных сертификатов и общение с другими программистами, работающими в аналогичных областях, могут быть очень полезными. Работодатели также ищут потенциальных сотрудников, открытых для дебатов, дискуссий и критики.

5. Какая идеальная рабочая среда?

Это один из самых традиционных вопросов для любой работы в любой сфере. Однако об этом стоит упомянуть здесь, потому что программист лучше всего работает в среде, которая способствует его или ее стилю работы.Если потенциальный сотрудник предпочитает работать в темноте в одиночестве, то компания с открытой планировкой, вероятно, не подойдет.

.

25 вопросов и ответов на собеседовании учителей [Обычный и сложный]

Вы увидите 25 самых популярных вопросов и ответов на собеседовании учителей.

Но сначала —

Что это за звук?

Это ваши нервы. Они визжат, как гвозди на классной доске.

Завтра у вас собеседование с учителем .

Жарят на гриле, как кусок сомнительного мяса в столовой.

Не волнуйтесь.

Небольшой препарат может перевернуть ваш мир. Ты будешь ходить спокойно и готово.

Конечно, вам нужно доказать, что у вас есть навыки.

Но немного подумав, у вас под рукой будут идеальные ответы.

Это руководство покажет вам:

  • 25 наиболее распространенных вопросов и ответов на собеседованиях с учителями.
  • Советы, как пройти собеседование при приеме на работу преподавателя, в том числе как подготовиться.
  • Как отвечать на вопросы интервью для учителей с впечатляющими достижениями.
  • Как задать вопросы на собственном обучающем собеседовании для получения дополнительных баллов за возможность найма.

Хотите убедиться, что ничего не ускользнет от вас на этом большом собеседовании? Получите наш бесплатный контрольный список: 42 вещи, которые вам нужно сделать до, во время и после большого интервью . Придерживайтесь его, и каждое собеседование превратится в предложение о работе!

Не можете провести собеседование? Возможно, виновато ваше преподавательское резюме.Исправьте это с помощью этих руководств:

Хотите проводить больше собеседований? Создайте идеальное резюме в нашем конструкторе:

  1. Выберите профессиональный шаблон.
  2. Получите экспертные советы по резюме от рекрутеров.
  3. Отредактируйте и загрузите свое резюме за считанные минуты.

Начните получать больше предложений о работе. Просмотрите 20+ шаблонов резюме и создайте свое резюме.

Образец резюме учителя, созданный с помощью нашего конструктора — Посмотрите 20+ шаблонов и создайте свое резюме здесь

Один из наших пользователей, Nikos, сказал следующее:

[I used] хороший шаблон, который я нашел на Zety.В моем резюме теперь одна страница , а не три . То же самое.

Создайте свое резюме прямо сейчас

Ищете еще вопросы на собеседовании для учителя? Вот наиболее распространенные вопросы и ответы на собеседование:

1

25 самых распространенных вопросов для учителей Вопросы на собеседовании [1–10]

Эти вопросы и ответы на собеседовании с учителями заставят интервьюеров задавать вопросы вам вопрос:

«Когда вы можете начать?»

Они охватывают популярные вопросы собеседования в средней школе, вопросы собеседования с учителем специального образования, вопросы собеседования с заместителем или помощником учителя и многое другое.

  1. Почему вы хотите быть учителем?

«Почему ты стал учителем?» — это самый распространенный вопрос для учителей на собеседовании.

Администраторы хотят знать, что у вас есть мотивация работать, несмотря на неизбежные разочарования. И поверьте мне, они слышали все общие ответы в книгах.

«Потому что я хочу помогать людям» не сработает. Найдите что-нибудь особенное , которое показывает, что вы мотивированы, как никто другой.

Пример ответа

У меня были проблемы с чтением в детстве. Моя учительница четвертого класса, миссис Полетт, познакомила нас с удивительным списком рассказов и книг. Она читала нам и работала с нами над пониманием прочитанного. Ее забота включила неутолимую жажду, которая заставила меня прочитать тысячи книг на самые разные темы, такие как история, биология, социология и природа. Внимание миссис Полетт навсегда изменило мой взгляд на жизнь. С тех пор я знал, что хочу делать именно то, что сделала она, — давать детям инструменты на всю жизнь.

  1. Какова ваша философия преподавания?

Вопросы собеседования с учителем, подобные этому, спрашивают: «Вы подходите для нашей школы?» Это учебный эквивалент «расскажи мне о себе».

Но…

Не отвечайте на вопросы собеседования с учителем начальных классов в неструктурированной школе со словами «Я верю в структурированное обучение».

Найдите время, чтобы изучить философию школы до собеседования.

Пример ответа

Я верю в то, что обучение увлечено каждым учеником. Например, в одном классе детского сада у моих учеников возникли проблемы с пунктуацией. Я заметил, что одна студентка, Мэри, внезапно увлеклась апострофами. Я подогрел ее страсть к большой книге по пунктуации. Ее энтузиазм был заразителен, и вскоре весь класс задавал яркие и оживленные вопросы. По возможности, я стараюсь проводить структурированные уроки таким неструктурированным способом.

В этом ответе используется S.T.A.R. подход к обучению вопросам интервью. Он показывает ситуацию, задачу, действие и результат.

  1. Что вы хотите знать о своих учениках, чтобы быть для них наиболее полезными?

Это еще один из тех вопросов собеседования для учителей, которые зависят от философии школы.

Один администратор может подумать, что очень важно знать каждую деталь.Другой может сказать: «Доктору не обязательно знать, какой вкус мороженого нравится пациенту».

Будьте честны, но находите точки соприкосновения, поскольку в этом обучающем собеседовании есть ответы на вопросы:

Пример ответа

Мне нужно знать стили обучения, увлечения и проблемы студента. Один трудный ученик, Тим, мешал учебе. Я то и дело ходил с ним на детской площадке. Оказалось, что после школы над ним издевались друзья брата.Я разговаривал с родителями Тима, и они понятия не имели. Тим стал моим звездным учеником, и в результате весь мой класс стал тише и легче преподавать.

Как подготовиться к педагогическому интервью:

  • Изучите школу в Интернете и поговорите с учителями. Изучите их проблемы.
  • Мозговой штурм раз, когда вы решали проблемы, подобные их.
  • Практика образец вопросов собеседования учителя.Запишите свои ответы и просмотрите карточки 3х5. По возможности опишите проблему, с которой вы когда-то столкнулись, действия, которые вы предприняли, и положительный результат для вашей школы или учащихся.
  • Соберите материалы , например, план урока, оценки Praxis и стенограммы. Включите изображения как доказательство ваших достижений.
  1. Почему вы хотите работать в нашем школьном округе?

Администраторы хотят знать, действительно ли вам нужен это задание .

Итак, найдите то, что вам нравится в школе.

Поговорите с учителями, которые там работают. Посетите веб-сайт школы, миссию и страницу «О нас».

Наконец, подумайте, как вам подходит.

Пример ответа

Я уважаю веру Snowy Peaks High в обучении всего ребенка. Ваше внимание к академическим кругам, характеру, сообществу и природе идеально соответствует моей философии.Легче научить разносторонних учеников. Самый лучший в мире план уроков не поможет ребенку, который испытывает трудности во всех других сферах жизни.

  1. Как вы можете помочь нашей школе / ученикам?

Подобные вопросы на собеседовании с учителем не должны заставлять вас моргать.

Помните:

Найдите время, чтобы сначала изучить потребности школы.

Пример ниже для школы с высоким процентом отстающих учащихся.

Пример ответа

Я разговаривал с несколькими вашими учителями и слышал об их проблемах с управлением классом. Мои собственные навыки управления классом очень развиты. Я получил 18 кредитов непрерывного образования в области управления классами по онлайн-программе Университета Феникса. В моей последней школе меня хвалили после того, как я полностью погрузился в класс с более чем 25% учеников, не способных к обучению. Я использовал сочетание невербальных сигналов, сигналов перехода, тайм-аутов и нескольких других основанных на ядре стратегий.Я считаю, что могу быть здесь столь же эффективным.

  1. Что вас больше всего расстраивает в преподавании?

Подобные вопросы на собеседовании с преподавателем — попытка понять, легко ли вы отчаиваете.

Итак, ваш ответ должен показать вашу внутреннюю силу.

Пример ответа

Я очень расстраиваюсь, когда умные дети становятся самоуверенными и не проявляют себя.Нет ничего печальнее и обычнее, чем потраченный впустую потенциал. На моей последней должности я работала с несколькими детьми, которые не пытались. Я реализовал программу, основанную на исследованиях, чтобы включить идеи студентов в план урока. Добавление их мыслей привело к более полному взаимодействию. Всего за два месяца результаты тестов выросли на 15%.

Pro Совет: Преподавание — это разочарование. Многие распространенные вопросы на собеседовании учителей сосредоточены на этой боли. Не преуменьшайте это. Вместо этого объясните свои навыки работы с этим.

  1. Почему мы должны нанять вас преподавать здесь?

Это вопросы собеседования с учителем, эквивалентные старому резервному запросу, Почему мы должны вас нанять?

Пример ответа ниже предназначен для школы, в учебной программе которой требуются технологии.

Пример ответа

Мне хорошо известно о вашей инициативе в области новых технологий.В моей последней школе перед нами стояла та же задача. Благодаря моему сильному техническому образованию я мог легко добавлять онлайн-викторины. Студентам они понравились, и они сократили административную обработку на 25%.

  1. Как бы вы подготовили свой класс к первому школьному дню?

Этот и подобные вопросы собеседования с учителем проверяют вашу готовность.

Первые шаги производят первое впечатление.Ваш план для первых шагов многое говорит о ваших педагогических навыках.

Пример ответа

Я хочу, чтобы мой класс был гостеприимным и заботливым. Я также делаю основные правила очевидными. Приветственный знак и парты с этикетками помогают студентам с первого дня чувствовать себя как дома. Привлекательные плакаты и другие наглядные пособия помогают вызвать чувство волнения. Помимо забавы, большой список правил и последствий в передней части комнаты помогает классу начать правильно.

  1. Почему мы преподаем (естественные науки, математику, французский язык и т. Д.) В школе?

Почему ваша тема так важна для вас?

Если вы скажете: «Чтобы они могли получить хорошую работу», вы откажетесь от общих вопросов собеседования с учителями, подобными этому.

Подумайте, почему вас волнует этот предмет на интуитивном уровне.

Пример ответа

Я всегда считал, что наше будущее зависит от обычных людей, использующих науку в повседневных решениях.Наука лежит в основе удивления нашего природного мира. Это чудо может побудить студентов улучшить свои навыки обучения. Это может привести их туда, куда они никогда не думали, что пойдут.

Принесите план урока, стенограммы и оценки Praxis. Будьте готовы ответить на вопрос о преподавании философии. Ознакомьтесь с новейшим жаргоном, оценками вместо тестов и использованием рубрик для исправления заданий

Paula Bean

H.S. Учитель

  1. Как вы оцениваете своих учеников?

Общие вопросы собеседования с учителями, подобные этому, исследуют, как вы, , измеряете свою успеваемость.

Как обычно, избегайте общих ответов. Расскажите о достижении и о том, как оно помогло вашим ученикам.

Пример ответа

Я оцениваю учащихся формальными и неформальными методами, включая викторины и тесты. Я также оцениваю классные занятия, такие как отчеты, декламации, работа за столом и групповые занятия. Один ученик, Терри, продемонстрировал хорошее понимание концепций во время занятий в классе, но плохо показал себя во время тестирования.Благодаря тесному сотрудничеству с ним я обнаружил невыявленную проблему со зрением. Терри получил корректирующие линзы, и его результаты на тестах выросли до уровня его понимания в классе.

Осторожно. Вопросы для собеседования с преподавателем, подобные приведенному выше , могут, , искать, используете ли вы оценки или тесты.

Знайте, что такое дифференциация и универсальный дизайн. Будьте готовы обсудить работу со студентами как с выявленными, так и с неустановленными ограничениями. Уметь объяснить, как перевернуть класс.Объясните, что вы очень хотите общаться с родителями и работать с ними. Объясните объем и последовательность. Знайте, кто такие Росс Грин, Руби Пейн и Донна Бигл. Сможете рассказать о том, как вы применили бы их работу в классе. Brian Welsh Brian Welsh

Брайан Уэлш

Учитель средней школы

2

15 менее распространенных вопросов для собеседований с учителями [11–25]

Следующие 15 вопросов на собеседовании для учителей не входят в список A.

Как говорил один из моих учителей, готовьтесь к ним в любом случае, потому что они могут быть на экзамене.

Никогда не знаешь, с каким вопросом на собеседовании преподавателя вы можете столкнуться. Больше подготовки = меньше шансов на ошибку.

  1. Каковы ваши сильные стороны как учителя?
  2. В чем ваша самая большая слабость как учителя?
  3. Как вы общаетесь с родителями?
  4. Почему вы оставили свою последнюю преподавательскую (или другую) работу?
  5. Какое у вас образование?
  6. Где вы видите себя через пять лет?
  7. Как вы справляетесь с управлением классом?
  8. Какой ваш любимый предмет?
  9. Что вам больше всего нравится в преподавании?
  10. Расскажите мне о своем стиле преподавания
  11. Как вы распоряжаетесь своим временем, чтобы выполнять все свои педагогические обязанности в соответствии с графиком?
  12. Что является самой большой проблемой для сегодняшних студентов?
  13. Опишите свой худший день в классе.
  14. Как вы мотивируете студентов учиться?
  15. Как вы помогли «крутому» ученику?

Это 25 самых популярных вопросов и ответов на собеседовании учителей. Хотите еще один вопрос, чтобы управлять ими всеми? Это произойдет через секунду.

Будьте гибкими. «По дороге на первое собеседование я попал под ливень, и моя машина сломалась. Я все еще отвечал на все вопросы. Потом попросили показать мое портфолио. Я расстегнул молнию, и на колени директору вылилась большая лужа воды.Я сказал: «Я почти уверен, что это знак того, что мне здесь не место». Он засмеялся и предложил мне работу.

P.J. Stevenson P.J. Stevenson

P.J. Stevenson

H.S. Учитель

3

Самый важный вопрос на собеседовании для учителей

Вот главный вопрос собеседования с учителем:

«У вас есть вопросы ко мне?»

Почему это потрясает?

  1. Он спрашивает, достаточно ли у вас смекалка, чтобы задать разумный вопрос о работе.
  2. Позволяет проявить интерес.
  3. Это может показать, что вы впечатляющий кандидат.
  4. Позволяет получить ценную информацию о позиции.
  5. Это отнимает время от их учебных вопросов интервью. Это позволяет вам выйти из горячего места.

Итак, заранее почесываем голову.

Какой из приведенных ниже вопросов собеседования с обратным обучением лучше всего подходит для вакансии?

Какие из них показывают вас как самого сильного кандидата?

Вопросы, которые нужно задать на собеседовании с учителем

  • Какими будут мои цели на первый год?
  • Какой средний размер класса?
  • Какова культура школы?
  • У вас есть активный ЗБП?
  • Каковы другие учителя?
  • Как складывается взаимодействие школы и родителей?
  • Что больше всего нравится в этой школе другим учителям?
  • Как вы справляетесь с издевательствами?
  • Как вы подходите к дисциплине студентов?
  • Как вы измеряете успехи учителей?

Любой из этих вопросов, которые нужно задать на педагогическом собеседовании, покажет, что вы знаете свой путь к плану урока.

Посетите сайт школы. Просмотрите их заявления о миссии и видении и будьте готовы обсудить достижения, которые покажут вам вашу пригодность.

Тодд Мерсер

Учитель средней школы

Это наш список из 25+ общих вопросов для учителей. Хотите больше вопросов на собеседовании с обратным преподавателем? См. Наше руководство: 65+ лучших вопросов на собеседование и поиск лучших вакансий

Плохой сон:

Вы входите на обучающее собеседование.Вы сидите. Вы потеете.

Они начинают задавать вопросы. У тебя ммм и ах .

Внезапно вы понимаете, что находитесь в нижнем белье.

Звучит знакомо?

Прежде чем мы завершим 25 самых популярных вопросов и ответов на собеседование с учителями, давайте потратим одну минуту на подготовку.

Приведенные ниже советы учителя на собеседовании поднимут вашу уверенность до потолка.

Советы по обучению на собеседовании

  • Знать жаргон. Каковы цели AYP? Кто такие Виггинс и Марцано? Что такое рубрики? Что нужно знать о моделях, основанных на квалификации? Освежите свои условия и будьте готовы их обсудить.
  • Подготовьте к общим вопросам собеседования для учителей. Изучите потребности школы. Затем проведите мозговой штурм, чтобы узнать, чем вы можете помочь.
  • Принесите портфолио. Это не им читать. Это свидетельство ваших ответов на обучающее интервью. Принесите материалы, показывающие достижения, например планы уроков, рабочие листы и изображения.
  • Одевайтесь профессионально — больше, профессионально, чем на работе. Это говорит о том, что вы серьезно относитесь к интервью.
  • Слушайте. Чем больше вы спрашиваете и слушаете, тем на меньшее количество вопросов учителям вам придется отвечать. Плюс, интересно = интересно.
  • Установите зрительный контакт с директором и всеми другими интервьюерами .

Что взять с собой на педагогическое собеседование:

Принесите полное портфолио с образцами студенческих работ, вашими оценками, копией транскриптов, вашей лицензией на преподавание и вашими оценками Praxis. Если у вас есть готовый план объекта с отзывами, принесите его.

Aleah Denny

H.S. Учитель

Во время обучающего собеседования вы можете столкнуться с ситуативными вопросами собеседования. Обычно они начинаются со слов «Расскажи мне о времени… »Нужна помощь в подготовке? См. Наше руководство: 20 Ситуационных вопросов на интервью и ответы на них, чтобы найти правильное интервью

Хотите больше советов по собеседованию для учителей и других профессий? См. Наше руководство: 50+ Советы, советы и рекомендации по успешному собеседованию

Ключевые выводы

Вот краткое изложение общих вопросов и ответов на собеседование с учителями:

  • Prepare. Прочтите 25 вопросов на обучающем собеседовании в этом руководстве. Наибольшее усилие приложите к верхним 10.
  • Сделайте домашнее задание. Узнайте о потребностях школы — как онлайн, так и поговорив с учителями. Подготовьте ответы, доказывающие, что у вас есть решения.
  • Задавайте вопросы. Выберите несколько общих вопросов для интервью выше. Они покажут, что вы присутствуете и уважаемы.

У вас есть вопросы о том, как отвечать на вопросы интервью для учителей? Не знаете, как описать свой прошлый опыт? Напишите нам в комментариях! Давайте сейчас наймем вас .

.

10 вопросов для собеседований для учителей английского языка, к которым следует подготовиться при поступлении за границу

Было ли у вас когда-нибудь интервью, которое было абсолютной катастрофой?

Первое собеседование после окончания колледжа я провел в маркетинговой фирме. Я пришел на встречу неподготовленным и самоуверенным.

Потом они спросили меня, какой проект в их портфолио мне нравится больше всего и почему… и я не знал, как ответить.

Как вы понимаете, я не получил работу.

Что я сделал, , извлек из этого опыта, так это понимание того, почему важно заранее подготовиться к собеседованию , что помогло мне, когда я проходил собеседование на свою первую зарубежную преподавательскую должность в Южной Корее.

Тогда я прошел собеседование и получил работу.

Вот как это сделать.

Загрузить: Эта запись в блоге доступна в виде удобного портативного PDF-файла.
можно взять куда угодно. Щелкните здесь, чтобы получить копию. (Загрузить)

Как подготовиться к зарубежному преподавательскому интервью

Первый шаг к гладкому собеседованию — это подготовка.

Узнайте о своей целевой стране

Помимо репетиций ответов на вопросы, которые, как вы ожидаете, задаст интервьюер, вам также необходимо потратить немного времени на исследование страны, в которую вы подаете заявку.Хороший способ сделать это — поговорить с эмигрантами, живущими в разных странах по всему миру.

Сайты, такие как Expat Forum, форумы обсуждения вакансий в Dave’s ESL Cafe и южнокорейский дискуссионный форум Dave’s, — отличные места, где можно узнать больше о жизни за границей.

Вот еще несколько вещей, которые следует учитывать при исследовании и подготовке к собеседованию:

  • Какие обязанности должны выполнять учителя на аналогичных должностях?
  • Каковы цели ваших учеников и как вы можете помочь им достичь этих целей?

Примите во внимание тип школы

Подумайте, в какую школу вы подаете заявление.Если вы работаете в государственной школьной системе, вы, вероятно, будете преподавать английский по какой-либо национальной или провинциальной программе. Но если вы работаете в частной школе или проводите занятия один на один, от вас можно ожидать, что вы составите свою собственную учебную программу.

Учитывайте возраст ваших будущих учеников

При подготовке к собеседованию вам также необходимо учитывать возраст учеников.

Если вы подаете заявление на курс детский сад или начальную должность , вам нужно будет поговорить о том, как сделать ваш класс веселым и активным.

Если, с другой стороны, вы подаете заявку на обучение подростков , вы могли бы упомянуть несколько стратегий, которые помогут им улучшить свои результаты на тестах по английскому, пополнить свой словарный запас и улучшить свои разговорные навыки.

И если вы проводите собеседование на должность преподавателя для взрослых , сосредоточьтесь на том, как помочь студентам научиться использовать английский язык, что принесет им пользу во всем мире.

Независимо от того, в каком возрасте вы планируете преподавать, неплохо иметь в своем учебном арсенале некоторые творческие инструменты.Одним из таких превосходных инструментов является FluentU , который берет реальные видео — например, музыкальные видеоклипы, трейлеры к фильмам, новости и вдохновляющие выступления — и превращает их в индивидуальные уроки изучения языка. Студенты, обучающиеся с помощью FluentU , получают доступ к интерактивным субтитрам, карточкам и словарным спискам, чтобы выучить английские фразы лучше, чем когда-либо!

После того, как вы провели небольшое исследование предполагаемой страны, самое время подготовиться к самому собеседованию. Обычно ваше собеседование проходит по скайпу или по телефону (или даже лично).Важно быть готовым ответить на вопросы на месте, не стесняясь слов и не рисуя пробелов.

Вот 10 распространенных вопросов на собеседовании, которые задают учителям английского языка, а также то, как вы можете к ним подготовиться, чтобы выглядеть уверенным, профессиональным и компетентным.

Хотите работать из дома? Сохранить гибкий график? Окажите положительное влияние? Быть частью вдохновляющего сообщества, основанного на сотрудничестве?

Нажмите здесь, чтобы присоединиться к нашей команде!

1. Расскажите немного о себе?

Можно с уверенностью предположить, что каждое интервью будет начинаться с этого вопроса.И хотя на этот вопрос кажется несложным ответить, ваш собеседник, вероятно, не хочет слышать о вашем знаке зодиака или о том, что пицца — ваше любимое блюдо. Вместо этого они хотят больше узнать о вашей личности и о том, как она соотносится с должностью, на которую вы претендуете.

Задавая этот вопрос, ваш интервьюер действительно хочет знать о ваших навыках, которые имеют отношение к работе. По этой причине вам нужно сформулировать свой ответ таким образом, чтобы они знали, что вы подходите для этой конкретной должности.

Например, если вы проходили собеседование для поступления в начальную школу в Южной Корее, вот несколько способов, которыми вы могли бы ответить на вопрос:

  • Мне нравится пробовать новое и узнавать о новых культурах, и я нашел время, чтобы изучить немного о корейской истории.
  • Я очень активный человек, поэтому мне нравится планировать уроки английского с множеством практических занятий.
  • Мне нравится работать с детьми, и у меня есть опыт волонтерской деятельности в моем местном центре отдыха.

2. Почему вы хотите быть учителем?

Это еще один распространенный вопрос интервью, на который многие неподготовленные люди отвечают неправильно.

Если ваш интервьюер спрашивает вас, почему вы хотите быть учителем или почему вы хотите именно эту работу, вам нужно построить свой ответ таким образом, чтобы акцент сместился с вас на саму работу. Вы, , никогда не захотите ответить на этот вопрос, сказав, что вы просто хотите работать, с хорошей оплатой или потому, что хотите поехать за границу.

Вместо этого сосредоточьтесь на ответах, которые действительно позволят интервьюеру понять, что преподавание — это ваша страсть. Скажите им, что вам нравится помогать людям или что вы хотите использовать свои навыки, чтобы расширить возможности студентов, обучая их, как добиться успеха в англоязычной среде.

3. Как лучше всего преподавать английский язык?

Если вам задают этот вопрос во время собеседования, есть большая вероятность, что вам задают вопрос с подвохом.

Это потому, что — это , не «лучший способ» преподавать английский язык.Люди учатся по-разному, и то, что работает для одного ученика, может быть не лучшим подходом для другого. По этой причине вам не следует отвечать на этот вопрос, говоря о конкретных методах обучения, таких как сверление словарного запаса или чтение и письмо .

Вместо этого ответьте на вопрос, сказав, что лучший способ преподавать английский — это создать несколько различных занятий, подходящих для различных стилей обучения. Таким образом, каждый сможет понять ваши уроки и получить от них удовольствие.

4. С какой проблемой вы столкнулись в классе?

Будьте осторожны, отвечая на этот вопрос. Если вы говорите о том, что не можете контролировать проблемных учеников, ваш интервьюер может подумать, что у вас плохие навыки управления классом. Вместо того, чтобы говорить о поведенческих и академических проблемах, с которыми вы столкнулись с конкретными учениками, расскажите о настоящих классных задачах , таких как обучение без новейших технологий, использование устаревших книг или отсутствие ресурсов в классах.

Также убедитесь, что ваш ответ превращается в историю успеха. Примером может служить обучение в школе с минимальными ресурсами, и ваше решение состояло в том, чтобы создать свой собственный реквизит, карточки и другие учебные пособия с бумагой и маркерами.

5. Какие методы обучения вы успешно используете?

Хороший способ ответить на этот вопрос — сосредоточиться на создании уроков, включающих множество различных действий, которые заставляют ваших учеников разговаривать и участвовать в уроке.Цель здесь — продемонстрировать вашу универсальность, чтобы ваш интервьюер знал, что ваши методы обучения выходят за рамки рабочих листов и учебников.

Для этого вы можете упомянуть некоторые из следующих методов обучения:

  • Дебаты и презентации в классе.
  • Декоративно-прикладное искусство.
  • Обучение с помощью телевидения и музыки.

6. Как вы справляетесь с проблемным учеником?

Как учитель, вы время от времени будете сталкиваться с проблемными учениками.Ваш собеседник это понимает, поэтому его интересует не то, были ли у вас проблемные ученики, а то, как вы с ними справлялись.

Как преподаватель английского как иностранного языка в другой стране вам редко приходится выступать в роли дисциплинарного исполнителя. Носители языка часто заботятся об этом просто потому, что они могут лучше общаться с учениками или их родителями.

Отвечая на этот вопрос, не зацикливайтесь на наказаниях. Вместо этого поговорите о том, как каждый ученик может преуспеть в английском, о том, что проблемные ученики не получают должного внимания и как уделять больше времени помощи им в преодолении трудностей, что мотивирует их участвовать в классе, а не мешать.

7. Как убедиться, что ученики вас понимают?

Важно, чтобы ваши ученики понимали вас — это важная часть преподавания английского языка. Вот почему вы должны ответить на этот вопрос таким образом, чтобы показать интервьюеру, что вы делаете дополнительный шаг, чтобы проверить понимание ваших учеников.

Один из способов сделать это — получить ответы от ваших учеников, вместо того, чтобы давать им определения. С помощью вопросов для проверки концепции (CCQ) и вопросов для проверки инструкций (ICQ) вы можете оценить понимание учащимися, не задавая им вопросов напрямую.

Например, если вы только что закончили преподавать урок японской кухни, вы можете задать своим ученикам следующие CCQ, чтобы оценить их понимание:

  • Суши — это рыба и лапша?
  • Много ли в Японии едят кимчи?

Та же концепция применяется к ICQ, за исключением того, что вы проверяете их понимание инструкций, а не учебных материалов. Если вы только что попросили свой класс написать абзац о том, как есть суши, несколько примеров ICQ:

  • Вы собираетесь написать три абзаца?
  • Вы пишете о том, как приготовить суши?
  • Вы можете написать о гамбургерах?

Вы также можете упомянуть, что часто даете своим ученикам викторины и тесты, чтобы проверить их понимание.Это можно сделать с помощью ряда различных упражнений, таких как сопоставление словарных слов с определениями, упражнения с заполнением пропусков и короткие письменные задания.

Еще одна вещь, которую следует добавить в свой ответ, — это важность обучения студентов тому, как просить разъяснений, когда они чего-то не понимают.

8. Какова ваша квалификация?

В большинстве школ, в которые вы подаете заявление, потребуется какая-то квалификация, подтверждающая, что вы компетентный учитель.Университеты, престижные частные школы и высокооплачиваемые должности в некоторых странах часто хотят получить степень магистра в области преподавания или лингвистики.

Как минимум вам понадобится сертификат преподавателя или сертификат о последипломном образовании (PGCE).

Существуют также другие программы, такие как сертификаты DELTA, CELTA и TEFL, которые многие школы принимают в качестве квалификации преподавателя.

Хотя идеально иметь одну из этих степеней или сертификатов, вы все равно можете получить хорошую работу и без них, если сможете продать себя.И для этого вам нужно будет ответить на этот вопрос так, чтобы ваш опыт работы был связан с преподаванием.

Ответьте на этот вопрос, рассказав о любых руководящих должностях, которые вы занимали за эти годы, например:

  • Работа в качестве индивидуального репетитора.
  • Волонтерство в молодежной информационно-просветительской программе.
  • Работаю вожатой в лагере.

Каждая из этих должностей требует того же набора навыков, которые необходимы вам, чтобы быть эффективным учителем в классе, например, налаживать взаимопонимание и помогать людям преодолевать различные препятствия на их пути.

9. Как вы думаете, почему студентам нужно изучать английский язык?

Как вы ответите на этот вопрос, интервьюер сможет оценить, каковы, по вашему мнению, потребности и ожидания ваших учеников. По этой причине вы не должны давать кратких ответов о том, что английский повсюду. Вместо этого сосредоточьтесь на том, как изучение английского языка может расширить возможности ваших учеников.

Например, путешествие за границу станет намного проще, если вы научитесь говорить по-английски, поскольку это международный язык. Могут быть ситуации, когда в отелях, аэропортах или туристических достопримечательностях нет носителя языка на родном языке ваших учеников, но есть большая вероятность, что англоговорящий будет доступен.

Кроме того, знание английского открывает целый мир возможностей, включая работу за границей и программы на получение степени, требующие знания английского языка.

10. Жили ли вы раньше в другой стране?

Независимо от того, да или нет, вы хотите ответить на вопрос так, чтобы интервьюер понял, что вы согласны и гибки.

Расскажите о том, как вам нравится выходить из своей зоны комфорта, узнавать о новых культурах и познавать новые вещи.Таким образом, потенциальные работодатели не будут бояться, что вы откажетесь от своей должности из-за культурного шока.

Перед следующим собеседованием в зарубежной школе используйте этот список, чтобы предугадать возможные вопросы и дать на них хорошие ответы. Таким образом, на собеседовании вы будете казаться более уверенным и знающим, что повысит ваши шансы на получение работы!

Загрузить: Эта запись в блоге доступна в виде удобного портативного PDF-файла.
можно взять куда угодно.Щелкните здесь, чтобы получить копию. (Загрузить)

Да, и еще кое-что…

Если вы ищете творческие материалы для преподавателей английского как иностранного, вам понравится FluentU! FluentU берет реальные видео — например, музыкальные клипы, мультфильмы, документальные фильмы и многое другое — и превращает их в индивидуальные уроки изучения языка для вас и ваших учеников.

У него огромная коллекция аутентичных англоязычных видео, которые люди в англоязычном мире на самом деле смотрят регулярно.Когда вы ищете видео для занятий в классе, у вас есть масса отличных вариантов.

Вы найдете трейлеры к фильмам, музыкальные номера из кино и театра, новостные интервью, рекламные джинглы и многое, многое другое.

На FluentU все видео отсортированы по уровню навыков и тщательно аннотированы для студентов. Слова приходят с примерами предложений и определений. Студенты смогут добавлять их в свои списки словаря и даже видеть, как эти слова используются в других видеороликах.

Например, если студент нажмет на слово «принес», он увидит это:

Кроме того, все эти замечательные видео сопровождаются интерактивными функциями и инструментами активного обучения для студентов, например, мультимедийные карточки и веселые игры типа «заполните пробел».

Идеально подходит для занятий в классе, групповых проектов и индивидуальных домашних заданий. Не говоря уже о том, что вашим ученикам обязательно понравится английский!

Если вам понравился этот пост, что-то подсказывает мне, что вам понравится FluentU, лучший способ преподавать английский язык с помощью реальных видео.

Погрузитесь в английский в вашем классе!

.

100 Общие вопросы собеседования · engVid

Подготовка к собеседованию может иметь решающее значение между успехом и неудачей. Приведенные ниже 100 распространенных вопросов на собеседовании помогут вам более эффективно продвигать себя и чувствовать себя увереннее в этот важный день. Вопросы сгруппированы по темам. Внимательно просмотрите вопросы и найдите время, чтобы найти для вас наилучшие ответы. Вы можете даже записать свои ответы, чтобы к ним можно было обращаться в будущем.Удачи!

Личный

  1. Расскажите о себе.
  2. В чем ваши сильные стороны?
    Слово сила относится к тому, что вы делаете хорошо, вашим положительным качествам или эффективным навыкам.
  3. Каковы ваши слабые стороны?
    Слово слабость относится к тому, что у вас плохо получается, к вашим отрицательным качествам или навыкам.
  4. Что вы считаете самым большим успехом в своей жизни?
    Major означает важный или большой.
  5. Опишите большое разочарование в вашей жизни.
    Разочарование — это то, чего вы с нетерпением ждали, но не случилось.
  6. Что вас мотивирует?
    Слово мотивировать означает дать вам повод сделать что-то, вдохновить вас, воодушевить вас.
  7. Что для вас значит успех?
  8. Каковы три ваших самых больших достижения?
    Слово достижение означает достижение, то, что вы сделали хорошо.
  9. Какие у тебя планы на будущее?
  10. Вы работали волонтером?
  11. Какие у тебя хобби?
  12. Чем вы любите заниматься в свободное / свободное время?
    Свободное время означает, когда вы свободны, когда вы не работаете.
  13. Где ты видишь себя через пять лет? Через десять лет?
  14. Опишите время, когда вы потерпели неудачу.
  15. Какая ваша любимая книга / фильм?
  16. Что вы делаете для развлечения?
  17. Что бы вы сделали, если бы выиграли в лотерею?
  18. Образовательный

  19. Расскажите о своем образовании.
  20. Какие академические курсы вам понравились больше / меньше всего?
  21. Какой академический курс был для вас самым сложным?
  22. Есть ли у вас планы на дальнейшее образование?
  23. Почему вы выбрали специальность?
    Ваша специализация — это ваша основная специализация в университете.
  24. Профессиональный

  25. Почему вам нужна эта работа?
  26. Почему мы должны вас нанять?
    К нанять означает нанять или дать кому-то работу.
  27. Почему вы лучший человек для работы?
  28. Объясните, чем вы станете активом этой компании.
    Актив — это что-то ценное.
  29. Как вы думаете, почему вы добьетесь успеха в этой работе?
  30. Какова ваша квалификация для этой должности?
    Квалификация означает образование и профессиональную подготовку или опыт, необходимые для работы.
  31. Что вы можете предложить нашей компании?
  32. Что вы знаете об этой отрасли?
  33. Какова ваша личная миссия?
  34. Как вы думаете, почему вы подходите для этой должности?
    Подходит означает подходящий, хороший вариант.
  35. Опишите свою трудовую этику.
    Ваша рабочая этика — это ваше отношение к работе и поведение на работе.
  36. Опишите свой стиль управления.
  37. Каковы ваши краткосрочные цели?
    Краткосрочные означает в ближайшее время.
  38. Каковы ваши долгосрочные цели?
    Долгосрочное означает в далеком или далеком будущем.
  39. Почему вы выбрали это поле?
    Поле означает область работы, например, компьютеры, инженерное дело или медицину.
  40. Опишите, пожалуйста, ваш опыт работы.
  41. Почему вы хотите работать в нашей компании?
  42. Что вы знаете о нашей компании?
  43. Что для вас самое важное в работе?
  44. Опишите свою предыдущую работу.
    Слово предыдущий означает то, что было или произошло раньше.
  45. Почему вы ушли с прежней работы?
  46. Каковы были ваши обязанности на предыдущей должности?
    Слово ответственность относится к тому, что вы должны делать, за что отвечаете.
  47. Что вам больше всего понравилось на последней работе?
  48. Что вам больше всего понравилось в вашей последней работе?
  49. Чему вы научились на предыдущей работе?
  50. Вы хорошо работаете под давлением?
    Слово давление означает ударение.
  51. Насколько вы пунктуальны?
    Быть пунктуальностью — значит прибыть вовремя, не опоздать.
  52. Как долго вы планируете оставаться на этой работе?
  53. Вы умеете выполнять несколько задач одновременно?
    В многозадачность означает выполнение множества задач одновременно.
  54. Опишите свою идеальную работу.
    Идеально в основном означает идеальный здесь.
  55. Как бы вас описали коллеги?
  56. Как вы относитесь к изучению нового?
  57. Были ли у вас проблемы с начальником? Как вы справиться с этим?
  58. С какими серьезными проблемами или проблемами вы столкнулись?
  59. Почему вы ушли в отставку?
  60. Почему вас уволили?
  61. Любите ли вы риск?
    Любитель риска — это тот, кто готов рискнуть.
  62. Чем вы занимались с последней работы?
  63. Какой лучший фильм вы смотрели за последний год?
  64. Какую самую интересную книгу вы прочитали за последний год?
  65. Как скоро ты сможешь приступить к работе?
  66. У вас есть вопросы?
  67. Особенности работы

  68. Вы ищете работу на полный или неполный рабочий день?
  69. Ищете дневную или ночную работу?
  70. Вы ищете постоянную или временную работу?
  71. Можете ли вы работать по выходным?
  72. Готовы ли вы работать сверхурочно?
    Сверхурочная работа означает часы вне обычного рабочего времени.
  73. Можете ли вы работать по ночам?
  74. Вы хотите поехать?
  75. Вы готовы переехать?
    Переместить в означает переехать в другое место.
  76. У вас есть водительские права?
  77. Нравится ли вам работать с публикой?
  78. Любишь работать с числами?
  79. Как ваши навыки письма?
  80. Как ваше правописание?
  81. С какими компьютерными программами вы знакомы?
  82. Знаете ли вы какие-нибудь иностранные языки?
  83. Работали ли вы раньше в мультикультурной среде?
    Мультикультурный означает множество культур.
  84. Как вы относитесь к людям из разных культур?
    Разнообразие означает разное.
  85. Заработная плата

  86. Каковы ваши ожидания по зарплате?
    Ожидаемая заработная плата — это сумма, которую, по вашему мнению, вы получите.
  87. Какую зарплату вы хотите получать?
    К заработать означает заработать, получить.
  88. Какую компенсацию вы ищете?
    Компенсация относится к заработной плате плюс пособия.
  89. Руководство

  90. Вы считаете себя лидером?
  91. Какие руководящие или управленческие должности вы занимали?
  92. Независимости

  93. Нравится ли вам работать одному?
  94. Насколько хорошо вы работаете независимо?
  95. Как вы относитесь к работе самостоятельно?
  96. Работа в команде

  97. Вы командный игрок?
  98. Вы хорошо работаете с другими?
  99. Какие сильные стороны вы привнесете в команду?
  100. Вы предпочитаете работать в команде или в одиночку?
  101. Список литературы

  102. Можем ли мы связаться с вашими предыдущими работодателями?
  103. Можем ли мы связаться с вашими рекомендациями?
    Ссылки — это люди, которые хотят рассказать о вас, ваших способностях или вашем характере.
  104. вопроса Вы можете задать интервьюеру

  105. Если бы вы предложили мне работу, как скоро вы бы хотели, чтобы я начала?
  106. Когда я могу ожидать от вас известий?
  107. Есть ли какие-нибудь дальнейшие шаги в процессе собеседования?
  108. Каковы основные обязанности этой должности?
  109. Есть ли возможности для продвижения?
    Повышение по службе означает продвижение по службе, получение продвижения по службе или более высокую должность.

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *