В целом, система трейдов была рассмотрена в статье Общие положения грейдов.
А в этой статье, рассмотрим прогресс по знаниям разработчика в его профессии
- В общем
Самое полезное, что компания ждет от разработчика, — это его знания и опыт в выбранное профессии. Чем он опытнее, тем быстрее будет выполнять задачи. Тем самым, двигая прогресс компании и принося прибыть.
- Стеки технологий — специализация
Важно понимать, что не может быть универсальной системы грейдов по хард скиллам для всех разработчиков. Так как технологий и концепций программирования очень большое количество, нужно составить грейдирование хард скиллов по специализации разработчиков
Сперва разделим разработчиков на такие категории (наиболее часто встречающиеся):
- Фронт-енд разработчик
- Бэк-енд разработчик
- Фул-стек разработчик
- Разработчик десктопных приложения
- Разработчик приложения под Android
- Разработчик приложения под iOS
- …
Но и теже Бекенд разработчики не знают всех бекенд языков (PHP, Python, Java, Go, Ruby, NodeJS, C# и многие другие) и технологий (Linux, Windows, Docker, Nginx, Apache, MySQL, PostgreSQL, MongoDB, MS SQL, GraphQL, React, Vue.js, Sphinx, Elastic Search, Redis, MQ Rabbit, Machine Learning и многие другие).
В первую очередь, нужно определиться в используемом стеке, поделить его на более простые или жизненно-важные технологии и более сложные или менее часто используемые. Затем, грубо-говоря, «разбросать» требования по уровням грейдов.
В следующих статьях будут примеры для PHP Бэк-енд разработчика (Linux + PHP + MySQL), Фронт-енд (JS, React, Node) и Android-разработчика, Фул-стек программиста.
- Общие концепции программирования
Но, есть такие технологии и концепции которые применяются во многих стеках или являются стандартном для любого стека
Это, например
- git, git-low,
- ООП,
- REST-Api,
- Agile, Scrum
- YAGNI, KISS, DRY, SOLID
- Юнит-тесты
- CI/CD
- SSH
- и многое другое.
Про них не стоит забывать при составлении грейдов разработчиков.
- Лидерство и наставничество
На самом деле, высокие грейды редко обходятся без наставничества и лидерства.
В качестве требования для перехода на высокие уровни (мидл++, сеньор), можно включать:
- Наставничество: повышение ученика с X на Y уровень
- Код-ревью и Релизы
- Статьи во внутренних (локальная wiki, Confluence) или внешних источниках (Habr, форумы, сообщества, бумажные статьи в сборниках)
- Выступления на конференциях от имени компании
5. Вопросы безопасности кода
Уже с малых грейдов, нужно знать как писать код, защищенный от основных атак и уязвимостей