Требования к разработчикам 30-20-10 лет назад

За последние три десятилетия индустрия разработки программного обеспечения претерпела значительные изменения. Вместе с технологическим прогрессом менялись и требования к разработчикам. Как эволюционировали эти требования с 1990-х годов до наших дней? Сергей Политыко, архитектор информационных систем IBS, рассказывает об этом через взгляд на портреты разработчиков ПО уровня Middle в разные временные периоды.

Требования к разработчикам 30-20-10 лет назад

30 лет назад (начало 1990-х)

Требования к разработчикам 30-20-10 лет назад

Знакомьтесь, это Сергей «Байтмен». Он носит очки с толстыми линзами и футболку с надписью «I debug in my sleep». Сергей может часами спорить о преимуществах различных алгоритмов сортировки и знает наизусть коды ошибок DOS. Его рабочий стол завален распечатками кода и техническими мануалами толщиной с кирпич. Сергей гордится тем, что может уместить целую программу в 640 КБ памяти, и считает, что мышь — это излишество для настоящего программиста. Он мечтает о компьютере с процессором 486 и уверен, что 16 МБ оперативной памяти — это больше, чем когда-либо может понадобиться.

Тренды и требования:

1. Фокус на низкоуровневом программировании.

2. Глубокое знание архитектуры компьютеров.

3. Умение оптимизировать код для ограниченных ресурсов.

4. Знание языков программирования C и Assembly.

5. Опыт работы с DOS и ранними версиями Windows.

6. Менее важно: опыт работы в команде, soft skills.

Ключевые отличия от современных требований:

  • меньше внимания уделялось пользовательскому интерфейсу;
  • отсутствие требований к знанию веб-технологий;
  • не требовалось знание методологий разработки (например, Agile).

20 лет назад (начало 2000-х)

Требования к разработчикам 30-20-10 лет назад

Представляем вам Лизу «Java-джедай». У нее на столе стоит монитор или даже 2 и, возможно, даже ЖК, а в наушниках играет последний альбом Linkin Park. Лиза обожает рисовать UML-диаграммы и может часами рассуждать о преимуществах интерфейсов над абстрактными классами. Она гордо носит значок «Я пережил Y2K» и считает, что XML — это решение всех проблем в программировании. Она уверена, что Flash — это будущее веб-разработки, а IE6 будет доминировать вечно. В свободное время она пишет свой блог на LiveJournal и мечтает о том, чтобы однажды написать «корпоративное приложение».

Тренды и требования:

1. Рост популярности объектно-ориентированного программирования.

2. Знание языков Java и C++.

3. Появление требований к навыкам веб-разработки (HTML, CSS, JavaScript).

4. Начало развития мобильных технологий.

5. Возросшая важность работы с базами данных.

6. Появление внимания к пользовательскому опыту (UX).

Ключевые отличия от современных требований:

  • меньше внимания уделялось облачным технологиям;
  • не было требований к знанию фреймворков и библиотек;
  • менее развитые практики CI/CD и DevOps.

10 лет назад (начало 2010-х)

Требования к разработчикам 30-20-10 лет назад

Познакомьтесь с Лешей «Agile Ninja». У него MacBook Pro, покрытый стикерами различных JavaScript-фреймворков, и он не расстается со своим iPhone. Алексей начинает день с проверки Hacker News и закачивает как минимум тремя чашками органического кофе из местной кофейни. Он обожает устраивать дебаты о преимуществах NoSQL над реляционными базами данных и уверен, что Ruby on Rails — это лучшее, что случилось с веб-разработкой. Леша называет себя «гражданином мира» и работает удаленно из коворкингов. Он мечтает создать стартап, который станет «Uber для чего-нибудь», и уверен, что биткоин — это будущее мировой экономики. В свободное время он пишет статьи для своего блога на Medium о том, как важно «мыслить нестандартно» и «разрушать устоявшиеся парадигмы».

Тренды и требования:

  1. Рост важности веб-разработки и мобильных приложений.
  2. Популяризация языков Python и Ruby.
  3. Начало эры Big Data и требования к навыкам работы с большими данными.
  4. Растущая важность знания фреймворков (например, Angular, Ruby on Rails).
  5. Увеличение внимания к Agile-методологиям.
  6. Появление требований к знанию облачных технологий.

Ключевые отличия от современных требований:

  • меньше внимания уделялось микросервисной архитектуре;
  • не было такого акцента на DevOps и CI/CD;
  • искусственный интеллект и машинное обучение не были широко распространены.

2024 год

Требования к разработчикам 30-20-10 лет назад

Тренды и требования:

  1. Полный стек навыков (full-stack development).
  2. Глубокое знание JavaScript и его экосистемы.
  3. Опыт работы с контейнеризацией (Docker) и оркестрацией (Kubernetes).
  4. Навыки в области DevOps и CI/CD.
  5. Знание микросервисной архитектуры.
  6. Опыт работы с облачными платформами (AWS, Azure, GCP).
  7. Понимание принципов безопасности и защиты данных.
  8. Навыки в области искусственного интеллекта и машинного обучения
  9. Знание принципов чистого кода и архитектурных паттернов.
  10. Сильные soft skills и умение работать в команде.

Ключевые отличия от прошлых периодов:

  • больше внимания уделяется гибкости и адаптивности разработчиков;
  • важность непрерывного обучения и освоения новых технологий;
  • акцент на автоматизацию процессов разработки и развертывания;
  • возросшая роль коммуникативных навыков и умения работать в распределенных командах.

В заключение можно сказать, что за последние 30 лет требования к разработчикам программного обеспечения значительно усложнились и расширились. Если раньше основной фокус был на техническом мастерстве и знании конкретных языков программирования, то сейчас от разработчиков ожидается широкий спектр навыков, включающий как технические знания, так и soft skills. Современный разработчик должен быть гибким, постоянно учиться и уметь адаптироваться к быстро меняющимся технологиям и методологиям разработки.

44
Начать дискуссию