Рассказы PRO: Frontend-разработка

Фронтенд разработка - одна из самых востребованных и популярных профессий в IT. Поговорили с Иваном Черняковым, Senior Frontend-разработчиком в Centicore Group, о том, почему фронтенд так популярен и в каком направлении сегодня развиваются технологии.

Рассказы PRO: Frontend-разработка

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

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

- Почему фронтенд-разработка стала такой популярной в последние годы? Что, по твоему мнению, способствует этой популярности?

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

- Расскажи, какие навыки и знания нужны для работы фронтенд-разработчиком? Почему их владение становится все более востребованным на рынке труда?

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

А в остальном, навыки и знания фронтенд-разработчиков ничем особым не отличаются от навыков программистов в других направлениях. Для входа в профессию не нужна математика, это конечно же миф. Но фронтенд давно уже не такой простой. Набор навыков и знаний очень разнится в зависимости от степени сложности проекта. Например, недавно видел такое приложение для организаторов open-air: в браузере у тебя есть трехмерная карта поля, и ты можешь там расставлять шатры, сцены и так далее. И вот для работы с таким фронтендом действительно нужны знания школьной геометрии.

- Как фронтенд разработка изменилась за последние 10 лет? Почему она стала важной и неотъемлемой частью разработки приложений?

- Она изменилась до неузнаваемости. Раньше, JavaScript был “язычком” программирования для того, чтобы динамично покрасить кнопки в разные цвета, и так далее. А сейчас, с помощью фронтенд разработки можно делать очень сложные вещи. Фронтенд-разработчик может писать все, что угодно на данный момент. Потому что главное изменение заключается в том, что эволюционировала среда выполнения нашего кода. Фронтенд работает внутри браузера, который теперь может очень много всего. И така как его можно запустить практически на чем угодно, - фронтенд-разработчик может написать и мобильное приложение, и сайт, и приложение для умного телевизора, и так далее. Второе большое изменение, кроме эволюции браузера и самого языка, это то, что теперь во фронтенде доступны низкоуровневые языки программирования для выполнения сложных вычислений. Например, есть редактор Фигма, и работает он в браузере. Но написан не только на JavaScript, но и на языке Rust. Дело в том, что код, который работает очень близко к уровню нулей и единиц, научились заворачивать и исполнять в браузере, чтобы делать такие высокопроизводительные продукты, как Фигма.

- Какую роль играют браузеры в фронтенд разработке и почему важно учитывать особенности разных браузеров при создании веб-приложений?

- Как я уже упомянул ранее, играют большую роль, ведь фронтенд работает именно внутри браузера. Поэтому с развитием оных стал развиваться и усложняться фронтенд. При создании веб-приложений очень важно учитывать особенности браузеров, потому что то, что ты сверстал и видишь на своем компьютере, может выглядеть у пользователя совершенно иначе. Один из ярких примеров - в Safari на Iphone некоторые иконки могут отображаться другим цветом, не таким, как ты ожидал и видел в Chrome. Надо делать определенные манипуляции, чтобы таких изменений не было. Это называется кроссбраузерная верстка. У разных браузеров есть разные возможности, надо это учитывать, чтобы везде все выглядело одинаково.

- Какие основные тенденции и новинки ты видишь в области фронтенд разработки? Какие новые технологии и инструменты становятся все более популярными?

- Мне нравится то, что очень быстро развивается 3D в браузере, есть сайты, которые сделаны полностью в трехмерном пространстве. Также, что браузер стал окном управления удаленными продуктами. Например, облачный гейминг, когда где-то на сервере выполняются вычисления, а тебе в браузер транслируется картинка игры, и интерфейс принимает от тебя движения мыши и нажатия на клавиши. Это тоже фронтенд-разработка, и она позволяет делать вычисления и пользоваться мощностями где-то удаленно. Еще из новинок я бы выделил то, что браузер теперь можно завернуть в мобильное приложение. Это классно, потому что ты можешь написать код для сайта, выполнить с ним определенные манипуляции и сделать из него мобильное приложение. У каждого из нас есть такие приложения, которые на самом деле под капотом являются браузером и фронтенд-разработкой, а не нативной разработкой под iOs или android.

- Как фронтенд разработка связана с пользовательским опытом (UX) и какие методы и подходы помогают создать удобный и привлекательный интерфейс для пользователей?

- Фронтенд-разработка неразрывно связана с пользовательским опытом, поэтому совместная работа UX/UI дизайнера и фронтенд-разработчика очень важна. Когда UX/UI дизайнер и фронтенд-разработчик общаются через других специалистов, не напрямую, от этого сильно страдает пользовательский опыт. Я считаю, UX/UI дизайнер и фронтендер должны работать в паре. Для того, чтобы создать удобный интерфейс, стоит собрать аналитику, посмотреть записи сеансов пользователей с вебвизора, чтобы понять, куда они кликают и что им не понятно. И конечно же дискуссии и брейнштормы внутри команды о том, как улучшить user flow.

- Какие преимущества и вызовы ты видишь в фронтенд разработке по сравнению с другими областями, такими как бэкенд или мобильная разработка?

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

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

- Я бы посоветовал начать разбираться с языка программирования Python, хотя он и не связан с фронтендом, но на нем строится классная база. Когда ты немного разобрался, возможно написал простенькую программу на 200-300 строк кода, например простой телеграм-бот, я бы посоветовал пройти 5-10 часовой курс на YouTube по JavaScript. После этого советую создать свой pet-проект на одном из трех основных фреймворков в мире JavaScript. По мере создания своего pet-проекта ты будешь разбираться, решать проблемы и расти. И вот, ты уже начинающий фронтенд-разработчик. После этого можно углубляться, смотреть базу программирования. Такой путь я считаю самым эффективным.

- Как ты видишь будущее фронтенд разработки?

- Очень интересный вопрос. Будущее фронтенда я вижу в его развитии и расширении возможностей его применения. Приведу пример. Многие из нас были на КТ, МРТ. Все эти системы подключены к старым компьютерам, а результаты исследования тебе выдают на диске. У Google есть план, чтобы, например, оператор МРТ мог взять современный кабель USB TYPE-C, подсоединить аппарат МРТ к своему ноутбуку, и у него в браузере открылась бы программа для МРТ. Он сделал бы исследование и отдал тебе ссылку, где сохранились результаты исследования, с которыми ты мог бы повзаимодействовать или поделиться с другим врачом. С точки зрения доисторических подходов в разных сферах, фронтенд может сделать жизнь проще и удобнее.

Начать дискуссию