Зарубежные стажировки: а что, а как?
Pavel MartynovПривет! Меня зовут Паша, я студент третьего курса КТ ИТМО и этим летом я поеду на стажировку в Лондон. В этой статье я постараюсь поделиться тем опытом, который набрал на пути к этому. Надеюсь, многим студентам младших (и не только) курсов он будет полезен.
Зачем вообще это всё?
Зачем ехать стажироваться именно за рубеж, почему не пойти в тот же Яндекс или Тинькофф? Потому что стажировки за границей это отличный способ:
- Поднять денег (серьёзно, посмотрите зарплаты стажёров в крупных зарубежных компаниях на glassdoor и поразитесь)
- Набраться опыта, который сложно (я бы сказал, практически невозможно) добыть даже в самых топовых IT-компаниях в СНГ
- Познакомиться с новыми интересными людьми, возможно, встретить единомышленников, и, господи спаси, заняться networking-ом
- Получить return offer и (если вам этого хочется) эмигрировать впоследствии

Короче, причин масса, и если вы читаете эту статью, то уже, наверное, знаете, зачем вам это нужно.
Моя история
Начал подаваться на стажировки за рубеж я ещё после второго курса, но потерпел катастрофическое поражение, потому что подходил к этому делу спустя рукава — из практически сотни компаний, в которые я подал заявку, на собеседование меня пригласила одна, и это собеседование я завалил, перенервничав.
Это было неприятным ударом по самолюбию, в итоге тем летом я стажировался в Яндекс Облаке (кстати, это был поразительно приятный опыт). После окончания стажировки мне предложили перейти в штат, но, обсудив это со своим ментором в Яндексе, я принял решение всё же отказаться от этого предложения. Наверное, главное, что я извлёк из того разговора, умещается в одной фразе:
Поработать ты всегда успеешь. Лучше учись, становись более хорошим специалистом, и покатайся по стажировкам, чтобы узнать, как всё устроено в разных местах. Совмещать это с работой у тебя нормально не выйдет, а инвестируя в себя сейчас, ты инвестируешь в своё будущее.
Следуя этому совету, я поступил в ШАД (очень советую всем, кому чего-то не хватает в университете, тоже попробовать), и начал подаваться на стажировки за границу. Подойдя к этому делу более ответственно и пройдя суммарно около 30 собеседований, я получил несколько офферов и в итоге решил поехать на стажировку в компанию Jane Street.
Это всё очень короткий пересказ, но даже он получился достаточно скучным, так что перейдём непосредственно к сути.
Поэтапный разбор
Самое важное, что, как мне кажется, стоит вынести из чтения этой статьи — у вас не может получиться, если вы не попытаетесь. Многие студенты, с которыми я общался на эту тему, даже не пробуют подаваться на зарубежные стажировки потому что "это для гениев, а я не гений" или "кому я там нужен". Поверьте, не для гениев. Поверьте, кому-то да нужны. Не надо загоняться раньше времени — сначала попробуйте.
Эта заметка о мотивации, может, и звучит немного по-инфоцыгански, но, как мне кажется, является очень важной частью успеха — относиться к делу не как к чему-то, обречённому на провал, а как к пути, на котором вас рано или поздно ждёт успех.
Что мне нужно для начала?
В первую очередь надо знать какой-нибудь язык программирования общего назначения — если вы пишите на Java, C++ или Python хотя бы на базовом уровне, то подходящие вам стажерские вакансии найдутся практически в любой компании. Кроме этого, необходимо быть студентом. Лучше всего по техническому направлению (ПМИ, физика, чистая математика и всякое такое), но большинству компаний даже это не принципиально. И, конечно же, английский язык на достойном уровне (оставим за кадром что такое достойный уровень).
Из базовых требований это всё. Я знаю пару людей, которых брали на стажировки с ровно таким стартовым набором — ни опыта, ни проектов. Но, конечно, и опыт, и pet-проекты будут очень важной частью вашего резюме, которая и должна привлекать внимание рекрутеров. Сейчас про это и поговорим:
Резюме и с чем его есть (не надо его есть)
Хорошее резюме является, наверное, самым важным компонентом успеха в подаче на иностранные стажировки. Дело в том, что на стадии скрининга, то есть процесса, когда из тысяч (или десятков, или сотен тысяч) кандидатов рекрутеры отбирают тех, кого позовут на собеседование. И ваше резюме это единственное, что они видят — никто не расскажет им о том, какой же вы классный на самом деле специалист, кроме резюме. Именно скрининг — самая страшная стадия отбора, потому как здесь, банально из-за огромного конкурса, заваливается больше всего кандидатов.
Я не буду рассказывать, как правильно писать резюме, на эту тему есть множество статей — лично я рекомендую вот эту, в ней очень хорошо описаны все основы и ещё приведена куча полезных ссылок.
После того, как вы сделали первую версию своего резюме, найдите человека, чьему мнению вы доверяете и которого сможете какое-то время задалбывать просьбами посмотреть ваше резюме на предмет ошибок и потенциальных улучшений — это очень, очень сильно помогает.
Можно также скидывать резюме в чаты соответствующей направленности, например, в sns_internships с просьбой посмотреть/покритиковать. Только надо помнить, что некоторые люди, которые будут смотреть ваше резюме, выдают своё очень субъективное мнение за прописную истину или попросту ошибаются.
Теперь у вас есть резюме и вы готовы к следующему этапу, которым является
Подача на стажировки
Кажется, что это самый простой, но при этом самый времязатратный этап вашего пути. Просто выбираете компании, в которые хотите податься, вбиваете в строку поиска "<company name> summer internship 20XX", переходите по первой-второй ссылке, немножко гуляете по сайту компании и находите заветную форму подачи заявки. Если в компании ещё не открыты стажировки, запомните/запишите это и проверьте ещё раз через неделю. Кстати, в большинстве компаний вас попросят заполнить какое-то неимоверное количество формочек и полей. Терпите, так надо.
Я крайне рекомендую вести список своих заявок и их статусов, это помогает организовывать процесс подач заявок. Это будет особенно значимо, если вы собираетесь потратить действительно много времени и податься во много-много мест. Для этого можно использовать банальные google-таблицы или другие органайзеры, например, Notion.

