1. Кар’єрна драбина
У програмістів теж є градації за рівнем кваліфікації. Колись уживали поняття «кодер», «програміст» і «хакер», але тепер усі перейшли на англомовні назви з американського IT.
Для розробників є шість основних рівнів:
- Intern Software Engineer
- Junior Software Engineer
- Middle Software Engineer
- Senior Software Engineer
- TechLead
- Principal Software Engineer
Від країни до країни, і навіть від компанії до компанії, деякі критерії можуть різнитися, але суть приблизно така:
- 🌱 Intern Software Engineer — це стажери. Вони перебувають у процесі вивчення програмування, не мають ані комерційного досвіду, ані досвіду участі у великих проєктах. Зазвичай працюють під наглядом досвідченіших колег. Їхнє основне завдання на роботі — вивчати кодову базу та основи розроблення ПЗ, виконуючи прості завдання з кодування і беручи участь у тестуванні.
- 🐣 Junior Software Engineer — це вже програмісти, але без серйозного комерційного досвіду або з досвідом менш як рік. Працюють під керівництвом досвідченіших розробників, реалізують частини проєктів і беруть участь у циклах code review. На цьому етапі кар’єри зосереджуються на поглибленні технічних навичок і розумінні проєктних завдань.
- 🦾 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 років тому, якщо вам був потрібен вебсервер, ви писали його з нуля. 20 років тому — купували, встановлювали і налаштовували. А зараз — просто заходите у хмарний портал Azure чи AWS і вмикаєте потрібний сервіс. 🌐
Це, до речі, одна з причин популярності мови C#. Вона чудово підходить не лише для розроблення великих рішень, а й для «склеювання» різних компонентів — у .NET є інтеграції майже з чим завгодно: базами даних, мікросервісами, REST API, чергами повідомлень чи хмарними сервісами.
Відповідно, професія C#/.NET розробника давно трансформувалася у Fullstack .NET Software Engineer. Сучасному розробнику важливо розуміти, як працює база даних (SQL Server, PostgreSQL, MongoDB тощо), щоб грамотно будувати взаємодію. Треба знати, як улаштований фронтенд (HTML, CSS, JavaScript/TypeScript, Blazor), щоб налаштовувати обмін із бекенд-частиною мовою C#. І звісно, без Docker нині нікуди — це вже стандарт галузі. 🐳
Сучасне розроблення загалом істотно відрізняється від того, що було 20 років тому. Програміст пише код не більш як 50 % часу — решту витрачає на читання документації, опанування нових технологій, проєктування та командну роботу на мітингах. Програмісти-одинаки — це радше рідкісний виняток.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