День 1843. #Карьера
Сеньор, Эксперт или Кто? Окончание
Начало
Старший инженер, архитектор и другие
Означает ли изложенное вчера, что сеньорам не обязательно хорошо разбираться в программировании? Или что, чтобы стать архитектором, нужно учить других? Есть две основные вещи, которые мы можем выделить в разработке ПО: роли и навыки.
Роль
Инженер-программист — это роль. То же самое и с архитектором. Каждая роль требует определённого набора навыков, а разные роли могут требовать схожих навыков.
При этом «архитектор» — не «следующий уровень после сеньора», а отдельная роль. Она требует других навыков и даёт другие результаты. Поэтому не обязательно становиться сеньором, прежде чем стать архитектором. То же касается владельцев продуктов, менеджеров проектов и т.п.
Также архитекторам не обязательно быть «экспертами» в программировании. Как может быть младший программист, может быть и младший архитектор. Это просто другая роль.
Навыки
Каждая роль требует навыков. Некоторые навыки могут потребоваться для многих должностей, например, работа с числами необходима и бухгалтерам, и продавцам. Можно измерить ваши навыки, и обычно можно сказать, что вы новичок, профессионал или эксперт. В разработке ПО мы можем распознать множество аспектов навыков:
1. Технология
Язык программирования, база данных, фреймворк, библиотека, парадигма, приложение или что-то ещё. Например, эксперт по C# сможет объяснить, как работает GC, как реализуются блокировки или почему мы не можем наследовать от структур.
2. Область
Определённая часть приложения: бэкенд, фронтенд, инфраструктура, база данных и т.п. Например, эксперт по веб-бэкенду сможет объяснить SNI, CORS, SOP, сертификаты, масштабирование, кэширование и другие вещи, обычно используемые в веб-серверах.
3. Домен
Определённая часть реальности, которую мы моделируем в ПО: платежи, медицина, торговля или логистика. Например, эксперт в банковском деле объяснит, что такое кредитный рейтинг, как его рассчитать, что такое PCI, как работать с международными транзакциями, что такое ELIXIR, SEPA или SORBNET.
Кто я?
Исходя из вышесказанного, возможно, вы старший инженер-программист + эксперт по бэкэнду + младший специалист в C# + профессионал в банковском деле. Именно поэтому и могут существовать архитекторы ПО, которые не умеют программировать.
Программист или разработчик ПО?
Программирование и разработка ПО - это лишь вопрос названия. Важно понимать, что «программирование» – не единственное, что есть в «разработке ПО». Легко написать код. Трудно поддерживать код на протяжении многих лет, когда технологии меняются, операционные системы устаревают, а фреймворки исчезают. Не имеет значения, называем ли мы себя программистами или разработчиками ПО. Важно то, сможем ли мы написать код или разрабатывать одну и ту же кодовую базу на протяжении десятилетий.
А теперь самое сложное. Когда кто-то ищет «сеньоров», можем ли мы сказать, кого они имеют в виду?
Короткий ответ: нет. Вы не узнаете, пока не спросите их, что они под этим подразумевают. И именно так следует искать работу: просто сопоставьте, каковы их ожидания, что вы умеете делать, насколько вы в этом хороши и что вы получаете взамен. Неважно, назовут ли вас джуном, сеньором, архитектором, директором, помощником или экспертом. Это вообще не имеет значения (если отбросить психологические аспекты). Важно то, какова ваша роль и чего от вас ожидают.
Источник: https://blog.adamfurmanek.pl/2023/02/24/types-and-programming-languages-part-19/index.html
Post #2227
2.47K
- 👍 8