Читаемый код и непобедимый JavaScript: 5 главных трендов программирования в 2021 году
Читать первым в Telegram-канале «Код Дурова»
В мире насчитывается почти 24 млн. разработчиков, а к 2023 году их число превысит 27 млн. Программирование с каждым годом становится все более демократичным и доступным, а спрос на специалистов стабильно растет. О главных трендах IT-отрасли и лайфхаках, которые помогут новичкам быстрее освоиться в профессии, рассказал «Коду Дурова» Георгий Бабаян, основатель первого российского буткемпа для программистов Elbrus.
Многообразие и демократичность
За последние 10-20 лет сфера программирования стала максимально демократичной, а порог входа в профессию снизился. Уже не нужно пять лет учиться в вузе или годами практиковаться, чтобы устроиться на работу. Число специалистов стабильно растет с каждым годом, а состав IT-отделов становится более многообразным.
По данным Developer Survey 2019, примерно треть разработчиков сегодня — это люди от 30 до 40 лет, а еще 10% входит в возрастную группу старше 40. При этом в России профессия относительно молодая: средний специалист работает в индустрии чуть больше 11 лет — это меньше, чем в Австралии, Англии и США.
Действительно, в IT в какой-то момент пошли миллионы россиян, ведь спрос на айтишников только увеличивается, а профессия остается все такой же привлекательной, становясь при этом более доступной. Сегодня многие программисты предпочитают учиться самостоятельно — при достаточной целеустремленности и усидчивости для достижения junior-уровня достаточно несколько месяцев позаниматься кодингом. А поскольку в России активно стали развиваться буткемпы, гарантированно овладеть необходимой базой в сжатые сроки и устроиться на junior-позицию становится еще проще. Однако это не значит, что профессия программиста упростилась — для карьерного роста нужно постоянно совершенствовать навыки, осваивать новые технологии и следить за трендами.
Личностный рост — тоже важное понятие для современного айтишника. Нелюдимый и замкнутый "прогер" — это миф из далекого прошлого. Большинство IT-специалистов работают в команде и общаются с отделом разработки продукта, с маркетологами и заказчиками. Оставаться закрытым интровертом в таких условиях не получится. Поэтому растет запрос не только на hard skills, но и на soft skills: умение проявлять эмпатию, быть хорошим командным игроком и находить общий язык с разными людьми.
У демократичности есть и обратная сторона: появляется все больше айтишников, которым не хватает базовых знаний в математике и computer science. Такие специалисты умеют по максимуму использовать доступные инструменты, но им сложно изобретать новое. Впрочем, это только способствует развитию многообразия. На рынке труда сегодня можно найти разработчика под любую задачу: специалисты по low-code инструментам с легкостью соберут простой лендинг интернет-магазина или настроят рассылку электронных писем, junior-специалисты помогут небольшому стартапу настроить CRM-систему, middle- и senior-разработчики запустят удобную и быструю кастомизированную онлайн-платформу, а data-аналитики позволят компании выйти на новый уровень благодаря работе с большими данными. Подобное многообразие показывает, насколько развилась IT-отрасль в России и в мире: специалистов стало больше, а их средний уровень вырос.
Читабельный код
Интересный тренд, который тесно связан с предыдущим, — это упрощение. Способность кодить уже не считается сакральным навыком, которым владеют либо гении, либо самые упорные. Сервисы становятся более простыми и понятными, а ряд задач можно автоматизировать. Алгоритмы уже умеют вычитывать и даже дописывать код за программиста. Появляются и удобные сервисы, например, CI/CD-системы с упрощенным интерфейсом для непрерывной интеграции и развертывания. Они позволяют быстро и точечно вносить правки, не перекраивая весь код. С их помощью кодер может незаметно для пользователей устранять ошибки и внедрять новые функции.
Код также становится более читабельным и понятным. Раньше для того, чтобы сервис быстро работал, создавали сложный код, адаптированный под старые и тяжеловесные системы. Сегодня компьютеры стали более мощными, а программисты перестали писать низкоуровневый код. Большинство, наоборот, старается сделать его более простым, чтобы разработчик любого уровня смог понять код без особых усилий.
Железо, на котором работает программист, стало также играть все меньшую роль. Разработчик может взять “пустой” ноутбук, войти в систему, залогиниться и кодить в облаке, используя серверные мощности таких гигантов, как Microsoft, Amazon или "Яндекс". Поэтому программировать сегодня можно даже в поездке с обычного макбука.
Эпоха микросервисной архитектуры
В конце 2010-х в мире наступила эра суперприложений, экосистем и агрегаторов — первыми этот тренд подхватили азиатские компании, а со временем подключились западные и российские разработчики. Мы заказываем еду и вызываем такси на той же платформе, на которой рассылаем стикеры в чатах друзьям. Поэтому потребность в простых онлайн-сервисах с минимальным набором функций отпадает — нужно делать все и сразу. Этот тренд отражается и на архитектуре сайтов и приложений. Они все чаще задействуют микросервисную архитектуру — за каждую функцию отвечает отдельный модуль, и если он выходит из строя, сайт продолжает работать. Например, если в интернет-магазине сломается модуль отображения цен, все остальные функции будут активными и клиент сможет совершить покупку. Раньше в основе сайтов лежали монолитные структуры, у которых был единый центр обработки. Теперь таких центров несколько.
Микросервисная разработка — это классический agile-процесс, при котором специалисты делятся на группы и отвечают за каждую конкретную задачу. Обычно для этого требуется большая команда, в том числе специалисты высокого уровня, которые смогут бесшовно соединить все компоненты целого.
Стандартизация мобильной разработки
Современная мобильная разработка устроена довольно хаотично: единых стандартов нет, а программисты действуют каждый по своему сценарию, выбирая более удобный подход в каждом конкретном случае. Часто перед командой стоит задача создать одновременно веб-версию продукта и удобную мобильную версию, а также сделать приложение для iOS и Android. Крупные команды на каждую задачу выделяют отдельные ресурсы, но стартапы не всегда могут себе это позволить. В итоге возникает хаос — все работают по-разному, а при переходе из одной команды в другую программисту приходится долго адаптироваться к другому стилю разработки.
Ответом на эту проблему становится стандартизация — разработчики ищут способы упростить процесс создания продуктов под разные платформы: для этого создают новые фреймворки, инструменты или методологии. Думаю, через 3-4 года унификации удастся добиться.
На волне этого тренда развиваются и прогрессивные веб-приложения (Progressive Web Apps, PWA). По сути это гибриды, которые соединяют в себе черты мобильных и веб-приложений — они одинаково хорошо работают на смартфоне, и на десктопе. У PWA-кодеров больше свободы, поскольку они могут применять знания из разных областей в одной сфере. В результате стирается деление на мобильных и веб-разработчиков.
Вечный JavaScript
Большинство начинающих программистов сегодня изучает Python, однако самый ходовой язык на практике — это JavaScript. Любопытно, что еще 10 лет назад его считали слишком примитивным инструментом, пригодным лишь для небольшой группы программистов, а сегодня им пользуется как минимум 40% кодеров. И неудивительно, ведь в какой-то момент JavaScript стал своего рода "швейцарским ножиком" — универсальным языком, на котором можно создавать все — от интерфейсов до баз данных.
Более того, появляются надстройки и сервисы, которые открывают новые возможности. Например, набирает популярность фреймворк React и надстройка TypeScript, которая позволяет более опытным разработчикам эффективнее использовать JavaScript. Получается, что несмотря на конкуренцию с Python, C и другими языками, JavaScript продолжает развиваться, поэтому разработчикам все еще рекомендуется его освоить.
Что важно знать начинающему программисту в 2021 году:
- Фундаментальные навыки программирования помогут использовать все доступные инструменты более эффективно. Не пренебрегайте базой — знания точно пригодятся, более того, они позволят вам работать быстрее и даже креативнее.
- Изучайте статистику — "хайповые" языки программирования часто не так популярны на практике, как может показаться. Например, JavaScript до сих пор лидирует во всех опросах и им пользуется больше всего разработчиков.
- Начать путь в программировании проще, чем когда-либо прежде, но приготовьтесь к сложностям на следующих этапах — чтобы дорасти до middle- и senior-уровня, нужно приложить немало усилий.
- Следите за новыми приложениями и сервисами — как они устроены, как работают, что изменилось за последние полгода или год. Так вы сможете отслеживать тренды разработки и быстрее реагировать на изменения.
- Упрощение — один из главных трендов программирования. Но это не значит, что создавать приложения можно в два клика. За пару кликов вы сможете собрать простейшую игру или онлайн-магазин, но вряд ли построите базу данных или нейросеть. Алгоритмы, кстати, пока так и не научились выполнять работу за программистов — они берут на себя только рутину, оставляя вам самые сложные и увлекательные задачи. Одним словом, сейчас лучшее время, чтобы взяться за разработку.