Что нужно знать начинающему front-end разработчику? React, javascript, верстка.
Фронтенд интересен тем, что начинающий программист может сразу увидеть результат работы своими глазами в виде интерфейса, хоть и простого, а это очень важно, чтобы получить правильную эмоцию. Порог входа не очень высокий, достаточно начать с html и уже вы сделали эту магию. Сегодня фронтендщик это не верстальщик и это точно сложно и престижно в мире IT.
Просмотрев разные вакансии (17.03.2022) могу сказать что в некоторых вакансиях на junior позицию неадекватные требования, тем не менее у адекватного работодателя все хорошо по требованиям:
- HTML. Зачем нужна семантика, page loading flow, forms, links, inputs ( их популярные типы ).
- CSS. Selectors, box-model, responsive design, animations, flexbox, css grid, pseudo-class, pseudo-element.
- Естественно основы JS. Тут всегда есть что подтянуть независимо от компетенции. Для начинающего нужно понимать следующее: primitives, objects, иммутабельность, ключевое слово arguments, spread и rest операторы, операторы ( &&, ||, ==, === ), object and arrays iterating, let, const, arrow function.
- CSS препроцессор, любой на выбор, чтобы долго не думали SCSS.
- Библиотека или фреймворк для разработки SPA. Тут выбор невелик, React, Angular или Vue. Личное дело каждого, рекомендую выбирать то, на что будет хороший спрос, а не что якобы “лучше”. Ответ React, пруфы искать долго, ответ был валидный года 2 назад, но думаю сейчас ничего не поменялось. Если есть статистика, которая говорит об обратном — пишите комменты.
- Если React — тогда любой стейт менеджер, рекомендую redux, так как от него будет польза в поиске работы. На mobx можно забить на первых порах.
- Если Vue — там есть Vuex.
- Если Angular — нужно иметь опыт с RxJS, так как реактивность и state managment осуществляется с его помощью достаточно часто.
- Git. Навыки для работы с pull request.
- API, умение работать с бекендом. Собрать данные с формы, отправить, обработать ответ.
Для тех кто с тем что выше уже дружит:
- typescript ( точно ) или flow ( возможно ).
- Паттерны, OOP, функциональное программирование, алгоритмы, структуры данных.
- Если очень скучно — RxJS, встроен в Angular иногда используется в React.
Задача начинающего заключается в том, чтобы набираться опыта, который будет полезный в работе. Если вы уже ориентируетесь в топиках выше — можете искать работу или набивать руку исключительно на практике. А вот если у вас есть работа — не останавливайте развитие, это поможет двигаться по карьерной лестнице, есть куча как платных, так и бесплатных ресурсов для изучения ( курсы, статьи и тд ).