Егор Яковишен, Setka: «В состоянии дедлайна у меня открываются сверхспособности»

О первых шагах в веб-разработке и о том, какие черты отличают настоящего мастера в этой профессии.

Егору Яковишену29 лет. Он руководит фронтенд-разработкой продуктов для медиа в компании Setka и является экспертом Преакселератора ФРИИ. Ведет курс по JavaScript. В интервью для Skillbox Егор рассказал о своих первых шагах в веб-разработке и поделился мнением о том, какие черты отличают настоящего мастера в этой профессии.

В интервью Егор рассказывает:

— Расскажи, пожалуйста, немного о Setka. Что это за компания?

 — Setka — это технологический стартап, который родился в стенах издательского дома Look At Media, известного по таким проектам, как The Village, Wonderzine, FURFUR, Look At Me и Hopes & Fears. Для управления процессами внутри издательского дома и облегчения работы контентных команд мы создали несколько продуктов, в частности Editor и Workflow. Workflow помогает оптимизировать процессы создания и дистрибуции контента, а Editor — это продвинутый редактор вовлекающего контента, не требующий знания HTML.

В этих двух продуктах сконцентрирован наш 10-летний опыт работы на рынке медиа.

— Как складывается твой обычный день в Setka?

 — Я приезжаю в офис часам к 11 утра. Открываю YouTrack и смотрю задачи на день — что висит на мне, что делают коллеги, за которыми я слежу. Почти каждый день я пишу код. Часто хожу на продуктовые или технические совещания, на которых мы обсуждаем какие-то отдельные фичи или решаем стратегические вопросы по дальнейшему развитию продуктов. Иногда бывают переговоры с клиентами. И около8 часов вечера я довольный уезжаю домой.

— Сколько человек у тебя в подчинении?

 — В данный момент это два middle-разработчика, над которыми я являюсь тимлидом.

— Ты для них как играющий тренер, поскольку тоже пишешь код, верно?

 — Да, я сам пишу, и проверяю код, который пишут они. Мне нравится этим заниматься, поэтому все верно: я играющий тренер.

— А как вы отбираете веб-разработчиков в Setka?

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

— Что можешь порекомендовать разработчикам, которые хотят попробовать себя на тестовых задачах?

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

Главная страница codewars.com

— А с чего ты сам начинал обучение профессии веб-разработчика?

 — Все началось в школе. Мы с другом увлекались компьютерными играми. В какой-то момент стало интересно, как все устроено изнутри. Стали копаться в коде, одновременно делали сайт на narod.ru, посвященный игре Counter-Strike. Освоил простейшие азы веб-программирования: HTML, CSS. Взял первые заказы, втянулся, некоторое время работал на фрилансе, а в 2006 году устроился в веб-студию HTML-верстальщиком. А уже в 2008 году открыл свою студию. На сегодня я занимаюсь веб-разработкой уже12 лет.

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

— Как изменился набор скиллов для начинающего веб-разработчика в 2018 году по сравнению с требованиями 5-6-летней давности?

 — Вход в профессию стал гораздо более плавным и дружелюбным. Сейчас существует масса фреймворков, например, React или Angular, которые позволяют быстро начать разрабатывать веб-приложения. Даже начинающий разработчик будет востребованным на рынке.

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

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

Люди, которые быстро сдаются, в профессии веб-разработчика ничего не добьются.

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

— А какие ошибки чаще всего совершают начинающие веб-разработчики, и что им можно посоветовать?

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

Очень важно не ошибиться в выборе технологии. А то получится так, что вы потратите время на освоение технологии, которая будет уже неактуальна. Например, так получилось с флэшем. Другие примеры — фреймворк Backbone или язык Delphi.

А вот все, что связано с машинным обучением и искусственным интеллектом, является хорошим направлением для выбора направления в профессии.

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

 — Основной браузер для разработки у меня Google Chrome. В нем самые удобные средства для разработчика — Chrome Developer Tools. Остальные браузеры не выдерживают конкуренции.

Редактор кода, в котором я сейчас пишу, — это Visual Studio Code от Microsoft. Я переехал на него с редактора Atom полгода назад. VS Code работает быстрее и стабильнее, чем Atom, и не требует особой кастомизации. В Atom постоянно приходилось что-то под себя настраивать или искать отдельные решения. А в VS Code многое есть прямо из коробки, например, встроенный терминал или система контроля версии.

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

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

