Подготовка к собеседованию в Microsoft
Nov. 10th, 2013 01:40 pmНе уверен, что это можно назвать лайфхаком, поскольку попотеть придётся серьёзно... В общем, о том, что должен знать каждый уважающий себя программист.
Оригинал взят у
polycode в Подготовка к собеседованию в Microsoft
Оригинал взят у
![[livejournal.com profile]](https://www.dreamwidth.org/img/external/lj-userinfo.gif)
(Содержимое поста может меняться и дополняться со временем.)
Когда я узнал, что буду проходить собеседование в Microsoft, то решил, что не буду полагаться на удачу, а попытаюсь сделать все возможное, чтобы максимизировать свои шансы на успех. То есть, я действительно хотел собеседование пройти и шел туда не ради тренировки или оценки своих способностей. Времени на подготовку у меня было около месяца, но надо учитывать, что три недели из этого месяца я еще и работал, да и семья немало времени отнимала, хотя и прилагала все усилия, чтобы меня освободить от домашних дел. Получилось, что в день на подготовку мне удавалось тратить от 1 до 4 часов, а если посчитать среднее, то, скорее всего, получится что-то около 1.5 - 2 часов.
Изначально мои шансы были невелики из-за отсутствия практики: последнее собеседование я проходил много лет назад, и ничего общего с процессом собеседования в Microsoft оно не имело. (Мне не нравится идея, что для подготовки нужно сходить на десяток-другой собеседований, а потом уж все пойдет как по маслу. Что-то в этом есть противоестественное.) Кроме того, разговорная практика на английском у меня тоже была где-то в районе нуля: немногочисленные разговоры с местным населением в заграничных отпусках, пожалуй, составляли весь мой опыт. Тем не менее, я свободно читал технические и большинство художественных текстов и хорошо воспринимал американский английский на слух. Что касается технической подготовленности, то я товарищ любопытный и учиться люблю, Coursera уважаю, умные книжки читаю и перечитываю постоянно, плюс недавняя аспирантура не давала расслабляться, да и работа часто требует включать мозг. При этом всем опыт решения маленьких алгоритмических задач, да еще и на бумаге, отсутствовал у меня почти полностью (весь опыт — несколько SRM на Topcoder), да и решать что-то в спешке, толком не продумав все аспекты, я терпеть не могу. И вообще я слегка тормоз, в смысле, думаю медленно. Это все я пишу, чтобы читатели могли как-то соотнести свой уровень с моим планом подготовки и скорректировать его в нужную сторону.
При подготовке я, разумеется, искал и читал в интернете все, что только мог найти по поводу собеседований в MS, а равно и в Google, Amazon и Yahoo, поскольку их подходы во многом схожи. Большинство тех, кто проходил собеседования, обычно описывают сам процесс (что тоже представляет несомненную ценность), но не описывают подготовку, а если и описывают, то обычно в терминах прочитанных книг (названия которых и так все знают) или изученных/повторенных областей.
Дальнейший рассказ будет строиться так: сначала я расскажу в целом об организации собеседований в MS, потом о нетехнической подготовке, затем приведу теоретический минимум и метод его проработки, и под конец перечислю задачи, которые, как мне кажется, покрывают большинство областей.( Ну, поехали. )
Когда я узнал, что буду проходить собеседование в Microsoft, то решил, что не буду полагаться на удачу, а попытаюсь сделать все возможное, чтобы максимизировать свои шансы на успех. То есть, я действительно хотел собеседование пройти и шел туда не ради тренировки или оценки своих способностей. Времени на подготовку у меня было около месяца, но надо учитывать, что три недели из этого месяца я еще и работал, да и семья немало времени отнимала, хотя и прилагала все усилия, чтобы меня освободить от домашних дел. Получилось, что в день на подготовку мне удавалось тратить от 1 до 4 часов, а если посчитать среднее, то, скорее всего, получится что-то около 1.5 - 2 часов.
Изначально мои шансы были невелики из-за отсутствия практики: последнее собеседование я проходил много лет назад, и ничего общего с процессом собеседования в Microsoft оно не имело. (Мне не нравится идея, что для подготовки нужно сходить на десяток-другой собеседований, а потом уж все пойдет как по маслу. Что-то в этом есть противоестественное.) Кроме того, разговорная практика на английском у меня тоже была где-то в районе нуля: немногочисленные разговоры с местным населением в заграничных отпусках, пожалуй, составляли весь мой опыт. Тем не менее, я свободно читал технические и большинство художественных текстов и хорошо воспринимал американский английский на слух. Что касается технической подготовленности, то я товарищ любопытный и учиться люблю, Coursera уважаю, умные книжки читаю и перечитываю постоянно, плюс недавняя аспирантура не давала расслабляться, да и работа часто требует включать мозг. При этом всем опыт решения маленьких алгоритмических задач, да еще и на бумаге, отсутствовал у меня почти полностью (весь опыт — несколько SRM на Topcoder), да и решать что-то в спешке, толком не продумав все аспекты, я терпеть не могу. И вообще я слегка тормоз, в смысле, думаю медленно. Это все я пишу, чтобы читатели могли как-то соотнести свой уровень с моим планом подготовки и скорректировать его в нужную сторону.
При подготовке я, разумеется, искал и читал в интернете все, что только мог найти по поводу собеседований в MS, а равно и в Google, Amazon и Yahoo, поскольку их подходы во многом схожи. Большинство тех, кто проходил собеседования, обычно описывают сам процесс (что тоже представляет несомненную ценность), но не описывают подготовку, а если и описывают, то обычно в терминах прочитанных книг (названия которых и так все знают) или изученных/повторенных областей.
Дальнейший рассказ будет строиться так: сначала я расскажу в целом об организации собеседований в MS, потом о нетехнической подготовке, затем приведу теоретический минимум и метод его проработки, и под конец перечислю задачи, которые, как мне кажется, покрывают большинство областей.( Ну, поехали. )