Система грейдов разработчиков — back-end программист

back-end developer

Ранее, мы исследовали грейды в общем, порассуждали про хард скиллы и рассмотрели пример грейдов фулл-стек программиста.

В этой статье, нас интересуют грейды бэк-енд разработчика

Пример основного стека:

  • язык: PHP, Laravel, Codeigniter (язык программирования и фреймворки на нем: новый, современный и старый, легаси)
  • Основная база данных: MySQL, дополнительные: Sphinx, Redis
  • Сервера Linux, Nginx, PHP-FPM, Docker

А теперь — подробнее и с различением по уровням:

  1. Джуниор

Комментарии: принимаем на этот уровень новичков без значимого опыта. На этот уровень не подымаются по системе грейдов.

  1. Джуниор+
  • Базовые знания composer и фрейворк Laravel (на примере оформления цикла жизни http запроса)
  • знание git, gitflow, 
  • навыки работы с консолью linux

Комментарии: предполагается, что Laravel — основной фреймворк, на котором разрабатываются все новые задачи. Ну а систему контроля версий, тоже, нужно знать как можно раньше

  1. Джуниор++
  • Продвинутые знания Laravel: джобы, гейты, политики, посредники, composer пакеты, продвинутые знания в ОРМ в части родительских и полиморфных связей), 
  • знание Codeigniter на примере цикла жизни http запроса, включая основы безопастности передачи данных
  • понимание принципов юнит тестирования, архитектуры тонких контроллеров, принципов проектирования rest api

Комментарии: более сложные технологии бэкенда, которые увеличивают гибкость реализации задач. Вопросы хорошего кода, безопасного и понятного кода, который легко поддерживать.

  1. Мидл
  • Разбирается в основном проекте на уровне, что может пояснять бизнес процессы коллегам
  • Принимать архитектурные решения. Связка 2 и больше таблиц для решения поставленных требовании
  • Нереляционная база данных, кеширование, Redis
  • юнит тестирование
  • понимание значения индексов MySQL, умение писать оптимальные сырые запросы (без ORM)

Комментарии: программист на уровне Мидл должен быть выше Джуна принципиально. Он может принимать «решения». Например, разрабатывать архитектуру небольших приложений или «фичи». Так же, он более самостоятелен в работе и, постепенно, становится экспертом в своей области. И владеет более сложными технологиями. Так как на этом грейде, речь была про архитектуру, добавляем хорошее знание баз данных.

  1. Мидл+
  • Приличная экспертиза в одном из проектов из экосистемы (наряду с основным проектом), уверенное выполнение задач
  • грамотное применение паттернов проектирования, 
  • работа с Docker, Docker-compose
  • хорошая база знаний чистого php (не в рамках фреймворков)
  • Придерживается принципов программирования: YAGNI (You Ain’t Gonna Need It)

Комментарии: полезные, современные бэкэнд технологии. Алгоритмы. Оптимальный код Экспертиза мидлов не ограничивается кодированием, т.е. активно применяет общепринятые принципы программирования и чистого кода

  1. Мидл++
  • Разбираться в бизнес-процессах одного из эко-системных продуктов на уровне чтобы передать знания
  • описание и дополнение статей  лучших практик в рамках проектов компаний
  • знание Manticore (Sphinx)
  • Jenkins (сборка проектов)
  • Придерживается принципам программирования: KISS (Keep It Simple, Stupid)

Комментарии: еще больше полезных и сложные технологии бэкенда, которые увеличивают гибкость реализации задач. Так же подымаются вопросы сборок, релизов, CI/CD

  1. Сеньор
  • Не менее 5 лет работы в программировании (включая предыдущий опыт)
  • Сильная экспертиза в следующих технологиях  и инструментах:
  • Linux server console / Nginx config
  • Написан новый крупный компонент (соизмеримый с проектом из микро-сервисной архитектуры) или проект, или сделан рефакторинг крупного компонента
  • Наставничество: ученик был повышен с Джуна+ или Джуна++ до Мидла
  • Придерживается принципам программирования: DRY (Don’t Repeat Yourself)

