Katya Kalashnikova (ketiiiiiiii) wrote,
Katya Kalashnikova
ketiiiiiiii

Ребята, зачем вы учите таким ненужным фразам, которые кандидат не выучит, а интервьюст не поймет?



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


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


Например отзыв @valyard   Краткая версия ниже:

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

В конце весны этого года на DTF висел баннер, который многие наверняка видели. Zynga поглотила все ресурсы Штатов и теперь хантит народ в заснеженной России. Если мне не изменяет память, они делали акцент на PHP и C++ программистов. Я подумал, что чем я хуже, тем более клиент большинства их игр написан на Flash. Наверняка, и флэшеры им тоже нужны.
Сразу скажу, что мне более было интересно как далеко я зайду и что из этого получится, чем реальная работа на Zynga

.
Предварительное интервью

Главным по рекрутингу был некий Mathias Connot (он даже по этому поводу завел себе профиль на moikrug). По почте я общался только с ним. Где-то я читал, что он когда-то давно успешно хантил русских в Microsoft.

Мое краткое резюме им понравилось, Мэтт «записал» меня на Skype интервью в определенный день и час, выдал порцию инфы о компании и промо ролик . В назначенное время мне позвонил Luke Rajlich, FarmVille CTO.

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

Я какое-то время работал в Нью Йорке. У меня большой опыт общения с американцами. Но все равно, во время интервью, процентов 70 моего мозга были целиком выделены на то, чтобы понять собеседника и правильно построить ответ.  Плюс, я немного волновался.

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

Люк пробежался по моему резюме и стал задавать вопросы:

Рассказать о себе и проектах, в которых участвовал. Тут нужно было быстро и кратко перечислить несколько своих самых интересных/сложных проектов и рассказать о своей роли в них.
.
Далее он пошел в сторону. Спросил о различиях системы типов Java и ActionScript 3, чем отличается Strong Typing от Static Typing. Пытался запутать все это дело еще и Duck Typing'ом, что частично получилось.
Прыгнул на C++ и спросил про Templates. С чего бы вдруг? Я от плюсов очень далеко, но что знаю рассказал с примерами из других языков.
Попросил рассказать об MVC.
Спросил зачем нужен полиморфизм, что такое Abstract Factory и еще какой-то паттерн.
Поинтересовался имел ли я дело с SQL и MySQL в частности.

25 минут прошли незаметно. На оставшиеся пять минут я позадавал Люку несколько вопросов — не каждый день удается поговорить с CTO FarmVille. За это время я узнал, что они в основном используют Linux + Apache + MySQL + PHP; что Erlang и Scala интересны, но на них не найдешь разработчиков; что игры свои они не защищают, потому что бесполезно и (в массе своей) не нужно.


Ошибка номер 2 — не отвечайте сразу. Подумайте. Даже такие простые вопросы, как Strong Typing и Static Typing можно перепутать. Не бойтесь исправлять свои ошибки. Через пару минут уже на другом вопросе я понял свою фатальную ошибку и сказал, мол, я вон там сильно ошибся, на самом деле это вот так.

Ошибка номер 3 — прочитайте уже книгу GoF про паттерны. Кто-то скажет, что нафиг не нужно и так все понятно. Но я все же точного определения Abstract Factory (чего от меня хотел интервьювер) не знал, а рассказал немного другой тип фабрик и как мы используем их в своей работе. Порой, люди от вас хотят услышать именно определения.

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

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

Подготовка

У меня был месяц до второго собеседования, в течение которого я сквозь лень почитывал интернет в поисках информации о компании Zynga, о возможных вопросах и задачах. Судя по советам в Интернетах, на интервью ходят одни сишники и их всех заставляют чеканить на скорость названия структур данных и писать на бумажке все известные алгоритмы сортировки. Я совершенно не знал чего ожидать.

Второй этап

Как сказал Мэтт, план был такой — по результатам интервью они отбирают 40-50 человек, едут командой в Москву, где лично беседуют со всеми по 10 человек в день (5 утром, 5 вечером).

В назначенное время я подъехал к отелю Marriott Royal Aurora в центре Москвы, где расположилась команда интервьюверов. Нас было на утро человек 5 или 6. Мэтт отвел нас в переговорную комнату, где я познакомился с другими кандидатами. Со мной попались в основном сишники и один PHP'ист. Странное настроение было у всех, мол, лучше там PHP'истом, чем тут сишником.

Тут же произошел забавный казус. Вошел молодой человек и молча уставился на нас. Мы уставились на него.
— Мэй ай сит хир? — спросил он и отодвинул стул.
— Sure, why not? — почему-то ответил я, и мы продолжали пялиться друг на друга еще секунд 10, пока я не сообразил.
— А что это мы по-английски говорим? — спросил я.
— Ой, а вы что, тоже на интервью? А я думал вы меня сейчас спрашивать тут будете.
Поржали. А ведь надо было начать спрашивать.

Потом Мэтт рассказал нам о компании и как правильно проходить интервью. Думаю, будет полезно всем:
Не торопиться, слушать вопрос, переспрашивать если что непонятно. Приступать к решению только полностью убедившись, что решается именно та задача.

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

