Как пройти собеседование ВК? Интервью с frontend-разработчиком VK

Социальные сети
Комментариев нет

Один из разработчиков офиса ВКонтакте поделился своими впечатлениями и о том, какой путь он проделал, и как попал в состав. Офис отдела разработки “ВКонтакте” находится в доме “Зингер”, в Санкт-Петербурге.

“Понятное дело, что-то нам преподают ещё в школах, какие то базовые знания, и таких историй много” – говорит Тимофей Чаптыков, старший frontend-разработчик.

Как же проходит весь путь в IT?

“Если говорить по компаниям, то сначала я работал в Красноярске, в Web-студии, оттуда перебрался в Новосибирск и 3 с половиной года проработал в “ДубльГис” (2GIS), и затем я переехал, в Петербург. Здесь мне очень понравилось и я искал работу в Петербурге и был очень заинтригован предложением ВКонтакте. То есть я переезжал уже с оффером и зная своё место работы.”

Какие языки ты изучал и какими увлекался?

Изначально я пришёл в вёрстку и начал с HTML и CSS. Это было очень давно, это был 8й класс, и всем этим я увлекался ещё ни разу не увидев интернета. Javascript язык уже пришёл сильно позже, и я занимался и дизайном, и дизайном полиграфии, и фирменными стилями. Но в какой-то момент сконцентрировался именно на вёрстке. И там уже добавился Javascript, и постепенно это обрастало всем современным Stack’ом.

Как ты попал в состав работников ВКонтакте, ведь многим интересно это узнать и для многих это желанное место работы?

Я попал сюда через другую социальную сеть. Однажды я написал в Твиттере, твит, где был недоволен техническим решением VK, написал как можно было бы сделать лучше. И поскольку до этого уже много выступал на конференциях, в мой “тред” пришёл Андрей Ситник, упомянув Славу Шибанова, который работал ВКонтакте, и Слава ответил “Отлично, приходи к нам на собеседование и сам починишь”.

Как проходило твоё собеседование?

Сначала это был Skype звонок и собеседование, где мне задали пару вопросов. Это был вопрос про “Промисы” (что это такое, и зачем они нужны), помню говорили ещё про “функциональное программирование” и “чистые функции” и в таком духе. Сейчас уже не сильно помню, это было в году 2016.

Затем было тестовое тех. задание, которое было очень большое и сложное. У нас обычно большие тестовые задания, хотя в последнее время, вроде бы стало чуть попроще, и они стали занимать меньше времени. Но я получил огромное удовольствие, от того, что это было объёмное и сложное тестовое задание, в котором было много элементов, над которыми можно было подумать, принять самому решение, как лучше сделать. И после этого было уже финальное собеседование, на которое я прилетел в Санкт-Петербург.

Расскажи подробнее, что это было за задание, и было ли сложно?

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

Какие были твои первые впечатления, что было первый год?

Одна из вещей, которой я был заинтригован и заинтересован с самого начала, это было то, как огромный масштабный сложный продукт с огромным количеством фич, делает очень небольшая команда. Когда я устроился в VK, я был приблизительно 70-м разработчиком. Это значит, что всего у нас в “Зингере” работало 70 человек, включая админов, тестировщиков и всех остальных. И это была для меня главная загадка, которую мне хотелось разгадать и посмотреть как и за счёт чего можно делать огромный продукт таким небольшим составом людей.

Насколько я знаю, у Вас все Full Stack разработчики?

Сейчас уже нет, но на тот момент, пожалуй да. По крайней мере в моём тестовом задании была серверная часть на PHP.

Расскажи про Front-end разработчиков ВКонтакте, какая у Вас структура команды, как происходит взаимодействие между Вами?

Команда у нас делится по продуктам, есть команда инфраструктуры, а есть команда мессенджера и команда ленты. И в них разработчики не очень часто выделяют на front-end’еров. Front-end разработчик в том или ином виде пишет какие-то отдельные элементы на PHP, потому что так быстрее, эффективнее и чаще проще.

Но и есть несколько отделов, которые чисто клиентские, просто в силу продукта. К примеру у нас есть библиотека компонентов VKUI, которая используется для построения VK Apps, и некоторых наших внутренних разделов. И вот эта библиотека компонентов на React, она без сервера и поэтому там работают исключительно два разработчика по Front-end и по React.

Что ещё используется ВКонтакте в плане Stack?

Используются стандартные HTML, CSS и JS. Конечно же мы используем React, но у нас множество кода написано и на чистом JS. И это всё еще актуальный код, над которым мы работаем и который мы поддерживаем. Я думаю, что во многих местах отказываться в сторону каких-то фреймворков, мы не собираемся.

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

Как было принято решение использовать React?

