Самые популярные вопросы, которые я получил от других

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

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

Немного о себе

Я был иностранным студентом из Вьетнама и окончил Смит-колледж со степенью бакалавра компьютерных наук (CS) в декабре 2019 года. Я проходил стажировку в Microsoft (Кембридж) по программе под названием The Garage Internship летом 2018 года и в Two Sigma (Нью-Йорк) летом 2019 года. Я вернулся в Two Sigma в качестве штатного в феврале 2020 года (да, прямо перед карантином). Раньше я специализировался на английском языке в средней школе и не имел никакого опыта программирования (ну, кроме того, как печатать на Паскале) до первого года обучения в колледже.

Часто задаваемые вопросы

Каков процесс подачи заявки?

Я думаю, что процесс подачи заявки в большинстве компаний похож: приложение, задача кодирования (в зависимости от компании), телефонные собеседования и выезд на место. Стоит отметить, что в ходе выездного раунда, помимо вопросов по кодированию, эквивалентных Leetcode Medium - Hard, могут быть вопросы вольного стиля (вопросы о фундаментальных концепциях CS; они могут касаться ООП, сетей, операционных систем и т. Д.) И поведенческих вопросов. И Two Sigma, и Microsoft следят за этим процессом подачи заявки, за исключением того, что Microsoft в настоящее время не проводит раунд тестирования кода.

Советы для раунда резюме

  1. Шаблон резюме. Я использовал шаблоны на веб-сайте моей школы для своего резюме. Начните составлять резюме как можно скорее и продолжайте пересматривать его с годами, по мере того, как вы набираетесь опыта и видите, что ищут компании.
  2. Как написать хорошее резюме: Сделайте резюме кратким (1 страница), кратко описывайте прошлые проекты или профессиональный опыт, используйте сильные глаголы действий и демонстрируйте, какие технологии и языки вы использовали в этих проекты и какое влияние вы оказали как можно более количественно. В качестве примера, приведенного моим дорогим другом, можно было бы вместо записи «Разработал приложение для кэширования с использованием Memcached» написать «Реализовал уровень кэширования в памяти для сервисных API, которые снижает нагрузку на базу данных на 50% и сокращает время ответа с 200 мс до 50 мс »
  3. Рефералы: Найдите рефералов от людей, которые имеют с вами какую-то связь, например, они ваши выпускники школы, они приехали из одной страны, у них есть общие с вами идентичности, у вас есть общие друзья, может представить вас двоих и т. д. Гораздо проще попросить направление у кого-то, кто может иметь к вам отношение и увидеть себя на вашем месте, чем у кого-то, с кем у вас нет никакой связи. Из моего личного опыта , также легче убедить кого-то подумать о том, чтобы рекомендовать вас, если вы отправите ему сообщение, чтобы представиться И приложите копию своего резюме, чтобы они прочитали. Покажите, что вы уважаете их время и усилия, и вы искренне заинтересованы в том, чтобы узнать их и их опыт, а НЕ в отчаянии и просто используете их как способ получить работу в их компании.
  4. Участие в информационных сессиях, конференциях и ярмарках вакансий: Это помогает получить печатную копию вашего резюме непосредственно рекрутеру и может повысить ваши шансы на то, что ваше резюме прочтут. Two Sigma получила мою информацию в своей системе, когда я был на конференции WECode в Гарвардском университете, спонсором которой они были, на втором курсе. В конце лета на втором курсе мне прислали приглашение на испытание кодированием. Или на втором курсе я подал заявку в Microsoft через информационную сессию в Mount Holyoke College.

Как подготовиться к собеседованию по техническим вопросам?

Я считаю, что на эту тему уже есть множество онлайн-ресурсов, поэтому нет смысла изобретать велосипед. Я быстро поискал в Google и нашел это руководство по собеседованию, написанное новым техническим директором Venmo, Ником Чуботариу, который работал в Microsoft и Amazon до своей нынешней должности в Venmo. Я сам читал его, и считаю, что он довольно всеобъемлющий, простой и реалистичный. Тем не менее, я бы добавил динамическое программирование в список тем, к которым вам нужно подготовиться. Я видел, как динамическое программирование задают все чаще и чаще в крупных технологических компаниях. Я не могу полностью согласиться с этим тезисом его руководства по собеседованию:

