Подготовка к суровым собеседованиям; Подготовка суровых собеседований

29.11.2018

Подготовка к собеседованиям

Тимур Валеев рассказал, как готовился к интервью в европейских компаниях. Больше всего ему понравилось в Facebook, всё было вовремя, всё было вежливо. Кадровики, обратите внимание!

Рассказ продолжил Булат Зиганшин, рассказавший о том, как он устроился в Яндекс.

Для подготовки по алгоритмам и кодированию можно решать задачи на сайтах:

HackerRank

LeetCode

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

Перед интервью Тимур советует прочитать книгу Cracking The Coding Interview. Издательство Питер выпустило русский перевод под названием Карьера программиста, его можно купить в электронном виде.

Самая ценная часть книги — 189 реальных вопросов и тестовых заданий, которые задают соискателям в Google, Microsoft, Amazon и Apple.

Помимо технических навыков очень важны в современном программировании и так называемые soft skills, что по русски можно называть умением общаться. Для развития такого умения Тимур советует обратиться, например, к Ольге Лермонтовой, которая может вас проинтервьюировать и дать обратную связь. Имейте в виду: услуга платная. Для начала почитайте канал, потом задавайте вопросы.

Пример soft skills из реального интервью: вы предлагаете решение, но команда вас не слушает. Что делать? Как проталкивать своё решение? Здесь нет правильного ответа, и нет алгоритма. Такие вопросы непросто даются программистам. Есть повод вспомнить, как вы поступаете в таких ситуациях обычно, а затем посмотреть на ситуацию со стороны и подумать, как следовало бы поступать.

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

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

Лучше задач могут быть только задачи, которые ещё не решал. Самые инетересные — котороые никто не решал.

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

К вопросу о «заданиях на дом». Они не окупаются, от их выполнения можно отказаться хотя бы из-за этого. Отдача от них меньше 50% (ситуация Тимура), при этом вы тратите время, которое могли бы потратить на подготовку и прохождение интервью. Фактически, одно задание равно трём собеседованиям. Наконец, в отличие от интервью, вы не получаете никакой обратной связи. Вам не напишут, что вы сделали неправильно.

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

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

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

Немного статистики от одной очень крупной IT-компании в России. Данные из внутренних источников. На 1000 электронных писем, разосланных потенциальным соискателям отвечают 500 человек и попадают на телефонное интервью. На очное интервью приглашают 50 человек, из них 10 получают офер и 2 его принимают.

И помните: хорошему алгоритмисту везде найдут место. Ведущему программисту платят за то, что он знает, где соломки подстелить.

Проведение собеседований

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

Случай первый

Соискателя на должность Java Game Developer попросили написать формулу суммы членов геометрической прогрессии. Он её не вспомнил. Вопрос поставил его в ступор. Эту тему проходят в школе, и совершенно ественное, что через много лет не вся школьная программа остаётся в памяти. Конкретно эту формулу можно найти в гугле за 2 секунды.

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

Случай второй

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

Как надо. Формулировки надо оттачивать. Лучше всего подготовить вопросы в распечатанном виде. Нужно тестировать формулировки на своих сотрудниках, и менять их, если они непонятны.

Случай третий

Соискателя попросили дать определение транзакции. Проблема с определениями в том, что их трудно зазубрить дословно. Запишите своё определение, а затем сравните его с тем, что написано в википедии: «транзакция — это группа последовательных операций с базой данных, которая представляет собой логическую единицу работы с данными». У вас получилось слово в слово? У меня нет.

Как надо. Переведите вопрос в менее формальный вид: «расскажите, что вы знаете о транзакциях». Составьте чек-лист, в котором запишите, что кандидат должен знать. Например: транзакции атомарны, транзакции изолированы и у них есть разные уровни изоляции. На каждый правильный ответ ставьте галочку. Степерь детализации должны быть релевантна позиции. Понятно, что DBA гораздо больше должен знать о транзакциях, чем сишарпер-бекендер.

Случай четвёртый

Соискателя спросили, кем он видит себя через несколько лет. Его ответ не включал построение карьеры в компании, и ему отказали. Существуют недорогие методы мотивации сотрудников из разряда «мы одна команда». В такую мотивацию верят далеко не все сотрудники. Интеллектуалы-программисты видят, что это утверждение про команду ничем не подкрепляется, и не лояльны к своему работодателю. Только дело здесь не в программистах.

Как надо. Конструктивная позиция: соискатель и работодатель равноправные участники переговоров. За зарплату сотрудник будет работать сорок часов в неделю, а лояльность оплачивается отдельно. Большой вопрос — как именно оплачивать? Второй человек в Microsoft, миллиардер Стив Балмер скачет по сцене в потной рубашке и до изнеможения кричит слово «Разработчики». Со стороны выглядит странно, но там в зале сидят рядовые программисты Microsoft. Сейчас они гордятся своей работой. А ваш начальник умеет так хвалить?

Случай пятый

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

Как надо. Людей, которые умеют проводить интервью, надо искать. Это должны быть сотрудники, умеющие выстраивать отношения, не проявляющие агрессию, общительные. Интервью выматывает, поэтому сотрудников по возможности должны сменять друг друга. Желательно чётко обговаривать задачи интервью. В частности, обычно важнее выявить сильного сотрудника, а не утвердиться за счёт кандидата. Если людей собеседуете вы, рефлексируйте результаты.