Generated with Avocode. Generated with Avocode. Generated with Avocode. Generated with Avocode. Generated with Avocode. hat Generated with Avocode. Generated with Avocode. Generated with Avocode. Generated with Avocode. Generated with Avocode. Generated with Avocode. path40

Егор Яковишен, 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 тысяч пакетов. Каждый из этих пакетов — отдельный маленький или средний компонент, который можно использовать в своем приложении. Гигантский бесплатный склад, где можно найти что угодно.

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

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

Комментарии

0
Чтобы оставить комментарий,  авторизуйтесь
Хочешь получать крутые статьи по программированию?
Подпишись на рассылку

Skillbox