Написать пост

Что уже поздно учить айтишникам в 2024 году

Аватарка пользователя Мария Кривоченко

Рассказали, какие технологии в IT успели устареть за последние годы. Присмотритесь к своим навыкам, возможно, и вам пора немного их обновить и выучить что-то современное.

Тренды и стандарты в IT-индустрии постоянно меняются. Как и требования, которые предъявляются специалистам. Чтобы не выпасть из рынка, нужно постоянно следить за тем, какие технологии сейчас используются. И тратить минимум времени на устаревшее. В статье рассказали, что уже поздно учить в 2024 году, чтобы вам было проще ориентироваться.

Программирование на устаревших языках таких как PERL, PHP

PHP и является одним из самых популярных языков, но его будущее сомнительно, т. к. он плохо справляется с динамическими задачами и выполняется чаще всего в одном потоке. Все попытки запустить его параллельно и в режиме hot-load — это всего лишь заплатки. Сам язык отлично эволюционировал за последние 10 лет, но в современном мире динамических и многопоточных языков как JavaScript (однопоточный, но имеет возможность создавать подзадачи, не блокируя основную программу), Go, C#, Java.

Ручное тестирование без понимания работы веб-сайтов

В современной разработке, когда проекты становятся все сложнее и сложнее, очень важно выдавать как можно больше информации с QA, т. е. необходимо владеть базовыми знаниями — как работают веб-сайты, какие виды запросов бывают, как работать с консолью браузера, дополнительные инструменты вроде Postman.

И этого тоже будет недостаточно, желательно получить знания по автоматизации тестирования для написания автоматических регресс-тестов, покрытия новых крупных фич тестами параллельно с разработкой и т. д. Инструменты вроде Selenium, Jenkins для автоматизированного тестирования становятся очень важны.

Разработка без фреймворков

Написать маленький простой сервис все еще возможно, не используя ни один из фреймворков, но неизбежно такой подход ведет к проблемам — такие проекты сложно дополнять и масштабировать.

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

Бездумное использование одной базы данных для всего на проекте

Теперь необходимо каждый раз думать, какая же БД наиболее подходит для текущей задачи. Помимо классических баз данных как PostgreSQL, MySQL, MongoDB, Redis уже появились специализированные и решающие определенные задачи база дынных, например Clickhouse, AWS Redshift, TimescaleDB, Snowflake. В дополнение ко всему у каждой из баз данных есть облачная версия, о которых полезно иметь хотя бы базовое представление.

Навыки администрирования сайтов

В прошлое окончательно уходят ручной запуск и отладка серверов и на замену уже пришли инструменты для разработки Infrastructure-as-Code. Инженерам инфраструктуры необходимо получать базовые знания в написании кода, системе контроля версий, чтобы быть продуктивными и конкурентоспособными в новых условиях рынка. Важны знания в области работы с инструментами типа Terraform, Ansible.

И еще несколько устаревших технологий

  • Устаревают физические серверы для хостинга: смещение акцента на облачные решения. Контейнеризация и оркестрация покоряет разработку все больше и больше, а это — Docker, Kubernetes, Podman.
  • В системах контроля версий окончательно победил Git. Уже нет смысла изучать такие технологии как SVN, Mercurial.

