Анатолий Островский. О работе фронтенд-разработчика

Старший разработчик интерфейсов в «Яндексе» 

– Кто такой фронтенд-разработчик?
– Разработчик интерфейсов (также этого специалиста называют фронтенд-разработчик от английского front-end developer) занимается созданием клиентской части сайтов, а также программной части. Фронтенд-разработчик отвечает за то, что пользователь видит на сайте, и то, как он с ним взаимодействует. 

Кроме того, фронтенд, так же как и бэкенд (от англ. back-end — «оборотная сторона» — программно-аппаратная часть — прим. сайта), включает в себя разработку серверного кода. Постараюсь объяснить разницу между фронтендом и бэкендом в классическом понимании. Например, бэкенд-сервер может отвечать за то, чтобы данные попали в базу данных, а затем повлияли на какие-либо показатели. Например, лайк определенного твита (сообщения в социальной сети Twitter — прим. сайта) влияет на общие тренды. А фронтенд-сервер выступает приемником информации от пользователя. Такое разделение сделано для удобства разработки.

– Чем фронтенд-разработчик отличается от дизайнера, который тоже работает над тем, как выглядит сайт?
– Дизайнер придумывает внешний вид интерфейса, а фронтенд пишет код и воплощает в жизнь макет. Однако разработчик и сам должен разбираться в дизайне. Художник может в чем-то ошибиться, пожертвовать удобством в пользу красоты. Дизайнер не обязан следить за каждым шагом разработчика. Его задача в первую очередь нарисовать идею. То, как это реально будет работать, остается за фронтендом. Поэтому разработчику интерфейсов нужно уметь исправить недочеты и выпустить хороший продукт.

– Как вы стали фронтенд-разработчиком?
– Мое образование не слишком связано с программированием. Я окончил Российский экономический университет имени Г.В. Плеханова по специальности «прикладная информатика в экономике». Еще во время учебы я решил, что хочу стать дизайнером сайтов. Планировал поступить на курсы в Британскую высшую школу дизайна, но, к сожалению, они совпали с моей сессией.

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

После полугода работы в студии я приобрел неплохой опыт и поступил в Школу разработки интерфейсов  «Яндекса». А после ее успешного окончания пошел работать в сам «Яндекс».

– Получается, фронтенд-разработчику не обязательно иметь специальное высшее образование? А где он может приобрести необходимые для работы навыки?
– Например, на курсах. Могу порекомендовать Школу разработки «Яндекса», в которой учился я сам. Насколько мне известно, такие Школы проводят не только в Москве, но и в Санкт-Петербурге, Минске, Екатеринбурге. Но обучают там не с нуля. Абитуриенты должны уметь создавать простенькие сайты, верстать, писать на языке программирования JavaScript. При поступлении нужно решить тестовые задания, решение которых в большинстве случаев можно найти в интернете, если постараться. Поступить непросто, но учеба дает очень многое.

Также я наслышан о курсах от портала javascript.ru, но сам на них не ходил.

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

При выборе будущего занятия стоит учитывать, что работа фронтенд-разработчика может показаться менее увлекательной, чем работа бэкенда, ведь все сайты с точки зрения структуры более-менее понятно устроены. Зато технологии в разработке интерфейсов развиваются куда стремительнее, чем в бэкенд-разработке. Почти каждый день появляются новые решения для создания сайтов. Например, два года назад Facebook презентовал свою библиотеку для разработки фронтенда React . Сегодня у нее уже почти 1000 контрибьютеров (то есть 1000 человек поучаствовали в написании ее кода). Это огромные масштабы. В том же бекенде такого практически не бывает, все решения закрытые и делаются определенной группой людей.

Через год после запуска эта библиотека эволюционировала, и с помощью нее можно делать приложения для iOS и Android. То есть умея делать сайты на React, человек автоматически может быть и мобильным разработчиком. По-моему, это очень здорово. И, думаю, это только начало.

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

– Какие компетенции должны быть у фронтенд-разработчика?
– Мне кажется, по сравнению с бэкенд-разработчиками, «фронты» более общительны. Им нужно много общаться с менеджерами и дизайнерами, чтобы понимать, как должен работать конечный продукт. 

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

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

– Сколько получает фронтенд-разработчик?
– Зависит от знаний и умений специалиста. Я не очень хорошо знаю рынок сейчас, но, думаю, стажер или младший разработчик получает от 60 тысяч в месяц. Конечно, если под фронтендом понимается только верстка страничек без JavaScript, оплата будет меньше.

Верхней же зарплатной границы нет — все зависит от способностей специалиста.

– Будут ли фронтенд-разработчики востребованы в ближайшие 10–15 лет?
– Уверен, что будут. Уже сегодня фронтенд-разработчик может создавать не только сайты и веб-приложения, но и приложения для мобильных устройств. Приложения для телевизоров и некоторые операционные системы, например, Firefox OS, тоже сделаны на технологиях фронтенда. Я думаю, что в будущем возможности использования технологий, которыми пользуются фронтенд-разработчики, будут только расти.

– Чем может заняться фронтенд-разработчик, решивший попробовать себя в чем-то новом?
– Он может заняться разработкой мобильных приложений. Многие решения в мобильной разработке и разработке интерфейсов весьма похожи.

Если же человек больше не хочет заниматься разработкой, он может попробовать себя в роли менеджера проектов. Это подойдет специалисту, который умеет общаться с людьми, способен ставить задачи и следить за их исполнением. Можно податься в тестировщики, хотя обычно люди движутся как раз в обратном направлении: из тестирования в разработку.

– Кто для вас является ролевой моделью в профессии?
– Думаю, каждый находит своих «гуру» в определенных сферах. Например, в мире CSS (верстки) для меня это Роман Комаров. У него есть много хороших докладов и замечательный сайт с настоящей «магией» верстки.

Кроме того, для себя я выделил Пола Айриша и Дэна Абрамова. Полезно посмотреть презентации этих известных фронтенд-разработчиков (например, здесь Пол Айриш очень доступно рассказывает о разработке приложений на JavaScript — прим. сайта), а также послушать их доклады. Опыт, которым они делятся со зрителями, помогает мне работать продуктивнее.

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

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

– Что вы могли бы посоветовать почитать и посмотреть подросткам, которые хотят больше узнать о фронтенд-разработке?
– Для старта я бы порекомендовал платформу Codecademy. Там можно изучить популярные языки программирования, пройти уроки по фронтенд-разработке, а потом попробовать что-нибудь сделать самому. Обязательно нужно много раз перечитать курс по JavaScript. Еще один полезный сайт — HTMLBook. На нем есть много примеров верстки. И вообще это большая энциклопедия для разработчика интерфейсов. Сам я периодически пересматриваю лекции на youtube-канале «Фронтенд», где выступают ребята из «Яндекса».