Требования для Junior web developer
- Знание HTML и возможность сверстать средний проект с небольшой помощью более опытных разработчиков
- Знание CSS с пониманием, как строить сетки и как создавать адаптивный интерфейс
- Будет плюсом умение работать с препроцессорами, знание семантической верстки и БЭМ (Основные понятия)
- Знание JS на уровне — «Знаю базовые методы всех типов данных. Знаю, что такое замыкание, рекурсия и контекст, а также умею писать запросы»
- Умение создавать SPA с помощью любого современного фреймворка/библиотеки и знание базовых понятий технологии
- Умение работать с одним из State-manager (Redux/MobX/Vuex и тд…)
- Знания git на уровне pull, commit, pull request
- В общем понимании джун должен уметь закрывать несложные/рутинные задачи (можно и спросить у кого-то), когда опытные разработчики будут заниматься более сложной логикой работы web-приложения
Требования для Middle web developer
- знание вёрстки и возможность сверстать средний проект (flex, grid)
- уверенная работа с Git и терминалом в частности
- понимание работы браузера и того, как данные попадают на сайт (http, udp, ws протоколы)
- умение работы с DOM
- знание и опыт работы с любым современным фреймворком (React, Angular, Vue, Yii2, Laravel и пр.)
- знать и уметь применять нормальные формы в БД. Нормализация/денормализация/формы нормальности.
- знать и понимать RESTful интерфейсы
- знать одно из SASS/SCSS/Less/PostCSS
- понимание SOLID, Dependency Injection
- знать, что такое шаблоны проектирования и зачем они нужны. Понимать различия между ними.
- опыт разработки серверного кода под Node.js, TypeScript
- опыт работы с TDD/BDD, тест-фреймворки (Mocha, Should, Chai, Jest, PHPUnit и пр.)
- знание и умение провести нагрузочное и регрессионное тестирование
- знать три столпа ООП (наследование, полиморфизм и инкапсуляция)
- мидл должен иметь достаточный опыт работы, что позволяет ему декомпозировать задачи более-менее правильно. Мидл умеет декомпозировать, а значит он может точнее оценивать задачи. Он должен уметь соблюдать сроки.
- очень важное для мидла — это знать как изнутри работает используемая тобой технология, твой фреймворк. Не то, как он производит рендер (с помощью VDOM и т. п.), а как код написан, как происходит магия. Открой GitHub, посмотри исходники React — как, например, this.setState заставляет компонент делать рендер
Если вы знаете и умеете гораздо больше перечисленного +
- умеете проработать архитектуру проекта и защитить ее
- успешно общаетесь с заказчиком и РП с целью выяснить реальные потребности для оценки сроков реализации
- внимательны к мелочам
- знаете и умеете применять оценочные метрики работоспособности проекта
- еще куча полезных скиллов… ))
то я вас поздравляю… Вы — Senior Developer
https://kb-liga.phoenixit.ru/pages/viewpage.action?pageId=102172279