Главная страница Stackoverflow.com

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

Сам пользуюсь и другим рекомендую сайт learn.javascript.ru. Это очень подробный, хорошо написанный практический учебник по JavaScript на русском языке с огромным количеством различных кейсов, применений, особенностей работы в разных браузерах.

И еще, пожалуй, будут полезны книги из из серии «You Don’t Know Javascript». Они о глубинных особенностях JavaScript — о том, как работает движок, интерпретатор. Я многое узнал о том, как работает язык изнутри. Поэтому всячески рекомендую к прочтению.

Главная страница сайта learn.javascript.ru

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

 — Перед началом работы я разбиваю задачу на мелкие подзадачи и действую по ним, вычеркивая галочку за галочкой. Я всегда работаю в первой половине дня, а лучше всего — ранним утром. Не могу работать по вечерам или ночью. Часто включаю музыку без слов, чтобы не отвлекаться. Заметил за собой, что в состоянии дедлайна у меня открываются сверхспособности, я начинаю быстро принимать решения, что и как сделать, не тратя время на второстепенные мелочи. Возможно, это неплохо для кодинга, но скверно с точки зрения управления процессами. К счастью, в Setka мы научились планировать работу так, чтобы стрессовых для разработчика моментов было как можно меньше.

— А за кем из разработчиков ты наблюдаешь, прислушиваешься к их мнению?

 — Таких людей много. Могу назвать Дэна Абрамова. Это россиянин, который написал всемирно известную библиотеку Redux и сейчас работает над развитием React. Это настоящая звезда в мире веб-разработки, человек, который самостоятельно попал на самый верх.

Дэн Абрамов. Источник

Всегда с интересом наблюдаю за командой, которая занимается развитием браузера Google Chrome. Они очень активно участвуют в разработке новых фич для JavaScript, выступают с докладами на конференциях.

Из российских разработчиков могу назвать Вадима Макеева (интервью с Вадимом читайте тут) и Алексея Симоненко из HTML Academy. Они уже много лет занимаются популяризацией веб-разработки в России.

Смотрю, что делает Роман Дворнов из Avito. Это опытный и талантливый веб-разработчик. Илья Кантор, чей сайт я уже упомянул сегодня — learn.javascript.ru. Но на самом деле таких людей много, я назвал тех, кого вспомнил на данный момент.

— Сколько лет нужно заниматься веб-разработкой, чтобы, условно говоря, у тебя появился черный пояс как признак мастерства? И в чем выражается профессионализм веб-разработчика?

 — Чтобы получить такой черный пояс, надо пройти путь от Junior до Senior. Это займет в среднем от5 лет. Что касается мастерства веб-разработчика, то я отмечу следующие скиллы:

 Понимание общих паттернов разработки. Что ведет к успеху, а что точно будет ошибочно.

 Умение смотреть на ситуацию с высоты.

 Умение принимать взвешенные решения.

 Быстрая скорость разработки.

 Умение декомпозировать задачи.

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

В поисках лучшего решения...

— Какие тренды в веб-разработке будут в ближайшие 2-3 года?

 — Думаю, что язык JavaScript продолжит занимать очень серьезные позиции, причем не только во фронтенде, но и на бэкенде. Сейчас очень много веб-приложений со стороны бэкенда пишется при помощи Node.js, и, по сути дела, изучив язык JavaScript, можно быть full-stack-разработчиком, зарабатывать достаточное количество денег и заниматься интересными проектами.

Курс «Профессия Веб-разработчик»

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

  • 32 часа теории и 16 практических заданий
  • Живая обратная связь с преподавателями
  • Неограниченный доступ к материалам курса
  • Стажировка в компаниях-партнёрах
  • Дипломный проект от реального заказчика
  • Гарантия трудоустройства в компании-партнёры для выпускников, защитивших дипломные работы

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

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

Эти компоненты могут переиспользоваться на разных страницах приложения или вообще даже в разных приложениях. Особенно это заметно в JavaScript, где очень популярен Node Package Manager (NPM). Это огромное хранилище, где собрано свыше650 000 тысяч пакетов. Каждый из этих пакетов — отдельный маленький или средний компонент, который можно использовать в своем приложении. Гигантский бесплатный склад, где можно найти что угодно.

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

 — Спасибо большое за интервью!

Хочешь получать крутые статьи по программированию?
Подпишись на рассылку Skillbox
Посмотреть