Пользователь
0,0
рейтинг
1 февраля 2010 в 16:57

Разное → Как сдвинуть гору Фудзи или Интервью для гениев

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

Наверняка многие из вас слышали об ужасно сложных интервью для желающих работать в компаниях типа «Microsoft», «Google» или «Apple» (на самом этот список можно продолжать и продолжать). Еще бы — общеизвестно, что Google каждый день получает порядка 1000 резюме, все именитые компании рассказывают направо и налево, что они ищут не меньше, чем гениев, а на просторах безграничного интернета время от времени появляются вопросы, которые задавались на интервью вроде «Как вы сдвинете гору Фудзи?» или «Сколько мячиков влезет в автобус?» или даже «Как создать хорошую поисковую систему, вроде Google?».

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

Итак, допустим цель «получить работу мечты» поставлена. Что же делать дальше?



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

1. Постарайтесь найти человека, который уже работает в компании, куда Вы хотите попасть. На самом деле, для желающих подать свое резюме в именитую компанию обычно имеется 2 пути: послать его через сайт компании (как сделает сегодня еще приблизительно 999 человек) или попросить знакомого, уже там работающего, вас порекомендовать. Большие компании верят, что умные люди (которые уже у них работают) знают много других умных людей (часть из которых еще можно нанять) и поэтому кандидаты, которых кто-то порекомендовал, имеют несколько больше шансов, что на них обратят внимание, чем на тех, кто посылает резюме через сайт.

2. Если знакомых не нашлось, ищите другие возможности. Например, заведите сайт, напишите туда много интересных статей по ИТ тематике и разместите там же свое резюме. Или пройдите тесты на Brainbench — ходят слухи (я не проверяла :), что рекрутеры из Майкрософта регулярно туда заглядывают и сами пишут особо отличившимся. Или отличитесь на каких-нибудь олимпиадах вроде CodeJam или TopCoder. Или поищите в интернете другие success stories — как компания сама вышла на кандидатов и, если это не очень сложно, сделайте то же самое, что и те кандидаты.

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

4. Узнайте побольше о процессе. На самом деле процессы интервью в больших и именитых компаниях очень похожи. Сначала вам устраивают телефонные интервью (1-3) и, по их результатам, приглашают на интервью очные (которых бывает от 2 до 6). И, если немного поискать на бескрайних просторах интернета, можно обнаружить, что большинство интервью сводится к нескольким областям:

  1. Основы математики: прикладная математика, теория чисел, комбинаторика, основы вероятности...
  2. Алгоритмы и структуры данных: сортировки, на графах, O-notation, деревья...
  3. Объектно-ориентированное программирование...
  4. Общее понимание: как работает операционная система, что делает компилятор, как работает сеть...
  5. Знание какого-нибудь языка программирования на хорошем уровне.


Знать специальный синтаксис открытия сокета в языке С, вероятнее всего, необязательно :).

5. Соберите толковые источники для подготовки. В интернете полно книг, сайтов и статей, из которых можно черпать информацию и по которым можно учиться и готовиться. Лично мне были полезны в свое время 3 книги: «Алгоритмы и задачи» Шеня, Алгоритмы от Скиены и классический талмуд по алгоритмам от Кормена и компании. И очень полезен вот этот сайт, специализирующийся на всякие интервью.

6. Решайте задачи и набивайте руку. Есть простое правило — когда Вы делает чего-то, чего угодно, много, вы рано или поздно начинаете делать это хорошо. Это в полной мере справедливо и для подготовки к интервью в большие компании и это, пожалуй, самый важный пункт из всех. Когда Вы прорешаете тысячи вопросов и задач, напишете сотни алгоритмов и десятки тысяч строк кода в выбранном языке — то Вы достигнете такого уровня дзена, когда задачи на интервью покажутся вам простыми. Главное начать с простого и постепенно двигаться вперед, наращивая сложность. И в какой-то момент Вы обнаружите, что 70% задач и вопросов вы решаете практически сходу, над 20% надо немного подумать и над 10% надо подумать хорошо. А это уже довольно неплохие шансы на прохождение интервью :).

