джуниор
обучение

Как пройти собеседование в IT-компанию: советы начинающему специалисту

2931
0
28 июля 2023
Изображение создано с помощью нейросети
джуниор
обучение
2931
0
28 июля 2023
Как пройти собеседование в IT-компанию: советы начинающему специалисту

Во времена молодости наших родителей, бабушек и дедушек, освоив определённую профессию, начинающий специалист получал гарантированное рабочее место, стабильный доход и карьерный рост. Сейчас ситуация изменилась: чтобы выдержать конкуренцию, нужно не только лучше всех выполнить тестовое задание и пройти все этапы собеседования, но также продемонстрировать «правильное» поведение и разумное отношение к делу. Эти навыки важны не меньше чем знания, приобретённые в университете. О том, на какие моменты обращают внимание менеджеры при найме будущих стажёров, и что необходимо для построения карьеры в IT-компании, рассказал руководитель отдела развития академических программ компании YADRO Михаил Саламатов.

Материал адресован в первую очередь начинающим специалистам, но также будет полезен менеджерам и экспертам, уже состоявшимся в профессии.

Изображение создано с помощью нейросети

Насколько различаются (и различаются ли) собеседования джуна и сеньора

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

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

С собеседованиями может быть уместна схожая логика: кандидаты в джуны могут пока чего-то не знать и не уметь. И да, собеседования джуна и сеньора будут различаться. Но с высокой долей вероятности у кандидата в сеньоры вначале спросят то же самое, что и у кандидата в джуны, а далее пойдёт беседа про опыт «старшего» и задачи, над которыми он раньше работал.

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

«Может-хочет-безопасен»

Базово при собеседовании на ту или иную вакансию кандидат должен продемонстрировать, что он:

  • «может» — обладает знаниями, умениями и навыками для решения задач на данной позиции;
  • «хочет» — имеет желание решать эти задачи;
  • «безопасен» — умеет себя вести.

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

Что нужно знать и уметь начинающим программистам, тестировщикам и DevOps’ам

По моему опыту, часто на собеседовании до серьёзных разговоров о каком-либо современном фреймворке дело не доходит. Кандидат «сыплется» ещё на базе: алгоритмах, структурах данных, принципах ООП и так далее. Если вы не можете быстро оценить сложность сортировки пузырьком или написать бинарный поиск с нуля на вашем любимом языке программирования, то беседа о сложных концепциях в последнем стандарте языка вряд ли состоится.

Как нарастить эту базу? Одна из наиболее удачных книг о том, как успешно пройти собеседование в IT-компанию — «Cracking the coding interview». Автор высказывает мысль, что наиболее важным этапом подготовки к собеседованию для любого специалиста остаются алгоритмы и структуры данных. Именно с них начинается обучение практически на любом Computer Science-направлении. Поэтому владение ими как минимум становится хорошей иллюстрацией того, как вы учились на первых курсах.

В этом видео вы можете почерпнуть для себя темы, которые стоит подтянуть:

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

Далее наверняка последует вопрос о ваших любимых языках программирования. Крайне редко в ходе интервью на стартовые позиции спрашивают то, что находится за пределами хорошей книги по разработке на том или ином языке. Например, собеседование по C++ почти никогда не зайдёт дальше содержания классической работы Бьёрна Страуструпа «Язык программирования C++». А разговор про Java почти всегда будет идти в пределах книг Герберта Шилдта («Java. Руководство для начинающих») или Джеймса Гослинга («Java. Руководство для программиста»).

Если говорить о стажёрах в нашей компании, то важным остаётся знание Linux или, если чуть шире, Unix-подобных систем на уровне легендарной «книжки с черепахой» А.М Робачевского и соавторов.

Книги для начинающих по C++. Java и UNIX
Источники: Лабиринт, Библио-Глобус, издательский дом «Вильямс», Литрес
Итак, как же подготовиться к вопросам категории «может»? Обратить внимание на советы из «Cracking the coding interview», перечитать и прорешать задачки из содержательной книги по программированию авторства упомянутых выше Страуструпа, Шилдта, Гослинга и других, а также освежить в памяти знания об операционных системах.

Как понять, что кандидат «хочет»

Сразу скажу: мне неизвестны способы понять за часовое собеседование глубинные мотивы и установки человека. Однако вы сами наверняка хорошо представляете, что происходит, когда вам что-то по-настоящему интересно.

Например, я болею за футбольный клуб «Ливерпуль». Я с лёгкостью расскажу, как команда сыграла в последнем туре, сколько сейчас у неё очков и на каком она месте в турнирной таблице. Помимо этого, я могу рассказать, что о «Ливерпуле» пишут в последних материалах The Athletic, Guardian, BBC и так далее. Всё это я знаю не потому, что за это поставят оценку, а потому, что мне искренне интересно всё о моей любимой команде.

Так и с ответом на вопрос «хочет». В выступлении, на котором мне довелось побывать лично, бизнес-тренер Александр Орлов озвучил следующее предположение: «Хорошие инженеры — самоучки». Специалисты становятся экспертами, потому что им искренне интересно то, чем они занимаются.

Как минимум на него нужно уверенно ответить и при этом быть готовым не только назвать книги, телеграм-каналы, блоги, но и рассказать, что именно вам понравилось, что запомнилось и почему.

Несколько лет назад мои коллеги искали стажёра на позицию, связанную с созданием внутреннего облака для предоставления сервисов инженерам-разработчикам. Лучше всех с заданием справился кандидат, который из двух домашних компьютеров собрал для себя кластер под управлением open-source-оркестратора. Мини-кластер умел агрегировать ресурсы, создавать виртуальные машины по шаблонам и отдавать их наружу. На вопрос «зачем тебе такое дома?» студент честно ответил, что «просто было интересно».

Отдельно считаю важным упомянуть классический кейс стажёров на позицию тестировщика. Тестирование — отдельная инженерная область со своей научной базой, кучей нюансов и технических деталей. Чтобы стать хорошим специалистом в данной области, этому делу нужно посвятить не меньше усилий, чем любому другому процессу разработки ПО. И если команда тестирования того или иного проекта ищет стажёра, то она заинтересована в том, чтобы присоединившийся к ней студент развивался именно как тестировщик. Поэтому, если на собеседовании в QA-команду спросят: «Чем вас заинтересовала наша позиция?», не стоит отвечать: «Я иду в тестирование, чтобы присмотреться, научиться и получить опыт, а дальше пойду в разработчики». Обычно в тестировщике ценят именно желание работать в QA, а не желание стать «разработчиком через тестирование».

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

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

Коротко о «безопасен», или как понять, что кандидат «умеет себя вести»

В этом разделе мы поговорим о том, насколько комфортно потенциальным коллегам будет с вами работать.

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

  • покритиковать решение и попросить его переделать;
  • «толкнуть кувшин» — проверить реакцию человека на стрессовую ситуацию;
  • обратить внимание на первую реакцию собеседника на тот или иной неудобный вопрос.

Подобные вопросы на интервью действительно часто встречаются, поэтому я рекомендую задуматься о том, как в обычной (учебной) жизни вы реагируете на ситуации, перечисленные выше:

  • Например, преподаватель просит переделать лабораторную работу. Как вы ведёте себя в этот момент? А понравится ли такое поведение вашему потенциальному работодателю? Хотите ли вы, чтобы подобным образом с вами вели себя коллеги?
  • Как вы действуете в ситуации дедлайна? Например, когда до окончания пары, на которой проходит контрольная работа, остаются считанные минуты. Стараетесь сохранять спокойствие или бросаете ручку, откладываете клавиатуру и начинаете обвинять во всём преподавателя?

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

Марк Твен говорил: «Когда мне было четырнадцать лет, мой отец был так глуп, что я с трудом переносил его. Когда мне исполнился двадцать один, я был изумлён, как поумнел старик за эти семь лет!». Вы не знаете, как с развитием карьеры вы будете вспоминать своих преподавателей. Часто понимание предмета и его роли в работе становится очевидным спустя лишь несколько лет профессионального развития. А вот ваша реакция на поведение кого-то требовательного и настойчивого относительно вашего знания предмета будет заметна прямо здесь и сейчас — на собеседовании.

