Як стати програмістом, не маючи профільної освіти? Що потрібно, щоб знайти першу роботу? Які навички варто розвивати? Своїм досвідом поділився Назарій Мураль, наш Full Stack JavaScript Developer.

Назарій Мураль, Full Stack JavaScript Developer

Про початок

“Я працюю в ІТ з 2017 року. Профільної освіти не маю: закінчив менеджмент та управління персоналом у Харківському університеті залізничного транспорту. Однак ще під час навчання зрозумів, що за спеціальністю працювати не хочу.

Водночас мій найкращий друг вже працював Java Developer в одній з компаній. Ми часто обговорювали його роботу: він розповідав про проєкти, ділився враженнями про процес написання коду. Мене це надихнуло. Я також захотів створювати щось нове та цікаве, що допомагало б людям. Тому задумався — чому б не спробувати себе в ІТ?

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

Як на мене, це одна з найкращих мов для старту. З неї можна відносно легко почати, навіть якщо зовсім немає досвіду у програмуванні. Крім цього, мова дуже універсальна та має велику кількість фреймворків як для фронтенд, так і для бекенд задач. Це дозволяє у майбутньому працювати як Full Stack Developer. А оскільки я не люблю довго “стояти на місці”, вирішив, що це непоганий план для розвитку 🙂

Хто такий Full Stack Developer?

Full Stack Developer — це спеціаліст, який бере активну участь у всіх етапах розробки проєкту. Він/вона працює над створенням правильної структури, яка надалі зможе легко розростатись та витримувати максимальні навантаження. Тому такому спеціалісту критично важливо розуміти, як усі частини коду взаємодіятимуть між собою та з зовнішніми компонентами.

Основними фронтенд задачами Full Stack Developer є: реалізація дизайну за допомогою HTML/CSS, робота з фреймворками, взаємодія з API та розгортання клієнтської частини на веб сервісах (таких як AWS, Digital Ocean, Firebase, Netlify, Azure, Google).

Серед бекенд задач: створення якісного API для фронтенду, розробка бізнес-логіки, інтеграція коду зі сторонніми API, робота з базою даних, написання тестів та деплоймент (а саме робота з AWS, Azure, Google тощо).

Саме тому Full Stack Developer важливо добре володіти інструментами як для фронтенд, так і для бекенд розробки.

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

Для бекенду обрав Node.js. Ця платформа крута тим, що дозволяє створювати високонавантажені продукти — наприклад, чати чи сервери, де є велика кількість одночасних запитів від клієнтів. Крім цього, її використовують багато масштабних компаній: PayPal, LinkedIn, Netflix тощо.

Як працює Full Stack Developer

Мій стандартний день складається з коду, мітингів, кави та спілкування з колегами 🙂

Щодня я обов’язково приділяю по 30-40 хвилин на перегляд новин у світі ІТ. Дивлюсь, що з’явилось нового, читаю твіти Дена Абрамова — великого констриб’ютора у React community. Також переглядаю телеграм NodeUA — JavaScript and Node.js in Ukraine. Це маленький Stack Overflow по Node.js для України, де постять багато корисних новин.

А після цього — код, код та ще раз код 🙂

Мій робочий день триває мінімум 8 годин, але часто буває і довше. Крім цього, багато часу я витрачаю на навчання.

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

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

Переваги та труднощі у професії

Основний плюс — це всебічний розвиток. Працюючи Full Stack ти пересікаєшся зі всіма процесами розробки: від побудови структури проєкту до деплойменту та релізу. Цей досвід робить тебе затребуваним спеціалістом на ринку.

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

З іншої сторони, це велика відповідальність. Якщо і фронтенд, і бекенд пишеш ти, то і відповідаєш за якість коду також ти.

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

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

Що потрібно, щоб стати Full Stack Developer

Якнайперше — бажання постійно вчитися. Full Stack залучений у більшість процесів розробки, тому, щоб робити все якісно, потрібно бути справді кваліфікованим спеціалістом.

Для роботи важливо добре володіти інструментом. Можна обрати лише одну мову та розвиватись на її базі, а можна вивчити кілька.

Якщо досвіду у програмуванні зовсім немає, не варто одразу пробуватись на Full Stack. Краще почати з Front-end: вивчити HTML та CSS, тоді перейти на JavaScript. Останнім етапом вивчити якийсь фреймворк. Раджу Vue.js — він простіший, ніж React, тому поріг входу через нього легший.

Особисто я свій розвиток як програміста почав з курсу від гарвардського університету CS50. Це безкоштовні відеолекції, на яких спеціалісти з технічним досвідом показують, як працюють алгоритми у програмуванні. Пам’ятаю, я залишився у захваті від побаченого 🙂 Тому і новачкам раджу починати з нього.

Також дуже корисним є ресурс codewars. Я його називаю спортзалом для програмістів 🙂 Туди можна заходити кожен день та виконувати певні задачі. Більшість із них — на написання алгоритмів та логіки, що допомагає набити руку та розвинути аналітичні навички. Також там можна здобути перший досвід виконання реальних завдань.

Після цього можна починати шукати роботу. А здобувши досвід, поступово вивчати бази даних та пробуватись на Full Stack.

Як розпочати кар’єру Full Stack Developer

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

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

Також ніколи не варто зупинятись на досягнутому. Потрібно любити те, що ти робиш, і прагнути зробити це якнайкраще. Тоді все вдасться :)”.

Корисні ресурси для новачків

JavaScript

Gym for devs

React

Node.j

Best practices

Статті/блоги

Книжки

 

Текст: Марина Романцова