Бути Front-End розробником, який прагне більшого: поради, власні уроки, рекомендації ресурсів
Всім привіт! Мене звати Максим, я займаюсь front-end розробкою вже понад 6 років, з них два з половиною працюю в продуктовій студії Uptech.
Сьогодні ми переживаємо часи невизначеності, і багато хто почувається розгублено. Що робити далі? Як планувати? Чи є сенс розвиватися?
На мою думку, найкраще для свого майбутнього зараз — це донатити на ЗСУ, працювати над собою та професійно зростати.
У цій статті розглянемо такі теми:
- типові помилки front-end розробників, що заважають професійному розвитку;
- як саме кидати собі виклики та що робити, коли досяг стелі;
- що найбільше допомагає особистому та професійному розвитку;
Матеріал буде корисним тим, хто:
- шукають роботу прямо зараз;
- зацікавлені у власному розвитку та не зупиняються на досягнутому.
Трохи про себе: світч у front-end та цінність результату
У front-end я прийшов зі сфери телекомунікацій. Працюючи інженером пересувної телевізійної станції на телеканалі «Київ», я мав достатньо вільного часу, який присвячував виконанню лабораторних робіт з універу, що були пов’язані з розробкою сайтів. Саме тоді в мене виник шалений інтерес до веброзробки.
Далі продовжував відточувати навички програмування та закінчив курс від Prometheus «Основи програмування мовою Python», а згодом пройшов відбір та потрапив на безкоштовний курс з front-end офлайн від «Котанів», де познайомився з великою кількістю талановитих, амбіційних і неймовірно мотивованих студентів й досвідченими менторами, які ділились із нами знаннями та робили Code Review домашніх завдань.
Себе я вважаю людиною результату, а не процесу. Саме тому зробив вибір на користь front-end, де, на відміну від back-end, одразу видно результат роботи.
Що найбільше допомагає розвиватися
Порефлексувавши, я виділив кілька основних рушіїв розвитку, що допомогли та продовжують допомагати мені розвиватись.
Оточення
Дуже люблю вислів американського письменника та оратора Джима Рона: «Людина є середнім арифметичним між 5 людьми, які її оточують».
На своєму досвіді я зрозумів важливу роль оточення, в якому ми перебуваємо кожного дня. Можна пройти хоч 10 курсів із саморозвитку та вдосконалення софт-скілів, але ці зусилля марні, якщо кожного дня бути серед людей, що стоять на місці роками.
Якщо ви амбіційна людина і для вас розвиток має особливе значення, то надзвичайно важливо, щоби ваша команда мала схожі цінності.
Робота з ментором і менторство
У багатьох компаніях популярна практика, коли досвідченіші колеги менторять початківців. Так вони роблять внесок не лише в кар’єру однієї людини, а також у розвиток всієї команди.
Наприклад, у нас в компанії за кожним новим членом команди закріплюється ментор, який допомагає кандидату успішно пройти онбординг і регулярно надає фідбек.
На мою думку, взаємодія з менторами є надзвичайно потужним інструментом розвитку, адже виходить не лише вчити теорію, писати код, але й отримувати фідбек, поради та мотивацію від досвідченіших людей. Це є колосальним внеском у наш професійний та особистий зріст.
Мені дуже пощастило з менторами, які траплялися на кар’єрному шляху, та всіма людьми, що мене оточували.
Як можна знайти ментора:
- бути активним учасником front-end спільнот, знайомитись, ставити там необхідні питання;
- домовитись з компанією, в якій плануєте працювати, щоб вам призначити ментора на період онбордингу;
- ставати патронами та за певну символічну суму отримувати приватні консультації досвідчених менторів;
- шукати менторів на різних платформах: чат-боти в Телеграмі тощо.
Lifelong Learning
Працюючи front-end розробниками, ми апріорі невпинно розвиваємось, адже постійно треба розбиратись у нових технологіях, бібліотеках, підходах тощо. Це допомагає писати якісніший код, підвищувати продуктивність застосунків і приносити більше цінності бізнесу.
Що з останнього я дізнався? Наприклад, нещодавно переглядав відео з щорічної конференції Google I/O, де познайомився з багатьма новинками у сфері вебу. Зокрема, дуже сподобалась інформація про нову експериментальну фічу Chrome DevTools — вкладку Performance insights, що дозволяє проводити детальний аналіз перфомансу вебсторінки, тестувати певні юзер флоу й досліджувати основні метрики перфомансу Web Vitals у дуже зручному форматі.
Також звернув увагу на пул реквест Дена Абрамова у репозиторії React на GitHub із новим хуком useEvent. Ідея дуже цікава, адже дозволить оптимізувати застосунки, зменшивши кількість рендерів компонентів.
Порада: виходити за рамки знань та більше занурюватися вглиб технологій.
Але існує ще проблема, що такої інформації може бути забагато. Зустрічав навіть термін infoxication — коли нас оточує безліч різної інформації, яка не допомагає нам, а заважає. Тому ще однією цінною навичкою є фільтрування інформації та вміння знаходити саме те, що потрібно.
Вихід із зони комфорту
Свій ріст я відчуваю, коли, як би це банально не звучало, виходжу з зони комфорту. Це може бути задача, над якою ніколи не доводилось працювати, або нова зона відповідальності. Саме так виходить пізнавати себе більше, реалізовувати потенціал, вчитися, отримувати цінний досвід, робити висновки та працювати далі.
Як можна вийти з зони комфорту:
- змінити проєкт, де буде новий для вас технологічний стек;
- перейти в іншу проєктну команду;
- взяти на себе більше відповідальності у вирішенні певних проблем;
- активніше брати участь в обговореннях, воркшопах, брейнштормах, хакатонах, якщо цього не робили.
Розширення професійного світогляду
Виконуючи повсякденні задачі, можна легко забути глобальну мету своєї роботи — створення корисного продукту для користувачів. Надзвичайно важливо мати цей продуктовий фокус, або product mindset, щоб створити дійсно корисний застосунок для користувачів.
Для цього важливо розвивати навички в дизайні та бекенді.
Наприклад, щодо дизайну:
- ставити себе на місце користувача й аналізувати UI саме з цієї точки зору, намагаючись виявити певні недоліки;
- розвивати уяву, слідкувати за ресурсами, що пропонують певні підбірки варіантів, як може виглядати той чи інший компонент.
Щодо бекенду:
- Робота зі структурами даних — намагатись наперед продумувати, як можна буде працювати з даними, як можна взаємодіяти з ними;
- Робота з базами даних — як дані будуть пов’язані та взаємодіятимуть між собою, скільки запитів потрібно для отримання таких даних та можливості їхньої оптимізації.
Вміння ставити питання
Вміння ставити запитання — одна з ключових навичок, яка разом з вмінням відповідати на запитання формує навичку ненасильницької комунікації.
Ви ніколи не можете точно знати думку іншої людини, а здогадуватися — ризикована справа, яка може стати коренем багатьох непорозумінь.
Усе просто — не грайтесь в телепата. Ставте відкриті запитання, які допоможуть розкрити думку співрозмовника:
- Чому ви саме так вважаєте?
- Що ви думаєте з цього чи іншого приводу?
- Чому ви б хотіли вирішити проблему саме так?
Рекомендую переглянути коротку презентацію Олексія Руденка, в якій він описує проблеми комунікації між людьми та пояснює, як правильно ставити питання.
Що заважає розвитку
Інколи ми можемо самі заважати собі розвиватися свідомо чи несвідомо. На професійному шляху ми стикаємося з різними перешкодами. Зі свого досвіду я виділив проблеми, які мені довелось подолати, та які інколи спостерігаю в інших розробників.
Страх зробити помилку
Помилкою деяких людей є те, що вони не роблять помилок. Насправді дуже важливо робити помилки й шукати такі проєкти та компанії, де є той самий fail-friendly environment — середовище, в якому існує свобода робити помилки й можна не боятись, що тебе покарають, оштрафують чи звільнять за це.
Все відносно, але, як на мене, такий підхід дає більше свободи та відповідальності й відповідних зон росту. Люди при цьому не бояться брати складніші задачі, ніж їх поточний рівень, активніше вступають у різноманітні обговорення, проявляють ініціативу та проактивність.
Порада: знаходити компанії та проєкти з fail-friendly середовищем та розвиненою культурою фідбеку.
Синдром самозванця
Останнім часом все частіше говорять про синдром самозванця — суб’єктивне відчуття того, що ми не заслуговуємо тих досягнень, які маємо. Це відчуття особливо активно проявляється після певних невдач, додає невпевненості, психологічно тисне та заважає рости.
Порада: раджу ставитись до цього нормально. Інколи проблему вирішує зміна контексту, прогулянка в парку, заняття спортом чи просто відпочинок.
Згадую багато ситуацій, коли дуже довго намагався розв’язати певну проблему, застрягав, але відклавши її на деякий час та відпочивши, швидко знаходив до неї рішення.
Відмова від якісного відпочинку
Ще одна типова помилка розробників — це мало відпочивати й не брати відпусток. Люди працюють багато, але результат їхньої роботи невеликий. До того ж постійна перевтома, стреси та перепрацювання є прямою дорогою до вигорання. Надзвичайно важливо змінювати контекст, відволікатись і поновлювати власний ресурс.
Порада: робити короткі перерви, зарядку для тіла або очей, займатись спортом. Щодо тривалішого відпочинку, то рекомендую проводити час активно: походи в гори, рибалка, велопрогулянки, а також воркейшени та подорожі, якщо це можливо і безпечно, Україною чи за кордон.
Звичка занижувати власні естимейти
Не намагайтесь здивувати ваших колег, занизивши оцінку виконання певної задачі. Вони звісно будуть раді, що задача буде виконана швидше, але в підсумку ніхто не буде у виграші: код буде написаний нашвидкуруч, можливі появи неочевидних багів.
До того ж можуть з’явитися проблеми з масштабуванням застосунку чи певної фічі в майбутньому. Це все призведе до наслідків, описаних у попередньому пункті, а також до проблем з тайм-менеджентом і work-life balance.
Порада: обов‘язково слідкуйте за цим та завжди закладайте час на виконання певної задачі з запасом. Якщо ваш проджект-менеджер або хтось зі стейкхолдерів проти, то використовуйте софт скіли та намагайтесь домовлятись, аргументуйте, ставте свої вимоги та пояснюйте власну точку зору.
Які soft та hard скіли слід розвивати front-end розробникам
Щодо hard skills, то я не відкрию Америку і скажу, що найважливіше — це досконале знання основ, а саме HTML, CSS та JavaScript. Ще також виділив би:
- розуміння роботи браузера;
- знання простих алгоритмів;
- знання технік оптимізації вебзастосунків та роботи зі стейт-менеджерами.
Загалом не раджу розробникам концентруватись на конкретних бібліотеках та фреймворках. З плином часу вони можуть бути неактуальними. Відповідно спеціалісти, які знали лише такий фреймворк чи бібліотеку, залишились без роботи.
Знаючи основи та загальні принципи роботи інших інструментів розробки, можна бути незалежним від технологічних стеків та легко розібратись із чимось новим.
І наостанок — покращувати англійську мову.
Щодо найцінніших soft skills front-end розробника, я б назвав такі:
- нести відповідальність за якість своєї роботи та дедлайни;
- регулярно ділитись фідбеками з командою;
- бути проактивним та ініціативним у різних обговореннях;
- вміти просити про допомогу та ставити питання;
- емпатія;
- навички нетворкінгу, вміти обмінюватись досвідом та ділитись знаннями;
- вчасно сповіщати команду про певну проблему;
- бути уважним до деталей;
- бути гнучким у вирішенні конфліктних ситуацій;
- знати ціну за свою роботу.
Шлях front-end розробника: від Junior до Senior
Мені не дуже подобаються ці тайтли й особливо те, як люди концентрують на цьому увагу, адже в кожній компанії є власні стандарти, що можуть дуже сильно відрізнятись один від одного. Але якщо говорити загально, то я би виділив такі пункти.
Шлях від Junior to Middle:
- брати більше відповідальності на себе та намагатися бути автономним (виконувати задачі без сторонньої допомоги);
- працювати зі складнішими задачами, ніж ваш поточний рівень;
- розв’язувати задачі кількома способами;
- переглядати вихідний код бібліотек та фреймворків, розуміти, як певні інструменти працюють «під капотом»;
- слідувати найкращим практикам написання коду;
- працювати над покращенням продуктивності застосунків;
- ділитися знаннями з командою;
- активно вирішувати задачі на Codewars чи LeetCode.
Шлях від Middle до Senior:
- треба вміти заздалегідь оцінювати потенційні ризики;
- вміти писати якісну документацію;
- рекомендувати та використовувати найкращі стандарти, інструменти та практики коду;
- більше заглиблюватись у бізнес-логіку;
- вивчати та практикувати різні способи проєктування архітектури застосунків різної складності;
- вміти фасилітувати дискусії щодо складних технічних рішень;
- виявляти технічний борг у застосунках;
- активно ділитись фідбеками з командою.
Чи існує життя після Senior
Що робити після того, коли вже став Senior front-end розробником? Це екзистенційне питання, на яке кожен має дати власну відповідь.
Перше, що спадає на думку — це стати тім лідом і розвивати свою команду. Втім, не кожному цікаво розвиватися в менеджменті. І це ок.
Існує багато інших, неочевидних варіантів розвитку після звання Senior. Щодо цього питання мені дуже імпонують інсайти з виступу Вови Рожкова на конференціях Zlit та KharkivJS 2019 ще задовго до повномасштабної війни. Я рекомендую переглянути записи його виступів тут і тут.
Якщо коротко, то існують такі варіанти:
- робота в FAANG компаніях (Meta (Facebook), Amazon, Apple, Netflix, and Alphabet (Google)). Для цього треба високий рівень англійської, достатньо тривала підготовка до різних етапів співбесід, розуміння алгоритмів, досвід проходити системи дизайн інтерв‘ю тощо;
- взяти відпустку (sabbatical): відпочити, подумати, відключитись від рутини;
- якщо маєте навичку класно продавати, то можна заснувати свою аутсорс/аутстаф-компанію;
- стати незалежним контрактором віддалено та працювати напряму з клієнтами;
- знайти свою нішу, налагодити процеси та працювати з проєктами, що мають фіксовану оплату.
Дехто працює над власним брендом, експериментує, створює онлайн-курси, запускає патреони, де ділиться з підписниками підбірками статей чи власними консультаціями, тим самим генеруючи пасивний дохід, або працюючи на волонтерських засадах.
Ще є варіант просто нічого не робити, впертись у стелю і почати реалізовуватись уже на пенсії. Це справа кожного і всі мають право обирати свій шлях.
Поради курсів/ книжок/ медіа для front-end розробників
Для Junior front-end розробників
- Прекрасний курс від Котанів, який я пройшов сам у свій час:
- Рекомендую до перегляду ці YouTube-канали:
Traversy Media
Leigh Halliday
JavaScript Mastery - Для кращого засвоєння нової інформації рекомендую прочитати книгу Барбари Оклі «Навчитися вчитися».
Для Middle front-end розробників
- Як junior, так і middle front-end розробникам раджу прочитати всі книги з серії You don’t know JS.
- Розробникам усіх рівнів раджу прочитати цікаву книгу Lydia Hallie та Addie Osmani.
- Для тих, кому цікаво розвиватись у менеджменті, раджу прочитати книгу Дж. Ханка Рейнвотера «Як пасти котів», а також книгу Дугласа Стоуна «Складні розмови».
- Рекомендую підписатись на корисні email-розсилки JS Weekly і React Status. Це регулярні порції новин та цікавинок у сфері front-end.
- Безліч корисної інформації можна також знайти, підписавшись на крутих розробників у Twitter, які регулярно пишуть на своїх сторінках або в персональних блогах, наприклад:
@kentcdodds
@lydiahallie
@JoshWComeau
@panzerdp
@rauschma
@DasSurma
@rwieruch
@GergelyOrosz
Відвідуйте конференції front-end розробників, підписуйтесь на YouTube-канали таких івентів, там регулярно викладають записи доповідей, які можуть стати в пригоді.
Беріть участь у локальних мітапах та практикуйте нетворкінг. До війни активно розвивались ком’юніті та мітапи в Києві, Харкові, Львові, Житомирі, Одесі, Дніпрі, Чернівцях. Упевнений, що після нашої перемоги над ворогом такі ком’юніті будуть ще більше активними та продовжуватимуть єднати однодумців.
Знаходьте вирішення проблем або консультуйтесь з ком’юніті розробників онлайн:
t.me/devuafrontend
t.me/reactkyiv
t.me/angularkyiv
t.me/kharkivjs
t.me/lvivcss
Хто не має багато вільного часу на читання статей, є чудовий варіант прослуховування подкастів, наприклад, у дорозі. Ось підбірка найцікавіших:
20minJS
The React Show
Modern Web
Web Dev 101
Дуже активно зараз розвивається тренд публічних співбесід, тому теж рекомендую переглянути такий формат відео, які дають змогу вивчити щось нове та краще підготуватись до інтерв’ю.
Замість висновків
Може здатися, що саморозвиток та кар’єра — це не головні речі, через які зараз слід хвилюватися. Звісно, здоров’я та життя нас та наших близьких є пріоритетом сьогодні.
Проте слід пам’ятати, що працювати і приносити цінність бізнесу сьогодні означає підтримувати економіку та допомагати країні та армії. Отже, інвестуючи в себе та розвиваючись, ми наближаємо нашу перемогу над ворогом.
13 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів