Терпение, усидчивость, азарт: интервью с Frontend-разработчиком
Мы продолжаем цикл публикаций про ИТ-профессии. В этот раз мы поговорили с frontend-разработчиком Сергеем из IBS. Он рассказал о том, как пришёл в разработку, об учёбе и стереотипах вокруг программистов, а также о том, почему для хорошего фронтендера важен азарт.
Frontend-разработчик — это программист, занимающийся разработкой пользовательского интерфейса (внешней публичной части сайта в браузере). Главная задача frontend-разработчика — сделать взаимодействие пользователей с веб-приложением максимально удобным.
— Ты занимаешься frontend уже много времени. Дай свое определение, кто такой frontend-разработчик.
— Frontend-разработчик — специалист, отвечающий за все, что происходит в браузере. Если backend-разработчики запускают свой код на сервере, то код frontend-разработчика запускается в браузере.
— Почему ты выбрал frontend-разработку?
— Мне нравится, что во frontend ты сразу видишь результат работы. А еще за сайтом может быть тысяча серверов, какие-то сумасшедшие базы данных, но пользователи все равно ассоциируют приложение с интерфейсом.
— В чем специфика frontend-разработки?
— В том, что все быстро меняется. Появляются новые фреймворки, постоянно все развивается — среда исполнения, браузеры. Сегодня какой-то фичи нет, завтра она есть, послезавтра ее запретили.
— Какой стек технологий ты используешь сейчас?
— React, Redux, TypeScript, redux-saga.
— Почему выбрал именно React?
— До этого я разрабатывал на JQuery. Существовало несколько способов, где хранить состояние приложения. Например, пользователь выбирает что-то из выпадающего списка. Это можно хранить в «доме» и средствами JavaScript туда попасть и взять это значение. Но может возникнуть путаница, рассинхронизация между состоянием приложения и «домом». И за этим надо следить. А потом появился даже не React, а архитектура Flux, и оказалось, что можно по-другому. Можно сделать так, чтобы данные текли в одном направлении. Теперь они не напрямую попадают в стейт из представления, а представление генерирует сообщения и кто-то третий их отлавливает. И это все попадает в стейт, который представление обновляет.
— Поэтому React так выстрелил и сейчас очень популярен?
— Да, потому что позволяет в декларативном стиле описывать интерфейсы.
— Можно ли предугадать, какие технологии будут в хайпе, а какие нет? Angular постарше, и он теряет популярность.
— Дело не в возрасте технологий. И не сказал бы, что Angular теряет популярность. У него есть свои пользователи. Для кого-то это резонный выбор, ведь одна из сложностей React состоит в том, что каждый проект на нем — как новая, неизведанная планета. React отвечает только за отображение данных, все архитектурные решения отдаются на откуп разработчикам. Angular — это полноценный фреймворк. Он говорит: модуль, отвечающий за это, лежит там-то. И получается, что удобнее ориентироваться в незнакомом проекте, так как все проекты похожи, у всех одна архитектура.
Мифы и стереотипы о разработчиках
— Есть мнение, что frontend-разработка подходит больше девушкам, потому что у них сильнее развито чувство прекрасного. Что думаешь об этом?
— Соглашусь, скорее всего. Но думаю, не стоит говорить «больше подходит». По наблюдениям, девушки лучше проектируют интерфейс, он получается удобнее.
— Что думаешь о других стереотипах про программистов? Это очень сложная работа?
— Сложная, стрессовая, но интересная: приходится постоянно искать какие-то новые решения, что-то придумывать. Постоянно учиться.
— Я замечала, когда занималась подбором, что у очень многих frontend-разработчиков длинные волосы. И у тебя тоже. Это совпадение или нет?
— Да нет. Лысые frontend-разработчики встречаются. Я, может быть, тоже побреюсь
О работе в IBS
— Как ты пришел в IT?
— Я со школы хотел быть программистом. Потом учился на инженера, бросил, несколько лет не касался компьютеров. В итоге, когда восстановился в институте и сделал достаточно быстро лабораторную работу, понял, что, оказывается, могу программировать.
— Ты прошел переквалификацию или изучал самостоятельно?
— У меня была база, три курса технического вуза. Кроме того, самостоятельно учил некоторые вещи. Забил в Google «Как сделать сайт» и ходил по ссылкам.
— Расскажи, как проходит твой рабочий день. Сколько процентов времени занимает написание кода?
— Часа два, 25%. Программист большую часть времени код читает, вносит правки, а не пишет новый. Поэтому, кстати, очень важно правильно называть переменные. Не «b =», а нормальными словами, читаемыми.
— Можешь вспомнить момент, когда тебе казалось, что вы с командой что-то делаете не так, и если мы сейчас не закроем спринт, то нас уволят?
— «Сейчас нас уволят» — такого нет, конечно. Компании выгоднее разобраться в том, почему что-то не получилось, чем искать новых сотрудников. Конечно, за спринт всегда переживаешь, заказчик должен получить то, чего он ждет. Но бывают заказчики, которые не знают, что им надо, с такими сложнее.
— Многие frontend-разработчики хотят работать удаленно.
— Да. В офисе бывает некомфортно: у всех свои звонки, такое чувство, что попал в call-центр. За удаленной работой будущее.
Образование frontend-разработчика
— Если вернуться к профессии, без каких знаний во frontend точно не обойтись?
— Если речь о фундаментальных науках, математику желательно знать.
— А что-то более специализированное?
— Есть спецификации. Нужно знать стек, все, что есть в браузере, каскадные таблицы стилей. Обязательная база — это HTML, CSS и JavaScript.
— Три качества, которые необходимы хорошему frontend-разработчику.
— Терпение, усидчивость, азарт.
— Почему азарт?
— Потому что не сразу все работает. С этим часто сталкивались раньше, когда существовали разные экзотические браузеры типа Internet Explorer. Там без усидчивости и азарта легко просто плюнуть и все бросить.
— Как ты поддерживаешь свой уровень знаний и повышаешь свою квалификацию?
— Читаю статьи, смотрю ролики на YouTube. Иногда курсы покупаю. Я в «Твиттере» подписан на нескольких экспертов, известных в этой сфере. Например, Андрей Ситник, Mike Bostock, Addy Osmani, Eric Elliott, Ilya Grigorik, Smashing Magazine, Веб-стандарты. Желательно знать английский, так как статьи не переводятся. Чтобы идти в ногу со временем, их стоит читать в оригинале.
— Есть ли необходимость в сертификатах?
— Наверное, нет. Это не так сильно распространено в сфере frontend- разработки. Сертификаты большей частью придумывают вендоры, а Frontend — это в основном open source.
Блиц
— Сдать проект вовремя или уйти в отпуск?
— Я бы, наверное, изначально не планировал отпуск на конец проекта.
— Написать в чатик или позвонить?
— Написать электропочтой. Писать в чате — то же самое, что и звонить, — ждешь от человека моментальной реакции. Зато когда пишешь по почте, ты даешь человеку фору на чтение в пару часов и не ждешь от него сиюминутного ответа. Поэтому почта — это хорошо, а чат и звонки — плохо.
— Оупен-спейс или кабинет?
— Конечно, кабинет. Чего не хватает в open space, это тишины. Если бы у нас был администратор, который делал бы «т-с-с-с», как в библиотеке, — это другое дело, было бы супер.
— Пожизненный запас кофе или работа до трех дня?
— Работа до трех дня. От кофе я могу и отказаться ради такого. Кстати, некоторые компании практикуют шестидневную неделю, мне было бы интересно попробовать.
— Компьютер или смартфон для интернет-серфинга?
— Компьютер. У меня есть привычка: всегда открываю все сайты, смотрю, как и что сделано. Если вижу интересный эффект, я всегда открываю DevTools (инструменты разработчика) и смотрю, что и как там устроено. Однажды мы с коллегами были на конференции в Екатеринбурге. Заказывали обратные билеты и обнаружили баг на сайте: на экране ноутбука один элемент отображался так, что выбор мест был заблокирован. Залезли, с помощью инструментов разработчика в браузере вручную убрали этот элемент. И только тогда смогли купить билеты.