Инженеры всех типов и уровней образования либо прошли, либо не прошли технические проверки и циклы кодирования по простой основной причине: подготовка или ее отсутствие.

Однако по мере того, как задачи кодирования становятся все более популярными, практика с белой доской / карандашом и бумагой только так, как он посоветовал, будет полезна только для личных собеседований, и от вас ожидается, что вы напишете код, который фактически компилирует и проходит тесты в задачах кодирования. Поэтому я бы посоветовал попрактиковаться в написании рабочего кода и на таких платформах, как HackerRank или Leetcode.

Если вы хотите чего-то очень личного и от человека, с которым вы могли бы лучше познакомиться (не от технического директора), я настоятельно рекомендую сердечное и подробное руководство по собеседованию, написанное моей дорогой подругой Тхань Лам До, получившей степень бакалавра. работал в CS во Вьетнаме, затем стажировался в Facebook в Лондоне, а после получил два предложения на полный рабочий день от Facebook в Лондоне и Google в Германии. Если вы умеете читать по-вьетнамски, то действительно стоит проверить все остальные ее сообщения на вьетнамском языке, посвященные трудностям и урокам ее пути к тому, чтобы стать инженером-программистом в компании FAANG. Я также не мог справиться с этим лучше, чем Лам, поэтому я очень благодарен за то, что она нашла время, чтобы поделиться с нами своей мудростью.

В общем, исходя из моего личного опыта и того, что я слышал от друзей, я не думаю, что есть вопросы, относящиеся к какой-либо компании. Если по какой-то причине вы наткнетесь на вопросы, которые были заданы в конкретной компании, и изучайте только те вопросы, специально надеясь, что они зададут их снова, это может быть опасным практикой. Нет никакой гарантии, что они зададут те же вопросы снова, и даже если бы они это сделали, это могло бы сработать только для этой одной компании. Вы хотели бы пройти собеседование во многих разных местах - я бы сказал, даже в максимально возможном количестве - чтобы увеличить свои шансы на получение (хороших) предложений. Ключевым моментом является тщательное изучение структур данных и алгоритмов для подготовки к собеседованию. компании вашей мечты, будь то Microsoft, Two Sigma или другие. Кроме того, может пригодиться хорошее общее знание CS. Некоторые компании могут задавать только вопросы по кодированию во время собеседования, но другие могут также задавать вопросы «вольного стиля». Может быть, один интервьюер захочет и спросит вас о чем-то необязательном, и вы должны быть хорошо подготовлены, когда вас застают врасплох.

Что касается конкретно «Двух сигм», многие люди спрашивали меня, нужно ли им знать финансы для прохождения собеседований. Если вы проходите собеседование на должность разработчика программного обеспечения, скорее всего, ответ будет "нет", особенно для стажировки и уровня новичка. Они не ожидают, что у вас будут предварительные знания о финансах - все, что связано с финансами, вам нужно знать, вы сможете изучить это на работе. В этом вам помогут уроки и книги. Конечно, могут быть исключения, когда должности требуют финансовых знаний по тем или иным причинам, и если это так, они обязательно укажут это в описании должностей. Вы также можете спросить своего рекрутера, потому что он должен знать, требуют ли должности, на которые вы претендуете, финансовые знания.

Каково это работать в Microsoft?

