Без ІТ-курсів та технічного вишу: як самостійно вивчити Front-end розробку та стати тимлідом
Усі статті, обговорення, новини про Front-end — в одному місці. Підписуйтеся на телеграм-канал!
Привіт! Мене звати Владислав, я — Front-end Lead у Brainstack. В ІТ я потрапив сім років тому, не маючи жодного технічного бекграунду. Самостійно з нуля опанував Front-end розробку, здобув досвід, працював у різних компаніях і став тимлідом.
Мій шлях був зовсім іншим, ніж той, про який зазвичай пишуть у статтях на DOU. У 10 років я не почав програмувати, а в 17 — не вступив до вишу на спеціальність Computer Science. Натомість мій кейс є прикладом того, що для успіху в ІТ не обов’язково мати глибокі знання з математики, диплом КПІ чи витрачати гроші на дорогі курси. Єдине, що дійсно важливо, — це наявність вільного часу та мотивації, адже доведеться багато вчитися самостійно.
У статті я поділюсь, які навички мені знадобилися на шляху від пошуку першої роботи у Front-end до отримання ролі тимліда.
Зробіть навчання своєю фултайм-роботою
Чотирьох років навчання на факультеті банківської справи вистачило, щоб я зрозумів: це не те, що я хочу робити в житті. Фінансові перспективи також не вражали. Зовсім інша справа — ІТ. Якось я натрапив на вакансії розробників, побачив їхні зарплати й зацікавився, що потрібно знати, щоб заробляти такі гроші. На той момент ішлося про зарплату, яка була втричі вищою за ту, на яку я міг претендувати за спеціальністю.
Процес вибору напряму розпочався з вивчення описів вакансій та дослідження обов’язків різних спеціалістів в ІТ. Зрештою я зупинився на Front-end розробці та React. Цей вибір базувався на двох чинниках: по-перше, цей напрям видався мені найдоступнішим для входу в професію, а по-друге, створення сайтів виглядало найцікавішим.
Я склав план навчання. Для цього відкрив близько 30 вакансій Front-end розробників і виділив ключові вимоги до навичок, які повторювалися майже в кожному описі. Ось як би виглядав цей список сьогодні:
Верстка
- знання більшості HTML5-тегів і CSS3-властивостей;
- вміння використовувати Sass, Styled Components, Tailwind CSS;
- створення адаптивних landing page за макетом у Figma.
JavaScript
- опанування підручника uk.javascript.info на 60%;
- впевнена робота з методами для роботи зі строками, масивами, об’єктами та розв’язання подібних задач на live-coding;
- використання TypeScript для типізації компонентів і функцій;
- використання ESLint та Prettier;
- знання jQuery і навички підключення його бібліотек.
React
- використання всіх React Hooks та більшості популярних бібліотек для React: навігація, валідація форм, додавання слайдерів та інше;
- підключення готових компонентів (форм, таблиць, кнопок) із популярних UI-бібліотек, як Material UI та Ant Design;
- підключення store-менеджерів: Redux (thunk, saga), MobX, Recoil.
API
- розуміння, як працює інтернет, знання протоколів передачі даних та кодів HTTP-помилок;
- вміння інтегрувати готове REST API з JWT-токеном і типовими CRUD-операціями, використовуючи бібліотеку axios;
- робота з React Query, знання про Apollo/GraphQL.
Інше
- знання типових Git-команд: робота з branch, commit, merge, resolve conflicts;
- мати уявлення про Agile, Scrum, Kanban, а також розуміти SDLC;
- зібрати власні знання в декількох пет-проєктах для портфоліо, які бажано мають бути не домашнім завданням з курсів з типовим Uber Eats.
Для новачка це величезний обсяг інформації, тому я вирішив зробити навчання своєю фултайм-роботою. Я заздалегідь відклав невелику фінансову подушку, щоб мати можливість повністю присвятити себе навчанню. Протягом пів року, з
Почав із класичного підручника javascript.info, а отримати глибше розуміння допомогла книга «You Don’t Know JS». Я переглядав численні ролики на YouTube, створював конспекти й повторював за лекторами.
Безліч інформативних відео можна знайти на YouTube за простими запитами «html css з нуля» і «frontend react з нуля» — обирайте будь-який канал, який вам подобається, і починайте навчання. Цих безплатних відео цілком достатньо, щоб знайти й першу роботу, і другу, і взагалі стати Senior-розробником. Інша справа — їх доведеться подивитися не одну сотню.
Навколо теми навчання в ІТ та пошуку першої роботи є чимало міфів, які можуть вас демотивувати або, навпаки, давати хибні надії на швидкий результат. Тому перш ніж перейти до опанування нової професії, пропоную з ними розібратися.
Міф № 1. Платні курси за кілька місяців зроблять з вас розробника та допоможуть знайти першу роботу.
Це далеко від реальності. Є випадки, коли люди за кілька місяців навчання знаходять роботу, але це радше виняток. У середньому для здобуття позиції Junior Frontend я б розраховував мінімум на пів року, а краще рік щоденного навчання у фултайм-режимі. Для складніших напрямів цей строк може збільшуватись до кількох років.
Міф № 2. Для професії ІТ-розробника необхідний математичний бекграунд та профільна технічна освіта.
Проєкти та напрями розробки в ІТ можна умовно поділити на три категорії: ті, де технічна освіта є обов’язковою, де вона бажана та де вона взагалі не потрібна. Типові фронтенд-проєкти зазвичай належать до останньої категорії, де значення мають практичні навички, а не диплом.
Міф № 3. Професія розробника надто складна, вже були спроби й у мене не вийшло, це «не для мене».
Часто ті, хто зупиняються на півдорозі, просто не витримують навчального навантаження. На вас чекає величезний обсяг специфічної інформації, яку потрібно запам’ятовувати. Проблема полягає не тільки в складності матеріалу, але й у його кількості. У процесі навчання ви можете плутатися в синтаксисі, не розуміти, який метод масиву краще використати, або забувати CSS-властивості. Майже напевно, що ви почнете з вивчення HTML і CSS, перейдете до JavaScript, відчуєте складність, повернетесь до верстки й зрозумієте, що забули половину того, що вже вивчили. Просто вчіть далі. Забули — повторіть, все одно не запамʼятовується — йдіть далі, повернетеся до цієї теми пізніше. Мало хто запамʼятовує такий матеріал навіть з пʼятого разу, ви не самотні в цьому. Це питання дисципліни та мотивації.
Міф № 4. Для роботи в ІТ обовʼязково потрібно знати англійську мову.
Не обовʼязково. Є сотні українських компаній, де працюють з локальними замовниками або розробляють власний продукт, — у цих компаніях немає потреби спілкуватися англійською, а для розуміння технічної документації вистачає рівня А2 та перекладача.
Першу роботу отримують після досягнення певного етапу в навчанні
Після того, як я опанував основні навички та зруйнував міфи на практиці, пошук першої роботи в ІТ зайняв у мене два тижні. За цей час я відгукнувся на 70 вакансій, пройшов дві співбесіди та виконав одне тестове завдання.
У виборі напряму frontend є лайфгак: перед позицією Trainee/Junior Frontend Developer є ще одна позиція, на яку вимоги менші, — це HTML Coder («верстальник» та інші варіації назви). Замість React може вимагатись робота з WordPress, а бонусом іде досвід створення email-листів.
За шість місяців фултайм-навчання я встиг опанувати лише HTML/CSS/Sass, поверхнево JavaScript і jQuery, а також Git. На вивчення React не вистачило ні сил, ні фінансової подушки, тим паче знання постійно забувались.
Чотири роки тому моя дружина змінила професію з IT Recruiter на Front-end Developer, звільнившись і так само навчаючись у фултайм-режимі. Вона змогла за вісім місяців вивчити не тільки верстку та JavaScript, але й React з необхідними бібліотеками та знайти свою першу роботу розробницею за місяць. Одного року щоденного навчання повинно вистачити, щоб із нуля отримати роботу в ІТ.
Тож моя перша робота була пов’язана виключно з версткою, для якої тоді ще використовували макети в Adobe Photoshop. Знаю, що багато Front-end розробників верстку не люблять, але мені сподобалось. До того ж не варто недооцінювати цей досвід: за період роботи в тій компанії була перероблена не одна сотня лендінгів, а здобуті знання стають у пригоді й досі на позиції тимліда.
Змінюйте компанії не заради зарплати, а заради досвіду
Щоденна верстка місяць за місяцем почала трошки набридати, тож я перейшов до іншої компанії, де мої завдання передбачали не тільки верстку, але й розробку фронтенд-логіки та співпрацю з бекендом. Там я використовував такі технології, як Sass, jQuery, axios, а також продовжив вивчення React. На жаль, менш ніж через рік фінансування стартапу закінчилось.
На наступну роботу я прийшов уже як React-розробник, ставши першим і деякий час єдиним технічним спеціалістом на проєкті, хоча все ще був джуніором. Згодом команда почала розширюватися, і я допомагав наймати ще п’ятьох розробників. Цікавим досвідом було проводити співбесіди з кандидатами, рівень яких був вищим за мій: швидко прийшло розуміння, що не варто ставити запитання, на які не знаєш точної відповіді.
Також я погодив на роботу кандидата, який через тиждень зізнався, що не має досвіду роботи та не розуміє, як виконувати завдання. Початківець виявився перспективним і талановитим, а зараз і сам успішно обіймає позицію тимліда. Але після цього випадку я ніколи більше не проводив технічні інтерв’ю без live-coding, а також навчився краще перевіряти резюме на справжність, що досі допомагає під час інтерв’ю.
Якість коду як ключ до успіху в розробці
Інший проєкт, на який я прийшов уже Middle-розробником, був технічно досить складним, але водночас найцікавішим з усіх, де я працював. Тут я вже використовував React/GraphQL/Apollo, які вивчав протягом роботи. Це був досить великий проєкт з командою з 12 досвідчених Front-end розробників, включно з мідлами, сеньйорами та техлідами.
Я вперше стикнувся з по-справжньому професійним підходом до розробки. Код-рев’ю одного мердж-реквесту могло принести до 100 правок, але це не було проблемою — навпаки, це був шанс навчитися та покращити свої навички. Правила написання коду були настільки пропрацьованими, що стиль команди був єдиним, і відрізнити, хто писав певну частину коду без GitLens, було дуже складно — усі стилістичні холівари були задокументовані, а код писали так, ніби його додавала одна людина.
Процеси були налагоджені ідеально, ніхто нікуди не поспішав. Це дозволяло зосередитися на якості та деталях. Наприклад, над однією складною таблицею з рекурсивними розрахунками я працював цілий місяць — завдання було для мене досить непростим. В багатьох компаніях вже давно б запитали, чому так довго, але тут було розуміння всієї складності завдання, тому вкінці навіть похвалили.
Ще я вперше побачив, як же легко додається нова функціональність у великий проєкт, коли для цього не потрібно переписувати наявний код, а технічний борг сплачується через завдання в спринті, а не тільки завдяки ентузіазму та овертаймам.
Головний досвід, який я виніс: якість коду — один з найважливіших скілів для розробника. Код має бути простим для розширення, легким для підтримки, гнучким для додавання нових фіч і зрозумілим для інших розробників.
Через півтора року я почав отримувати пропозиції розглянути інші цікаві вакансії. На одну з таких я погодився. Нова компанія пропонувала значно вищу зарплату та можливості, але зрештою умови виявилися гіршими та не зовсім такими, про які спочатку домовлялись. Контраст з попереднім місцем роботи був разючим.
Завдяки цій ситуації я зрозумів, що під час зміни роботи оцінювати технічний стан майбутнього проєкту може бути важливішим навіть за фінансові умови. Мене вистачило на п’ять місяців. Я не бачив там ні комфортних умов, ні професійного зростання, тож звільнився. А потім почалася війна.
Team Lead: коли time-blocking і getting things done стають не просто теорією, а способом життя
У 2022 році я приєднався до компанії Brainstack як Senior Front-end розробник. У певний момент тимлід перейшов на інший проєкт, і через деякий час я проявив ініціативу обійняти його позицію. Є перевірений спосіб отримати підвищення — спочатку ви стаєте лідом, а вже потім вас ним призначають.
Тоді я ще не розумів, що на мене чекає.
Найбільшим викликом стало зростання навантаження. Моя робота розділилася навпіл: частину часу я присвячував обов’язкам менеджера, іншу — продовжував займатися технічними завданнями. Якщо раніше я не бачив необхідності користуватися календарем, то тепер, маючи інколи по шість зустрічей на день, я швидко усвідомив важливість планування та пріоритезації завдань.
Обовʼязки тимліда можуть залежати від декількох факторів: очікувань компанії, специфіки проєкту та досвіду фахівця. На деяких проєктах роль ліда зводиться до Senior-спеціаліста, який має доступ до production-середовища, менторить менш досвідчених колег та бере участь у додаткових дзвінках.
Якщо розглядати роль повноцінно, це насамперед позиція технічного менеджера, який є лідером команди з розробки продукту або групи проєктів. До його обов’язків можуть входити такі завдання, для успішного виконання яких бажано мати як теоретичні знання, так і практичні навички:
People Management
- Найм, оцінка, onboarding, менторинг, промоутинг, утримання, звільнення.
- Командоутворення, робота з факторами мотивації та залученням.
- Робота з конфліктами та кризовими ситуаціями.
- Виявлення завдань для розвитку членів команди.
- Проведення регулярних 1:1 зустрічей, надання фідбеку.
- Проведення performance review, складання планів розвитку.
Project Management
- Багаторівневі планування, встановлення цілей, пріоритезація та спрощення вимог, декомпозиція завдань, надання естімейтів та управління очікуваннями.
- Розподіл завдань, керування завантаженням, проведення моніторингу і контролю.
Tech
- Пріоритезація нескінченного технічного боргу.
- Виконання технічних завдань, вибір технологій та побудова архітектури проєкту.
- Проведення code review, pair programming та knowledge sharing session.
- Fix production вночі, дотримання критичних дедлайнів спільними зусиллями.
Інше
- Участь у різноманітних командних та особистих обговореннях.
- Побудова flow-роботи команди, підтримка командної документації.
- Формування опису вакансій, запит доступів, approve відпусток.
- Базові навички в суміжних областях: як тестувати задачі, як працює бекенд, як покращити дизайн, як планувати ресурси, як збирати та описувати вимоги до завдання тощо.
Self-management
- Мати бажання займати позицію, розуміти цінність ролі для бізнесу.
- Мати правильний mindset та поділяти цінності компанії.
- Бути ефективним у керуванні обмеженим робочим часом.
- Лідерство — взяти відповідальність та привести команду до поставлених цілей.
- Швидко навчатись та самовдосконалюватись.
- Відновлювати продуктивність за допомогою сну, їжі, звичок, спорту, хобі тощо.
- Приділяти час особистому життю та іншим активностям за межами роботи.
- Памʼятати, що позиція тимліда — це лише роль, яку доручено виконувати.
Попри виклики нової ролі, вона мені подобається. Щодо майбутнього, я бачу великий потенціал у ролі ліда, де є такі можливості:
- повернутися до позиції Software Engineer;
- продовжувати розвиватися як Team Lead або Tech Lead;
- зростати в напрямах Architect, Engineering Manager, Delivery Manager, Head;
- змінити напрям і розвиватись як Technical Product Manager;
- опанувати нові суміжні професії, які з’являться в бурхливому майбутньому.
Навчання надає можливість дивитись на світ іншими очима
І краще б я того не бачив.
Вперше ставши лідом, не завжди усвідомлюєш усі очікування. Якщо ще вчора я був Senior-розробником, то сьогодні я став Junior-лідом. Мені потрібно було терміново знову вчитися, цього разу вже менеджерських скілів.
Я вдався до перевіреного методу навчання — роликів YouTube. Додатково компанія для нових тимлідів надала можливість пройти корпоративне навчання у внутрішній школі з лідерства та менеджменту. На цьому професійному етапі вже немає фултайм-навчання, тому я звернувся до платних курсів у різних навчальних школах.
Вирішив зробити процес навчання регулярним: слухати подкасти, відвідувати вебінари, курси та виконувати домашнє завдання. Віддаю перевагу лекторам із
Особисто я рекомендую шукати корисні відео та курси на YouTube і Udemy, а також переглянути вебінари Кріс Косик на Filab. Крім того, є багато якісних платних курсів на таких платформах, як Laba, IAMPM, robot_dreams, Projector, fwdays тощо. Обираю не за конкретним ресурсом, а за досвідом лектора, цінністю та актуальністю теми.
Щодо технічних знань: зараз планую завершити курс CS50 і поглибити знання алгоритмів та структур даних — здається, давно вже час.
Підтримуйте звʼязок із колишніми колегами
Протягом усього професійного шляху я раджу спілкуватися з колегами та підтримувати звʼязок після того, як ваші шляхи розходяться.
Це допомагає залишатись у курсі подій в інших компаніях, обмінюватися досвідом, спільно розв’язувати складні завдання, підтримувати одне одного в пошуку роботи, надавати та отримувати рекомендації, надихати й просто відпочивати в приємному колі однодумців. А з кимось — ще й надовго стати гарними друзями.
Оцініть можливості: куди краще інвестувати час
Я дуже задоволений своєю професією та досвідом. Наприкінці хотів би порадити оцінити, чого можна досягти, вклавши стільки ж часу та зусиль в іншу професію. Можливо, у своїй нинішній сфері ви зможете досягти навіть більших результатів, ніж в ІТ. Якщо бажання та впевненість залишилися — ласкаво просимо :)
P.S. Усі висловлені думки є виключно субʼєктивним поглядом автора і не претендують на істину для кожного учасника DOU в коментарях.
56 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів