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

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

Модуль 1: Python Core
Рівень 1 , Лекція 5
Відкрита

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% свого часу. Весь інший час він читає доки, вивчає нові технології і проводить на мітингах (нарадах). Програмісти-одинаки залишилися далеко в минулому.

1
Опитування
Інформаційна революція, рівень 1, лекція 5
Недоступний
Інформаційна революція
Інформаційна революція
Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