В последнее время я много собеседую желающих устроится в Майкрософт, за прошлый год я провел больше 50 интервью. Кандидаты самые разные, от людей с десятком лет опыта, до студентов-интернов. При этом у всех проявляются одни и те же шаблоны поведения, которые крайне негативно сказываются на их успехах. Если уж очень обобщить – все лгут, как говорил известный вымышленный доктор. Если бы кандидаты никогда не лгали, то процесс найма был бы элементарным: достаточно было бы просто прочесть резюме, задать уточняющие вопросы и – всё. На деле же из сотни резюме, которые по описанию подходят под вакансию, нанимается после собеседований в лучшем случае несколько человек. Остальные девяносто с лишним – приврали.
Самое печальное, что все хитрости на которые люди идут на собеседованиях, по факту лишь уменьшают их шансы получить предложение. Хочу привести список самых популярных ошибок, с которым я регулярно сталкиваюсь, и которые вам наверняка знакомы. Так же хочу объяснить, почему так делать не надо и почему различные хитрости лишь вредят вам в попытках получить желанную работу.
1. Телефонный всезнайка
Многие взяли в моду искать ответы в интернете во время телефонных интервью, чтобы, мол, блеснуть эрудицией. Но проблема в том, что быстро найти ответ можно только на простой вопрос, а если вы действительно знаете на него ответ, то вы дадите его быстрее, чем успеете найти ответ в поиске. Всезнайки имеют столь ярко выраженную задержку, и столь отличительную манеру предоставления ответа, что доходит до смешного.
Представим себе элементарный вопрос. Например, какая первая буква в английском алфавите? Всезнайка будет отвечать примерно так:
- Так… английский алфавит, английский, да? Значит, первая буква, тут, конечно же, есть первая буква, как и во всех других алфавитах и… эта первая буква в алфавите … это “A”!
Далее, уже без каких-либо запинок кандидат начинает молотить:
- А за ней идут “B” и “C”, последняя – “Z”, а всего в алфавите 26 букв!
Поздравляю, вы провалили собеседование. И нечего потом удивляться, что вы же “на всё ответили”.
Простые вопросы задаются для того, чтобы проверить опыт, знания определенных областей в ширину или глубину, и у всех есть свои границы. И тут бесполезно лезть в поиск, потому что манера и скорость ответа на вопрос так сильно разнятся, что как бы быстро вы ни искали ответы, опытный интервьюер легко вас на этом поймает.
Хотите протий интервью – отвечайте честно. Не знать ответы на все вопросы – это вполне нормально.
2. Актёр
Актерское мастерство кандидаты начинают демонстрировать, когда им дают решить уже известную им задачу. Вместо того, чтобы с гордостью ответить, что они эту задачу знают, предложить отличное решение, и продемонстрировать свой опыт, актеры начинают изображать умственные муки, в результате которых они якобы приходят к решению.
Отмечу две вещи. Во-первых, программисты и ученые – плохие актеры. Так что вам выгоднее демонстрировать навыки по своей специализации, нежели артистические – меньше вероятность, что завалитесь. Во-вторых, продемонстрировать знания вам более выгодно. Интервьюер не выбросит задачу, если вы ему вдруг заявите, что знаете, как она решается. Иначе как проверить, что вы его не обманываете? Всё равно придется решать, и чем точнее будет ваше решение на фоне других кандидатов, тем лучше.
Более того, многие задачки, несмотря на всю свою простоту и популярность, даются как раз для того, чтобы проверить насколько хороши ваши навыки. Если вы начинаете мучительно думать над простой задачкой – это уже минус. И более того, иногда сам факт того, что вы не знали ответ наперед уже является большим минусом. Например, вопрос про то, как подсчитать число выставленных бит в байте для студента может быть задачкой, которую ему надо решить, и пусть даже с подсказками. А от опытного программиста на С++, с заявленным опытом низкоуровневых оптимизаций, будет ожидаться моментальный ответ с описанием нескольких разных способов и их отличий.
Хотите протий интервью – не ломайте комедию и отвечайте сразу настолько хорошо, насколько вы можете.
3. Стрелочник
Отвечать нужно на тот вопрос, который вам задали. Но многие кандидаты считают, что если они не знают ответа, то лучше попытаться ответить хотя бы на какой-нибудь другой вопрос. Например, как-то один Ph.D на вопрос о том, что такое виртуальное наследование в C++, парировал: “А можно я расскажу сначала просто про наследование?”. И лишь после сознался, что не знает ответа. Если вас спрашивают сколько будет 2+2, то не надо рассказывать про числа, или для чего нужна математика, т.к. предполагается, что вы это и так знаете. Не надо рассказывать, как много вы работали с числами и как ваша команда написала таблицу умножения. Все, что от вас требуется – дать ответ на поставленный вопрос.
Пытаясь перевести тему вы совершаете две ошибки. Во-первых, вы начнете вызывать сомнения в том, что вообще понимаете о чем вас спрашивают – это огромный минус. И чем больше сомнений, тем меньше ваши шансы пройти интервью. Во-вторых, вы впустую тратите время, а время на интервью – ваш самый ценный ресурс.
4. Бомбардировщик
Наверняка вы видели такую сцену. Идет экзамен, профессор слушает ответ студента. В какой-то момент профессору надоедает и он ставит студенту незачет и что-то говорит ему напоследок. После чего на всю аудиторию разносится: “Ну я же это говорил(а)!”. То, что вы говорили – не считается.
Не нужно во время интервью пытаться угадать ответ перебором. Это не викторина и никто не скажет вам “Бинго!”, если вы, наконец, попали. К сожалению, многие люди бомбардируют чередой ответов, ожидая, что их в какой-то момент остановят. Задав вопрос о сложности алгоритма, порой можно услышать в ответ что-то вроде: “NlgN?… LgN? … N?…”. Далее кандидат смотрит на интервьюера большими глазами кота из Шрека и ожидает подтверждения, он ведь перебрал уже все подходящие варианты.
Это происходит даже с очень простыми вопросами. Например, сколько будет 2^8? Если программист не отвечает моментально 256, а начинает подсчитывать, то это уже печально. Но еще хуже, когда он начинает быстро вопросительно перебирать “128? 256? 512?”, ожидая от вас подтверждения. Такой подход практически гарантирует вам провал, так что не надо пенять на профессора.
Хотите пройти интервью – отвечайте уверенно и аргументируйте. Аргументы (почему именно так) зачастую важнее самого ответа. Это особенно актуально, когда правильного ответа у задачи может вообще не быть, или ответов несколько. И тем более важно, если ваш собеседник не знаком с предложенным ответом или не до конца его понимает.
5. Скорострел
Многие задачи имеют очевидно-неоптимальное решение, например, сделать перебор всевозможных вариантов, что будет иметь квадратичную или экспоненциальную сложность. Такие решения лежат на поверхности, а над правильным подходом обычно надо немного подумать. Однако многие кандидаты считают, что если они не могут сразу дать хороший ответ, то лучше для начала предложить хотя бы плохой.
Не давайте плохое решение, если вы и сами знаете, что оно плохое. Такие ответы вызывают обоснованные подозрения, что вы и работать будете так же, быстро делая всё тяп-ляп, вместо того, чтобы подумать перед этим десять минут. Если вам нужно время на поиск решения – так и скажите, это вполне нормально.
6. Сказочник
Даже у самого рядового студента, у которого нет ни знаний, ни опыта, резюме будет минимум на одну страницу. Любой Ph.D перечислит у себя в резюме знание десятков разных компьютерных технологий и направлений. Типичный программист с опытом работы обязательно укажет все языки программирования, на которых он написал хотя бы одну строчку кода, и все средства разработки, которые он запускал хотя бы раз в жизни.
Указав знания, которых у вас по факту нет, вы делаете себе медвежью услугу, потому что вас потом будут больно тыкать палкой, проверяя эти самые знания. Например, я часто прошу людей оценить их навыки программирования по десятибалльной системе. Если человек указал десять разных языков, то он уже попал в неловкую ситуацию, потому что если он поставит всем низкие оценки, то и самому уже понятно, что незачем было и указывать, а если поставит высокие, то дальше будут дотошно спрашивать и проверять.
Даже если вы с чем-то действительно работали, или даже делали проект в определенной сфере, это не значит, что настал повод сразу обновлять резюме. По крайней мере то, с чем вы просто пересекались, должно быть отделено от того, что вы действительно хорошо знаете. Хороших знаний всегда мало и они быстро устаревают.
Еще одна проблема, что люди указывают в резюме то, что им интересно, а не то, что они знают. Например, у одного Ph.D в резюме было несколько раз перечислены разделы из теории графов, и был указан проект, связанный с вычислениями на графах. Но когда я дал простенькую задачку на обход графа, выяснилось, что знаний и опыта в этой сфере у кандидата нет вообще никаких. Еще одна Ph.D указала среди прочего сферы Machine Learning и Natural Language Processing, получила задачу на классификацию текстов, и выяснилось, что ничего не знаем и пытаемся изобретать велосипед. Поспрашивал про регулярные выражения, без которых в обработке языков никуда, тоже не знаем. А не было бы этих сказочных знаний – были бы другие вопросы.
Хотите пройти интервью – не указывайте того, чего вы не знаете, потому что с вас потом обязательно спросят.
7. Оптимист
Нужно уметь адекватно оценивать свои навыки, знания и опыт. Постарайтесь не только выкинуть из резюме всё ненужное, но и правильно оценить оставшееся. Хорошие программисты пишут о себе скромно, например, “Умею оптимизировать графику под Xbox 360” – это очень хорошее описание специализации, после которого уже идут различные подробности. Такому человеку легко подать резюме в игровую контору и они сразу знают, что его спрашивать и что ему потом делать.
Если человек заявляет, что он прекрасно знает множество технологий, то это сразу вызывает сомнения в его правдивости или адекватности. В некоторых случаях, достаточно даже одной технологии. Например, автор языка C++ Бьярн Страуструп оценивает свои собственные знания в этом языке на 8 из 10. Поэтому если мне студент говорит, что свои знания C++ он оценивает в 9/10 или даже 10/10, то получает шквал муторных вопросов, пока не завалится хотя бы несколько раз. И дело не в том, что мне хочется придраться и наказать за высокое самомнение, просто важнейшая часть интервью - это проверка заявленных знаний и опыта, поэтому старайтесь оценивать семя адекватно.
8. Большой проект
Постарайтесь адекватно оценить свою собственную роль в том или ином проекте. Зачастую роль у каждого конкретного человека в команде небольшая – разрабатывал/тестировал/руководил. Люди работают над определенными модулями, компонентами, реализуют конкретные решения и т.п.
На интервью от кандидата важно узнать, что делал именно он. Как делал. Почему. Что использовал. Такие вопросы задаются, чтобы проверить опыт и определить подходящее для человека место на новой работе. Чем честнее вы ответите, тем выше вероятность, что вам зададут дальнейшие вопросы по той теме, которая вам хорошо знакома.
Однако многие кандидаты считают, что важнее преподнести важность самого проекта, нежели результаты их собственного труда. Зачастую люди говорят не от собственного лица (“я сделал”), а начинают использовать фразы “мы сделали”, “наш проект”, “было решено” и т.п. В некоторых случаях кандидатов даже тяжело перебить, т.к. они изо всех сил пытаются рассказать какая важная и большая у них была задача, вместо того, чтобы конкретно описать свою собственную роль в ней.
Например, один кандидат долго рассказывал мне про систему диагностирования мозга, помогающую “лечить” Болезнь Паркинсона и о том, насколько это важно. Дело-то хорошее, но вместо важности проекта куда важнее рассказать, чем именно вы этому проекту помогли. Лучше заранее отрепетируйте речь о том, что, как и почему вы делали на предыдущей работе и не стесняйтесь повторять её разным интервьюерам.
9. Подлиза
С одной стороны, важно продемонстрировать интерес работать там, куда вы пришли устраиваться. С другой, топорный подход в этом деле пойдет вам в минус.
Лучший вариант – хвалить технологии, с которыми вам действительно нравится работать. Тут и выдумывать не надо, и с желанной работой хорошо помогает заранее определиться. Грамотным подходом будет прийти на интервью в Майкрософт с телефоном на Windows Phone, оставить адрес почты на @outlook.com, и сказать, что Visual Studio – лучшая в мире среда разработки, а C# – очень приятный язык. Впрочем, Майкрософт – компания гигантская, тут и программисты для айфонов нужны, поэтому никто вам не будет записывать в минус опыт и любовь к другим технологиям и продуктам.
Топорным подходом будет навязчивое и неуместное восхваление. Например, в начале интервью сотруднику нужно коротко представиться:
- Я Senior Developer, работаю в Бинге….
- В Бинге? О, я как раз использую Бинг, а не Гугл, у вас отличный поисковик!
Может быть, это и правда, но такое поведение сильно снижает ваши шансы.
Итого:
Как можно заметить, все перечисленные примеры тратят впустую ваше время на интервью и ничего не приносят взамен. Суть интервью не в том, чтобы скрыть свои слабые стороны, а в том, чтобы продемонстрировать лучшие. На какую-бы уловку вы не шли, это в конечном счете вызывает лишь сомнения, а сомнения – ваш главный враг.