Кроме того, советую начинать подаваться ещё в августе-сентябре, потому что большинство компаний набирают стажёров on the rolling basis, то есть рассматривают поданные заявки в хронологическом порядке, и принимают кандидатов, если они подходят, а не ищут лучших среди всех-всех-всех подавшихся. Это играет особенно большую роль при подачи в IT-гиганты, типа Google — там, если не подать заявку в первый день-два после открытия, её с большим шансом просто не рассмотрят. Ещё некоторые компании, такие как, например, Palantir, просто имеют очень маленькое окно для подачи заявок — в некоторых случаях меньше месяца, — поэтому за их открытием тоже надо следить. В общем, подпишитесь на всё тот же sns_internships, там о таких вещах рассказывают.
Ещё можно мониторить списки компаний, которые набирают стажёров в разных метсах, например:
- На Linkedin, просто вводя в поиск "summer 20xx internships";
- На Indeed, аналогичным способом, хотя там в основном вакансии в США;
- В списке от Pitt Computer Science Club (только не забудьте выбрать список своего года, а то будет неловко).
Немного о реферах
Рефер — это человек, который работает в компании Х и рекомендует вас туда принять. В разных компаниях этот механизм устроен по-разному, где-то он налажен на уровне системы подачи заявок (Google, Amazon, etc), где-то работает в индивидуальном порядке.
Обычно наличие у вас рефера гарантирует тот факт, что вашу заявку когда-нибудь да посмотрят, и, возможно, даже будут держать рефера в курсе ваших успехов/неудач. Это может быть важно при подачи в огромные корпорации типа того же Google, но в общем случае сложно оценить, насколько большую роль играет наличие или отсутствие рефера. Могу только сказать, что ни в одной из тех трёх компаний, куда я получил оффер, реферов у меня не было, а в трёх компаниях из четырех, куда у меня был рефер, меня зареджектили на скрининге (четвёртой был Bloomberg, они пригласили меня на собеседование, но я не пошел, потому что уже принял другой оффер и впереди маячила сессия).
Реферов можно искать разными способами:
- Просить своих знакомы которые работают в <компания нейм> пореферить вас (иногда даже стажёры могут реферить на стажерские позиции);
- Писать в чаты типа sns_internships или FAANG Interview с просьбой пореферить в конкретное место (я так нашёл рефера в Google);
- Оставлять заявки на рефер на специальных сайтах (ничего не буду рекомендовать здесь, потому как не пользовался).
В общем, здорово, если у вас есть рефер, но лучше не зацикливаться на этом и не тратить слишком много времени.
Будем считать, что вы уже подали заявки в несколько компаний (и продолжаете подавать), и теперь начинаются
Тестовые задания и собеседования
Многие компании (и их становится больше) перед тем как передавать ваше резюме на скрининг высылают тестовое задание. Обычно это контест на час-два с задачами aka Leetcode, реже — что-то другое.
Если у вас есть опыт в олимпиадах по программированию, то решить все эти задачки не составит труда. В противном случае придётся ботать алгоритмы.
После тестовых заданий (или если их не было) ваше резюме попадает на скрининг. Да-да, успешно выполненное тестовое не всегда означает, что с вами захотят разговаривать. На этом этапе можно ждать ответа от компании бесконечно. Но вот если вы дождались и вас не зареджектили, то начинаются собеседования.
Недавно я выступал с рассказом про них:
Здесь же я вкратце продублирую то, что было в выступлении.
Собеседования довольно грубо можно разделить на три типа:
Technical Interview
Самый распространённый вид собеседований, практически в любой компании у вас будет хотя бы одно Technical Interview, и большая часть ваших собеседований в общем будет именно этого типа. Что здесь могут спрашивать:
- Алгоритмы и структуры данных. Обычно ничего продвинутого вам не понадобится, потому что большинству компаний не нужна от вас жёсткая алгоритмическая подготовка. Нужно только понимание каких-то базовых концепций, вроде динамики, бинарного поиска, двух указателей, деревьев поиска и простейших алгоритмов на графах. Все эти темы можно повторить на всё том же Leetcode за очень маленький промежуток времени.
Иногда, конечно, вам могут встретиться более продвинутые темы, алгоритмы и структуры данных, но это единичные случаи, и в основном вы справитесь с достаточно небольшим набором знаний. - Computer Science Stuff. Big O Notation, two's complement, floating-point numbers, какие-то известные ассимптотики, вот это вот всё.
- Технические знания. В некоторых местах могут спросить о том, как работают какие-то концепты из области операционных систем, в некоторых — про базы данных, где-то ещё — про сетевые алгоритмы. В целом стоит понимать, в какую компанию/команду вы собеседуетесь и готовиться к потенциальным вопросам которые для неё специфичны.
Behavioral Interview
В некоторые компании вообще не будет таких собеседований (Meta, Google, etc), а если и будет, то очень вряд ли больше одного. На таком собеседовании обычно спрашивают о том, почему вы хотите попасть в эту компанию, о вашей мотивации, прошлых местах работы/стажировок и многих других вещах — к этому я очень рекомендую готовиться основательно:
- Узнать побольше про компанию, в которую вы подаетесь, или даже про конкретную команду, если вам рассказали, с кем именно будет собеседование. В некоторых местах (например, Palantir), вам даже вышлют перед собеседованием м̶е̶т̶о̶д̶и̶ч̶к̶у̶ брошюру о ценностях компании и том, что надо о ней знать. Кстати, всегда читайте то, что вам присылают hr-ы, там может быть много важной и ценной информации. В целом, ваша осведомлённость и заинтересованность показывают интервьюеру ваше желание попасть именно к ним в компанию и оказывают положительное впечатление.
- Пройтись по популярным вопросам на behavioral interview (просто вбейте в поисковик "top behavioral questions") и поотвечайте на них, заготовив по паре историй на каждый случай. На самом деле, не на каждый — существуют вопросы, на которые абсолютно нормально ответить "не было со мной такого никогда".
- Порепетируйте свои заготовленные рассказы и импровизацию с живым собеседником. Это поможет избежать каких-то очевидных косяков и, возможно, добавит спокойствия и уверенности.
- (опционально) Не стоит врать. Молчать о каких-то вещах, о которых вас не спросили — нормально, но напрямую обманывать — очень плохо. Ну, по крайней мере, я так считаю.
System Design Interview
Самое редкое, что может с вами случиться. Таких собеседований тоже очень редко бывает больше одного за весь процесс, но они часто являются определяющими. Знать надо много, из разных областей, но в целом подготовиться вполне возможно и с нуля, если усердно трудиться. Не стесняйтесь попросить побольше времени перед таким собеседованием, чтобы подготовиться (но и не забывайте, что чем позже вы закончите процесс собеседований, тем меньше шанс на оффер!), вам, скорее всего, пойдут навстречу.
За эту осень я прошёл три таких собеседования — два из которых были удачными. К третьему я уже не готовился, потому что имел на руках оффер, который планировал принять (оправдания, сплошные оправдания, я просто облажался). Мне советовали готовиться так (на экспертность не претендую):
- Полностью, от начала и до конца, изучите какой-нибудь курс по этой теме, делая письменный конспект (если вы и без этого всё хорошо запоминаете, можно и без него). Из известных мне качественных курсов есть платный Grokking The System Design Interview и бесплатный System Design Primer. Эти курсы примерно целиком покрывают теоретическую составляющую.
- Открывайте произвольные видео по теме на YouTube, смотрите постановку задачи и пытайтесь сами предложить решение (в идеале, живому человеку, но если такого под рукой не нашлось, то можно и в воздух), после чего досматривате решение из видео и сравниваете, обращая особое внимание на различия в подходах.
Чем больше вы практикуетесь, тем более спокойно и удачно будут проходить ваши собеседования.
Это какое-то очень банальное утверждение, но, как мне кажется, его надо осознать и перестать бояться. На самом первом своём собеседовании я дрожал как осиновый лист и нервничал до того, что потом пришлось таблетки пить. Естественно, я его завалил. Уверенность во многих случаях поможет вам даже больше, чем знания.
Если вам кажется, что в этой статье нужно чего-то не хватает, или, наоборот, есть что-то лишнее или неправильное, то напишите, пожалуйста, мне.