Интевью были построены следующим образом. У каждого соискателя своя комната со столом, двумя стульями, водой, окном и туалетом. На 20-30 минут заходит один из «экзаменаторов» и проводит свою часть интервью. На листках бумаги пишешь алгоритмы на любимом языке, рисуешь схемы данных и взаимодействия машин… Далее 15 минут перерыв. При этом, как сказал Мэтт, планируется от 3х до 5ти интервью с каждым, что если вас выгонят после третьего, то это, мол, ничего не значит.

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

Ошибка номер 4 — постарайтесь заранее разузнать как будет проходить собеседование, какие именно специалисты нужны компании, кто будет проводить собеседование.

Для меня было очень неожиданно, что ни один интервьювер не задал ни одного конкретного вопроса не то что по Flash, а вообще по языку программирования или технологии. Я, честно говоря, не думал, что меня будут интервьюировать на позицию C++ разработчика. Какой из меня C++ разработчик? Мозг был заполнен разной специфической для Flash информацией, а мог бы ведь запихать чего более полезного.

Первое интервью

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

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

Я вспомнил все похожее, что когда-либо делал и читал: реализацию A*; как из его работы частично кэшировать результаты для других мобов; завести вейпоинты на карте; разные другие варианты препроцессинга пространства; объединить мобов в кластеры с самоорганизацией внутри (чтобы было не так скучно); перекинуть часть обсчета на клиент (в разумных пределах) в конце концов…

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

Второе интервью


Следующему собеседнику было интересно в каких проектах я участвовал. Рассказывал в основном о социалочках (в конце концов, в игровую же компанию устраиваюсь!). Во второй половине он спрашивал меня о структурах данных. Задал задачу найти цикл в Linked List. Здесь, я как дурак решил выпендриться знанием не самых очевидных алгоритмов, где и встрял в следующих вопросах, когда нужно было работать с их результатами. За последние пять минут в очередной раз протупил, но в перерыве задачу все-таки написал и ждал следующего посетителя.


Третье интервью.

После перерыва ко мне вошел CTO Zynga Cadir Lee. Если, кто были остальные я не совсем понял, то Кадир явно выбивался из группы молодых веселых парней. Он был больше похож на лектора в университете. Тут я почувствовал себя студентом на первом курсе и вытер холодный пот с рук об штаны.


Сперва, он проверил решение предыдущей задачи. Пару раз переспросил нафига я так сделал. Далее последовал очень интересный и весьма неожиданный вопрос. Я к такому совершенно не был готов. Он попросил меня рассказать о фреймворке, который я использую на работе так, как-будто он устраивается к нам в компанию. Я почему-то решил рассказывать не о текущих наработках (наверно, посчитав их незначительными; да и команда маленькая сейчас), а о фреймворке, на котором мы в TimeZero делали игры. Кто знает, тот уже смеется над тщетностью сей затеи в данных условиях. В общем, получилось у меня весьма хреново.


Потом он попросил спроектировать таблицы(sic!) для Jira-подобной софтины. Вот чего я точно не ожидал, но все же стал в слух вспоминать сущности и соединять их через join'ы в таблицах (что скорее всего выглядело весьма жалко, ибо последний раз я делал что-то подобной ну ооочень давно). Посмотрев на мои никчемные потуги, Кадир решил дать мне что полегче — запроектируй игру в Кубик Рубика. С этим-то я справился сносно, учитывая все то давление.

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


Ожидание

Ко мне зашел полурусскоговорящий член команды Алекс Сергиенко (как выяснилось, родители у него русские, а сам он впервые в россии, но говорить на русском кое-как может) и сказал, что у меня больше интервью не будет. Что это значит было понятно и так, но неужели я был настолько плох? Мне казалось, что с первыми двумя получилось очень неплохо.
Мне вручили сумку с дурацкими подарками и проводили до выхода. Кстати, вот и открылся секрет откуда у меня этот Game Card на 10$ в CityVille (:

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

Выводы:

Я почти не расстроился, но сделал некоторые выводы.

Интересное настроение у кандидатов — «лучше там PHP'шником, чем тут Сишником». Как-будто ТАМ розовая мармеладная страна. Судя по всему, работать придется будь здоров. В тесных кьюбиклах на стремненьких стульчиках. Собаки бегают везде. А коллекцию банок от Red Bull не забыли еще?


При этом не очень понятно кого они искали конкретно. Такое ощущение, что им были нужны какие-то универсальные биороботы. Теоретическо-практические независимые от языка индивидуумы, которых можно бросить на любую задачу. Будь то backend на PHP, огромная распараллеленная база данных на C++ или игровой клиент на AS3. Не знаю как сейчас, но в мое время у нас в России такого образования не давали. Каждый учился сам на практике и (возможно) весьма преуспел в своей области.

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

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

Правильно, что читал разные теоретические книжки. Знания пригодились. Но, конечно, грустно, что Flash — это такая детская игрушка. Готов поспорить, что 90% флэшеров никогда не пользовались нестандартными структурами данных, да и непростой алгоритм из разряда классических на этих структурах написать не способны. Туда же и PHP'сты, да и Java Enterprise разработчики.

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


Общий вывод ещё один напрашивается: собеседование в большую компанию (вне зависимости от результатов) это бесплатная карьерная консультация.
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your IP address will be recorded 

  • 2 comments