Как фронтендеру пройти собеседование: разбор типичных задач и советы от тимлида «РТК ИТ»

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!

Хекслет поговорил с Михаилом Синяковым, Head of Frontend в «Ростелеком ИТ». Мы узнали, как обычно проходят собеседования у фронтендеров, какие задачи они решают, а также на что стоит обратить внимание кандидатам при подготовке к интервью. 

Всем привет! Меня зовут Михаил. Я руковожу направлением фронтенд-разработки в «РТК ИТ» — компании, которая занимается информационными технологиями и обеспечивает развитие и повышение эффективности бизнеса ПАО «Ростелеком» по всему спектру ИТ-направлений.

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

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

Как обычно проходят собеседования в «РТК ИТ»

У нас система такая же, как и во многих компаниях. Есть несколько этапов найма: разговор кандидата с HR-менеджером и техническое собеседование. На первом этапе мы проверяем, насколько человек заинтересован в вакансии и совпадают ли его ценности и ожидания с нашими. Далее мы приглашаем кандидата на техническое собеседование офлайн или онлайн, как ему удобнее. 

Сама встреча делится на несколько частей. 

  1. Знакомство

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

Еще у кандидата-фронтендера я спрашиваю, что для него лучше: верстать или программировать. Если второе, то увожу разговор в сторону разработки. Фронтенд — большая сфера. Есть куча специалистов, которые классно верстают, а на JavaScript пишут посредственно. И есть те, кто наоборот гуру в JS, а верстка у них совсем не идет. На этом этапе мне как раз важно выявить склонности человека, чтобы потом отталкиваться от них при выборе пула задач. 

  1. Техническая часть

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

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

  1. Смолл-ток

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

Какие задачи решают кандидаты на собеседовании

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

Я предлагаю разные задачи для кандидатов на выбор. Разберем три примера таких заданий. 

Посчитать количество файлов в директории на JavaScript

Суть задачи. У меня есть заготовленные макеты, куски кода, которые нужно продолжить писать, чтобы посчитать кол-во файлов. Я даю кандидату ссылку, он переходит по ней. И мы попадаем с ним в одну IDE, где я смотрю, как человек пишет код. Вот пример такого задания

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

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

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

Убрать дубликаты из массива

Суть задачи. Представим, что массив — это перечисленные значения через запятую. У нас есть «1, 2, 10, 1, 2, 11». А нам нужно поработать с массивом так, чтобы на выходе получилось «1, 2, 10, 11». Вот пример такого задания

Какие знания проверяет задача. Задание показывает, как кандидат умеет работать с массивами, структурами данных, оптимизировать код. 

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

Если код заработает, то задачка будет выполнена. Причем не так уж и важно, насколько тяжеловесным он будет — главное, чтобы работал. Высшего пилотажа особо не жду, но самое идеальное здесь — написать такой алгоритм, который уберет все повторы за меньшее количество шагов. 

Перечислить CSS-свойства на реальной задаче

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

.hide_me {

    display: none;

    visibility: hidden;

   /* … */

}

Какие знания проверяет задача. Задачка проверяет кругозор кандидата. Многие люди говорят, что они умеют верстать. Но уметь верстать — это не просто роялти создать, а подойти к верстке с умом. И зачастую верстальщик — еще и творец на стыке дизайна и программирования. Значит, в верстке важны художественные приемы, которые зависят от насмотренности человека. 

Ожидаемое решение. Здесь нет правильного ответа. Нужно перечислить абсолютно все свойства, какие приходят на ум. А дальше я уже могу спросить по каждому свойству, что человек о них знает. Допустим, он может сразу же назвать два свойства: display: none и visibility: hidden. Я спрошу, чем они отличаются, и тут станет понятно, есть ли у человека пробелы в знаниях или нет, в зависимости от его ответа. 

В чем главный смысл собеседования и как понравиться работодателю

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

У меня на практике было несколько негативных моментов, которые портили мое впечатление о будущем сотруднике. Как-то кандидат подозрительно быстро решил первую задачку с деревом. А когда я начал спрашивать, как он решал ее и как все заработало, человек не смог рассказать. Собеседование было онлайн, со включенными камерами, и я видел, что кандидат постоянно косился в другую сторону. То есть ему либо кто-то помогал, либо он гуглил, либо спрашивал у ChatGPT.

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

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

Просто будьте собой. 

Советы разработчикам перед собеседованием

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

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

А вот над софтами можно поработать перед собеседованием. И у меня есть несколько рекомендаций, как это сделать. 

  1. Узнайте как можно больше о компании, в которую вы проходите интервью

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

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

Знания кандидата о компании — это всегда плюс и для работодателей. Если человек идет не с мыслью «возьмите меня хоть куда-нибудь, я умею нажимать кнопки на клавиатуре», а знает о проекте — это действительно радует.  

  1. Адекватно оценивайте себя как специалиста

Бывает, приходят кандидаты, не отвечают толком ни на один хардовый вопрос, а просят космические зарплаты. О таких людях складывается не самое лучшее впечатление. Но и более низкую зарплату называть нельзя — если продешевить, то работать в дальнейшем будет тяжелее. 

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

  1. Перед собеседованием обязательно следует выспаться, а на самом интервью — выглядеть опрятно

Простые, но очень важные советы. Бодрый и опрятный вид тоже создает приятное впечатление о кандидате. 

  1. Не спешите принимать оффер

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

  1. Не расстраивайтесь, если что-то пошло не так

Компаний в России и во всем мире вообще — сотни миллионов, выбор огромен. Пробуйте откликаться на вакансии, которые интересуют вас больше всего. Ищите почту HR-менеджеров и рассказывайте им о себе — только помните, что важно подсветить именно свою полезность проекту. Хороший HR-специалист всегда обращает внимание на кандидатов, которые показывают личную заинтересованность. 

  1. Поддерживайте свой интерес к профессии и постоянно развивайтесь

Это всегда очень ценно как для кандидатов, так и для работодателей.

Источник: https://habr.com/ru/companies/hexlet/articles/740714/


Интересные статьи

Интересные статьи

Когда-то Юрий Орлов решил перейти из врачей в программисты. В 2018 году он устроился в Genix джуном, а сейчас он — тимлид VK Group. Начало истории вы можете послушать здесь, а в статье мы обсудим пери...
Вспоминаю, что я на своем пути провалила ~миллион собеседований. Как же нервно, болезненно и тяжело давался разговор с нанимателем. Некоторые вопросы меня ставили в тупик, и от этого я еще больше нерв...
Мы уже рассказывали о том, как применили семейство генеративных нейросетей YaLM для подготовки ответов в Поиске, Алисе или даже в Балабобе. Главная особенность наших моделей — метод few-shot learnin...
Задача линейного программирования (ЗЛП) состоит в определении значений упорядоченной совокупности переменных xj, j=1(1)n при которых линейная целевая функция достигает эк...
Привет всем! Сегодня я начну серию статей-лекций посвященных теме проектирования беспилотных летательных аппаратов космического назначения (ракет) =). Да-да, — вы не ослышались, самых настоящих р...