1. Карьерная лестница
Программисты также имеют градации в зависимости от квалификации. Когда-то использовались такие понятия как «кодер», «программист» и «хакер», но сейчас все перешли на названия на английском из американского ИТ.
Для разработчика есть 6 основных градаций:
- Intern Software Engineer
- Junior Software Engineer
- Middle Software Engineer
- Senior Software Engineer
- TechLead
- Principal Software Engineer
От страны к стране и даже от компании к компании некоторые параметры могут отличаться, но суть примерно такова:
- 🌱 Intern Software Engineer — это стажёры. Они находятся в процессе изучения программирования, не имеют ни коммерческого опыта, ни опыта участия в крупных проектах. Обычно работают под присмотром более опытных коллег. Основная их задача на работе — изучать кодовую базу и основы разработки ПО, выполняя простые задачи по кодированию и участвуя в тестировании.
- 🐣 Junior Software Engineer — это уже программисты, но без серьезного коммерческого опыта или с опытом меньше года. Работают под руководством более опытных разработчиков, реализуя части проектов и участвуя в циклах код-ревью. Этот этап карьеры сосредоточен на углублении технических навыков и понимании проектных задач.
- 🦾 Middle Software Engineer (или просто Software Engineer): имеют больше самостоятельности в принятии технических решений, отвечают за значимые участки проекта, начинают наставничество над менее опытными коллегами и активнее участвуют в обсуждении архитектуры. Обычно имеют 2–5 лет практического опыта.
- 🧑🔬 Senior Software Engineer: отвечают за проектирование и реализацию сложных систем, обеспечивают менторство и руководство внутри команды, участвуют в стратегическом планировании проектов и часто представляют команду в общении с клиентами и другими заинтересованными сторонами. Обычно имеют 5–10 лет опыта.
- 🧠 TechLead: несет ответственность за конечный технический результат проекта, руководит разработкой, решает наиболее сложные задачи, обеспечивает соблюдение технических стандартов и координирует деятельность разработчиков.
- 🏆 Principal Software Engineer: работает на самом высоком техническом уровне, часто участвует в формировании технической стратегии компании, разработке инновационных решений и установлении технических стандартов, служит главным наставником для технических лидеров и является ключевым экспертом в сложных технических вопросах.
Это интересно. У крупных компаний могут быть дополнительные роли и подроли. Например, в Google есть такие роли:
- Staff Software Engineer (L6): имеет значительное влияние на техническую политику своего отдела.
- Senior Staff Software Engineer (L7): работает над масштабными и сложными проектами, определяет стратегическое направление технологического развития в компании.
2. Lego-продукты
Когда-то давно (в 1975 году) Никлаус Вирт, создатель языка Pascal, написал книгу «Алгоритмы + Структуры данных = Программы». С тех пор многое изменилось. Современный программный продукт — это не то, чем он был 10 лет назад, и уж точно не то, что было 20 лет назад. Про 1975 год и говорить не стоит — с тех пор прошло 50 лет ⏳
Современный программист больше не пишет программы вручную. Он скорее собирает их из готовых частей (библиотек) и пишет код, который помогает этим частям взаимодействовать🧩. Современные программные продукты могут состоять из десятков и сотен программ. Некоторые из них запускаются на компьютере пользователя, его мобильных устройствах, большая же часть — на серверах в дата-центре.
Многие из этих программ, такие как веб-сервер или база данных, уже написаны. Их нужно просто правильно сконфигурировать, чтобы они работали как надо. Хотя со временем процесс конфигурирования может стать настолько сложным, что фактически превращается в разработку. 🤦♂️
Программисты постоянно борются сами с собой. Вместо того, чтобы снова писать похожий код в разных программах, они пишут библиотеки, которые можно конфигурировать (настраивать) под свои нужны, а затем просто подключают их во все требуемые места.
За последние 20 лет программистами было написано очень много библиотек, фреймворков и открытых репозиториев. Их реально миллионы. И теперь писать весь код с нуля считается дурным тоном. Вместо этого нужно собрать программу из качественных и проверенных решений — библиотек, фреймворков, пакетов и модулей 🧱
Но и такой подход уже устаревает. Тенденция последних 10 лет — это переезд в облака, большие дата-центры, которые предоставляют вашим программам всё, что им нужно. Хотите базу данных? У нас их сотни на выбор. Хотите редкий уникальный веб-сервер — есть и такие! Любой каприз за ваши деньги.
3. «Я — инженер» © Илон Маск

Больше не нужно писать сложные и скучные вещи самостоятельно. Если вам нужна какая-то функциональность — для этого уже есть готовые библиотеки и фреймворки. Ваша задача: а) знать об их существовании, б) найти подходящий вариант (аналогов часто бывает несколько, с разным качеством и нюансами), в) понять, как интегрировать его в свой проект 🎓
Работа от этого стала только интереснее. Теперь вы можете в 10 раз быстрее добавлять новую функциональность в продукт. 30 лет назад, если вам нужен был web-сервер, вы писали его с нуля. 20 лет назад — покупали, устанавливали и настраивали. А сейчас — просто заходите в облачный портал Azure или AWS и включаете нужный сервис 🌐
Это, кстати, одна из причин популярности языка Java. Он отлично подходит не только для разработки крупных корпоративных решений, но и для «склеивания» разных компонентов — через богатую экосистему JVM есть интеграции практически с чем угодно: базы данных, микросервисы, REST API, системы обмена сообщениями, облачные сервисы, аналитические платформы.
Соответственно, и профессия Java Software Engineer давно трансформировалась в Fullstack Java Developer. Современному разработчику важно разбираться, как работает база данных (PostgreSQL, MySQL/MariaDB, MongoDB и др.), чтобы грамотно строить взаимодействие. Нужно понимать, как устроен frontend (HTML, CSS, JavaScript/TypeScript, React, Angular), чтобы настраивать обмен с backend-частью на Java (Spring Boot, Micronaut, Quarkus). И, конечно, без Docker сейчас никуда — это уже стандарт отрасли 🐳.
Современная разработка вообще очень сильно отличается от того, что было 20 лет назад. Программист пишет код не больше 50% времени — остальное уходит на чтение документации, изучение новых технологий, проектирование и работу в команде на митингах. Программисты-одиночки — это уже скорее редкое исключение.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