Я не проходил стажировку в общей программе стажировок Microsoft, поэтому мой опыт немного отличался от опыта большинства бывших стажеров Microsoft. Я проходил стажировку в программе Гараж, работая над мобильным приложением для слабовидящих Seeing AI в полноценной команде, состоящей из 1 специалиста по PM, 1 стажера-дизайнера и 6 стажеров-разработчиков. Я нашел этот опыт очень новым и значимым, и я нашел рабочую среду в Microsoft очень гостеприимной и поддерживающей, особенно для второкурсника, у которого были очень любительские навыки разработки программного обеспечения. Это была идеальная среда для меня, чтобы улучшить свои навыки разработки программного обеспечения, и никто не заставлял меня чувствовать, что я чужой. Я очень рекомендую эту программу стажировки, особенно первокурсникам и второкурсникам.

Люди в Microsoft кажутся очень общительными и склонными к сотрудничеству. Я проходил стажировку в офисе Кембриджа, и когда я посетил кампус Редмонда на неделю, я написал холодное письмо примерно 10 людям и запланировал около 8 кофе-чатов, чтобы спросить их об их командах и опыте работы в Microsoft в качестве штатных сотрудников.

Каково работать в «Две сигмы»?

Я считаю, что стажировка «Две сигмы» действительно единственная в своем роде. Стажеры из моего класса жили в одном общежитии в Нью-Йорке, что помогло укрепить особую связь между нами, потому что мы играли в настольные игры почти каждую ночь после работы. Компания также организовала множество веселых мероприятий, таких как роспись горшочка для суккулентов или просмотр бродвейского мюзикла «Призрак оперы».

Я также нашел проект, над которым я работал во время стажировки, очень технически сложным, благодаря чему я многому научился. В целом это было очень насыщенное лето.

Компания уделяет много внимания обучению. Более опытные инженеры проводят занятия по темам, в которых они разбираются, для тех, кто хочет учиться, от Введение в Scala до Тестирование на Две сигмы. Компания также покупает нам любые технические книги, которые мы хотим расширить свои знания и навыки. Есть несколько конференционных дней в году, когда я могу взлетать и участвовать в конференциях на местах или проходить технические курсы где-нибудь в университетском городке. В целом, рабочая среда является очень совместной и ориентированной на личностное обучение и рост.

В чем разница между работой в общей технической компании, такой как Microsoft, и в количественной финансовой компании, такой как Two Sigma?

В целом работа в общей технологической компании и в финансовой компании не так уж сильно отличается друг от друга. По своей сути Two Sigma остается технологической компанией, и более половины сотрудников - инженеры-программисты.

Основные различия, которые я заметил до сих пор:

  1. Если вы хотите работать над потребительским программным обеспечением, проводить много исследований UX / UI и фронтенд-разработки, у технологической компании общего профиля, вероятно, для вас больше таких возможностей, чем у Two Sigma. Two Sigma имеет тенденцию решать больше внутренних технических проблем, чем интерфейсных, и большая часть интерфейсных разработок предназначена для внутреннего использования. Если вы хотите создать модный веб-сайт, настольный компьютер или пользовательский интерфейс мобильного приложения, которым пользуется множество потребителей, вы найдете больше таких возможностей в технологических компаниях, таких как Microsoft, Google, Airbnb и т. Д.
  2. Поскольку финансы - это сфера, строго регулируемая государством, Two Sigma очень заботится о безопасности, конфиденциальности и соблюдении нормативных требований. Я не говорю, что общие технологические компании не заботятся (сильно) об этом - я уверен, что они заботятся - но я вижу, что эти темы обсуждаются и подчеркиваются все чаще в Two Sigma.

Как подготовиться к собеседованию на количественные должности в Two Sigma?

Мне очень часто задают этот вопрос, но на самом деле я мало что знаю о количественных позициях в Two Sigma, так как работаю в группе инженеров. Тем не менее, благодаря моему скромному взаимодействию с моделистами и наблюдениями, я думаю, что многие из них имеют солидный опыт, чаще всего, магистра или доктора наук, в области статистики, CS (часто особенно ML / AI), (прикладной) математики, финансов. и / или экономика. Для меня путь стать количественным разработчиком / аналитиком / исследователем и т. Д. (это разные роли) намного менее ясно, чем у инженера-программиста.

Курсы, которые нужно пройти в Колледже гуманитарных наук (LAC), где CS может не быть сильной специализацией

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

