"JavaScript обладает гибкостью, которая позволяет написать все, что угодно, более того — оно (скорее всего) будет работать", — шутит Владислав Сидоренко, Software Engineering Team Lead в ЕРАМ, который, по его собственному определению, начал верстать страницы для Internet Explorer «еще во времена темного Средневековья». Специалист рассказывает о создании языка JavaScript всего за две недели, фреймворках-мастодонтах и... умном холодильнике.
Нет языка программирования или технологии, которая была бы лучше других — есть те, которые более приспособлены для решения определенных задач.
У направления Front-End сравнительно короткая, но очень насыщенная и стремительная история. Первые веб-сайты выглядели как электронные газеты, их можно было только читать, а о расширенном функционале и взаимодействии с пользователем не было и речи. Довольно скоро возникла необходимость «оживить» страницы, сделать их динамичными, добавить кнопки, которые реагировали бы на клики, и это стало началом «классической эпохи» Front-End. В 1995 году всего за две недели американский программист Брендан Эйх создал скриптовый язык JavaScript. Несмотря на схожесть названий и тот факт, что сам Эйх называл Java источником вдохновения, у этих языков нет практически ничего общего. Кстати, отголоски того, что язык был разработан в столь сжатые сроки, мы ощущаем до сих пор: часть функционала работает по несколько странной логике.
Настоящий бум JavaScript пришелся на 2012-2013 годы, когда распространение получили одностраничные веб-сайты (SPA или Single-page application). Самый известный пример SPA — это YouTube. Тогда же с бешеной скоростью начали множиться различные фреймворки. Большинство из них были «заточены» под особенности конкретного проекта. Разработчики даже шутят, что если загуглить любое слово, добавив к нему JS, почти гарантировано найдется фреймворк с таким названием. Однако, топовой тройкой остаются React, Angular и Vue — именно с них я рекомендую новичкам стартовать в JavaScript. Если кратко описать каждый из них, получится примерно такое резюме:
- React — это самый гибкий фреймворк, который позволяет свободно выбирать инструменты, но разработчик должен четко знать, что лучше всего подойдет в конкретном случае, чтобы не совершить фатальной ошибки.
- Angular, наоборот, строго декларирует правила написания приложения. Это помогает не растеряться, но и ограничивает свободу выбора.
- Vue — это своего рода микс, который объединяет лучшие практики обоих вышеупомянутых фреймворков.
Эволюция и новые грани термина "Front-End разработчик".
Сегодня существует четкая классификация того, чем именно занимаются специалисты, использующие язык JavaScript:
- HTML coder — эти специалисты стояли у истоков Front-End и отвечали непосредственно за верстку веб-страниц. Они работают с технологиями CSS, HTML и т.д. Спрос на HTML кодеров есть и сейчас, поскольку существует немало ресурсов, backend которых работает на другой технологии, и заказчику нужно выполнить работу только с той частью, которая видна пользователям.
- Front-End разработчик — это следующая ступень, на которой специалисты уже не сфокусированы исключительно на верстке, а умеют полноценно работать с фреймворками, знают специфику браузеров, в том числе мобильных, умеют выстраивать логику процессов и разрабатывать конструкции, которые будуть работать так, как нужно заказчику.
- JavaScript девелопер — это специалист, который в совершенстве знает специфику браузеров и учитывает ее во время работы, но при этом меньше внимания уделяет собственно логике построения приложений.
- Разработчик мобильных приложений — это некоторое ответвление от предыдущей специализации. Mobile девелоперы работают с технологиями React Native, Ionic и подобными; они создают приложения под мобильные платформы. Время от времени заказчики выбирают написание мобильных приложений именно на JS, избегая таким образом разработки для Android и iOS по отдельности. Такой подход позволяет сэкономить деньги, хотя и не всегда бывает оптимальным.
- Back-end JavaScript разработчики, как следует из названия, пишут backend приложения на платформе NodeJS, в основе которой — язык C++. На базе этой платформы построено множество фреймворков, с помощью которых можно обращаться к базе данных, выстраивать логику процессов, писать скрипты для CI/CD и многое другое. Кстати, именно возможность использовать JavaScript для написания как Front-End, так и бэкенд частей позволяет полнее понимать back-end разработчиков и говорить с ними на одном языке. JS — это своего рода язык-миротворец, который помогает избежать недоразумений в команде на этапе разработки.
Находит ли JavaScript применение на бытовом уровне? Еще как! Один мой приятель с помощью JS и нестандартного способа мышления автоматизировал рутинные будничные процессы и создал... умный холодильник. Он использовал платформу Johnny-Five для программирования микроконтроллеров, а на полках холодильника разместил датчики веса. Если в течение определенного времени полки были пустыми, холодильник «собственноручно» вносил требуемый продукт в список покупок, раз в неделю создавал заказ в сервисе доставки продуктов и даже самостоятельно оплачивал его платежной картой. Это — отличная иллюстрация возможностей использования JS в любых устройствах и приложениях.
Советы начинающим по поводу будущей карьеры:
- Базовый уровень начинающего для всех перечисленных позиций — это знание типов данных, условных конструкций, умение писать циклы, работать с функциями, массивами, объектами. Впоследствии, опираясь на эти знания, вы сможете строить более серьезные приложения. Фреймворки снижают необходимость глубже изучать некоторые вещи, поэтому не игнорируйте основы.
- Выберите специализацию, в которой вы хотите развиваться, и ознакомьтесь с требованиями к специалистам на ресурсах DOU или Djinni. Так вы будете в курсе, что требуется на рынке именно сейчас.
- Изучайте JavaScript через практику. Этот язык довольно прост, поэтому сразу пробуйте на пет-проектах то, что изучаете.
- Сконцентрируйтесь на одном источнике информации: например, выберите одного разработчика и следите за его блогом. Этот совет связан с тем, что Интернет перенасыщен информацией и некоторые ресурсы противоречат друг другу.
- Заручитесь менторской поддержкой — такая возможность доступна участникам EPAM University. Преимущество этого подхода в том, что новички могут учиться не на своих ошибках, а спросить совета у более опытных коллег.
- Если у вас еще нет учетной записи в LinkedIn, создайте ее и регулярно обновляйте.
Ссылки на полезные материалы для самоподготовки на YouTube и других платформах:
▶ English-speak blogger that I often watch
▶ Yet another cool YouTube JavaScript course
▶ LinkedIn Page of an outstanding lector from Kyiv Polytechnic Institute
Если вас заинтересовала возможность освоить основы JavaScript и на собственном опыте убедиться в неограниченных возможностях этого языка, присоединяйтесь к обучающим программам EPAM по направлению JavaScript. Добро пожаловать в захватывающий мир JS!