JavaRush/Курси/Модуль 1: Python Core/Шлях програміста

Шлях програміста

Відкрита

6.1 Кар'єрна драбина

Програмісти також мають градації залежно від кваліфікації. Колись використовували такі поняття як «кодер», «програміст» та «хакер», але зараз всі перейшли на назви на англійській з американського ІТ.

Для розробника є 6 основних градацій:

  • 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): працює над масштабними і складними проектами, визначає стратегічний напрямок технологічного розвитку в компанії.

6.2 Lego-продукти

Колись давно (в 1975 році) Ніклаус Вірт, творець мови Pascal, написав книгу «Алгоритми + Структури даних = Програми». З того часу багато змінилося.

Сучасний програмний продукт — це не те, чим він був 10 років тому, і вже точно не те, що було 20 років тому. Про 1975 рік і говорити не варто — з того часу пройшло 50 років.

Сучасний програміст більше не пише програми вручну. Він скоріше збирає їх з готових частин (бібліотек) і пише код, який допомагає цим частинам взаємодіяти.

Сучасні програмні продукти можуть складатися з десятків і сотень програм. Деякі з них запускаються на комп'ютері користувача, його мобільних пристроях, більша ж частина — на серверах в дата-центрі.

Багато з цих програм, такі як веб-сервер або база даних, вже написані. Їх треба просто правильно сконфігурувати, щоб вони працювали як треба. Хоча з часом процес конфігурації може стати настільки складним, що фактично перетворюється на розробку. (*facepalm*)

Програмісти постійно борються самі з собою. Замість того, щоб знову писати схожий код у різних програмах, вони пишуть бібліотеки, які можна конфігурувати (налаштовувати) під свої потреби, а потім просто підключають їх у всі потрібні місця.

За останні 20 років програмістами було написано дуже багато бібліотек, фреймворків і відкритих репозиторіїв. Їх реально мільйони. І тепер писати весь код з нуля вважається поганим тоном. Замість цього треба зібрати програму з якісних і перевірених рішень – бібліотек, фреймворків, пакетів і модулів.

Але і такий підхід вже застаріває. Тенденція останніх 10 років – це переїзд в хмари, великі дата-центри, які надають вашим програмам все, що їм потрібно. Хочете базу даних? У нас їх сотні на вибір. Хочете рідкісний унікальний веб-сервер - їх є у мене. Будь-який каприз за ваші гроші.

6.3 «Я – інженер» © Ілон Маск

Більше не потрібно писати складні і нудні речі. Якщо вам потрібна якась крута складна функціональність, на цей випадок вже є бібліотека. Вам потрібно просто: а) знати, що вона є, б) знайти потрібну (можуть бути десятки аналогів різної якості), в) розібратися, як інтегрувати її у ваш проект.

Робота від такого підходу стала тільки цікавішою. Тепер ви в 10 разів швидше можете додавати в продукт нову функціональність. 30 років тому, якщо вам потрібен був web-сервер, вам потрібно було написати його. 20 років тому — купити, встановити і налаштувати. А зараз — просто зайти в адмінку «хмари» і включити.

Це, до речі, одна з причин популярності мови Python. Він дуже добре підходить не для написання великих і складних рішень, а саме для «склеювання» різних частин між собою. І, судячи з його популярності, він відмінно з цим справляється.

Ну і сама професія з Python-розробника трансформувалася в Python Fullstack Software Engineer. Сучасний Python-розробник повинен розуміти, як працює база даних, щоб грамотно з нею працювати. Розуміти HTML & JavaScript, щоб налаштувати роботу frontend-а з python-бекендом. Ну і Docker потрібен — це тепер стандарт галузі.

Сучасна розробка взагалі мало схожа на те, що було ще 20 років тому. Сучасний програміст пише код не більше 50% свого часу. Весь інший час він читає доки, вивчає нові технології і проводить на мітингах (нарадах). Програмісти-одинаки залишилися далеко в минулому.

Коментарі
  • популярні
  • нові
  • старі
Щоб залишити коментар, потрібно ввійти в систему
Для цієї сторінки немає коментарів.