Как стать автором
Обновить

Разница между «джуном», «мидлом» и «сеньором». И что делать, чтобы перейти на уровень выше

Время на прочтение 5 мин
Количество просмотров 114K
Всего голосов 24: ↑10 и ↓14 -4
Комментарии 6

Комментарии 6

Долго ждал подробного описания стадий «взросления» разработчика, а оказалось все упирается в софтскил.
Но почему тогда от более опытных и крутых разработчиков звучит что важно понимать программу не на уровне кода, а на уровне взаимодействия этого кода с железом, принципов работы памяти, каким образом обрабатываются команды на уровне процессора и все такое прочее?

Но знание — не самый важный фактор.

Опытные разработчики пишут более простой код и подходят к этому иначе. Но кроме того, чтобы уметь программировать, очень важно также знать, какие вопросы задавать и что делать с полученными ответами.
Не уж то умение задавать вопросы, анализировать ответы и вообще правильно проводить рефлексию задачи — может сделать «посредственного» программиста «сеньором»?

код должен быть простым и понятным: «Keep it simple, stupid»
На этом момента вспомнилось выражение не программиста скорее повара-шоумена Константина Ивлева: «Хочешь делать плохо, сначала научись делать хорошо».

Тут скорее не о мягких навыках а скорее их комбинации с техническими.


То есть по факту нужно знать
1) Особенности работы платформы на которой работаешь начиная от мануалов заканчивая пониманием того что проходит "под капотом"
2) Уметь писать код по паттернам и стандартам принятым для этой платформы
3) Уметь правильно предсказать развитие проекта и построить архитектуру проекта наиболее правильным способом
4) Уметь переводить бред заказчика в бизнес-процессы и бизнес-процессы в спецификации на основе которых собственно строить ТЗ + писать код + покрывать его тестами. Мало того еще желательно уметь проделать этот процесс в обратную сторону (реверс-инженерия)
5) При всем этом нужно не быть "токсичным", уметь followup/feedback и минимальные навыки управления хотя-бы собой и обучения других. Уметь координировать работу всех остальных где то добрым словом а где добрым словом и пистоном
6) И на сладкое понимать чем занимается контора и как оптимизировать её работу.


То есть идеальный сферический senior в вакууме это Программист + Архитектор + Проектировщик + Управленец + Специалист в предметной области.


На самом деле достаточно уметь выполнять хотя-бы 1-2 роли отлично, а остальные хоть как-то и уже все будут считать что ты и есть тот сейнер-помидор и вообще...


Но нужно понимать что это только на конкретную компанию/предметную область.


Например Senior JavaEE из банка внезапно может быть middle для галеры для студии с лендостками и wordpress, junior в 1C и полный нуль в gameDev или IOT.


Опыт и наличие мозга правда позволяют довольно быстро освоить другую предметную область.

Даже в Вашем описании доминирует техническая сторона и опыт, статья же, на мой взгляд, как будто выносит за «скобки» эту часть профессии. По крайней мере у меня сложилось такое ощущение после прочтения.

5) При всем этом нужно не быть «токсичным», уметь followup/feedback и минимальные навыки управления хотя-бы собой и обучения других. Уметь координировать работу всех остальных где то добрым словом а где добрым словом и пистоном
В целом это можно назвать «социальной адекватностью». Но ведь это должно быть как базис в принципе любого специалиста, даже умение управлять. В зачаточной стадии управление есть умение доносить свою точку зрения так, чтобы другие ее не только поняли, но и приняли.

Согласен, последнее время куча статей о том что должен делать %skill level% %platform% разработчик и в них все что угодно, начиная с обучения новичков и заканчивая поклонениями макаронному монстру развертывания k8s и общению с инверторами.
Кроме собственно выполнения прямой работы, т.е. набора решающего проблему работающего кода.


Судя по всему на западе в принципе develop входит в навыки developer by default и рассматривается как должное в следствии чего в текстах статей этот момент не учитывается и при переводах теряеться. Что и вызывает немой вопрос — мол а писать код кто будет?!

Что и вызывает немой вопрос — мол а писать код кто будет?!

Интересно, а это только в в моей и только моей голове нашем обществе возникает такой вопрос? Мол, «у них» все программисты по определению пишут код качества выше среднего и для разделения на уровни мастерства нужно использовать новые навыки.

Судя по результатам работы — качество не учитываться, код работает — работает, тесты проходит — проходит. Значит все ок.


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

Зарегистрируйтесь на Хабре , чтобы оставить комментарий