JavaRush /Курси /Frontend SELF UA /Шлях програміста

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

Frontend SELF UA
Рівень 47 , Лекція 4
Відкрита

6.1 Кар'єрні сходи

Кар'єрні сходи

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

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

  1. Intern Software Engineer
  2. Junior Software Engineer
  3. Middle Software Engineer
  4. Senior Software Engineer
  5. Tech Lead
  6. 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): працює над масштабними та складними проєктами, визначає стратегічний напрямок технологічного розвитку в компанії.

6.2 Lego-продукти

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

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

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

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

Багато з цих програм, такі як веб-сервер чи база даних, вже написані. Їх потрібно просто правильно сконфігурувати, щоб вони працювали як слід. Хоча з часом процес конфігурування може стати настільки складним, що фактично перетворюється на розробку. 🤦‍♂️

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

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

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

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

Ракета на орбіті

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

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

Це, до речі, одна з причин популярності Frontend. Складний бекенд тепер можна писати на JavaScript з використанням Node.js, або просто «увімкнути» різні сервіси в хмарних дата-центрах. Frontend перестав сильно залежати від обмежень бекенду і розвернувся у всю потужність. І судячи з його популярності, він чудово виконує свою роль.

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

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

Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