"У 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:
- HTML coder – ці спеціалісти стояли у витоків Front-End та безпосередньо відповідали за верстку сторінок. Вони працюють із технологіями CSS, HTML тощо. Попит на HTML кодерів є і зараз, адже є чимало ресурсів, backend яких працює на іншій технології, і замовнику потрібно виконати роботу тільки з видимою користувачам частиною.
- Front-End розробник – це наступний щабель, на якому спеціалісти вже не фокусуються виключно на верстці, а вміють повноцінно працювати з фреймворками, знають специфіку браузерів, у тому числі мобільних, вміють вибудовувати логіку процесів та розробляти конструкції, які працюватимуть так, як потрібно замовнику.
- JavaScript девелопер – це спеціаліст, який досконало знає специфіку браузерів та враховує її під час роботи, але водночас менше уваги приділяє власне логіці побудови додатків.
- Розробник мобільних додатків – це певне відгалуження від попередньої спеціалізації. Mobile девелопери працюють з технологіями React Native, Ionic тощо; вони створюють застосунки під мобільні платформи. Час від часу замовники обирають написання мобільних додатків саме на JS, у такий спосіб уникаючи розробки окремо для Android та iOS. Цей підхід дає змогу заощадити гроші, хоча й не завжди є оптимальним.
- Backend 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 University за напрямом JavaScript. Також не забувайте слідкувати за появою анонсів і корисних матеріалів у нашій Телеграм-спільноті EPAM University. Ласкаво просимо до цікавого світу JS!