З чого почати, щоб стати крутим Front-End розробником?
Радять сеніори

Курс «Front-End з нуля » в Web Academy один із найпопулярніших неспроста. Адже перевага Front-End у тому, що розробник одразу бачить результат своїх зусиль. А це дуже впливає на бажання розвиватися та працювати далі.

Команда Web Academy вирішила додати вам ще більше мотивації для вивчення програмування. Тому розпитали фахівців рівня Senior про те, на що робити акценти початківцям у Front-End та яких помилок уникати, щоб розвиватись у сфері. 

Ілля Литвинов

Senior Front-End Engineer в Wix.com

Які інструменти та технології освоювати Junior Front-End Developer’у?

Для розробника Junior всі технології будуть корисними, але акцент я б робив на фундаментальних знаннях в CSS і JavaScript. Плюсом також буде знання основ одного з найпопулярніших фреймворків: React або Angular, можливо, Vue. І звичайно, не варто забувати про знання таких інструментів як npm та webpack. Це теж добрий плюс на старті.

Які скіли прокачувати?

За hard skills потрібно підвищувати експертизу у перерахованих вище технологіях. І, звичайно, знати і регулярно покращувати свою англійську.

З soft skills – навичка комунікації. Потрібно банально вчитися спілкуватися з колегами однією мовою, вчитися висловлювати м’яко критику.

Для Junior’a важливо адекватно реагувати на критику з боку колег. Цього дійсно часто не вистачає розробникам-початківцям.

Чи можна стати гарним Front-End Developer’ом, якщо раніше не було досвіду в програмуванні?

Звичайно можна. Все залежить тільки від прагнення та здібностей кожної людини.

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

Наталія Теплухіна

Principal Engineer в GitLab

Які інструменти та основні технології вивчати Junior Front-End Developer’у?

HTML, CSS, JS — в першу чергу. Зауважую, що зараз побільшало розробників, які намагаються розпочати навчання одразу з фреймворків, пропускаючи базу. Я вважаю, що це не правильно. У тій же документації Vue ми припускаємо, що читач добре знає все перераховане вище.

Освоїли основи — вивчіть один з фреймворк на рівні «можу зробити простий додаток». Один, бо так не заплутаєтесь. А потім переходити «з фреймворку на фреймворк» відносно нескладно.

Невелика порада: при вивченні JS приділіть увагу розумінню асинхронності та об’єктів як типів. На мій досвід, багато розробників-початківців фейляться саме в цих двох областях.

Ще з обов’язкового:

  • CSS-препроцесори. Де-факто вже стандарт індустрії.
  • Git. Його вам у будь-якому випадку доведеться використати.
  • Тестування. Хоча б дуже базово.

Які навички прокачувати?

Про hard skills читайте вище.

Серед soft skills для мене найважливіше вміння комунікувати. Не бійтеся ставити запитання, не бійтеся здатися дурним чи некомпетентним, якщо чогось не зрозуміли! Набагато гірше приховувати нерозуміння, і зрештою затягувати виконання завдання.

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

Комунікація – наріжний камінь роботи в команді. З досвіду, 90% проблем навіть не сталися б, якби була б грамотна комунікація сторін.

Чи можна стати гарним Front-End Developer’ом, якщо раніше не було досвіду в програмуванні?

Так, можна. Один із найкращих розробників, яких я знаю, автор більш ніж половини документації Vue.js — у минулому вчитель німецької мови. Що ще тут додати.

Три найпоширеніші помилки Front-End Developer’ів на старті кар’єри.

  1. Першу я вже згадала – одразу вчити фреймворки, не освоївши необхідні основи.
  2. Поглинати безліч теоретичних знань у вигляді курсів/книг/доповідей, не підкріплюючи все це практикою. «Теорія, мій друже, суха, але зеленіє дерево життя». Якщо хочете вивчити технологію, пишіть на ній невелику програму.
  3. Боятися. Я знаю, що розробник-початківець може з деякою побоюванням дивитися на той вал технологій, який зараз являє собою Front-End платформа, і думати: «Боже мій, як я це все вивчу, життя не вистачить…». Починайте з малого, робіть baby steps у навчанні, і все прийде!

Сергій Бабіч

Lead front-end developer в Jonny Git

Які інструменти й технології має опанувати Junior Front-End Developer?

Це складне питання, адже ринок своєрідний. У нас шукають не Front-End розробників, а дуже вузько заточених спеціалістів. Тобто всі хочуть найняти React-розробника чи Angular, того, чий сет навичок дозволяє на мінімальному рівні задовольнити вимоги проєкту.

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

Щоб стати хорошим спеціалістом, треба спочатку вивчити основи. Необхідно знати HTML, CSS, JS.

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

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

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

Які навички прокачувати?

Для Middle Front-End Developer’а, я вважаю, soft skills менш пріоритетні, ніж hard skills. Middle — це, по суті, робоча конячка, яка тягне на собі більшість завдань проєкту.

Головне, щоб він вмів розв’язувати ці завдання самостійно, бо якраз самостійність є тою рисою, яка відрізняє Middle розробника від Junior’а.

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

А от завдання Junior Developer’а в нормальних компаніях і колективах — вчитися на практиці. До нього не висувають якихось надзвичайних вимог чи очікувань.

Якщо Junior здібний, він швидко стане хорошим Middle. Якщо людина вміє вчитися, це означає, що вона вміє говорити з людьми, вміє вчасно подавати сигнали, коли щось іде не так, коли вона чогось не розуміє. Тобто основний soft skill для Junior’а — вміння розмовляти й визнавати свої слабкості, вчасно просити про допомогу. Хоча багато людей мають внутрішній психологічний блок щодо цього.

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

Hard skills — річ набувна. Стукати по клавіатурі можна будь-кого навчити. А користуватися тим, що ви настукали — ні. По суті, hard skills — це знання теорії, яку в 90 % повсякденної роботи ти не використовуєш. Набагато важливіше те, як ти користуєшся інструментами, які знаєш. Можна знати все, але не вміти нічого.

Чи можна стати гарним Front-End Developer’ом, якщо раніше не було досвіду в програмуванні?

Можна. Я тому приклад, адже не маю профільної освіти (хіба один предмет «Алгоритмічні мови та основи програмування» на перших курсах вчив). Специфіка Front-End розробки й загалом програмування якраз цікава тим, що тут не потрібна супер профільність.

Програмування ну дуже просте, а стати Front-End Developer’ом може будь-хто за дуже короткий час. Звісно, це не буде Senior за три місяці, як дехто обіцяє, але отримати базу в такі терміни реально.

Я у Твіттері час від часу бачу дуже круті дописи з хештегом #100DaysOfCode, в яких люди пишуть: «Мені 50, я нічого не знав про програмування, але почав кодити». Свої історії успіху розповідають колишні маркетологи, офіціанти — будь-хто, хто знайшов у собі сили й бажання займатися.

Основна риса, яка дозволяє сьогодні стати розробником — це посидючість. Просто вчити й слухати подкасти чи дивитися відео недостатньо. Треба писати, писати, писати, видаляти й знову писати код. Я, коли починав свій шлях, перші два місяці взагалі не розумів, що роблю (хоча зарплату вже отримував). Якось складав код докупи, воно якось працювало, але що відбувалося — не розумів. А потім в один день все склалося в одну картинку.

Дуже крута риса Front-End у тому, що ти швидко бачиш результат своєї роботи. В одному вікні пишеш код, в іншому — оновлюєш сторінку й бачиш зміни одразу. Front-End дуже відкритий до людей. Головне — хотіти розібратися й мати бажання працювати.

Три найрозповсюдженіших помилки, які Front-End Developer’и роблять на старті кар’єри.

  1. Резюме. Найбільша помилка Junior’а. В нашій галузі часто спрацьовує ефект Даннінга — Крюґера (я також через таке проходив). Ти тільки починаєш, але тобі вже здається, що ти знаєш все й готовий Ілону Маску UI в ракети писати. А насправді людина знає дуже мало.
  2. Я, можливо, для новачків відкрию страшенну таємницю, але в багатьох Senior’ів й вище резюме вкладається в одну сторінку, максимум — дві. Причина дуже проста: ми в резюме пишемо лише те, про що дійсно готові говорити на співбесіді. Наприклад, якщо ви не готові на співбесіді говорити про специфікацію XML, не пишіть її там. Це банальні речі.
  3. Невпевненість у собі — страх подаватися на ту чи іншу вакансію, надсилати резюме, говорити з рекрутерами. Чомусь у нас ще з самого дитинства закладений страх відмови, ми дуже переживаємо, коли нам відмовляють, вважаємо, що це якимось чином характеризує нас персонально. Насправді — ні. Це всього лиш означає, що зараз ваш поточний стан знань і навичок не задовольняє доволі сухі вимоги до проєкту, на який ви проходили співбесіду. Ну, звичайно, якщо ви поводили себе не найкращим чином на співбесіді, буде й ваша провина, але загалом — справа не в вас. Тому подавайтеся! Навіть якщо бачите, що задовольняєте вимоги, описані у вакансії, на 50%. Всяке може бути! Часто трапляються ситуації, коли вакансії пишуть люди, не знайомі з проєктом. Можливо, на співбесіді виявиться, що вакансія не така страшна. Або раптом ви сподобаєтеся роботодавцям і вони вирішать взяти вас, бо щось їх зачепило, вони побачили, що з вами буде приємно працювати. Це я кажу як людина, яка бувала з обох сторін столу, за яким проводять співбесіду.
  4. Не спілкуватися з людьми. Новачкам важливо ніколи не боятися, не соромитися знайомитися з людьми. Заходи на кшталт конференцій — це місце, де ви можете заводити знайомства, отримувати досвід і просто круто проводити час. Я, як організатор конференцій, кажу вам: найголовніше там не самі доповіді, а ком’юніті, можливість завести знайомства, напряму поспілкуватися зі спікерами, отримати інсайти.

Наша галузь побудована на людях. А якщо ви новачок, то спілкуватися й знайомитися — це ваш обов’язок.