article-spots
article-carousel-spots
programs
Технологии

JavaScript и умный холодильник. Что общего?

15 нояб. 2021

"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: 

  1. HTML coder — эти специалисты стояли у истоков Front-End и отвечали непосредственно за верстку веб-страниц. Они работают с технологиями CSS, HTML и т.д. Спрос на HTML кодеров есть и сейчас, поскольку существует немало ресурсов, backend которых работает на другой технологии, и заказчику нужно выполнить работу только с той частью, которая видна пользователям.  
  2. Front-End разработчик — это следующая ступень, на которой специалисты уже не сфокусированы исключительно на верстке, а умеют полноценно работать с фреймворками, знают специфику браузеров, в том числе мобильных, умеют выстраивать логику процессов и разрабатывать конструкции, которые будуть работать так, как нужно заказчику.  
  3. JavaScript девелопер — это специалист, который в совершенстве знает специфику браузеров и учитывает ее во время работы, но при этом меньше внимания уделяет собственно логике построения приложений.  
  4. Разработчик мобильных приложений — это некоторое ответвление от предыдущей специализации. Mobile девелоперы работают с технологиями React Native, Ionic и подобными; они создают приложения под мобильные платформы. Время от времени заказчики выбирают написание мобильных приложений именно на JS, избегая таким образом разработки для Android и iOS по отдельности. Такой подход позволяет сэкономить деньги, хотя и не всегда бывает оптимальным.  
  5. Back-end JavaScript разработчики, как следует из названия, пишут backend приложения на платформе NodeJS, в основе которой — язык C++. На базе этой платформы построено множество фреймворков, с помощью которых можно обращаться к базе данных, выстраивать логику процессов, писать скрипты для CI/CD и многое другое. Кстати, именно возможность использовать JavaScript для написания как Front-End, так и бэкенд частей позволяет полнее понимать back-end разработчиков и говорить с ними на одном языке. JS — это своего рода язык-миротворец, который помогает избежать недоразумений в команде на этапе разработки.  

 

Находит ли JavaScript применение на бытовом уровне? Еще как! Один мой приятель с помощью JS и нестандартного способа мышления автоматизировал рутинные будничные процессы и создал... умный холодильник. Он использовал платформу Johnny-Five для программирования микроконтроллеров, а на полках холодильника разместил датчики веса. Если в течение определенного времени полки были пустыми, холодильник «собственноручно» вносил требуемый продукт в список покупок, раз в неделю создавал заказ в сервисе доставки продуктов и даже самостоятельно оплачивал его платежной картой. Это — отличная иллюстрация возможностей использования JS в любых устройствах и приложениях.  

Советы начинающим по поводу будущей карьеры: 

  1. Базовый уровень начинающего для всех перечисленных позиций — это знание типов данных, условных конструкций, умение писать циклы, работать с функциями, массивами, объектами. Впоследствии, опираясь на эти знания, вы сможете строить более серьезные приложения. Фреймворки снижают необходимость глубже изучать некоторые вещи, поэтому не игнорируйте основы.  
  2. Выберите специализацию, в которой вы хотите развиваться, и ознакомьтесь с требованиями к специалистам на ресурсах DOU или Djinni. Так вы будете в курсе, что требуется на рынке именно сейчас.  
  3. Изучайте JavaScript через практику. Этот язык довольно прост, поэтому сразу пробуйте на пет-проектах то, что изучаете.  
  4. Сконцентрируйтесь на одном источнике информации: например, выберите одного разработчика и следите за его блогом. Этот совет связан с тем, что Интернет перенасыщен информацией и некоторые ресурсы противоречат друг другу.  
  5. Заручитесь менторской поддержкой — такая возможность доступна участникам EPAM University. Преимущество этого подхода в том, что новички могут учиться не на своих ошибках, а спросить совета у более опытных коллег. 
  6. Если у вас еще нет учетной записи в LinkedIn, создайте ее и регулярно обновляйте. 


Ссылки на полезные материалы для самоподготовки на YouTube и других платформах: 

English-speak blogger that I often watch  

HTML course 

CSS course 

Yet another cool YouTube JavaScript course 

The best blog to follow  

LinkedIn Page of an outstanding lector from Kyiv Polytechnic Institute  

Если вас заинтересовала возможность освоить основы JavaScript и на собственном опыте убедиться в неограниченных возможностях этого языка, присоединяйтесь к обучающим программам EPAM по направлению JavaScript. Добро пожаловать в захватывающий мир JS!