На разных разделах принималось решение по разному, на VKUI в принципе я посмотрел на несколько возможных вариантов, и там в целом было достаточно очевидно, что React наиболее удобный и комфортный вариант, по нескольким причинам: во первых потому, что там очень хорошо устроено разбиение на компоненты и создание этой компонентной структуры очень удачно ложится на этот кейс.

Плюс ко всему, это самое массовое, документированное и знакомое решение для разработчиков, и с самым большим комьюнити. И поскольку мы отдаём разработку VK Apps, в том числе сторонним разработчикам, предоставляя платформу, то для нас эта вот популярность тоже имеет значение, чтобы разработчикам тоже было удобно писать.

Доволен ли ты React, какое твоё личное мнение?

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

Как думаешь, почему помимо React, Angular, Vue, ничего нового сейчас не появляется?

Как мне кажется появляется и достаточно много. Все эти инструменты нишевые. Я бы сказал, что Vue сейчас достаточно новый фреймворк, который попадает, как раз в Топ-5. На Vue ни одного проекта не написал, на мой взгляд, это еще один продукт из кластера React. И таких проектов очень много, я сам сравнивал и приглядывался, к примеру мне очень нравится проект Preact, также видел Inferno и кучу других JS библиотек, построенных по подобному принципу.

А в плане инструментов автоматизации, и “бандлеров” у Вас что используется?

У нас используется WebPack и Gulp.

А как у Вас принято, среди разработчиков участие в таких open-source проектах, кто-то контрибьютит?

Я бы не сказал, что это какое то массовое явление или оно поставлено на поток, а в целом мы периодически что-то контрибьютим, когда нам это самим необходимо, и мы ничего не имеем против, чтобы поделиться. Иногда мы выкладываем какие-то свои пакеты, обычно это сопровождается какими-то статьями и пресс-релизами. А вообще можно сказать, что история с Open Source началась с KPHP, которая тоже находится в открытом доступе, уже огромное количество времени.

Как ты думаешь, почему ВКонтакте такая довольно закрытая компания, и почему здесь не проводится каких-то meet-up встреч?

Я думаю, что эта ситуация со временем меняется, появляется гораздо больше открытых мероприятий, есть VK Cup – олимпиада по программированию. Есть внешние “хакатоны”, которые проводятся уже много лет. С недавнего времени мы по нескольку раз в год проводим VK tech talks. В разных городах, в Новосибирске, в Казани, в Санкт-Петербурге. Вот поэтому активности всё больше и больше и на этом я думаю мы тоже не остановимся.

Как попасть ВКонтакте и стать частью команды, стать Front-end разработчиком или full-stack?

Можно откликаться на вакансии, можно попробовать себя в стажировке, если Вы вначале своего пути. Можно попасть в поле нашего зрения, поучаствовав и заняв места в наших “хакатонах” или олимпиаде по программированию. И иногда, судя по моей истории, иногда что-то написать в Твиттер.

Скажи, а ты сам принимаешь участие в собеседовании специалистов? Что для тебя является самым важным?

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

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

Что тебя увлекло в работе, за последние несколько месяцев?

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

Если подробнее, то как оказалось, я узнал очень многое, о том как устроены кодировки, чем UTF-16 от UTF-8, что такое верхнее и нижнее суррогатные пары и почему, если посмотреть через Javascript на длину смайла, там будет число не 1, а например 7.

Есть ли эти доклады на YouTube?

Я думаю, что они появятся со временем, вроде как анонсируют в июне.

Какие рекомендации дашь на последок, ребятам которые очень мечтают попасть ВКонтакте?

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

Может быть какие то конкретные книжки, сервисы или сайты можешь посоветовать, что прямо сейчас можно открыть и начать делать?

Чаще я сам спрашиваю на собеседованиях о том, как Вы обучаетесь и по каким материалам, потому что узнаю для себя, что-то новое. Вот недавно узнал, что люди перестали читать книжки и начали учиться при помощи YouTube.

Ну а вообще есть огромное количество курсов на английском egghead.io к примеру, или coursera. По разным специальностям там разное количество материалов, поданы в очень удобном и комфортном виде. Есть очень много материалов на Ютуб, можно там встретиь курсы по WebPack, Javascript, мини-игры по вёрстке, которые помогают закрепить отдельные навыки, есть про специфичность, селекторы.

Кое что я публикую у себя в Твиттере, если нахожу, и мне всё еще нравятся книжки, бумажные. Сейчас читаю “Алгоритмы”, автор Стивен Скиена. Также Lea Verou – CSS Secrets или достаточно старенькие Молли Хольцшлаг – HTML and XHTML, из современных Addy Osmani. Ну в общем, кажется , что бесконечное количество материалов, поэтому под каждый конкретный запрос можно найти что-то своё и это будет интересно, качественно и профессионально.

Ужасно..Плохо..Нормально!Хорошо!Отлично! (1 оценок, среднее: 5,00 из 5)
Загрузка...

Поделиться:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *