Рынок с каждым днем развивается и для текущих разработчиков главной задачей всегда является держать руку на пульсе и быть с курсе всех изменений в сфере IT. Будь то технологии, библиотеки, либо архитектурные решения. Программисты любого направления Middle уровня и выше понимают, что главная ценность в разработчике это — решать проблему лучшим, доступным и самым простым способом. И для достижения этой цели необходимо использовать определенный набор инструментов, который не всегда одинаковый.
Приведу аналогию.
Конечно же, для гвоздей всегда используют молоток, но не всегда требуются одни и те же гвозди и не всегда одна и та же предоставляется поверхность. Иногда, это кровельные работы и гвозди тогда нужны для кровельных работ, так же и материал крыши не дерево, а шифер, либо железо. Для выполнения поставленной задачи необходимо учитывать некие тонкости — соблюдать определенный шаг между гвоздями и знать в какие места в волне забивать, например.
ℹ️ Если разработчик понимает как, где и какие инструменты использовать - это уже его делает профессионалом своего дела.
📋 Сегодня хотелось бы поделиться личным списком, который я бы рекомендовал для успешного старта карьеры. Необходимым минимумом инструментов для того, что бы претендовать в 2024 году на позицию Junior Frontend Developer.
Итак, что же нужно знать:
HTML5 — Уметь писать правильную и семантическую разметку. Знать, когда применить
<section>
, а когда<div>
. Когда нужно применить<header>
,<footer>
,<article>
. Как размечаются формы.CSS3 — Flexbox, Grid Layout, медиа‑запросы для адаптивного дизайна, анимации и трансформации.
Javascript — Типы данных и работа с ними, стрелочные и обычные функции, let/const, деструктуризация, spread/rest операторы, логические операторы, циклы, Promises, async/await. Умение обработать ошибки.
React — Компоненты, хуки (hooks), управление состоянием (state management), React Router для маршрутизации.
Vue — Основы компонентов, директивы, Vue Router, Vuex для управления состоянием.
Управление состоянием — Redux, Pinia, Context API в React.
Систему контроля версий (Git) — основные команды, ветвление и слияние.
Сборщики — Webpack и Vite. Умение организовать базовую настройку проекта.
Инструменты разработки и отладки — Chrome DevTools, ESLint, Prettier.
Cеть — Основы HTTP, GET/POST запросы, обработка JSON.
Работа с библиотеками для запросов — Axios, Fetch API.
Понимание принципов контейнеризации — Docker (на базовом уровне).
Soft Skills. Умение коммуницировать в команде, принимать и давать обратную связь. Умение планировать работу. Способность быстро осваивать новые технологии и подходы.
Последний пункт можно было бы смело ставить первым, т.к. о нем часто забывают или не ставят в приоритет в процессе обучения. Но есть много примеров, когда 2 разработчика одинакового уровня устраиваются на одинаковую должность, и у одного прокачены софт‑скиллы, а у другого нет. Угадайте, у кого будет больше шансов получить оффер и, скорее всего, более жирный? И часто бывают, что работодателю лучше взять более софтового разработчика потому, что работать в команде будет проще и лучше, а харды можно прокачать уже по мере необходимости.
Поэтому, софт‑скиллы требуется качать наравне и с хард‑скиллами.
❗ И еще добавлю очень важный пункт — постоянность и планомерность. В процессе обучение чего либо в жизни это всегда является ключевым фактором успеха.
Также оставляю ссылку на довольно неплохой roadmap (EN). Практически для каждого пункта есть ссылка на изучение данной темы. Ссылка
PS: Да, список довольно внушительный, но таковы реалии. Сюда можно было бы добавить еще TypeScript, либо базовое понимание unit‑тестирования, но мне показалось, что освоив данные инструменты, подготовив качественное портфолио и прокачав софт‑скиллы — этого будет более, чем достаточно что бы претендовать на данную должность.
А что бы вы добавили или убрали из списка? Как по вашему мнению изменился рынок? В лучшую или худшую сторону? Если есть опыт поиска и пройденных собеседований — буду рад почитать и обсудить.
Больше о фронтенде, технологиях и новостях в мире JS в моем ТГК — aleksandr_frontend