JavaScript — найпопулярніша мова програмування серед українських розробників. А питання про те, як увійти в ІТ, не втрачає актуальності, тому ми запускаємо рубрику для початківців «Код професії» про те, як вивчити мову програмування та знайти першу роботу. Для цієї статті ми поспілкувалися з досвідченими JavaScript-розробниками Владом Балабашем (AB Soft), Андрієм Шумадою (WalkMe), Іваном Кивацьким (Svitla Systems), Андрієм Кладочним (Rolique) та Максимом Рудним (Fiverr) та зібрали їхні поради в один матеріал.
Що таке JavaScript
JavaScript — високорівнева мова програмування. Вона підтримує імперативний, функціональний, подієво-орієнтований підходи, має динамічну типізацію та застосовується для запису послідовних операцій — «сценаріїв» чи «скриптів». Такі послідовності зазвичай інтерпретуються, а не компілюються, а тому не потребують додаткових програм чи інструментів перетворення на інший рівень кодування.
Мову вебпрограмування JavaScript використовують переважно у Front-end розробці, проте завдяки платформі Node.js нею можна писати і Back-end. JavaScript дає змогу створювати застосунки та сайти. Крім того, вона виходить за межі браузера і застосовується для написання мобільних та десктопних застосунків, вебсерверів тощо. JavaScript вважають такою, що підходить початківцям, оскільки вона має відносно прості програмні інструкції та для запуску першого рядка коду потребує тільки браузера.
Згідно з останнім рейтингом мов програмування, JavaScript залишається найпопулярнішою мовою серед українських програмістів усіх рівнів.
Матеріали по темі:
- Кращі книги з JavaScript 2021 року
- Frontend-розробник та його кар’єра – який шлях розвитку обрати?
- 7 корисних GitHub-проєктів для всіх програмістів JavaScript
- 10 JavaScript-фреймворків, які варто вивчити в 2021 році
- Кращі JavaScript-фреймворки і тенденції веброзробки у 2021 році
- Безкоштовні курси для ІТ-початківців: Front-End, JavaScript, Java, Python та основи програмування
Крім того, JavaScript стоїть на другому місці в рейтингу мов, які респонденти вибирали як першу для вивчення.
За цим лінком можна подивитись середні зарплати JavaScript-розробників з різним досвідом. На момент публікації медіанна зарплата JavaScript-розробника — $2500. Зарплата Trainee: $300 — $500. Зарплата Junior: $650 — $1200.
А тут можна переглянути відкриті вакансії у категорії Front-end. На момент публікації статті відкрито 451 вакансію.
Як бачимо, JavaScript добре підходить для початківців, тож переходимо до того, як її вивчити. Кілька JavaScript-розробників розповіли, які технології потрібно вивчити, які ресурси читати та як шукати роботу.
Які технології варто вивчити в межах JavaScript
Насамперед потрібно визначитися з напрямом — Back-end чи Front-end розробка. Якщо людина лише починає вивчати програмування і JS — це її перший досвід, то розробники радять обрати Front-end. Так початківець за меншу кількість інвестованого часу зможе швидше побачити результат і зрозуміти, чи йому взагалі подобається веброзробка.
Для цього, крім знань самої JS, потрібно вивчити HTML (мову розмітки), CSS (формальну мову опису зовнішнього вигляду документа, написаного з допомогою HTML), інструменти браузера.
У більшості сучасних проєктів використовують один з фронтенд-фреймворків чи бібліотек (React/Angular/Vue). Проте, перш ніж переходити до фреймворків, варто добре навчитися писати код за допомогою чистого JavaScript (Vanilla JS). Маючи ґрунтовні базові знання, розібратися з будь-яким JS-інструментом буде легше.
Освоївши JS, HTML та CSS, ви вже зможете створювати власні проєкти. Їх потрібно зберігати не в себе на комп’ютері, а у віддаленому репозиторії. Тут на допомогу прийде система контролю версій Git. Її освоюють всі, хто починає свій шлях у програмуванні. Також необхідне базове розуміння GitHub.
Щодо Front-end напряму, то вам також знадобиться знання і розуміння DOM-моделі сторінки, методи маніпулювання DOM.
Більше про технології, з якими ви можете стикнутися на своєму шляху до веброзробки, можна знайти в цій статті.
Якщо у вас був досвід інших мов, наприклад, PHP, Python, Ruby, то, ймовірно, ви оберете Back-end напрям JavaScript. В такому разі потрібно навчитися працювати з Node.js, знати принципи побудови Web API.
Іншими технологіями, які потрібно опанувати, будуть Express (фреймворк для Node.js), MongoDB (популярна документоорієнтована база даних). Якщо будуть сили на щось більше, то розробники радять також PostgreSQL (об’єктно-реляційна система управління базами даних) та Docker (контейнеризатор застосунків).
Як орієнтири можна використовувати такі «дорожні мапи»: Front-end і Back-end.
Як краще вчити JS — на курсах чи самостійно
Це питання є індивідуальним і відповідь залежить від можливостей, часу, бажання та інших факторів.
Можна вивчити мову самостійно, на курсах або під час стажування в компанії. Один з варіантів — опанувати основи самостійно, а потім піти на безкоштовні курси з відбором (тобто на такі, куди беруть вже з базовими знаннями). Вони дадуть вам уявлення про екосистему і розширять кругозір в JS, підкажуть, куди рухатись далі. Крім того, після завершення таких безкоштовних курсів найкращим учням пропонують стажування/роботу в компанії, яка їх проводить.
Щоб легше було визначитись з тим, як краще навчатись, поговорімо про переваги та недоліки кожного зі способів.
Самостійне навчання
Переваги:
- Матеріалів в інтернеті досить багато, і є великий вибір доступних і якісних гайдів.
- Це безкоштовно або дешево (за вартістю книги чи підписки на певний ресурс).
- Швидкість і темп свого навчання ви контролюєте самі, можете займатися, коли вам зручно, і не підлаштовуватися під когось.
- Якщо ви вже маєте досвід у розробці, зможете витратити менше часу на вивчення JS, ніж якби пішли на курси, що тривають пів року — рік.
- Можна власноруч обирати формат споживання інформації — відео або текстом.
Важливо! Розробники радять знайти ментора, якщо ви обрали шлях самостійного вивчення мови. Оскільки на певному етапі ви можете потрапити в глухий кут і не знайти рішення. Крім того, часом самому важко побачити свої помилки, а ментор підкаже, як зробити код чистішим та якіснішим, пояснить особливості його написання на прикладі кожної окремої ситуації.
Недоліки:
- Хороший ментор — це дорого, і таким чином нівелюється дешевизна цього способу навчання.
- Без ментора може бути складно розпізнати та зрозуміти свої помилки, а з кожною наступною нерозвʼязаною задачею може знижуватися і мотивація до навчання.
- Складно розібратися, що й за чим вчити, де і як знайти необхідні ресурси.
- Складно зрозуміти, чи досягли ви вже рівня, з яким можна йти на стажування чи шукати роботу.
- Вивчення мови може затягнутись, якщо немає навичок самоорганізації.
Курси
Переваги:
- Ви перебуваєте в колективі людей, які вивчають те саме, можуть поділитися знаннями та досвідом, допомогти уникнути блокерів чи проблем.
- У вас є викладач або ментор, який може дати відповіді на ваші запитання.
- Ви потрапляєте в оточення мотивованих людей, це дає змогу підтримувати належний рівень натхнення.
- Графік занять на курсі не дасть вам «забити» на навчання.
- Якщо курси проводить ІТ-компанія, то є великі шанси, що вас навчать саме того, що потрібно цій компанії, і ви зможете претендувати на стажування чи посаду в ній.
Однак розробники радять серйозно поставитися до вибору курсів: читати відгуки, розпитати тих, хто там навчався, довідатися про досягнення учнів, дізнатися більше про майбутнього викладача. Більше інформації про те, які в Україні є ІТ-курси та як їх обрати, ви можете знайти на DOU за тегом «курси». Радимо звернути увагу на статтю «Інструкція з вибору IT-курсів для початківців».
Недоліки:
- Курси — це дорого. Тривалі курси можуть коштувати як семестр навчання в престижному університеті, а такі гроші є не у всіх.
- Якщо ви недостатньо мотивовані, навчатися буде важко, а відставши від решти, є великий шанс все покинути.
- Курси не гарантують працевлаштування та карʼєри (самостійне навчання теж не гарантує, проте ви хоча б не платите за це гроші).
- Курси можуть тривати довго, близько року.
- На навчання потрібно буде знаходити час і підлаштовуватись під графік.
- Щоб потрапити на безкоштовні курси при ІТ-компаніях, потрібно мати базові знання та часто гарне володіння англійською.
Тепер ви можете все проаналізувати та визначитися зі способом вивчення мови програмування, тож переходимо до запитання про те, які ресурси вам допоможуть.
Корисні ресурси для вивчення JavaScript
«Javascript для дітей», Морґан Нік. Книга, з якої можна почати, якщо немає досвіду в програмуванні.
«JavaScript: The Definitive Guide 7th Edition», David Flanagan. Книга підходить для тих, хто вже має базовий досвід. Важливо виконувати завдання після тем на ресурсах і пробувати запускати приклади не на сайті, а переписати їх руками — що більше конструкцій коду ви напишете, то швидше їх зрозумієте.
«JavaScript: The Good Parts», Douglas Crockford. Книга розповідає про те, як використовувати JavaScript найбільш ефективно, усуваючи недоліки мови.
«Eloquent JavaScript», Marijn Haverbeke. Книга з якісним поясненням тем і великою кількістю прикладів до кожної з них. Гарно підійде для початківців.
«You Don’t Know JS», Kyle Simpson. Для тих, хто хоче орієнтуватися у найдрібніших деталях мови.
«Функціональне програмування на JavaScript», Луїс Атенсіо. Це складніший рівень, але автор вдало розкриває деякі аспекти розробки на JS та дає відповіді на фундаментальні запитання щодо функціонального програмування.
MDN. Так звана «Біблія JavaScript».
FreeCodeCamp. Англомовний сайт, має розділи і для початківців, і для більш досвідчених кодерів.
Канал Maksym Rudnyi на YouTube. Автор ділиться своїм досвідом та навчає JS українською мовою.
Посібник від Mozilla Developer Network.
Корисні статті на DOU
Що потрібно вчити, щоб стати веброзробником.
Советы сеньоров: как прокачать знания junior Front-end/JavaScript.
Front-end Developer: хто він та скільки заробляє. Аналітика DOU.
Пошаговое руководство: от Intermediate к Senior Engineer в JavaScript.
Для чего Back-end разработчику учить JavaScript.
Статті рубрики «Front-end дайджест».
Чому JavaScript — перспективна мова програмування? Поради початківцям.
Огляд фреймворків JavaScript. Що, для чого і коли використовувати.
Як шукати роботу початківцю в JavaScript
Оскільки ви тільки вивчаєте JavaScript, то у вас ще немає кількох років досвіду комерційної розробки вебзастосунків, які можна було б додати до резюме. Крім того, через високу конкуренцію початківцям зараз досить складно знайти першу роботу.
Перед пошуком роботи розробники радять реалізувати два-три простеньких проєкти (наприклад, список задач чи застосунок з прогнозом погоди) і залити їх на GitHub. Можливість на етапі відбору кандидатів подивитись на код може стати вашою перевагою.
Також тренуйтеся розв’язувати задачки й будьте готові це робити під час інтерв’ю. Не відмовляйтеся виконувати тестове завдання. Зараз є безліч сервісів, де можна потренуватись. Наприклад: LeetCode, Codewars, HackerRank.
Підтягніть свою англійську. В реаліях українського ІТ-ринку гарна англійська значно збільшує шанси знайти роботу.
Ще одним альтернативним джерелом для досвіду може бути відкритий код програмного забезпечення. Періодично проєкти з відкритим кодом мають задачі для людей без досвіду, але з бажанням працювати. Іноді таку роботу навіть оплачують — вам потрібно серфити GitHub у пошуках цікавих проєктів і корисного досвіду.
✅ Що варто вказати в резюме
- Посаду, на яку ви претендуєте.
- Список технологій, якими володієте, можете застосовувати та готові щодо них відповідати на запитання.
- Стажування, якщо десь проходили. Опишіть, що там робили, які були завдання та чого досягли.
- Курси та навчання, освіта. Вона не гарантує ваших знань, але показує рекрутеру, що ви хоча б орієнтуєтесь у сфері.
- Практика та досвід — вкажіть проєкти, які ви створювали для себе, своїх знайомих чи на фрилансі. Залийте свій код у публічний репозиторій на GitHub.
- Англійська мова — її знання на старті карʼєри може компенсувати прогалини в знаннях JS.
- Soft skills. Вміння працювати під тиском чи в стислі терміни, бути командним гравцем чи вирішувати конфлікти, заменеджерити певні процеси.
❌ Про що краще не писати
- Досвід, який взагалі не повʼязаний з позицією — не потрібно в резюме на фронтенд-розробника писати про те як, ви працювали барменом, офіціантом тощо.
- Негатив про попередню роботу чи колег — таких кандидатів намагаються уникати.
- Не припускайтеся граматичних помилок. Якщо сумніваєтесь, попросіть вичитати резюме редактора/коректора.
Більше про те, як написати хороше резюме, читайте в цих статтях:
- Як оформити резюме, щоб конкурувати з найкращими кандидатами. Поради на реальному прикладі.
- Как помочь работодателю выбрать ваше резюме. Советы тимлида.
- Як Junior-спеціалісту створити перше резюме. Покрокова інструкція з поясненнями.
Також варто перед підготовкою до співбесіди звернути увагу на статтю «Співбесіда з JavaScript. 300+ запитань для Junior, Middle, Senior».
Роботу розробники радять шукати на Djinni та DOU. На DOU є розділ «Перша робота» з курсами, стажуваннями та вакансіями лише для початківців. Також варто створити акаунт в LinkedIn і додати в друзі якомога більше розробників та рекрутерів. Про те, як правильно заповнювати LinkedIn-профіль, читайте тут.
Будьте готовими до відмов і обов’язково запитуйте в інтерв’юєрів, що варто підтягнути. Також будьте готові до того, що про результати співбесіди вам не напишуть взагалі. Але не засмучуйтесь і продовжуйте шукати роботу — віримо, що вам все вдасться!