Комментарии: новое серьезное достижение (Сеньор), усиливаются требования, увеличивается отдача от программиста. В теории, можно изучить все предыдущие технологии и даже чуть попробовать их на практике, но без опыта, без большого количества рассмотренных задач, кандидат не сможет заслуженно называться Сеньором. Так же данный грейд подразумевает наставничество. Кроме опыта самого разработчика, наставничество приносит большую пользу компании

  1. Сеньор+
  • Сильная экспертиза в следующих технологиях  и инструментах: создание Composer-пакетов
  • Написан необходимый Composer-пакет для одного из наших модулей (или блока, который необходимо выделить в модуль). Подключение в нашем проекте
  • Написана статья об этом компоненте или того же уровня в общедоступном айти ресурсе с большой аудиторией (habr или чтото подобное) от корпоративного аккаунта, на этом грейде или ранее
  • Занимается релизами в проекте над которым работают 2+ человек
  • Наставник 2+ человек, делает код ревью их кода
  • Придерживается принципам программирования: SOLID

Комментарии: добавляем профильные, очень перспективные технологии, которые должны двинуть разработку за новые горизонты. Еще больше наставничества. А так же социальная активность от имени компании. Все в выигрыше.

  1. Сеньор++
  • Знание работы ядер фреймворков, задействованных в компании
  • Сильная экспертиза в CI/CD. Внедрение промывных процессов в разработке
  • Наставничество: ученик был повышен с Мидла до Мидла++
  • Выступление на айти конференции от лица компании по актуальной теме, на этом грейде или ранее

Комментарии: Уровень «бог программирования». Лидер мнений в компании и айти сфере. Еще больше взаимной пользы: и программисту, и компании

Впечатления о книге «Путь программиста» Джона Сонмеза

Для меня, книги — это, в первую очередь, ответы на какие то жизненные вопросы или ситуации. И в этой книге таких ответов с лихвой. 

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

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

  1. Чтобы развиваться быстрее нужно ставить цели. Цели должны быть амбициозными, но, при этом, реальными. Если цель сложно-достижима, ее нужно, обязательно, разбить на цели поменьше и шаг за шагом приближаться к результату. Так же важно отслеживать результаты и, возможно, корректировать путь.
  2. Далее, по полочкам, раскладывается потенциальное успешное собеседование на новую, любимую работу. Далеко не избитые сценарии.
  3. Очень важный момент в карьере разработчика — специализация. Автор книги настаивает, что специализация должна быть узкой. Такие специалисты более ценятся на рынке труда, лучше оплачиваются.
  4. Очень интересно мнение автора по поводу работы в стартапах, в малых и крупных фирмах, на удаленную работу, атмосферу и даже политику внутри коллектива. Подводных камней в каждом из направление предостаточно…
  5. Узнаем как лучше сформировать собственное резюме, чтобы заинтересовать потенциального нанимателя.
  6. Очень важный акцент в книге — это продвижение себя как специалиста, создание бренда из своей деятельности. Многие главы вплетают в собственную структуру эту идею, рассматривая процесс продвижения с разных сторон. Один из вариантов — это ведение собственного блога (чем я как раз и начал заниматься, благодаря этой книге).
  7. Как писать статьи в блог, чтобы они были полезными и интересными? Как вести подкасты, если даже не представляешь как это начать делать? Как создать успешный канал в соц-сетях, например на ютюбе? Как не бояться публичных выступлений? На эти и многие другие вопросы есть ответы в данном печатном издании.
  8. Автор раскрывает секрет быстрого обучения. Например как быстро изучить новый язык или фреймворк.
  9. Продуктивность: делаем больше за меньшее время. Полезный навык в нашей профессии, который может потянуть карьеру вверх с невиданной быстротой (бонусом описывается небезызвестная «техника помидоров»).

Далее в книге рассматриваются темы, которые, как может показаться, не имею прямого отношения к карьере программиста. Однако, по моему мнению, это не так. 

  1. Финансы. Очень хорошо, если мы раньше приходим к пониманию, что деньги, заработанные нами, нужно не только собирать, но и преумножать. Инфляция — очень неприятная штука, которая, со временем, обесценивает наши сбережения. Вместе с автором, рассмотрим вопросы финансовой грамотности: пассивные доходы, инвестирование в недвижимость, во взаимные фонды. Кстати, мы узнаем не только как преумножить или сохранить наши сбережения, но и как обрести финансовую независимость и, возможность уйти на пенсию намного раньше.
  2. Сверх-интересный раздел о заработной плате, в том числе, примеры как вести успешные переговоры и заработной плате, ее начальному уровню и повышению.
  3. Напоследок, Джон Сонмез делится своим опытом в сфере поддержания здоровья тела и духа. Области нашей жизни настолько же важные как умение писать чистый и понятный код.

С последними страницами, приходит понимание, что автор делился своим бесценным жизненным опытом не просто как с читателем, который приносит деньги, а как с хорошим товарищем. Настолько проникаешься идеями, которые преподносятся в доброжелательном и жизнеутверждающем ключе.