Честно говоря, я думаю, что специализация в области CS в Smith не очень сильна, поскольку я знаю, что у кафедры возникли проблемы с наймом новых преподавателей, поскольку более старые и более опытные профессора постепенно уходят на пенсию. Но это то, что есть, и нам нужно максимально использовать то, что у нас есть. Я настоятельно рекомендую следующее:

  1. Пройдите курсы Введение в CS (CSC 111) и Программирование со структурами данных (CSC 212) в течение первого года, если сможете.
  2. В последующие годы постарайтесь пройти большинство из этих курсов (или аналогичных в вашей школе): Микропроцессор и язык ассемблера (я изучал его в Смит), Теория вычислений (Смит), Операционные системы (Гора Холиок), Машинное обучение (Амхерст), Алгоритмы (Гора Холиок), ИИ (я собирался пройти его в Амхерсте тем же профессором, который преподавал машинное обучение), Компьютерные сети (я изучал в Эдинбургском университете (UoE ) в течение моего семестра за границей), Компьютерная безопасность (UoE), Тестирование программного обеспечения (UoE), Введение в обработку естественного языка (или какая-либо другая специализация ML, если вам это нравится) (UoE), Введение в науку о данных ( Смит - вы узнаете о программировании на R в этом классе, и я думаю, что это довольно круто и полезно, если вы хотите изучить карьерный путь в Data Science). Вы можете пройти эти курсы в любом месте, которое подходит для вашего расписания и ситуации, не обязательно в тех же местах, что и я, и чьи преподаватели имеют относительно хорошие отзывы (используйте Ratemyprofessors с долей скептицизма - это было полезно для меня). Выделенные жирным шрифтом - это самые фундаментальные темы, которые вам следует знать перед тем, как приступить к работе, потому что вы, по крайней мере, будете знать, о чем ваши коллеги говорят на собраниях. Это может даже принести вам пользу во время собеседований, когда интервьюеры спрашивают о них. К сожалению, мне не удалось пройти какие-либо курсы в UMass Amherst, школе, известной своей программой CS. Я слышал, что его курс веб-программирования действительно хорош, но всегда пользуется большим спросом. Обучение за границей также является очень эффективным способом получить доступ к более интенсивным программам CS. LAC, как правило, отговаривают студентов от прохождения курсов только по своей специальности, но семестр за границей можно (100%) использовать для того, чтобы сосредоточиться на продвижении по вашей специальности.
  3. Пройдите этот курс, если можете, потому что он, на мой взгляд, важен для любого компьютерного ученого, даже если он, вероятно, не поможет с поиском работы: этика в CS или AI, или любой другой курс в этом отношении. Это поможет взглянуть на многое из того, что вы узнали, увидеть чудеса и опасности технологий, а также нашу моральную ответственность как инженеров-программистов и компьютерных ученых перед человечеством. Это был один из самых увлекательных занятий, которые я посещал во время учебы в Smith.
  4. Я не проводил много исследований с профессорами CS во время учебы в бакалавриате, но я настоятельно рекомендую это, если вы занимаетесь исследованиями и находите хорошие возможности для исследований в своей школе или других учреждениях. Это реальная альтернатива летней стажировке.

Как преодолеть трудности, если вы начинаете программировать «поздно», не имея предыдущего технического / STEM-образования

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

Я проходил стажировку в области финансов на лето после первого года обучения, но по вечерам я брал уроки алгоритмов в Big-O Coding - школе, где преподают компьютерные алгоритмы для разных уровней. К сожалению, насколько мне известно, эта услуга доступна только на вьетнамском языке. Я говорю о том, что вы должны воспользоваться своим первым летним летом, когда ожидания от стажировки меньше, чтобы освежить свои знания и навыки в области CS. На самом деле это не обязательно должны быть алгоритмы, и вы можете посещать занятия, читать книги или заниматься побочными проектами в любой интересующей вас подполе, будь то машинное обучение или разработка мобильных приложений. Один год программирования, особенно первый год, - это очень мало, и без постоянных усилий, чтобы не отставать, вы бы многое забыли после трех летних месяцев и почувствовали себя разочарованным.

