Хочу работать в Google: Материалы для подготовки будущим стажерам

Мне часто пишут вопрос: “Я пока еще учусь в школе, но в будущем обязательно хочу попробовать постажироваться в Google. На чем мне стоит сконцентрироваться сейчас, чтобы увеличить свои шансы?”.

Обычно я советую попроб овать олимпиадное программирование (или topcoder и подобные проекты),  попробовать сделать свой проект или поработать на open source.

Но оказывается, что у Google есть свой список материалов для таких случаев. Вот он:

www.google.com/edu/tools-and-solutions/guide-for-technical-development/index.html

Теперь что лично я думаю об этом списке:

  • Список хороший. Довольно много полезных ссылок даже для студентов или работающих специалистов.
  • Список действительно для долгосрочной работы. Если у вас в запасе год или два, или вы просто хотите расширить свои горизонты – это отличный источник полезных ссылок. Если у вас интервью через месяц или даже полгода, то готовиться по этому списку будет как минимум неоптимально. В этом случае как раз надо будет интенсивно сосредоточиться на том, что вы уже знаете, а не пытаться расширять свои горизонты. И заниматься решением задач типа того, что спрашивают на интервью.
  • Некоторые курсы перечисленные там ИМХО не имеют практической ценности если цель – устроиться на работу или попасть на стажировку. Я еще не видела кандидатов, которым бы отказали потому, что они не знают Scheme, или там не помнят детали архитектуры компиляторов. Это, конечно, интересно, но заниматься этим стоит если у вас действительно в запасе много времени.
  • Особое внимание стоит обратить на “Work on projects outside of the classroom”.  Очень часто этот пункт хромает у молодых кандидатов – в университете делают в основном малосодержательные лабы, а вне университета возможности поработать не подвернулось. Постарайтесь найти что-нибудь такое как можно раньше. Свой проект, или open source, или что-то из предложенного в этом списке… Неважно, но опыт работы, особенно если вы можете показать свой код – это отличная подготовка. Я бы сказала – один из самых важных элементов.
  • “Work on project with other programmers” – это важный пункт в смысле социализации, но я никогда не видела, чтобы кого-то спрашивали об этом на интервью. Думаю, если окажется так, что вы всю жизнь ни одного другого программиста в глаза не видели, но имеете за спиной крутые достижения – это ничуть не уменьшит шансы.
  • Become a teaching assistant. Это применимо только в американских реалиях. Но по моему опыту опыт преподавания в какой-то мере компенсирует отсутствие реального опыта. Но ИМХО, если у вас есть выбор – преподавать или работать (пусть даже над своим проектом), то работая вы научитесь большему.