7. Будьте оригинальны. Вас намного лучше запомнят, если вы будете отличаться от других (только постарайтесь отличаться не в худшую сторону). Если в Вас будет что-то, чего нет у других, что будет вас от них отличать и заинтересовывать одновременно — это большой плюс. Если Вы бывший шаолиньский монах или топ-модель, которые решили переквалифицировать в отличных программистов — то, считайте, Вы нашли свою «фишку» :). Если же нет — то можно во время интервью писать код на Python (большинство кандидатов пишет на стандартных языках вроде Java или C++), или упомянуть грозу всех программерских языков Brainfuck и, если это будет в тему, написать небольшую программу на нем. Или принести с собой джедайский мечь и оставить его в углу. Или вспоните какую-нибудь из программерских шуток (вроде того, что если P = NP => P = 0 or N = 1). В общем, нашалите как-нибудь — необидно, необременительно и в тему :).
Larysa Aharkava @Larrr
карма
357,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Разное

Комментарии (29)

  • 0
    и в какой именитой компании работаешь ты?)
    • +1
      Я не работаю, я учусь ;)
      • 0
        ясно) а я думал) уже есть результат)
        • +1
          Уже есть, и не один ;). Но статья не о моих результатах.
          • 0
            это круто) рад за вас)

            ждем с нетерпением статью о ваших результатах)
            • 0
              Напишу :).
  • +2
    >Будьте оригинальны
    Девушка, будьте оригинальны, пишите нормальные технические статьи, а не очередные «10 советов о том, как надо жить», которых тут и так навалом и куда более квалифицированных.
    • –1
      Я напишу и технические, не бойтесь :). А вы не ходите по нетехническим тегам в поиске технических статей — должно помочь ;).
      • 0
        Да я и не боюсь. И помощи тоже вроде не прошу. И уж тем более совета относительно того, что мне читать. Если Вам интересно, как люди попадают на новые статьи — есть такое место habrahabr.ru/new
        • 0
          Ok, спасибо, буду знать :).
    • 0
      Кстати вы не могли бы мне дать ссылку на подобную статью? Я прежде чем написать — искала, и не нашла. Было бы интересно посмотреть :).
      • 0
        Навскидку:
        planetahr.ru/publication/1330
        googlemon.ru/google/google_job_interview_programmer/
        podlipensky.com/post/2008/06/23/how-to-pass-interview-in-google.aspx
        На самом деле, гораздо интереснее, когда люди пишут о собственном опыте, а не выдают список прописных истин. Попробуйте.
        • 0
          Я это понимаю, но о собственном опыте написать несколько сложнее, поскольку по условиям NDA нельзя разглашать особенностей процесса и вопросы. Поэтому я начала с общей статьи.
          • 0
            Ну что ж. Надеюсь, это будет не самая лучшая Ваша статья.
            • –1
              Вы вообще можете не читать мои статьи — я не обижусь :).
              • +1
                Вы напрасно так драматизируете. Хабр — большое сообщество, и вполне естественно, что на Вашу статью будут совершенно разные мнения, и необязательно хвалебные. И это не повод вступать с каждым недовольным в полемику с единственным аргументом «Не нравится — не читайте». Во-первых, люди сами разберутся, что им читать, и вряд ли они при этом будут руководствоваться Вашей гипотетической обидой; а во-вторых, можно получить аналогичный по адекватности ответ: «Не хотите, чтоб Вас читали — не пишите».

                … Я однажды написала неудачную статью про XSLT, и хабралюди рассказали, что мое решение, над которым я в свое время долго думала, не является красивым и изящным, есть и получше. И мне бы в голову не пришло говорить этим людям «Нет, вы все неправы, уходите отсюда». Получилась нормальная статья и хорошее обсуждение. Так что конструктивнее надо быть.
                • 0
                  Спасибо за мнение :).

                  Я приветствую конструктивную критику и совершенно адекватно на нее реагирую (надеюсь, по крайней мере). Дело в том, что ни одно Ваше сообщение не является критикой (заметьте, в треде присутствует только одно замечание о именно статье — «было бы неплохо больше личного опыта»), а заявлением «Этого не пишите, пишите технические статьи, а то понаехали тут». Хотя то, что я написала вполне в формате Хабра и не является оффтопиком.

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

                  На сиим предлагаю тред закончить. Извините, если чем обидела.
                  • +1
                    Если адекватность измеряется количеством смайликов в сообщении, то да, этого не отнять.
                    Если не увидели критики, то резюмирую:
                    1. Статья (как Вы сами признаетесь) не основана на собственном опыте, а, следовательно, не претендует на достоверность, а, следовательно, полезность.
                    2. Статья состоит из очевидных вещей. Думаете, программист, который хочет работать в гугле, не догадается, что надо совершенствовать свои навыки? Или что надо составить грамотное резюме?
                    3. Пункт про «оригинальность» — крайне сомнительный. Большой корпорации плевать на тонкую душевную организацию соискателя. Большой корпорации нужен винтик, который бы делал работу с минимумом косяков. На то уж она и большая корпорация.
                    4. «Меч» пишется без мягкого знака. Это я только что придумала, да. Ээх, а я уж хотела Вас за грамотность похвалить.

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

                    Да, Вы правы, не стану я Вас читать.
                    Закончим. У нас с Вами сплошной misunderstanding
            • +1
              PS. Я посмотрела в Ваш блог — Вы пишете очень здорово :).
  • –1
    неплохая статья. в следующий раз постарайтесь писать поменьше слов и побольше цифр и ссылок. тогда получится полезный мануал, таких очень не хватает.
    • 0
      Спасибо, я учту на будущее.
  • 0
    Интересное кино.

    Основная суть статьи не howto — это не алгоритм, для тех, кто не уловил.

    Это больше inspiring, чтобы вера в себя появилась.
  • 0
    и все таки… как же сдвинуть гору Фудзи?
    Чем этот процесс отличается от передвижения других гор — например Уральских?
    • 0
      Она, вроде, по форме другая. Вообще-то, я книжку не дочитала, но я думаю, что правильный ответ «Никак, но можно сделать вид, что мы ее сдвинули».
      • 0
        не… Настоящая масштабная задача в реальности. Т.е. у горы были сначала одни координаты на карте, потом ее сдвинули и координаты стали другие ( ведь сдвигом понимается именно это, а не иллюзия сдвига ). Необходимо сдвинуть на 1000 метров — чтобы можно было зафиксировать. Сдвиг не подразумевает разрушение горы с точностью до видимого глазом изменения ее размеров и пропорций.
  • 0
    > общеизвестно, что Google каждый день получает порядка 1000 резюме,

    Не-а ;-) Не могу сказать сколько. Но сильно, СИЛЬНО больше 1000.
  • 0
    Или отличитесь на каких-нибудь олимпиадах вроде CodeJam или TopCoder. Или поищите в интернете другие success stories — как компания сама вышла на кандидатов и, если это не очень сложно, сделайте то же самое, что и те кандидаты.

    оох… после фразы о том что отличиться на топ кодере не очень сложно, почувствовал себя ничтожеством(
  • 0
    У меня тоже новый экспириенс… Я успешно прошел майкрософтовское интервью в августе этого года. В ноябре уже уезжаю в Сиетл в команду Bing. Абсолютно уверен, что при большом старании за 3 месяца подготовки можно стать готовым даже к очень тяжелым вопросам.
    Очень рекомендую книгу Cracking the coding interview. Очень хорошие задачки там. Много советов для прохождения интервью в Apple, Amazon, Microsoft, Google.
    Важные области для повторения: data structures, bit manipulation, multythreaded development, search algorithms, design patterns. У меня на интервью были вопросы и из дискретной математики. Что меня очень удивило. Не думал, что будут гонять и по академическим знаниям.
    Очень важен план для подготовки. Без четкой программы подготовки ничего дельного не выйдет.
    Если у вас есть возможность обсуждать трудные задачки с гуру, которые возле вас водятся, обязательно делайте это. Это может быть очень полезно. Не всегда, то что трудно вам, на самом деле трудно… может нужен иной взгляд на задачу.
    Удачи.
  • 0
    >>джедайский мечь

    мои глаза

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