Отвечу по технологиям и подходам в мире Java-разработки, которые действительно могли устареть или потерять свою популярность. Вот несколько примеров технологий и компонентов в экосистеме Java, которые к 2024 году могли считаться устаревшими или терять свою актуальность:

  • Java Enterprise Edition (Java EE): С появлением Jakarta EE и переходом управления над EE-компонентами от Oracle к Eclipse Foundation многие компании и разработчики переходят на более современные стандарты и фреймворки. Jakarta EE предлагает больше возможностей и гибкости, оставаясь при этом совместимой с Java EE.
  • Servlet JSP: В мире современного веб-разработки подходы на основе JSP (JavaServer Pages) уступают место более современным технологиям для создания веб-интерфейсов, таким как JavaScript-фреймворки (React, Angular, Vue.js) в сочетании с RESTful API.
  • Web Services на основе SOAP: REST и JSON в большинстве случаев заменили SOAP (Simple Object Access Protocol) и XML в качестве стандартного подхода для разработки веб-сервисов из-за их простоты и легковесности.
  • Java Applets: эта технология, позволявшая запускать Java-приложения в браузере, устарела уже много лет назад. С развитием HTML5, JavaScript и различных фреймворков для создания веб-приложений потребность в Java Applets полностью исчезла.
  • EJB (Enterprise JavaBeans): хотя EJB использовались в корпоративных Java-приложениях для создания компонентов бизнес-логики, они постепенно уступили место более легковесным и гибким решениям, таким как Spring Beans и CDI (Contexts and Dependency Injection).
  • RMI (Remote Method Invocation): RMI, технология для обеспечения взаимодействия между Java-приложениями через сеть, часто заменяется более современными и эффективными методами, такими как REST API или даже gRPC.
  • Swing и AWT для GUI: эти технологии для создания графического интерфейса пользователя уступают место JavaFX, который предлагает более современный подход и лучшие возможности для создания богатых клиентских приложений.
  • Старые библиотеки для парсинга XML: например, DOM и SAX могут считаться устаревшими по сравнению с более современными и эффективными библиотеками, такими как StAX или JAXB.
  • Устаревшие практики программирования: например, использование Vector и Hashtable из старых версий JDK вместо более современных коллекций, таких как ArrayList и HashMap.
  • Java Management Extensions (JMX): использование JMX для мониторинга и управления приложениями могло уступить место более современным инструментам и платформам мониторинга, таким как Prometheus, Grafana или другим решениям, более ориентированным на микросервисную архитектуру и контейнеризацию.
  • Java Serialization: из-за проблем с безопасностью и производительностью, а также сложности при работе в распределенных системах, использование встроенной сериализации Java уступило место более безопасным и гибким форматам, таким как JSON или Protobuf.
  • Классы из пакета java.util.Date: Эти классы (например, java. util.Date и java.util.Calendar) считаются устаревшими и менее удобными по сравнению с более современным API для работы со временем в Java, представленным в java.time (введенном в Java 8).
  • Commons Logging: этот фасад логирования уступил место более современным библиотекам, таким как SLF4J или Logback, которые предлагают большую гибкость и лучшую производительность.
  • XML-конфигурации: использование XML для конфигурирования, например, в Spring или Hibernate, постепенно уступает место аннотациям и Java-конфигурациям, что делает код более читаемым и упрощает разработку.
  • Старые платформы отчетности: например, JasperReports или BIRT, могли потерять популярность в пользу более современных и гибких решений для бизнес-аналитики и визуализации данных.
  • Ручное управление транзакциями: В современных приложениях часто предпочитают декларативное управление транзакциями (например, с использованием аннотаций в Spring) вместо ручного управления транзакциями через API.
  • JavaServer Faces (JSF): хотя JSF был популярным выбором для веб-приложений на Java в прошлом, с развитием и популярностью более современных веб-технологий и фреймворков (например, Angular, React, Vue.js), его использование могло сократиться.
  • Старые протоколы безопасности: например, SSL и ранние версии TLS (Transport Layer Security) уступили место более новым версиям TLS для обеспечения безопасности в сетевых коммуникациях.
  • Старые API для работы с изображениями и графикой: например, Java 2D API и AWT, которые могли быть менее предпочтительными по сравнению с более современными библиотеками и фреймворками для работы с изображениями и графикой.
  • CORBA (Common Object Request Broker Architecture): эта технология для распределенных объектных систем уже давно уступает более современным подходам в микросервисной архитектуре и облачных вычислениях.
  • Старые фреймворки для тестирования: например, JUnit 4 и более ранние версии могли уступить место JUnit 5 и другим современным инструментам для тестирования, таким как TestNG, Spock, или Mockito для мокирования.
  • Старые подходы в обработке данных: например, использование JDBC для прямого доступа к базам данных могло смениться на JPA, Hibernate или Spring Data для более высокоуровневой работы с данными.
  • Старые API для работы с потоками: примитивы синхронизации, такие как Thread, Runnable, и synchronized, часто уступают место высокоуровневым конструкциям из java.util.concurrent, таким как ExecutorService, Future, Callable, которые предлагают более гибкое и безопасное.

Важно понимать, что технологическая устареваемость в IT часто зависит не только от возраста технологии, но и от того, насколько она адаптируется к современным требованиям и тенденциям.

На мой взгляд, вопрос устаревания hard-skills сводится в большей степени к их трансформации. В основе хардов лежит знакомство с определенными решениями, с логикой их работы. И гораздо важнее не знание конкретного стека, а глубокое понимание технологии. В современном ИТ конкретные решения довольно быстро устаревают и преобразуются в более удобные реализации с сохранением основной логики использования, но зачастую технология остается той же. Поэтому для людей, глубоко погруженных в технологии, изменения протекают незаметно, а для менее искушенных айтишников все меняется каждый год.

Еще один драйвер трансформации — сами разработчики. Заниматься одним и тем же может просто наскучить. Тогда появляется потребность изучать новые технологии. В итоге получаются специалисты, которые покрывают сразу несколько направлений, и гораздо лучше ориентируются на стыке. Можно сказать, что большой популярностью стали пользоваться full-stack специалисты, способные самостоятельно адаптироваться к изменениям и изучать новое. К примеру, в машинном обучении, сначала дата-сайентисты перенимают часть стека дата-инженеров по обработке больших данных и встраивания их в свои пайплайны, а уже потом занимаются полноценным внедрением разработанных моделей в продакшен в роли мл-инженеров.

С развитием IT-сферы постоянно появляются инновации, которые делают некоторые технологии устаревшими. Например, Flash широко использовался для создания интерактивных веб-сайтов и анимаций, однако он «вышел из строя» из-за своей уязвимости к кибератакам и низкой производительности. Браузеры начали отказываться от поддержки Flash, что привело к его постепенному выходу из обращения.

Еще один пример — технология Java-апплетов, которая также устарела из-за своей ненадежности и сложности в поддержке. Вместо этого разработчики предпочитают использовать более современные HTML5 и JavaScript, которые обеспечивают лучшую производительность и безопасность. 

Сейчас нужно обращать особое внимание на те инструменты, в основе которых лежит ИИ. Если игнорировать этот тренд, есть риск остаться позади. Искусственный интеллект будет помогать собирать и обрабатывать данные, решать сложные задачи и принимать решения. Те компании, которые будут активно внедрять ИИ в бизнес-процессы, смогут повысить эффективность и ускорят процесс автоматизации. 

Одним из основных факторов, приводящих к устареванию хард-скиллов, является появление новых технологий. Например, язык COBOL, который был широко распространен в 1960-х и 1970-х годах, теперь почти полностью устарел из-за появления более современных языков программирования, таких как Java и Python. Но более подробно об устаревании хард-скиллов расскажу на примере frontend инлайн-стилей.

Инлайн-стили – это стили, которые применяются непосредственно к элементам HTML. Они были широко распространены в ранних версиях HTML. Однако с развитием CSS стали постепенно устаревать. Причин на это несколько:

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

Инлайн-стили заменила технология TailWind. Это CSS-фреймворк, который позволяет создавать сложные макеты и дизайны с помощью простых и понятных правил. Tailwind предоставляет набор готовых классов, которые можно использовать для стилизации элементов. Также он обеспечивает гибкость, поддержку и простоту управления стилями, предоставляет мощный и гибкий инструмент для создания стильных и адаптивных веб-страниц, поэтому становится все более популярным среди веб-разработчиков. 

Причины устаревания технологий могут быть тоже различными, включая:

  • Несоответствие современным требованиям: технологии могут устаревать, если они перестают соответствовать современным требованиям в области производительности, безопасности или функциональности.
  • Появление более современных технологий: появление более современных технологий, которые предлагают более высокую производительность, безопасность или функциональность, может привести к устареванию старых технологий.
  • Изменение потребностей пользователей: потребности пользователей также могут меняться с течением времени, что может привести к устареванию технологий, которые не удовлетворяют эти потребности.

Двумя популярными библиотеками состояния в контексте веб-разработки являются Vuex и Pinia. Vuex была выпущена в 2015 году, а Pinia — в 2022 году. То есть Pinia – более современная альтернатива, которая обеспечивает большую поддержку и гибкость, необходимые для создания современных веб-приложений. Является более простым и эффективным способом управления состоянием в вашем приложении.

Выбор хард скилов и технологий напрямую зависит от выбора сферы, в которой вы хотите работать. Для этого лучше всего следить на официальных сайтах технологий, либо за любыми группами в вашей сфере.

Следите за новыми постами
Следите за новыми постами по любимым темам
29К открытий30К показов