/ 

Что нужно знать и уметь front end разработчику в 2015/2016

Вчера, в твитере, я выяснял какие скилы нужны супер крутому фронту. Но, кроме пары полезных ссылок и рекомендаций я ничего не нашел. Поэтому сегодня, просмотрев 40 самых высокооплачиваемых вакансий Front end разработчиков / JavaScript программистов, я проанализировал требования к кандидату. Отталкивайтесь от этого списка и смотрете что изучать в дальнейшем.

Я ничего не парсил, пробегался глазами по вакансиям и переносил требования в блокнот. Плюс я анализировал вакансии с HeadHunter, поэтому список отражает динамику только для российского IT сегмента.

Цифра — количество упоминаний в требованиях.

Общие требования

  • 9 — английский, на уровне чтения тех. документации
  • 5 — более трех лет опыта в разработке на JavaScript
  • 4 — умение комментировать и документировать код
  • 3 — опыт разработки Single Page Application (SPA)
  • 3 — наличие GitHub аккаунта с примерами кода
  • 1 — наличие образования в сфере IT

Основные требования

  • 31 — отличное знание JavaScript (тонкости, прототипы, наследование, контексты, замыкания)
  • 22 — система контроля версий GIT (иногда проскакивает SVN и Mercurial)
  • 20 — AJAX, REST API, понимание принципов функционирования сети Интернет и протокола HTTP
  • 16 — тестирование JavaScript (unit, TDD, BDD)
  • 10 — понимание принципов OOP, MVC, MVVM в JavaScript
  • 6 — клиентская оптимизация
  • 4 — XML, JSON/JSONP, xslt, xpath
  • 4 — WebSocket
  • 4 — CoffeeScript
  • 4 — Unix/Linux
  • 3 — Sketch, Photoshop
  • 2 — Знание DOM-модели

CSS пост/препроцессоры

  • 6 — опыт использования любого пост/препроцессора
  • 4 — LESS
  • 3 — Sass/SCSS
  • 2 — PostCSS
  • 1 — Stylus

CSS фреймворки

  • 7 — Bootstrap
  • 1 — Foundation

CSS методологии

  • 3 — БЭМ (BEM)
  • 1 — SMACSS, OOCSS

JS библиотеки

  • 20 — JQuery
  • 3 — underscore.js
  • 2 у Lo-Dash, MooTools, Prototype

JS фреймворки

  • 5 — Любой из популярных
  • 19 — AngularJS
  • 15 — Backbone
  • 7 — React.js
  • 7 — Ember.js
  • 4 — Knockout
  • 2 у cordova, extJS

Модульность

  • 10 — AMD (RequireJS)
  • 2 — Common JS (browserify)

Системы сборки

  • 8 — любая
  • 2 — Gulp
  • 2 — Grunt

Дополнительный язык

  • 2 — владение каким-либо скриптовым языком (php, python, ruby, perl)
  • 10 — Node.js (ExpressJS/MongoDB)
  • 1 — Ruby (RoR)

Остальное

  • 3 — SVG
  • 1 — опыт дебага в браузере
  • 1 — Graceful Degradation
  • 1 — понимание принципов usability
  • 1 — алгоритмы и структуры данных
  • 1 — паттерны (!?!?!) 😨
  • 1 — ES6
  • 1 — CanJS
  • 1 — Webpack
  • 1 — Bower
  • 1 — canvas
  • 1 — Titanium
  • 1 — Polymer, Shadow DOM
  • 1 — Autoprefixer
  • 1 — D3.js
  • 1 — Phonegap
  • 1 — Django
  • 1 — WebGL
  • 1 — уязвимости XSS, CSRF/XSRF

Вот такой получился интересный список. Если у вас есть вакансия для front end разработчика, пришлите её на электропочту или дайте ссылку на неё в комментариях, чтобы я обновил эту заметку.

В следующей статье, я выберу то, что подучить мне и дам ссылки на обучающие материалы, которыми буду пользоваться, пока буду изучать каждый из пунктов.

⌘ ⌘ ⌘
Код. Плейсхолдер для [contenteditable]
Фронтенд

Код. Плейсхолдер для [contenteditable]

Placeholder полифил для contenteditable элемента

Как называть переменные
Фронтенд

Как называть переменные

Мой взгляд на соглашения наименования переменных, функций, методов и классов

Плавный, нативный скрол
Фронтенд

Плавный, нативный скрол

Выкиньте лишние библиотеки для прокрутки внутри страницы

Адекватное подчеркивание ссылок
Фронтенд

Адекватное подчеркивание ссылок

Как исправить поведение text-decoration: underline