Так как в последнее время я занимался поиском новой работы на должность frontend-разработчика, у меня сложился некий багаж знаний от прохождений собеседований. Из разных пройденных собеседований, я взял много полезного опыта и хотел бы поделиться в данной статье. Статью я затягивать не буду. Я понимаю, что вы пришли сюда не за тонной воды, которую я так сильно люблю использовать в своих статьях.
Так как я решил не делать подробный анализ, эта статья будет как можно короче и информативней.
Первая часть - статистика. Вторая часть - итог.
Как составлялась статистика?
- Я написал парсер вакансий с сайта МойКруг и HeadHunter. Парсер собирает все тэги со всех вакансий. Рассчитывает количество упоминаний для каждого тэга.
- После чего, я вручную пробежался по 2-ум страницам (25 вакансий, на каждую страницу) и составил свою статистику.
Составив статистику с двух сайтов, я отсортировал тэги по убыванию. От большего количество упоминаний к меньшему.
Сам парсер написан на NodeJS
Статистка с сайта - МойКруг (парсинг)
Статистка с сайта - HeadHunter (парсинг)
Подводим итог
Итак! Пересмотрев около 40-50 вакансий вручную, пройдя кучу разных собеседований, я могу сделать небольшой итог по тому, что надо знать frontend-разработчику на 2017 год и уже стоящий на носу 2018 год.
JavaScript
Библиотеки, фреймворки
- ReactJS (Redux + React Router)
- Angular 2
- VueJS (Vuex + VueRouter)
- Backbone
- Ember
- Meteor
Языки программирования (стандарты)
- ECMAScript 6 (+ Flow. И пора уже приглядываться к ES7).
- TypeScript (жив благодаря Angular)
- CoffeeScript (уже умирает)
Другое
- Unit testing
- ESLint
CSS
Препроцессоры
- SASS (SCSS)
- LESS
- Stylus
- PostCSS
Методологии
- БЭМ
- SMACSS
- OOCSS
Библиотеки, фреймворки
- Bootstrap 4
- Semantic UI
- Foundation
Системы сборки
- Webpack
- Gulp
- Grunt (уже вымирает)
Основное
- Git (Github, Bitbucket, GitLab)
- Кроссбраузерная и адаптивная верстка
- RESTFul API, AJAX, WebSocket
- Опыт работы с UNIX системами (Linux, Ubuntu, Debian, macOS etc.)
- Понимание принципов ООП, MVC, паттернов проектирования
Общее
- Уметь тестировать код (unit testing. Jasmine, Mocha, Jest и т.д.)
- Писать качественный код, соответствующий единому стилю (ESLint)