Основатель легендарной компании по обучению технологиям O’Reilly Media Тим О’Райли известен своими вдумчивыми наблюдениями за тенденциями в IT — например, он поддерживал идею открытого исходного кода задолго до того, как это стало популярным. Недавно он прокомментировал будущее индустрии программного обеспечения, и, по мнению многих разработчиков, его слова заслуживают внимания.
«Я думаю, что времена, когда было достаточно научиться программировать, чтобы получить отличную работу, в некотором роде закончились. В ближайшем будущем это умение станет таким же базовым навыком, как чтение и письмо», — заявил О’Райли.
Звучит довольно логично. Тезис «сегодняшние продвинутые навыки программирования — это базовые компетенции завтрашнего дня» уже высказывался неоднократно. Как действительно будет выглядеть будущее индустрии?
Программирование как базовый навык
Важность этого навыка очевидна. Даже если человек не планирует писать собственную программу, в нынешних условиях необходимо понимать, как работает код. Базовые навыки программирования могут пригодиться при создании веб-сайта, обработке массивов данных или автоматизации простых задач. А кто не проводил день, пытаясь разобраться с алгоритмами Google, Facebook или YouTube? Технологии окружают современного человека, поэтому каждому, кто с ними сталкивается, нужно понимать принципы, по которым они работают — независимо от того, программист он или нет.
Идея о том, что работа с кодом скоро перестанет быть действием на грани фантастики и станет частью обыденности — не новость. Но есть и основания для сомнений. Еще десять лет назад регулярно высказывались мысли о том, что научная грамотность скоро станет массовым явлением из-за необходимости быстро принимать решения в постоянно меняющемся мире. Но пока она так и осталась уделом единиц, большинство же до сих пор принимает большинство научных данных на веру, до конца не разбираясь во многих обсуждаемых явлениях — от компьютеров (квантовая механика) до вакцин (генетика) или GPS (общая теория относительности). Если научная грамотность — это цель, которая так и не была достигнута, стоит ли ожидать, что ситуация с программированием будет развиваться иначе?
Сторонники этой мысли отмечают, что чтение и письмо тоже когда-то были специализированными навыки, и потребовались годы, чтобы они стали массовыми. Если бы в 1620 году кто-то сказал, что несколько столетий спустя большинство людей сможет написать осмысленный пост в Facebook, его бы назвали по меньшей мере мечтателем. При этом уметь писать — не значит быть поэтом, а понимать принципы научного знания — не значит быть ученым. Понимание основных принципов работы кода также не равно самостоятельному построению сложных систем.
Повышение общей компьютерной грамотности имеет мало общего с подготовкой будущих разработчиков. Новичков в этой сфере часто обучают простым вещам, далеким от искусства программирования. В прошлом это были макросы Excel или Visual Basic и Access, если у студента было немного больше амбиций. Теперь это Power Apps. Если человек хочет стать профессиональным программистом, ему придется отклониться от стандартного пути.
Современное образование позволяет большему количеству людей разбираться в коде. Но для того, чтобы стать профессиональным программистом, по-прежнему нужно предпринять немало усилий.
Ценность квалифицированных кадров
Другая часть комментария Тима О’Райли касается более тонких вопросов. Если все больше рядовых пользователей могут понимать устройство кода, угрожает ли это привилегированному положению разработчиков на рынке труда?
Ряд специалистов заявляет, что программирование станет обыденным навыком уже в ближайшие пару десятилетий. При этом некоторые из сегодняшних разработчиков вспоминают, как в юности им предлагали изучать что-то более «постоянное» — например математику, потому что многим казалось, что этот рынок скоро будет заполнен.
Сегодня в мире больше программистов, чем когда-либо прежде, и множество иностранных сотрудников, которые берут на себя рутинные IT-задачи. На первый взгляд, недостатка в разработчиках нет, но по-настоящему хорошие специалисты в этой сфере по-прежнему встречаются редко — этот дефицит оказался на удивление долговечным. Даже несмотря на изменения в системе традиционного образования (например, добавление STEM-предметов в учебную программу) и множество учебных курсов по программированию, нехватка квалифицированных разработчиков ощущается до сих пор. По текущим оценкам, дефицит талантливых программистов в ближайшие годы будет только расти.
Легко предположить, что недостаток опытных профессионалов особенно остро ощущается в новых областях, таких как машинное обучение и анализ больших данных. Разработчики, специализирующиеся на этих технологиях, действительно пользуются большим спросом, но дефицита здесь нет. Зато индустрии не хватает квалифицированных программистов среднего уровня — людей, которые умеют кодить на базовом уровне, но при этом эффективно работают в команде и обладают развитыми soft skills. Кроме того, важны такие навыки как способность анализировать большие системы, исправлять баги, управлять проектами и общаться с заинтересованными сторонами.
В будущем новоиспеченные программисты могут испытывать трудности при трудоустройстве из-за недостаточно сильного портфолио или особенностей местного рынка труда. Но опытные разработчики не утратят своих позиций в течение десятилетий. Даже возможное появление систем генерации кода на основе искусственного интеллекта не заменит эксперта, который понимает разницу между разработкой программы и особенностями ее использования в реальном мире.
Станут ли когда-нибудь навыки программирования настолько распространенными, что востребованность разработчиков снизится? Судя по нынешней ситуации, это маловероятно. Но те, кто рассматривают программирование в качестве источника легких денег, скорее всего перегорят раньше, чем достигнут успеха в этой области.
Новый золотой век
В цитате Тима О’Райли говорится о будущем, в котором навыки программирования перестанут быть залогом успешной карьеры. Но что, если золотой век компьютеров не обязательно связан с легкими деньгами и уверенностью в трудоустройстве? Что, если приобретенные за полвека навыки важнее, чем то, что человечество может потерять?
В последние годы программирование постоянно усложнялось. Но при этом появилось множество удобных инструментов — IDE, которые помогают вылавливать баги, вычислительное оборудование, которое обеспечивает компилирование в считанные секунды, и фреймворки, которые автоматизируют обработку рутинных задач. Сейчас кажется странным, что еще недавно программисты искали информацию по темам вроде Windows API в бумажных источниках, а хорошие инструкции передавались из рук в руки до тех пор, пока книга не разваливалась на части.
Сегодня, в эпоху StackOverflow, веб-сайтов с бесплатными учебными пособиями, курсов на YouTube и стримов по программированию в Twitch, барьеры для входа практически исчезли. Теперь вместо системы тайных знаний, отпугивавшей новичков, появилось сообщество экспертов, готовых делиться опытом и показывать открытый исходный код своих проектов. Если золотой век ассоциируется с интенсивным обменом информацией, то нынешний момент определенно соответствует этому определению. В истории еще не было периода, когда можно было так быстро превратить идею в работающую программу и поделиться ей со всем миром.