Какие ресурсы есть для девушек, изучающих CS?

Я думаю, что два самых полезных ресурса, которые помогли мне начать мою карьеру в качестве женщины, - это Конференция WECode в Гарварде и Конференция Грейс Хоппер. Ярмарка вакансий в WECode прошла довольно хорошо, на ней присутствовало много компаний. А на ярмарке вакансий Grace Hopper Conference были представлены все технологические компании, о которых я когда-либо слышал или в которых я думал работать, и многое другое :). Возможности в этих местах многочисленны и драгоценны. Конференция WECode оказывает финансовую помощь студентам, которые не могут позволить себе поездки и жилье. Также есть несколько стипендий для участия в конференции Грейс Хоппер от Anitab.org или различных компаний (Google, Microsoft и др.). На мой взгляд, было бы проще получить стипендию Anitab.org, чем стипендию для конкретной компании, поскольку мест больше. На первом курсе я получила стипендию Anitab.org и воссоединилась с Лам, моей подругой из Facebook, которая также получила ту же стипендию, на конференции Грейс Хоппер 2018. Она написала о своем опыте здесь на вьетнамском языке.

Кроме того, появляется все больше и больше организаций, основанных для поддержки женщин в сфере технологий, таких как Товарищество Rewriting the Code. Лично я не такой парень, но я вижу, что многие мои друзья являются такими же, и я думаю, что такие возможности - хороший способ связаться с другими женщинами в этой области и искать наставничества и совета у людей, которые были там раньше .

Какие технические стажировки есть для первокурсников и второкурсников?

Существуют программы, разработанные специально для первокурсников и второкурсников или даже старшеклассников, которые только что познакомились с CS на короткое время, такие как стажировка в Google STEP, стажировка в университете Facebook, стажировка в Microsoft Explore и стажировка в Amazon Future.

Кроме того, на стажировку в Microsoft Garage принимаются первокурсники и второкурсники, а также младшие классы и даже студенты аспирантуры. Two Sigma также имеет стажировку по разработке программного обеспечения, специально предназначенную для первокурсников, в Хьюстоне, штат Техас.

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

Последние мысли

Это письмо уже получилось очень длинным, но я уверен, что, хотя я старался изо всех сил, он не дает точных ответов на вышеупомянутые вопросы и не дает ответов на все вопросы, которые могут у вас возникнуть. Тем не менее, я надеюсь, что он закладывает прочную основу для того, что вам нужно сделать, чтобы подготовиться к собеседованию и сделать карьеру в сфере технологий в качестве студента бакалавриата, особенно в качестве женщины и / или человека, который «поздно» начинает заниматься технологиями. Короче говоря, я твердо верю в:

Там, где есть воля, есть и способ.

И последнее, но не менее важное: иногда результаты собеседования зависят, помимо других факторов, от удачи. Может быть, вы старались изо всех сил и очень хорошо подготовлены, но по какой-то причине, например, из-за того, что вы плохо себя чувствуете в день собеседования, у вас или вашего интервьюера плохой день, или компания, с которой вы проводите собеседование, достигла ограничение найма, результат нежелателен. Иногда это происходит из-за факторов, не зависящих от вас. Поэтому не расстраивайтесь, если вы провалите собеседование - я лично провалил много, и в конце концов, вам нужна только одна работа. Вот почему важно много подавать заявки, потому что очень немногие люди проходят все собеседования, которые они посещают, чтобы увеличить ваши шансы получить эту одну работу.

Желаем удачи всем вам! Я приветствую любые конструктивные отзывы или дополнительные идеи. Не стесняйтесь оставлять здесь свой комментарий или, если вы хотите поговорить наедине, напишите мне по адресу [email protected].

P / S: Я хотел бы поблагодарить всех друзей, которые помогли мне вычитать эту статью. Люблю тебя ❤!