JavaRush /Курсы /Модуль 1: Web Core /Путь программиста

Путь программиста

Модуль 1: Web Core
1 уровень , 5 лекция
Открыта

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

Комментарии
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