Предыстория:

Всем привет,

Я Колла Ананта Радж, студентка 4-го курса факультета электротехники ИИТ Харагпур с двойным дипломом, текущий средний балл 9.27 в конце 7-го семестра. Я изучаю машинное обучение и науку о данных в течение последних 1,5 лет, прикасаясь к разным вещам — работая над исследовательскими проектами, внедряя машинное обучение и статистические модели в своих корпоративных стажерах, участвуя в хакатонах по науке о данных и участвуя в Встреча технических специалистов Inter IIT. Испытав множество вещей, я улучшил свои навыки по-разному. На мой взгляд, знания и навыки идут рука об руку, одно без другого приводит к катастрофе, особенно в случае энтузиастов машинного обучения.

Подготовка:

Я бы хотел разделить свою летнюю подготовку на две части — подготовка к машинному обучению и соревновательное программирование.

Соревновательное программирование (CP):

Я получил совет от разных старших по поводу тестовой схемы и участия CP в тестовых раундах ML corp. Я понял, что CP является важной частью раундов кодирования. У меня уже был базовый опыт работы со структурами данных и алгоритмами из курса Algorithms I & Lab, который я прошел в 4-м семестре в рамках завершения моего основного курса компьютерных наук. Перед летом я уже немного потренировался в КП, участвуя в некоторых конкурсах.

Я взял список тем из InterviewBit и начал изучать онлайн-ресурсы (в основном лекции на YouTube), после чего я практиковал проблемы из этой конкретной темы из leetcode. Я проводил конкурсы на codeforces, иногда виртуальные, и смог последовательно решить 2 вопроса в Дивизионе 2 и 3 вопроса изредка. Это продолжалось в течение первых двух месяцев лета, когда я тратил около 1-2 часов на CP каждый день. В последний месяц подготовки к КП я решал тематические вопросы из InterviewBit и решал DSA-лист Стривера.

Машинное обучение (МО):

Я тоже начал подготовку к ML примерно в середине мая. Я начал с повторного посещения классического курса машинного обучения Эндрю Н.Г. на Coursera и сделал пошаговые заметки по каждой концепции. Я знал, что вопросы о концепциях ML очень часто встречаются на собеседованиях, и поэтому моим главным приоритетом было сосредоточиться на ключевых концепциях ML. Затем я также пересмотрел специализацию по глубокому обучению на Coursera Эндрю Н.Г., чтобы резюмировать концепции различных архитектур глубокого обучения. Примечания к CS229 и CS231 от Стэнфорда охватывают схожие концепции и были полезны при пересмотре в последний момент.

Для изучения последних разработок в области машинного обучения, таких как XGBoost и т. д., мне помог плейлист ML от Криша Найка. Я использовал темы из плейлиста и читал статьи и блоги на некоторых известных сайтах, например, в направлении datascience. Понятия, которые трудно понять из блогов, можно очень ясно понять из видео Криша Наика. Плейлист содержит около 160 видеороликов и охватывает почти все концепции машинного обучения в целом.

Вероятность и статистика также были важными составляющими моей подготовки к тестам и собеседованиям. Я собрал заметки из моего класса вероятностей и статистики, а также краткие заметки из Stats110. Для интервью и тестов ML требовалось хорошее знание условной вероятности, распределений и ожиданий. Я попытался решить книги 50 сложных задач, чтобы попрактиковаться в вероятности, и это оказалось действительно концептуальным и полезным. То, как книга подходит к проблемам, очень увлекательно. Для головоломок я использовал веб-сайт brainstellar, чтобы случайным образом попрактиковаться в некоторых каверзных вопросах, а также главы 1 и 4 книги Услышано на улице.

Я потратил около 5–6 дней на пересмотр своих концепций SQL. Это было очень важно с точки зрения теста. Я изучил концепции ООП из Corey Schafer на Youtube и некоторых статей GFG.

Я потратил около 2–3 часов на подготовку к ML и около часа на вероятность и головоломки. Я не учился каждый день, но старался поддерживать эту полосу на протяжении всего времени. Подготовка к ML иногда становится случайной, потому что иногда мы сталкиваемся с понятиями, о которых не знаем, и должны сначала пройти через них, что в конечном итоге создает цепочку обучения, поэтому для подготовки к ML нет конкретной дорожной карты.

Опыт тестирования —

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

Для компаний в дни 1 и 2 я нацелился на Microsoft ML, Amex ML, APT Data и Adobe. Схема тестирования для всех этих компаний была схожей: задавались ключевые концепции машинного обучения (около 20 вопросов MCQ) вместе с 2–3 вопросами по кодированию. Также были заданы SQL и субъективные вопросы. Вопросы КП были средней сложности. Вопросы по машинному обучению были средней сложности, но некоторые вопросы были сложными, и для их решения требовались действительно хорошие концептуальные знания. Одна уникальная особенность тестов в APT заключалась в том, что они принимали отправку кода CP только на python.

Подготовка к собеседованию/резюме –

После начала тестов у нас оставалось всего 2 недели до интервью. Я уже планировал поработать над подготовкой к собеседованию и созданием защиты резюме.

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

Опыт собеседования –

В первый день у меня было два шорт-листа: Microsoft ML и APT Data. Почему-то я не попал в шорт-лист Amex, хотя мой тест прошел очень хорошо.

Наконец настал день, и у меня были запланированы собеседования с 8 утра 31 июля. В интервью APT я получил первое интервью в 8 утра. Для APT у меня было 2 раунда собеседований:

  1. Первый раунд APT. Интервьюер был очень любезен, он представился первым и попросил кратко представить меня. После вступления меня попросили рассказать об одном из моих последних проектов или опыте стажировки. Я продолжил объяснять свою работу, начиная с постановки проблемы, затем подход, проблемы, с которыми столкнулись, и, наконец, влияние, созданное моей работой. Затем вопросы по кодированию задавались на платформе hackerrank. Мне задали два вопроса по кодированию: один по связанному списку, а другой по подходу с двумя указателями. Сначала я предложил решение методом перебора, а затем оптимизировал его 2 раза. В качестве языка программирования интервьюер предпочел Python. После этого были заданы некоторые продвинутые вопросы по Python. Интервью длилось более 50 минут примерно.
  2. Второй раунд APT:через 5 минут после завершения первого раунда меня попросили принять участие во втором раунде. Я быстро подготовился и приготовился к собеседованию. Второй раунд интервью также начался с похожей ноты, начиная с моего вступления, за которым последовало объяснение одной из моих стажировок. Каждый раз я придерживался одного и того же подхода к объяснению своей работы (Проблема->Подход->Вызов->Воздействие). Затем меня снова попросили закодировать 2 вопроса на платформе Hackerrank, где был опубликован мой экран. Мне задавали вопросы по проблемам балансировки скобок и сумме массива префиксов. Меня также спросили, знаю ли я SQL и насколько я могу оценить себя на 10 на основе навыков SQL. Это интервью также длилось около 50 минут. В целом, оба моих интервью прошли хорошо, и оба интервью APT были проведены к 10 утра.
  3. Microsoft First Round:около 11 утра мое собеседование было назначено. Меня попросили просмотреть мое резюме и объяснить один из моих проектов. Меня допрашивали по каждому пункту, который я написал, и задавали много вопросов, связанных с промышленным внедрением моей работы. Я уверенно отвечал на вопросы, некоторые вопросы были сложными, поэтому я попросил ее дать мне 2 минуты на обдумывание вопроса. Мне также задавали сложные и подробные вопросы об архитектуре машинного обучения, которые я упомянул в своем резюме. Затем, продолжая интервью, я рассказал о своей работе на стажировке, которую я проходил летом прошлого года. Меня снова допрашивали по всем аспектам моей работы, и, в частности, будущая работа и промышленное внедрение были ключевыми моментами, по которым мне задавали больше всего вопросов. Я упомянул RandomForest как одну из моделей машинного обучения, которую я использовал для создания модели, поэтому мне задали много вопросов от RandomForest и DecisionTrees, и в конечном итоге я вывел все деревья решений с хорошим примером и изложил все формулы. Это интервью длилось около 50 минут.

Как только я завершил собеседование с Microsoft ML, я проверил свой телефон и увидел звонки и сообщения от placecomm. Я узнал, что у меня есть предложение от APT !!!

Вывод:

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

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

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

Надеюсь, мой опыт хоть как-то поможет вам. Не стесняйтесь связаться со мной в LinkedIn по любым вопросам.