Проще говоря, чтобы быть готовым показать собственную «безопасность», вспомните, как вы действуете в стрессовых ситуациях и как публично отзываетесь о людях, значимых для вас в профессиональном плане. Оцените, стоит ли изменить что-то в этих характеристиках и в форме их подачи.

Что будет дальше

Когда-то давно одна студентка, только став стажёром в компании, наивно произнесла в диалоге фразу: «Дело сделано, теперь можно расслабиться». Через месяц «расслабленности» девушка осознала, что стажировка (внезапно!) не оказалась «финалом» её карьеры, а, наоборот — лишь одной из стартовых точек. Когда вы студент, ваши усилия направлены на поиск первого места работы, который зачастую может быть ограничен по срокам. Когда вы стали стажёром, вы делаете всё от вас зависящее, чтобы стать штатным сотрудником, что требует ещё больших усилий, чем успешное прохождение собеседования на стажировку. Как только вы стали инженером, если у вас есть соответствующие амбиции, вы начинаете думать о том, как стать «старшим». «Старший» хочет стать ведущим и так далее.

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

Вместе с этим растёт и уровень ответственности: «Если не сделаю я, то вряд ли сможет кто-то ещё». А ещё секрет устройства практически любой крупной организации состоит в том, что на каждом следующем уровне «старшинства» количество доступных позиций снижается в геометрической прогрессии. На пятерых инженеров приходится один «сеньор», на пять «сеньоров» — один ведущий. И, как следствие, конкуренция растёт, ведь каждый раз мы соревнуемся с людьми со всё более высоким уровнем знаний, умений и навыков.

Поэтому в качестве хорошего примера того, как строить карьеру я часто рекомендую статью Джоэла Спольски — одного из создателей Excel, StackOverflow, Fog Creek. Он описывает систему грейдов (карьерных позиций), которая базируется на трёх переменных: опыте в годах, размере зоны ответственности и владении навыками. Присмотревшись к такому подходу, можно заметить, что независимо от количества лет опыта (пусть их будет хоть пятнадцать), оценка грейда специалиста, не увеличивающего зону своей ответственности и не приобретающего новых навыков, так и останется на стартовом уровне.

Таким образом, залог успешной карьеры — непрерывное обучение как теории, так и практике. И нужно быть к этому готовым.

Вместо заключения

Знание алгоритмов и базы программирования важно на любом этапе карьеры в разработке ПО. Советы по подготовке к собеседованию на позицию, в которой вы по-настоящему заинтересованы — тоже. А что касается «безопасности», преподаватели достаточно быстро поменяются на коллег, да и в этом случае важны не роли людей, а проявление вашего отношения к ним. Поэтому всё сказанное выше полезно не только как инструкция по подготовке к старту карьеры, но и в качестве набора универсальных советов для любого этапа вашего профессионального пути. Так что, надеюсь, вы ещё не раз вернётесь к этому тексту. Удачи!

P. S. Я всегда рад обсудить в комментариях хорошие кейсы про «базу» из областей схемотехники, проектирования цифровых устройств и других дисциплин, которым в этом материале досталось чуть меньше внимания.

Что ещё почитать и посмотреть

  1. Очень рекомендую подходы руководителей разных компаний к процессу собеседования:
    • Гид по собеседованиям от легендарного Джоэла Спольски;
    • Начало длинного набора подкастов о собеседованиях для менеджеров.
      Подкаст Management Tools о работе с людьми — один из самых популярных и, на мой взгляд, один из самых дельных.
  2. Для подготовки к вопросам этапа «может»:
  3. О правильном коммуницировании:
    • Отличный гайд о том, как правильно задавать вопросы, который я рекомендую всем начинающим (и не только инженерам);
    • Статья о том, как правильно обсуждать с руководителем свои ожидания, в том числе карьерные и зарплатные.

*Алексей Пивоваров, автор канала «Редакция» признан Минюстом иностранным агентом — прим. ред.

Наверх
Будь первым, кто оставит комментарий