
«Нужно выучить все и сразу», «Сперва код — английский подождет», «Лучше отсижусь тихо на первом проекте, чтобы не выглядеть глупо»… Все это — распространенные ошибки, которые мешают новичкам стать крутыми Front-end разработчиками. Web Academy расспросила опытных девелоперов об их ошибках и первых проектах, чтобы те, кто только начинают свой путь, лучше понимали, куда двигаться и как избежать проблем.
Владимир Ланько
Senior Front-end Developer в pdfFiller
В коммерческой разработке я уже почти шесть лет. Начинал как Full-stack. На первом проекте использовал нативный JS/jQuery на Front-end и Python на Back-end. В основном задачи были по верстке, нужно было создать простую «админку» на сервере.
В целом проблем на работе не возникало, так как за время учёбы в университете я успел многое попробовать и набить руку на небольших pet-проектах. Впечатления остались исключительно позитивные. Успел сделать все, что было запланировано, также узнал много нового за тот период.
Первый проект дал мне важный коммерческий опыт, который открывает много дверей. Но довольно быстро я понял, что динамика и разнообразие Front-end привлекает меня гораздо больше, чем Full-stack, поэтому перешёл на React. Хотя время идёт, интересы меняются, и я уже начинаю обратно посматривать в сторону Full-stack.
На протяжении практически всей карьеры мне не хватало ментора, который бы мог направить, провалидировать навыки и подсказать, какой из десятков вариантов решения проблемы лучше использовать. Хороший ментор может невероятно ускорить рост и сэкономить сотни часов. Если у вас есть такой человек рядом, держитесь за него и не стесняйтесь использовать эту возможность. Кроме этого, сегодня джуниорам точно не обойтись без стремления узнавать новое, разбираться в том, как что-то работает, ведь в основном, новичков нанимают не за знания «здесь и сейчас», а за перспективу роста.
Новички часто останавливаются на поверхностных знаниях — это одна из типичных ошибок, которая замедляет рост специалиста. Развивайте свою экспертизу в глубину для начала в каком-то одном направлении, ведь это именно то, что позволит быстрее перейти на новый уровень в разработке. В свое время я достаточно резко перешел от простых задач по верстке до разработки целых сервисов больших проектов и менторинга коллег, проведения собеседований.
У меня есть два главных совета для роста специалистов, которые помогли мне, и которые я даю другим новичкам. Во-первых, это постоянное желание изучать и быть открытым ко всему новому. Мир разработки, а особенно Front-end, развивается невероятными темпами и, чтобы стать успешным, нужно быть на волне. Во-вторых, не бояться брать ответственность. Это, своего рода, проявление доверия и бесплатный шанс роста, который вам дают — смело используйте эту возможность.
Антон Захаров
Senior Front-end Developer в Levi9 Ukraine
Front-end разработкой я занимаюсь более пяти лет. В студенческие годы увлекся программированием, так как компьютерная тематика была мне интересна.
Начинал с позиции верстальщика — делал лендинги. На тот момент использовал HTML, CSS(LESS) и немного JavaScript (jQuery). Далеко не все получалось из-за нехватки опыта и знаний, иногда заказчик выдвигал сложные требования. По началу казалось, что это не моё и я никогда ничему не научусь. Но на половине пути не хотелось бросать то, что начал. Здесь сыграло роль, скорее, проявление характера и силы воли, чтобы доказать самому себе: я все могу.
Если бы мог дать совет себе джуниору, сказал бы учить английский и никогда не сдаваться, так как за тяжелую работу всегда получаешь вознаграждение.
На профессиональный рост разработчика влияют много факторов. Среди ключевых: ревью чужого кода, решение сложных задач, банальные дискуссии либо собеседования, а также чтение книг и документаций. Немаловажно проходить профильные курсы.
Кому-то учеба и рост даются легко, кому-то сложнее. Но чем больше вы уделяете времени изучению нового, тем лучше. Главное, чтобы хватало терпения и усидчивости.
Кирило Переполов
Senior Front-end Developer в EPAM Systems
Розробкою займаюся трохи більше ніж п’ять років. В університеті викладали програмування, але воно мене спочатку не зацікавило. Повернувся до нього через вісім років після випуску з вишу — у 2016 році. Тоді писав примітивні скрипти і трохи працював з SQL. До кінця 2016-го вже мав кілька pet-проєктів, які робив суто для того, щоб набити руку.
На початку 2017 потрапив на свій перший комерційний проєкт. Він був досить великий і тривалий — коли я приєднався, над ним вже працювали п’ять років. Стек був приблизно таким: Vanilla JS + jQuery + D3.js, Lua для Back-end. Також довелося прокачати знання у shell-скриптах, VCS на класичному GIT.
Від мене не вимагали чогось космічного. Першим завданням було змінити текстовку в HTML. Здебільшого завдання були на підтримку наявного функціонала, іноді — на впровадження нових фіч. Мені дали час і можливість «покопирсатися» в коді, зрозуміти архітектуру, плавно заглиблюючись у деталі. Словом, давали дрібниці з беклогу, щоб я прокачався. А згодом вже ставили більш критичні завдання.
На дрібних задачках легко засвітити себе, оскільки команді доводиться щодня перевіряти по кілька твоїх змін. Завдяки code review до тебе швидко звикають. І навпаки, якщо програміст в перші тижні мовчатиме, а потім видасть якусь складну оптимізацію, нову фічу абощо, то до нього можуть поставитися підозріло й взагалі відкинути пропоновані зміни в коді, тим паче, якщо це джуніор.
Як джун, я мав «досвід» роботи тільки з останніми версіями технологій і модними тенденціями, трохи дивуючись, наскільки на проєкті «все застаріле». Мені дозволяли поволі проводити апгрейди, впроваджувати інновації, але від цього врешті вигравали всі (хоча не раз я таки завалював deployment і червонів на зустрічах).
Претензії до мене були класичні, як для джуна: приймав сирі рішення і поспішав з впровадженням. Я не набив ще тих шишок, які мали досвідченіші програмісти, тож часом мене вчили, часом давали наробити помилок і потім робити відкати моїх змін в коді.
Треба розуміти, що отримати роботу ще не означає покінчити з навчанням. Просто тепер, імовірніше, вам «вказуватимуть», що саме вчити. Але вчитися доведеться все одно.
Потрібно прокачувати чи підтримувати англійську, розвивати навички спілкування, навчитися толерувати культурне і расове різноманіття (з перших днів на проєкті мені довелося співпрацювати з представниками сходу і заходу).
У роботі я б рекомендував не рватися на барикади, не хапатися за непідйомні завдання, але й не ховатися від роботи та здобувати досвід. Якщо немає чим зайнятися, треба одразу повідомити тім ліда, пошукати щось в беклозі, проявити ініціативу. Якщо застрягли з певним завданням, варто попросити про допомогу. Але зробити це слід грамотно: детально описати завдання і те, як ви намагалися його розв’язати. Це допоможе зрозуміти проблему й покаже, що ви не перекладаєте відповідальність на чужі плечі, а дійсно потребуєте допомоги. І раджу не уникати тім-білдінгів — вони не дарма так називаються! Часто після подібних святкувань вже наступного ранку джуніори ставали «своїми».
З часом я прокачував навички програмування і знання архітектур. Отримував досвід з програмування на JS, дізнавався, як варто робити, а як не варто й чому. За можливості ходив на внутрішні тренінги в компанії, продовжував вивчати фреймворки й технології, хоча вільного часу в мене було не багато.
Конкретно у Front-end я не знаю жодного сіньйора, який би не володів бодай одним з фреймворків на пристойному рівні. Але як джуніору, мені не знадобився жоден (хоча у мене був один pet-project на AngularJS). За роки досвіду міддл і сіньйор вивчають ще декілька мов програмування, а для джуніора це може бути занадто. Сіньйор, на відміну від міддла, має мислити більш глобально, стратегічно, охоплювати архітектуру не тільки свого Front-end, а системи або інтеграції систем. Однак вчаться і помиляються всі.
Робота з різними технологіями, процесами, робота в різних умовах неабияк сприяє тому, що спеціаліст швидше набуває досвід. Зараз у мене досить часто змінюються завдання: довелося прокачати Java, згадати SQL, написати декілька проєктів на Dart. При цьому цінність на ринку тільки зростає, тому всіляко рекомендую.
Марта Чупіль
Senior Front-end Developer у Vestiaire Collective
У мене понад шість років комерційного досвіду. Все починалося як розвага. Коли я була підлітком, створювала вебсайти на цікаві для мене теми: про фільми, мультфільми, книги. Бо для мене Front-end — це поєднання творчості, програмування і можливості створювати візуальну частину сторінки, яку можна відкрити з усіх куточків світу.
Перший проєкт, над яким працювала, був на CMS WordPress. Я розробляла блог з новинами: від роботи з макетами до розробки теми на CMS. Наступні проєкти були на тоді ще популярному фреймворку AngularJS та з jQuery бібліотекою. І це не було чимось простим для мене. Не було QA-тестувальників, Agile-методів, бо в компанії так не було заведено. Умови праці були ненормовані, з постійними овертаймами, які не оплачували. Та згодом, в інших компаніях, в цьому плані працювати стало легше.
На старті мені бракувало вміння розбиратися в чужому коді — це прийшло лише з досвідом. Але без такої навички джуніорам не обійтися і сьогодні.
Одна з поширених помилок, якої припускаються новачки у Front-end — бажання вивчити все. Усі Front-end фреймворки, бібліотеки й навіть Back-end розробку. Так ви знатимете всього потроху, але недостатньо добре, щоб впоратися з комплексним завданням. Тому для початку бажано зосередитися на чомусь одному.
З досвідом набуваєш не лише більше знань і навичок, а й відповідальності. Тепер мені недостатньо лише програмувати. Потрібно також добре розбиратися в самому продукті, вміти управляти командою. Багато часу йде на менторство, перегляд коду інших розробників в команді. Soft skills стали такими ж потрібними, як і Hard skills.
Зростати професійно розробнику допомагає мотивація, як би банально це не звучало. Потрібно читати відповідні групи з новинами про Front-end, слухати подкасти, відвідувати конференції. А ще — спілкуватися більше з іншими Front-end розробниками.
Ближайшие курсы по направлениям: