Всем привет, меня зовут Константин Терехов! Совместно с ProductStar, хочу поделиться в вами опытом начала пути во Frontend-разработке и трудностями, с которыми я столкнулся, прежде чем найти работу. Надеюсь, мой рассказ поможет вам быстрее добиться цели и получить заветный первый оффер. Frontend Developer (мой Telegram) 31 год В менеджменте с 2017 года Во Frontend-разработке с 2022 года Управлял проектами на крупных предприятиях Руководил командами от 10 до 50 человек Сейчас работаю в стартапе (курирую проект и занимаюсь Frontend-частью) Обо мне: люблю кодить, все свободное время провожу за компьютером — пишу или разбираюсь в каких-либо структурах и сложных цепочках замысловатого кода. Также очень люблю снег, поэтому каждую зиму распаковываю сноуборд и отправляюсь в маленькое путешествие в горы. В интернете можно найти много исследований по вакансиям в области разработки, и я решил сделать срез по открытым вакансиям и резюме на основе данных из HH. Складывается интересная картина, из которой следует, что на рынке много специалистов начального уровня, но существует большая нехватка специалистов уровня middle и senior. И даже если закрыть всеми свободными спецами все свободные вакансии, то кадров все равно не хватит. Так что все высказывания из разряда «рынок переполнен IT специалистами» — это миф. Однако очень важно пройти этап стажера, после которого вам откроется масса вакансий и предложений, в которых работодатели будут бороться за вас и ваши знания. Выделяться на рынке Frontend-разработки важно, так как это может повлиять на вашу карьеру в положительном ключе и гарантировать успех в этой области. Больше шансов пробиться среди конкурентов и попасть в желаемый проект или компанию. IT-сфера, включая Frontend-разработку, известна высокой конкуренцией. Сотни, если не тысячи, начинающих разработчиков конкурируют за одни и те же вакансии.  Выделяться — значит отличаться от конкурентов. По своему опыту в найме, хочу сказать, что на собеседовании важно не столько решить задачу с первого раза, сколько показать ход мыслей. Важно продемонстрировать потенциальному работодателю то, как вы пытаетесь найти решение, озвучиваете мысли, разбиваете задачу на этапы и приходите к правильному решению. Привлечь внимание работодателя постоянным профессиональным ростом. Работодатели предпочитают специалистов, которые активно развиваются и вносят вклад в область Frontend-разработки.  Под активным развитием подразумевается: Постоянное изучение новых технологий; Просмотр тематических каналов; Решение новых интересных задач; Поиск более оптимальных подходов для решения тех или иных проблем. Например, в своих pet-проектах можно сделать красивые эффекты, придумать более лаконичные решения и презентовать их на собеседовании. Team Lead точно оценит ваше стремление и желание внести вклад в будущий проект. Разработка — тоже творчество. Находите нестандартные решения и привлекайте к себе внимание на рынке. Frontend-разработка — это область, где всегда есть место для творчества. Внося новые идеи и решения в проекты, вы делаете их более привлекательными. Например, на начальном этапе можно добавить в проект красивые анимации, совмещенные с интересным функционалом. Мой коллега в своем pet-проекте реализовал таймер обратного отсчета в виде часов, где вместо стрелок были анимированные фигуры. Они выполняли различные действия при достижении определенного времени.  Подобный образом можно показать свою творческую сторону, при этом демонстрируя технические знания и умение проектировать. Чтобы быть заметным на рынке, не обязательно иметь за плечами много опыта. Помните, что самый опытный специалист — не обязательно самый лучший. Когда я только начинал свой путь в области Frontend-разработки, сфера информационных технологий казалась мне огромным и захватывающим миром возможностей. Индустрия IT устроена так, что чем больше узнаешь о ней, тем больше понимаешь, что ничего не знаешь.  Так что здесь не обойтись без постоянного получения новых знаний, а это как раз то, что я люблю — и мне нравится применять эти знания на практике. Я всегда стараюсь пустить в ход что-то новенькое и посмотреть, как это работает в проекте. Ведь это круто, когда на фронтенде сразу можно увидеть результат своих трудов. Я начинал с основ Frontend-разработки. Изучал HTML, CSS и JavaScript, исследовал различные фреймворки и библиотеки. Но быстро понял, что просто знание технологий не делает меня уникальным.  Чтобы выделиться, я постоянно обновлял свои знания и следил за последними трендами: изучил React и начальные хуки (useState, useEffect); перевел свои pet-проекты на эти технологии. В моем случае этого было достаточно для получения первого оффера. Следующим шагом было изучение Redux и его функционала, а далее я развивался в проекте под руководством тим-лида и изучал технологии, которые применялись в компании. Одним из способов, которыми я пытался выделиться, было создание собственных проектов. Я разрабатывал небольшие веб-приложения и сайты, прокачивая свои навыки и способности. Эти проекты не только усовершенствовали мои скиллы, но и создали портфолио, которое я мог предоставить потенциальным работодателям.  Я не использую это проекты на работе, но они помогли мне набить руку и разобраться во многих вещах. В целом, это была неплохая тренировка перед началом профессиональной карьеры. Я всегда старался привносить в проекты что-то новое, будь то оригинальный дизайн, интересные анимации или инновационные решения. Творческий подход позволял мне привлекать внимание к продуктам и создавать уникальные пользовательские опыты.  Например, недавно мы с командой реализовали очень крутой навбар, в котором присутствуют приятные анимации и мягкая кликабельность. Мы провели исследования и выяснили, что пользователям нравится с ними взаимодействовать. Основные технологии и языки: HTML, CSS, JavaScript Желательно сделать упор на JavaScript и технологию его работы, это поможет на начальной стадии поиска работы. В основах JavaScript на первом этапе здорово помогают разобраться ресурсы CodeWars и LeetCode.  Фреймворки и библиотеки: React, Vue.js, Angular и другие Лучше разобраться в одном из фреймворков и искать связанные с ним вакансии. Например, я подтянул знания по React и искал вакансии, где ключевым навыком было его знание. Знание систем контроля версий, таких как Git С Git работают все современные компании, это необходимый навык. На проекте будет старший разработчик, который объяснит вам, как работать с системой контроля версий, но базовые знания необходимы. Адаптивная и кроссбраузерная верстка Важно понимать, что продукт, который вы делаете, будут использовать на разных устройствах. Не забывайте учитывать это при разработке и понимать, как пользоваться Флексами, Гридами и т. д. Опыт работы с инструментами разработчика браузера Инструменты разработчика в браузере помогают быстро найти проблемное место, протестировать его и исправить. Важность обучения и самообучения Работа во Frontend подразумевает, что вы всегда будете изучать новые технологии, методы и подходы, чтобы оставаться в тренде и быть востребованным на рынке.  На рынке можно найти массу литературы, но из основ могу порекомендовать «Вы не знаете JS» Кайла Симпсона и «Чистый код» Роберта Мартина. На собеседовании на позицию Frontend-разработчика будут оценивать вашу квалификацию, навыки и подход к разработке. Я приведу список общих вопросы, которые вам могут задать.  Основные технические вопросы: Основные различия между HTML4 и HTML5, CSS2 и CSS3 Что такое семантическая верстка и почему она важна Как работает механизм вложенных стилей (cascading) в CSS Что такое HTTP и какие существуют методы запросов (GET, POST, PUT, DELETE) Основные особенности JavaScript и в чем разница между JavaScript и Java Вопросы о CSS: Какие методы центрирования блока в CSS вы знаете Что такое Flexbox и какие основные свойства есть у Flexbox для управления макетами В чем разница между CSS Grid и Flexbox Как создать анимацию с использованием CSS (CSS animations и transitions) Вопросы о JavaScript: Что такое замыкание в JavaScript и для чего оно используется Как работает асинхронное программирование в JavaScript. Рассказ о колбэках и промисах Что такое область видимости в JavaScript Какие нововведения внесены в JavaScript ES6 (ECMAScript 2015) Вопросы о работе с браузерами и производительности: Какие инструменты разработчика в браузере вы использовали для отладки кода Как оптимизировать производительность веб-приложений. Рассказ ленивой загрузке изображений, минификации и сжатии ресурсов Что такое браузерная кэширование и как оно работает Как обеспечить кроссбраузерную совместимость веб-сайта Вопросы о проектах и опыте: Расскажите о проектах, над которыми вы работали. Какие технологии и инструменты вы использовали С какими сложностями вы сталкивались в проектах и как их решали Есть ли у вас опыт работы с системами контроля версий, такими как Git Как вы организуете свой код и какие паттерны проектирования используете Вопросы о командной работе: Ваш опыт в совместной разработке в команде Как вы решаете конфликты и разногласия в процессе совместной работы Как вы документируете свой код и взаимодействие с командой Дополнительные вопросы: Какие библиотеки и фреймворки вы предпочитаете использовать во Frontend-разработке Что такое адаптивная (responsive) и мобильно-первая (mobile-first) разработка Как вы следите за последними трендами и нововведениями в Frontend-разработке Как бы вы решили задачу, если бы не знали ответ на вопрос Подготовьтесь к ответам на эти вопросы и будьте готовы продемонстрировать свои навыки и знания на практике. Это поможет вам успешно пройти собеседование на позицию Frontend-разработчика. Личные проекты: создание собственных веб-приложений и сайтов. Фриланс: работа над заказами и проектами для клиентов. Волонтерство: участие в некоммерческих проектах (например, в школе ProductStar проходят буткемпы, в которых можно поучаствовать и получить опыт). Стажировка и практика: поиск мест для получения опыта. С каждым годом продолжается цифровизация бизнеса и общества. Компании все больше осознают важность наличия высококачественных веб-приложений и сайтов для своего успеха, что создает постоянный спрос на Frontend-разработчиков. Frontend-разработка активно развивается, появляются новые фреймворки, библиотеки и инструменты, улучшаются стандарты. В 2024 году, вероятно, будут актуальными такие технологии, как React, Vue.js, Angular и др., а также новые возможности HTML, CSS и JavaScript. С ростом числа мобильных устройств и планшетов адаптивная и мобильно-первая разработка становятся все более важными. Frontend-разработчики должны обладать навыками, позволяющими создавать веб-приложения, которые хорошо работают на различных устройствах и экранах. Пользователи становятся все более требовательными к скорости загрузки и производительности веб-приложений. Разработчики должны обращать внимание на оптимизацию кода, минификацию ресурсов и другие методы улучшения производительности. С ростом сложности Frontend-разработки многие разработчики начинают специализироваться. Это может включать разработку Progressive Web Apps (PWA), статических сайтов с использованием генераторов статики, работу с анимациями и интерактивностью и многое другое. В 2023 году, скорее всего, продолжится тенденция высокого спроса на Frontend-разработчиков. Это может быть особенно актуально в регионах с развивающейся IT-инфраструктурой и индустрией стартапов. По собственному опыту могу сказать, что есть смысл писать во все компании, которые вам нравятся. Находите их контакты в социальных сетях и на официальных сайтах. Отправляйте им свое резюме с примерами работ и сопроводительные письма — это повысит ваш шанс попасть в хорошую компанию.  Вакансии на сайтах, социальных сетях, специализированных ресурсах. Работа с рекрутерами и HR-агентствами. Сетевой маркетинг и личный брендинг. По статистике, только одна из 10 компаний откликается, так что не стесняйтесь проходить собеседования и получать отказы. С каждым собеседованием вы прокачиваете свои навыки и приближаетесь к заветному офферу. Frontend-разработка — это захватывающая и динамичная область информационных технологий. В 2023 году рынок Frontend-разработки остается активным и конкурентоспособным. Однако успех в этой области не приходит сам по себе. Требуется постоянное обучение и стремление к саморазвитию. Технологии меняются, а требования эволюционируют. И только те Frontend-разработчики, которые готовы следить за трендами, учиться новому и применять свои знания на практике, смогут достичь успеха. Конечно, не так просто постоянно изучать что-то новое и пытаться выделиться среди конкурентов Подтянуть недостающие знания и наработать портфолио могут помочь курсы. В моем случае это были курс ProductStar «Профессия Frontend-разработчик». И обязательно обращайтесь к менторам со своими идеями! Они точно подскажут, в каком направлении двигаться. Важно также помнить, что Frontend-разработка — это не только навыки и технологии, но и страсть к созданию красивых и функциональных веб-приложений, а также способность адаптироваться к постоянно меняющейся среде.  Вложенные время и средства в обучение и развитие всегда оправдываются. Они становятся мостом к новым возможностям и достижению выдающихся результатов в этой захватывающей области. Продолжайте учиться, творить и развиваться. Frontend-разработка ждет вас, готовая предложить отличные возможности для карьеры и творческого роста.