Рынок с каждым днем развивается и для текущих разработчиков главной задачей всегда является держать руку на пульсе и быть с курсе всех изменений в сфере IT. Будь то технологии, библиотеки, либо архитектурные решения. Программисты любого направления Middle уровня и выше понимают, что главная ценность в разработчике это — решать проблему лучшим, доступным и самым простым способом. И для достижения этой цели необходимо использовать определенный набор инструментов, который не всегда одинаковый.
Приведу аналогию.
Конечно же, для гвоздей всегда используют молоток, но не всегда требуются одни и те же гвозди и не всегда одна и та же предоставляется поверхность. Иногда, это кровельные работы и гвозди тогда нужны для кровельных работ, так же и материал крыши не дерево, а шифер, либо железо. Для выполнения поставленной задачи необходимо учитывать некие тонкости — соблюдать определенный шаг между гвоздями и знать в какие места в волне забивать, например.
ℹ️ Если разработчик понимает как, где и какие инструменты использовать - это уже его делает профессионалом своего дела.
? Сегодня хотелось бы поделиться личным списком, который я бы рекомендовал для успешного старта карьеры. Необходимым минимумом инструментов для того, что бы претендовать в 2024 году на позицию Junior Frontend Developer.
Итак, что же нужно знать:
HTML5 — Уметь писать правильную и семантическую разметку. Знать, когда применить
<section>
, а когда<div>
. Когда нужно применить<header>
,<footer>
,<article>
. Как размечаются формы.CSS3 — Flexbox, Grid Layout, медиа‑запросы для адаптивного дизайна, анимации и трансформации.
Javascript — Типы данных и работа с ними, стрелочные и обычные функции, let/const, деструктуризация, spread/rest операторы, логические операторы, циклы, Promises, async/await. Умение обработать ошибки.
TypeScript — Понимание базовых типов (строки, числа, булевы значения), интерфейсов и типов (interface, type), основ TypeScript-аннотаций. Умение работать с типизацией функций и объектов, параметрами по умолчанию, и использовать generics (обобщённые типы) для создания более гибких компонентов.
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‑тестирования, но мне показалось, что освоив данные инструменты, подготовив качественное портфолио и прокачав софт‑скиллы — этого будет более, чем достаточно что бы претендовать на данную должность.
А что бы вы добавили или убрали из списка? Как по вашему мнению изменился рынок? В лучшую или худшую сторону? Если есть опыт поиска и пройденных собеседований — буду рад почитать и обсудить.
Комментарии (10)
Freemjke
02.11.2024 13:32Typescript - мастхэв в любом случае. Без него - шансы найти первую работу становятся еще ниже (а у джунов (без опыта) и так крайне плачевная ситуация по вакансиям).
Unit-тесты, e2e - тоже довольно часто требуют.
Еще бы добавил в список Next.js, т.к. это крайне популярный фреймворк (если не самый популярный), который совсем не сложно изучать - шансы тоже вырастут.
Но, в целом, как резюмирование: путь, который должен пройти нынешний джун до своего первого оффера, однозначно дольше по времени и тяжелее, чем года 2 назад, из-за реально увеличившегося количества технологий в минимальном стеке фронтенд-разработчика.
atomr_mf Автор
02.11.2024 13:32Да, полностью с вами согласен, когда писал статью выходило уже много и подумал почему то, что typescript может не понадобится на первых шагах, но ts сейчас необходим практически в 100% вакансий. Обязательно его включу в список, спасибо
yri066
02.11.2024 13:32Когда был студентом, то про вёрстку шутили что div достаточно для всего (так и есть, если плевать на семантику). Он может быть чем угодно: блоком, кнопкой, картинкой или текстовым полем (довольно недавно узнал, но в VK текстовое поле для ответа на комментарий на самом деле div c contenteditable="true").
refreyder
02.11.2024 13:32а можно такой же только для бэка?
atomr_mf Автор
02.11.2024 13:32К сожалению, составить подобный список для бэка не смогу(
Уверен, это уже где то также разобрано и подробно описано. Можно попробовать за основу взять этот роадмап и сравнить с реалиями вакансий (господа бэки, если вы тут, поправьте меня, если этот роадмап не актуальный и есть что то более подходящее)
Satansoft
02.11.2024 13:32В 2024 он должен знать то же, что и в 2020, только ещё иметь 5 лет коммерческого опыта.
Annsky
Хороший, правильный список
atomr_mf Автор
Спасибо за оценку