Русский военный корабль, иди нах*й.
Пожертвувати на армію
×
Упс! Не вдала спроба:(
Будь ласка, спробуйте ще раз.

Як стати JavaScript Developer та дійти до позиції Senior

Влад Балабаш
Влад Балабаш Solution Architect та Senior JavaScript Developer, AB Soft
11 листопада 2022 8 хвилин читання

Привіт, спільното! Мене звати Влад Балабаш, я Solution Architect та Senior JavaScript Developer в AB Soft. Прочитав статтю про те, що на ринку IT з'явилася велика кількість Junior, та хочу трохи розповісти новачкам, до чого треба бути готовим під час роботи та якими навичками володіти для підняття кар'єрними сходами. 

Трохи фактів про JavaScript

JavaScript є однією з найпотужніших та найгнучкіших мов програмування. 3 цікавих фактів про JavaScript:

  • вона забезпечує динамічну поведінку більшості, а саме 98%, вебсайтів;
  • з допомогою JavaScript можна запускати та тестити код в браузері без створення унікального середовища програмування або конфігурації в текстовому редакторі;
  • JavaScript дозволяє програмувати без компіляції.

З такою популярністю мови та її особливостями розробники JavaScript без роботи не залишаться 😉

На разі, JavaScript вийшов лише за межі Front-End. Багато компаній переходять на Back-End архітектуру, засновану на Node.js: Netflix перейшов на JavaScript, Uber теж вибрав Node.js.

Популярність мови беззаперечна, є багато причин, чому йдуть вчитися саме на JavaScript-Dev. Але давайте розберемося, якими навичками має володіти спеціаліст.

Якими навичками треба володіти для кожного з рівнів JavaScript Developer?

Trainee: Базові знання computer science, CSS, JS, HTML.

Junior: Тверді знання computer science, CSS, JS, HTML.

Middle: Вміння самостійно розв'язувати задачі, працювати з алгоритмами. Розуміння, як ці алгоритми використовувати в різних задачах. Знання принципів роботи з парадигмами (OOP, FP) та протоколами (TCP, HTTP etс).

Senior: Має навички розв'язувати задачі та знаходити рішення різних проблем різного рівня складності. Має ідеальні знання інструментів, з якими працює: мови програмування (JavaScript та інші, з якими він працює), фреймворки, всі перелічені раніше навички, але вже на високому рівні.

Чи є життя ПІСЛЯ Senior?

Для багатьох починаючих все закінчується саме на рівні Senior. Здається, що далі вже ну йти нема куди, стелі досягнуто. Але це не зовсім вірне ствердження. В багатьох компаніях після Senior можна стати Expert або Architect.

Expert володіє концентрованими знаннями та навичками в певній сфері розвитку.

Architect — спеціаліст з глибинними знаннями у сферах своєї роботи. Наприклад, це водночас й Java, й Node.js, й JavaScript. 

На які computer science новачку треба звернути увагу?

Важливо пам'ятати про те, що фундаментальні знання та розуміння CS відіграють дуже велику роль в роботі та розвитку в кар'єрі. На перших етапах важливо розуміти:

  • як працюють алгоритми та протоколи;
  • що таке структура даних;
  • теорію та основні методи мов програмування;
  • основні правила та архітектурні підходи.

Сучасні проєкти складаються з багатьох сервісів та додатків, які працюють на різних платформах та з різними протоколами. Всі проєкти розділені мінімум на 2 частини: Front-End та Back-End.

Останні декілька років ділять Front-End та Back-End на, так звані, мікросервіси. Наша задача — зв'язати всі ці маленькі частини в одне ціле, щоб користувач міг ними користуватися. Для цього використовуються протоколи зв'язку.

Тому для JavaScript Dev вкрай важливо знати, як працюють протоколи TCP/UDP, HTTP(s), protobuf, WebSocket.

Які інструменти знадобляться в роботі?

Їх можна поділити на декілька великих груп. По-перше, це Task Runners. Grunt, Broccoli.JS, Gulp. Також знадобляться інструменти для:

  • Контролю версій. SVN, GIT, TFC.
  • Бандлінгу (це процес об'єднання імпортованих файлів в один файл, зшивання коду). Це WebPack, Wite, RollUp, Parcell тощо.
  • Контролю синтаксису коду. EsLint/TsLint, Prettier.
  • Тестування версій. Jasmine, Mocha, PhantomJS, Protractor.
  • Безпеки. Snyk, Node Security Project, RetireJS, Gemnasium, OSSIndex.

І це тільки частина інструментів.

Soft-skills для JavaScript-розробників

Софт-скіли — важливий топік для роботи в IT. Всі, хто планує опанувати професію на рівні Senior має пам'ятати, що окрім практичних професійних навичок в нього також мають бути певні комунікаційні та особисті якості.

На першому місці — стресостійкість. Питання стресостійкості для будь-якого розробника, для будь-якого спеціаліста IT, є вкрай важливим.

По-перше, це важливо в роботі над складними або терміновими проєктами. По-друге, це важливо для організації роботи (овертайми, особистий час, робота в умовах війни).

Все це гарний спеціаліст має вміти менеджерити.

Javascript-dev має вміти вправно комунікувати з командами, з замовником, делегувати деякі задачі, які не пов'язані з його зоною відповідальністю.

Невміння спілкування додає стресу в роботі. І знову ми повертаємося до першого пункту.

Друга важлива навичка — вміння презентувати себе, проєкти, нових членів команди. Від цього часто залежить успіх в будуванні спільноти навколо себе, в затвердженні проєктів тощо.

Як Senior, Javascript-dev має вміти вправно працювати з тайм-менеджментом: мітинги, дейлінги, планінги тощо.

Програміст — така професія, яка потребує постійного самовдосконалення. Технології з'являються кожен тиждень, а в Javascript майже кожну хвилину виходить нова бібліотека, кожен день нові фрейморки. 

Вам потрібно встигати за всіма оновленнями, за роботою, за навчанням та самовдосконаленням. Тут без тайм-менеджменту буде важко.

Senior володіє дуже глибокими менеджерськими скілами та навичками team-менеджмента:

  • допомогти команді в момент, коли в цьому є потреба;
  • провести менторінг та, якщо потрібно, навчання Trainee або Junior;
  • показувати команді нові інструменти, демонструвати принципи їх роботи тощо.

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

Коли спеціаліст володіє таким скіллом, то він гарантовано може бути тім-лідом.

Звичайно, вкрай важливим є аналітичний склад розуму, вміння розбити задачу на певні підзадачі (навичка декомпозиції), вміння пояснити алгоритм виконання певних задач. Та, звичайно, мислити нестандартно.

Як краще вивчати JavaScript?

Є два шляхи, як можна вивчати JavaScript:

  • Самостійно. За допомогою роботи та вивчення відкритих ресурсів. 
  • На курсах. Вивчаючи мову за допомогою викладача, ментора, набираючись досвіду в команді однодумців.

Я вважаю, що найкраще рішення — об'єднувати ці стратегії. Тобто, навчання на курсах допоможе структурувати знання, отримату певний фундамент, розширити розуміння профессії.

Але після закінчення курсів не треба вважати, що вже все відомо та зрозуміло. Це, як я вважаю, основна помилка. Як тільки з'являється думка: «Я все знаю, більше навчатися не треба» — в цей момент наступає плато у кар'єрі.

Після закінчення курсів варто виробити в себе декілька важливих звичок:

  • постійно перевіряти та перечитувати специфікації, знайомитися з новинами індустрії, вивчати нові статті на перевірених ресурсах;
  • кожен день намагатися зробити та дізнатися щось нове;
  • пам'ятати, що десь поряд в потилицю дихають конкуренти. Не можна відпускати ситуацію та розслаблятися.

Всі ці навички важливі та корисні в будуванні кар'єри. Я буду радий коментарям та обговоренню теми. Дякую за увагу!

P.S.: Ресурси, які стануть в нагоді майбутнім JavaScript-dev

Посилання на сайти:

Посилання на канали Telegram:

Якщо ви хочете поділитися з читачами SPEKA власним досвідом, розповісти свою історію чи опублікувати колонку на важливу для вас тему, долучайтеся. Відтепер ви можете зареєструватися на сайті SPEKA і самостійно опублікувати свій пост.
50 UAH 150 UAH 500 UAH 1000 UAH 3000 UAH 5000 UAH
0
Прокоментувати
Інші матеріали

У світі дикого венчура: інвестиції в Європі, актуальні оцінки стартапів та багато Q3-звітів з різних індустрій

Владислав Миронович 11 годин тому

Українські олігархи за часів війни: пристосування до нових реалій

Владислав Миронович 14 годин тому

Сенситивність у мережі: як та чому Meta банить публікації про війну

Богдан Сухомлин 6 грудня 2022 17:15

Що робить і скільки платять: головні питання про роботу Project Manager в ІТ-компанії

Олександра Стеценко 6 грудня 2022 15:45

Кого найчастіше наймають в IT без досвіду: QA та Javascript

Катерина Колонович 6 грудня 2022 14:50