
Сегодня мы с вами разберем какими же технологиями должен владеть javascript developer, чтобы выжить в современном мире.
Сразу скажу, что разделить по знаниями middle и senior достаточно затруднительно. Я могу только обобщить, что мидл умеет просто решать задачи, а сениор может это делать оптимальным способом и самыми подходящими средствами.
Итак я написал список технологий исходя начиная с самых важных и по убыванию. Это не значит, что в конце списка самое не важное. Там просто технологии, которые не так важны на начальных этапах.
Итак на первом месте стоит git. Это самая популярная система контроля версий, а без контроля версий программисты не работают. Так что это де факто самая важная вещь для любого программиста.
На втором месте идет javascript. Вы должны хорошо знать язык на которым пишете. Так что его нужно знать хотя бы на уровне понимая как работают функции, типы данных, операции с данными, контекст, замыкание, прототипное наследование. Собственно все эти вещи вы можете найти в любой книге по javascript.
Дальше идет CSS, HTML. Мы говорили о них в прошлых видео и хоть есть люди, которые занимаются чисто javascript, есть очень много работ, где вы пишете все вместе. Сюда я могу только добавить знание препроцессоров например sass. Также я посоветовал бы посмотреть на модульный CSS и какие возможности он может дать.
Теперь о фреймворках. Обычно на проекте вы будете использовать 1 фреймворк и знание других в этом случае поможет только в понимании какой подход и где лучше. Как минимум 1-2 самых популярных фреймворка знать нужно, чтобы без проблем найти на них работу, так как без фреймворка обычно проекты не пишуться. Из самых популярных фреймворков я бы выделил Angular и React, так как на них проще всего найти работу. Backbone попал в мой список по двум причинам. Все еще есть проекты, которые его используют. Во вторых он очень просто и его исходники очень легко читать. Это отлично позволяет разобраться как он написан и как он работает.
Понимание как работать с API, какие есть HTTP запросы, желательно понимание как работает сеть интернет и протокол HTTP. Так как вы пишите фронтенд часть, то нужно знать, как общаться с бекендом.
Сборщики проектов. Обычно весь javascript вместе с css и шаблонами чем по транпайлится и готовится к продакшену. Для этого я бы посоветовал изучить webpack и gulp.
NodeJS. Даже если вы не пишете бекенд, то вы используете сотни npm пакетов. Поэтому пакетный менеджер вместе с nodeJS нужно знать.
Знание хотя бы одного бекенд языка программирования. Я бы предложил ruby с фреймворком ruby on rails или python. Но это на ваше усмотрение. Это дает понимание как пишется бекенд и какие сложности по другую сторону разработки.
Ну и конечно базы данных. Хотя бы немного. Я бы посоветовал попробовать MongoDB как документо ориентированную базу и PostgreSQL как реляционную.
Unix и Bash. В основном девелопмент обычно происходит на маке, а все проекты ранятся на unix серверах. Как минимум начальные знания работы с unix и командной строкой желательно иметь.
И как последний пункт я могу посоветовать сделать проект от начала до конца полностью самому, чтобы понять как же оно все работает. От бекенда с базой данных и фротенда с SPA фреймворком до деплоя приложения на сервер, настройкой сервера и покупки домена. Это даст вам хорошее понимание как же оно все работает целиком.
В этом видео я разобрал основные технологии, которыми на мой взгляд должен владеть фронтенд девелопер. Обязательно пишите в комментариях какие технологии обязательны на ваш взгляд, а какие не нужны.