Грейды разработчиков.md
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Struchkov Mark 2024-10-22 16:09:57 +03:00
parent 83f1e16f77
commit 21b614e570
No known key found for this signature in database
GPG Key ID: A3F0AC3F0FA52F3C

View File

@ -0,0 +1,42 @@
---
aliases:
tags:
- maturity/🌱
date: 2024-10-22
---
В мире разработки часто используется деление на грейды специалистов: интерн, джуниор, мидл и синьор. На мой взгляд, эти уровни отражают опыт и степень самостоятельности разработчика, однако стоит учитывать, что в некоторых компаниях могут быть собственные градации или дополнительные уровни.
## Интерн
Интерн — это человек, который только начинает свой путь в мире разработки и, по сути, является абсолютно “зеленым”. Он не обладает достаточными знаниями ни о технологиях, ни о рабочих процессах. Часто у него есть только базовое понимание синтаксиса языка программирования или того, как работать с простыми инструментами. Основная характеристика интерна — это ==почти полное отсутствие самостоятельности==. Он нуждается в постоянном руководстве и сопровождении, потому что даже простые задачи могут стать для него сложными без должной поддержки.
На практике интерну могут давать крайне ограниченные задачи, например, обновить текст на сайте, исправить незначительные ошибки в коде или добавить простой компонент в существующий проект. Это задания, которые легко контролировать и проверять. Однако даже при этом каждый шаг должен быть объяснен и продуман за него заранее. ==Вклад интерна в проект минимален, и зачастую его присутствие больше связано с затратами на обучение, чем с реальной пользой для команды.== На первых порах это нормально — таков процесс обучения, но на интернов действительно тратится значительное количество ресурсов команды, особенно старших разработчиков.
## Джуниор
Джуниор — это разработчик, который уже прошел начальный этап обучения и обладает базовым пониманием основных принципов разработки. ==Он знает, как пользоваться фреймворками и инструментами, но зачастую не осознает, как именно все устроено “под капотом”.== Для него технология — это черный ящик, который работает, если выполнять инструкции. На этом уровне разработчик ==способен выполнять задачи, но для этого требуется подробное описание того, что нужно сделать.==
Пример задачи для джуниора может включать разработку простой функции или компонента, где все шаги заранее продуманы и расписаны более опытным разработчиком. Важно, чтобы каждый шаг был тщательно проверен, так как ошибки могут возникать в неожиданных местах. Хотя на выполнение таких задач все еще тратятся ресурсы команды, джуниор уже способен приносить пользу на простых проектах. Он может справляться с рутинными или повторяющимися задачами, но для этого ему нужно предоставить четкие инструкции и определенные рамки.
Основной вызов на этом уровне — научиться справляться с более сложными проблемами и развить способность самостоятельно разбираться в новых ситуациях. Но пока джуниору все еще нужна сильная поддержка команды, как в плане контроля, так и в плане обучения.
## Мидл
Мидл-разработчик — это человек, который уже достаточно уверенно понимает как базовые концепции программирования, так и общий принцип работы фреймворков и технологий, которые он использует. ==Это уровень, которого невозможно достичь только через обучение — здесь играет ключевую роль реальный опыт.== Мидл обладает не только теоретическим знанием, но и практически применяет его в различных проектах. Он уже может оценивать задачи и самостоятельно выбирать подходящие инструменты для их решения.
Пример задачи для мидла может включать разработку полноценной функциональности или сложного компонента, где есть общие требования, но нет необходимости в расписывании каждого шага. Мидл понимает, как эту задачу лучше реализовать и может предложить альтернативные подходы, основываясь на своем опыте. Это отличается от уровня джуниора тем, что мидл уже в состоянии отходить от плана, если видит, что есть более оптимальный способ решения задачи.
Самостоятельность на этом уровне существенно возрастает. Мидл может эффективно работать с относительно минимальным вмешательством со стороны старших коллег, но все же ему нужны четко поставленные задачи и общий план действий. Его не нужно “водить за руку”, как интерна или джуниора, но для достижения наилучшего результата ему нужно понимать, что от него ждут в конечном итоге.
## Синьор
Синьор — это полностью самостоятельная “боевая единица”. Это разработчик с обширным опытом, который может решать сложные задачи без необходимости в постоянном контроле. На этом уровне уже не требуется детализированный план действий — достаточно лишь четко обозначить конечный результат, а синьор самостоятельно разработает стратегию его достижения. Он понимает как внутренние механизмы фреймворков, так и общие архитектурные принципы, что позволяет ему не только эффективно решать задачи, но и предлагать улучшения в проектах.
Пример задачи для синьора может включать проектирование архитектуры нового сервиса или оптимизацию существующей системы. Такие задачи требуют не только глубоких технических знаний, но и способности видеть картину целиком, принимать во внимание долгосрочные последствия решений и взаимодействие разных компонентов системы. Синьор не просто следует инструкциям — он принимает активное участие в формировании плана действий и зачастую задает направление работы команды.
Самостоятельность на уровне синьора максимальна. Он может работать как над конкретной задачей, так и принимать участие в стратегическом планировании проекта. В отличие от мидла, синьор способен не только реализовывать технические решения, но и формировать их на уровне концепций, выбирая наилучшие пути реализации. Для него важен результат, и он умеет находить пути его достижения с минимальными затратами времени и ресурсов.
***
## Мета информация
**Область**:: [[../meta/zero/00 Разработка|00 Разработка]]
**Родитель**::
**Источник**::
**Создана**:: [[2024-10-22]]
**Автор**::
### Дополнительные материалы
-
### Дочерние заметки
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->