Ukraine

Що має знати JS розробник: Trainee, Junior, Middle, Senior рівень

Ілля Дяченко
Stories
December 2, 2021

JavaScript – найпопулярніша мова програмування в ХХІ столітті, конкуренцію якій може скласти тільки Java. За версією DOU в 2021-му році JavaScript обігнав Java на 4% і складає цілих 18% серед мов програмування, які використовують на робочих проєктах.

Але якщо говорити про хобі та pet projects, то відсоток охоплення ще більший. Тільки лінивий не пробував щось написати на JS або зверстати простий динамічний сайт. Чому? Усе просто, JavaScript дуже проста мова програмування і опанувати її може кожен. Цю мову всього лиш за 10 днів в далекому 1995 році розробила одна людина в компанії Netscape.

A Brief History of JavaScript
  • У чому секрет популярності JavaScript?

JavaScript впевнено увійшов у всі найпопулярніші сфери життя. Жоден сайт не може існувати без цієї мови програмування, а мобільний застосунок тепер також можна розробити за допомоги тільки JavaScript (наприклад на React Native), серверна розробка на Node JS, телеграм боти та навіть desktop applications (Electron) можливо писати, знаючи один тільки JavaScript.

Але не варто бути занадто самонадіяним, іноді дуже прості на перший погляд речі можуть виявитись дуже складними, якщо в них заглибитися. Щоб писати якісні застосунки, потрібно добре розібратись з основними концепціями в цій мові і тільки після цього варто переходити до фреймворків. Задача Junior розробника виховати в собі культуру Software Engineer і не стати заручником одного або двох фреймворків. Тому пропоную розглянути еволюцію розробника, шлях від Trainee до Senior.

JS Toddler або Що повинен знати Trainee JavaScript розробник

Зазвичай в цей період часу молодий розробник ще не знає, чого він хоче від життя. Він пробує різні мови програмування, шукає себе в різних напрямках. Цілком можливо, що людина почне свій шлях з Java або Python, але потім знайде себе у Front-end або навпаки. В цей період головне знайти проєкт з досвідченими розробниками, які можуть поставити правильну задачу на роботі та відповісти на всі запитання. Памʼятай, що наразі не ти приносиш компанії цінність, а компанія вкладає в тебе свої ресурси.

Дуже важливо за цей період розібратися з основами JavaScript:
-Типи даних
– Робота з обʼєктами, функціями та класами
– Прототипи та наслідування
– Проміси та async/await
– Також варто прочитати кілька книжок, подивитись на TypeScript і вміти писати на одному з фреймворків, який в тебе є на проєкті.

Ресурс, який точно знадобиться, це відомий підручник Іллі Клімова “The Modern JavaScript Tutorial”. Він зібрав в собі найважливіші теми для вивчення мови. Також знадобиться підручник Девіда Фленагана “The Definitive Guide: Master the World’s Most-Used Programming Language 7th Edition”. Це біблія JavaScript-у, яку варто мати кожному на своїй книжковій поличці. Інвестуй час в свої знання, адже ці інвестиції повертаються дуже швидко по мірі професійного зростання.

JS Childhood або Що повинен знати Junior або JavaScript розробник

Зазвичай через 3 місяці після проходження стажування ти стаєш повноправною частиною команди, адже Junior – це людина, яка вже може повноцінно (але з допомогою більш досвідчених колег) закривати невеликі задачі. Не бійтеся задавати багато запитань, адже від джуніор розробника поки що ніхто не очікує ідеального виконання. Головною метою має бути не швидке закриття таски або тікета, а ЯКІСНЕ.

Світ програмування настільки обʼємний, що знання тільки фундаментальної теорії, на жаль, недостатньо. Також потрібно знати один з фреймворків, який використовується на проєкті. Їх є багато, тому універсальної поради не має, крім однієї – варто завжди читати офіційну документацію. Все найголовніше написано там. Такі популярні напрямки як AngularReactVue та інші вже мають всю потрібну документацію на своїх офіційних сайтах, але звісно, додаткові курси та джерела не завадять.

Основним напрямком для Front-end розробника лишається CSS. Так само як і з JavaScript, тут необхідно вивчити основи та навчитись добре верстати. Після цього можна переходити до допоміжних інструментів, таких як SASS, та CSS фреймворків: Bootstrap або Material Design.

