article-spots
article-carousel-spots
programs
Технології
JavaScript та розумний холодильник. Що спільного?
15 лист 2021

"У JavaScript є гнучкість, яка дає змогу написати все, що завгодно, ба більше – воно (ймовірніше за все) працюватиме", — жартує Владислав Сидоренко, Software Engineering Team Lead в ЕРАМ Ukraine, який, за його власним визначенням, почав верстати сторінки для Internet Explorer "ще за часів темного Середньовіччя". Фахівець розповідає про створення мови JavaScript усього за 2 тижні, фреймворки-мастодонти та… розумний холодильник.

Немає мови програмування або технології, яка краща за інші — є ті, які більш пристосовані до вирішення певних завдань.

Напрям Front-End має порівняно нетривалу, але дуже насичену та стрімку історію. Перші вебсайти виглядали як електронні газети, їх можна було лише читати, а про розширений функціонал та взаємодію з користувачем не було навіть і мови. Досить скоро виникла потреба «оживити» сторінки, зробити їх динамічними, додати кнопки, які реагували б на кліки, і це стало початком «класичної епохи» Front-End. У 1995 році протягом лише двох тижнів американський програміст Брендан Айк створив скриптову мову JavaScript. Попри подібність назв та той факт, що сам Айк називав Java джерелом натхнення, у цих мов немає практично нічого спільного. До речі, відлуння того, що мову розробили в такий стислий термін, ми відчуваємо й досі: деякий функціонал працює за дещо дивною логікою.

Справжній бум JavaScript припав на 2012-2013 роки, коли набули розповсюдження односторінкові вебсайти (SPA або Single-page application). Найвідоміші приклади SPA – це YouTube та Facebook. Тоді ж із шаленою швидкістю почали множитися різноманітні фреймворки. Здебільшого вони «заточені» під особливості певного проєкту. Розробники навіть жартують, що якщо загуглити будь-яке слово, додавши до нього 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. Backend 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 University за напрямом JavaScript. Також не забувайте слідкувати за появою анонсів і корисних матеріалів у нашій Телеграм-спільноті EPAM University. Ласкаво просимо до цікавого світу JS!