Якщо ви пішли шляхом Back-end розробника, то варто добре розуміти, як працює фреймворк Express та інфраструктура навколо нього, знати основи SQL та NoSQL баз даних та мати уявлення про контейнеризацію та хмарні сервіси.

Найпопулярнішим представником від світу SQL є PostgreSQL та відповідно MongoDB від NoSQL. Доречі, компанія Mongo допомагає розробникам у навчанні. В MongoDB University можна знайти багато цікавих курсів, наприклад MongoDB for JavaScript Developers.

JS Teenager або Що повинен знати Middle JavaScript розробник

В основному від позиції Middle очікують самостійного девелопера, який 80% задач може виконати самостійно, інколи, звернувшись, за допомогою до колег. Зазвичай людина готова зайняти цю позицію, маючи 1-3 роки досвіду в програмуванні.

Розробник має орієнтуватися в design patterns, розуміти принципи SOLID та застосовувати їх на практиці. Техніки рефакторінга та code review також будуть у нагоді. Дуже важливою частиною є розуміння використання юніт тестів, а для детального розуміння підходів написання тестів можна прочитати книгу, наприклад Unit Testing Principles.

Також варто вивчати деталі фреймворка, з яким розробник безпосередньо працює, і дивитись за межі існуючих завдань, щоб розуміти, як працює процес розробки, як налаштовані CI/CD, яка інфраструктура навколо, тощо. Continuous delivery – це дуже важлива тема, тому варто знайти матеріал, найближчий до інфраструктури існуючого проєкта, і почитати документацію. Наприклад Learn Continuous Delivery with Bitbucket Pipelines.

JS Adult або Що повинен знати Senior JavaScript розробник?

Сініор – це САМОСТІЙНА ОДИНИЦЯ, яка здатна виконати задачу від початку до кінця без фасилітації з боку менеджера. Навпаки – від розробника очікують проактивності, і якщо на проєкті існують проблеми, розробник має виносити їх на обговорення і планувати вдосноналення. В розробці існує термін так званого технічного боргу, який завжди є на проєктах, адже ідеальних проєктів не існує. Втім дуже важливо – вчасно зупинитись, адже головними пріоритетом на проєкті є business requrements, і без бізнес-потреб проєкт просто не буде існувати. Тому Senior розробник мусить вміти знайти баланс між технічною досконалістю на проєкті і швидкістю закриття запитів зі сторони бізнесу.

Зазвичай позицію Senior займають інженери з досвідом 4-5 років, і задачі, які вони виконують на проєкті, скоріш за все вони вже вирішували на попередніх проєктах і не раз. Навіть, якщо зʼявляється нова задача для розробника, все одно той досвід, який вже є, допомагає знайти відповіді на складні питання.

Strong Senior – це людина, яка дивиться ширше, за межі фреймворку, на якому побудований проєкт, розуміє всі його слабкі та міцні сторони, дотримується принципу KISS (keep it simple). Багато уваги треба приділяти якості коду, тому вміння користуватися існуючими інструментами дуже цінне. Більше інформації можна знайти в книжці SonarQube in Action.

Дуже важливо розуміти архітектуру проєкту (як взаємодіють між собою всі компоненти) та приймати участь в її розробці. На цій позиції очікується, що людина, крім коду, може і хоче писати документацію та підтримувати її в актуальному стані.
Крім написання коду, все частіше доводиться приділяти час менторінгу на проєкті або в цілому в компанії. Людина з Senior та вище рівнем може проводити інтервʼю не тільки на проєкті, але і в цілому в компанії. Саме для цього в Intellias існує такий напрямок як Center Of Excellence, який залучає розробників до проведення інтервʼю та асесменту.

В цілому в індустрії розробки головне – не зупинятись і кожен день вдосконалюватись, це єдиний і правильний шлях для росту. Допитливість – запорука успіху!

Не пропусти цікаві історії!

Підпишись на нашу розсилку та отримуй новини від Intellias.

    Дякуємо за підписку!

    The best vacancies, are waiting for you!

    We picked vacancies that suit your skills!

    Good news!
    Link copied
    Чудові новини!
    Все вдалося.
    Погані новини!
    Щось пішло не так. Будь ласка, спробуй ще раз.
    This site is registered on wpml.org as a development site.