Перевод. Оригинал - https://medium.com/@TebbaVonMathenstien/are-programmers-headed-toward-another-bursting-bubble-528e30c59a0e

Мой друг недавно озвучил вопрос, который я слышал много раз в различных формах на различных форумах: Ты думаешь низкоквалифицированные специальности по IT и программированию останутся? Мне кажется, огромный пузырь по вакансиям для них скоро должен взорваться. По моему мнению, только две вещи, которые делают работу таких специалистов “престижной” и высокооплачиваемой - это ужасный технический жаргон и повальное отсутствие у остальных людей компьютерного образования, и эти обе причины уйдут в следующие 10 лет […]

Этот ответ - одновременно и в точку насчет будущего развития рабочих мест в технологическом секторе, и экземпляр настойчивого непонимания того, что такое разработка программного обеспечения. Пока что, действительно, присутствует ситуация с “ужасным техническим жаргоном”, есть такое же количество проблем, которые ждут своего разрешения с помощью требуемого набора знаний. Некоторые вакансии в сфере IT точно уйдут, но программисты с правильным опытом и знаниями будут так же оставаться престижными и хорошо оплачиваемые еще многие годы. Взять, к примеру, взрывной рост зарплат в области AI и соответствующую нехватку специалистов в этой области.

Оставаться релевантным в постоянно меняющимся ландшафте технологий сложно. Смотря на технологии, которые заменяют программистов, мы можем предположить, какие работы могут исчезнуть с рынка труда. Дополнительно, чтобы предсказать, как могут изменится зарплаты и запросы на специфические знания, мы должны принять во внимание, что все большее количество людей сейчас учится программировать. По определению Ханна(Hannah), “общественное невежество” насчет компьютеров действительно позволяет зарплатам в сфере it оставаться высокими, и действительно публика становится более компьютеризированной каждый год Страх того, что автоматизация заменит многие виды работ не нов, и вполне обоснованный. В многих областях, особенно в технологическом секторе, рынок направляет усилия корпораций на автоматизацию и коммодификацию. Цикл хайпа Гартнера - один из способов объяснить данный феномен

Gartner cycle

Цикл Гартнера, 2017

По оси времени разные идеи и технологии продвигаются в сторону “плато продуктивности”, где они наконец и автоматизируются. Изучая историю, мы видим, что автоматизация способна уничтожать различные рынки труда. В разнообразных индустриях - от сбора урожая, до сборки автомобилей, технологии продвигались и постоянно заменяли человеческую рабочую силу, чтобы снизить издержки. Один знакомый профессор в своем курсе по компиляторам говорил, “возьмите исторический пример текстильной или сталелитейной промышленности, вы хотите строить машины и инструменты, или вы хотите оперировать этими машинами?” В этой метафоре “машины” - это языкы программирования. Вот что спрашивал профессор на самом деле - ”Вы хотите делать сайты используя JavaScript, или вы хотите делать V8 на котором работает JavaScript?”.

Создание веб-сайтов автоматизируется сейчас с помощью Wordpress и другими. У V8, с другой стороны, есть растущее количество конкурентов, некоторый из которых решают еще нерешенные задачи. Языки приходят и уходят(как много сейчас вакансий по Fortran? ), но всегда будет кто-то, кто будет создавать следующий язык. К счастью для нас, многие новые языки программирования написаны на других языках программирования. Даже находясь в статусе “Оператора машины” в разработке программного обеспечения, можно просто перейти на путь “создателя машин”, что раньше было невозможно, для, скажем, работников металлургического комбината. Растущее количество языков программирования, как интерпритаторов и компиляторов, показывает нам, что каждая “работо-разрушающая” машина, также привносит и новые возможности для труда, связанные с улучшениями этих машины, их обслуживанием и т.д. Несмотря на растущее количество видов работ, которые больше не существуют, еще не скоро настанет момент в истории, когда человечество скажет “Кажется, больше работы для нас не осталось”.

Установщик кеглей

Установщики кеглей

AWS, Heroku, и прочие похожие платформы для хостинга навсегда поменяли роль Системного Администратора\Devops инженера. Бизнесу в интернете раньше было жизненно необходимо иметь в штате своих системных администраторов. Кого-то, кто хорошо общался с Linux; кого-то, кто мог сконфигурировать Apache или Nginx; кого-то, кто мог не только физические связать в сеть сервер, роутеры, и все физические компоненты, но и сконфигурировать таблицы маршрутизации и весь софт, необходимый для доступности сервера из интеренета. Пока до сих люди применяют данный “скилл-сет” профессионально, AWS делает эти знания устаревшими - особенно для людей с меньшим уровне компетенции и уровне знания о физических вещах. Есть много соблазнительных рабочих позиций внутри Amazon(и Netflix, и Google…) для людей с глубоким пониманием в сетевой инфраструктуре, но их потребность гораздо менее важна в малом и среднем бизнесе.

Инструменты бизнес аналитики,такие как SalesForce, Tableau и SpotFire тоже начинают занимать места, исторически занятые разработчиками. Эти системы уменьшили потребность в DBA(администратор баз данных), но также увеличили потребность в знаниях SQL как стандартного набора знаний. Они уменьшили потребность в собственных системах отчетов, но увеличили потребность в “инженерах по интеграции”, которые автоматизируют бизнес-процессы и поток данных от бизнеса к платформам. Поле, на котором до этого доминировали Excel и SpreadSheets, заполняется скриптовыми языками, такими как Python или R, и SQL для управления данными. Некоторые вакансии исчезли, но потребность в людях, которые могут писать софт, в целом увеличилась. DataScience - замечательный пример выхода коммодификации на уровень, ближе к разработке. Scikit.learn, Tensorflow и PyTorch - библиотеки которые позволяют строить машинное обучение без самостоятельной разработки алгоритмов с нуля. Фактически, возможно прогнать набор данных через несколько алгоритмов машинного обучения с различными параметрами, имея небольшое понимание(или отсутствие такового) о том, как эти алгоритмы действительно работают(так делать совсем не совсем правильно, хоть и возможно). Могу поспорить, что компании, связанные с бизнес анализом и разведкой будут следующие несколько лет интегрировать такие алгоритмы в свои сервисы.

Со многих сторон data science выглядит сейчас как web-разработка 5–8 лет назад - растущая область, где даже немногие познания могут открыть двери из-за “skills gap” - разрыва в знаниях. По мере того, как различные онлайн-курсы по web-разработке закрываются и объединяются, сервисы по образованию в сфере data science продолжают открываться. Каплан, тот который создал оригинальный курс по веб-разработке - Dev Bootcamp, начал курс по data science (Metris) и решил закрыть DevBootcamp. Системы управления контентом (CMS) - это самый очевидный пример автоматизации работы программистов. SquareSpace и WordPress - самые популярные CMS на сегодняшний день. Эти платформы значительно уменьшили порог вхождения для людей с малый знанием frontend и web разработки. Фактически, барьеры для производства сайта и выхода онлайн снизились так сильно, что люди с нулевым опытом в программировании успешно запускают сайты каждый день. Эти люди не делают сильно интерактивные сайты для обслуживания миллиардов людей, но они отлично делают сайты для своих бизнесов и чтобы дать своим клиентам то, что им нужно. Красивая Landing page с информацией о том, как найти заведение или как связаться с руководством компании - это более, чем нужно для местного ресторана, бара или магазина. Если ваш бизнес в основном не в интернете, то для вас как никогда проще сделать рабочий сайт. Как результат, ранее процветающая индустрия web-специалистов, которые могут быстро сделать простой сайт и разместить его на сервере, становится менее привлекательной.

Наконец, в указанном контексте, было бы глупо игнорировать факт физического изменения вычислительных мощностей. Со слов Майка Актона(Mike Acton): “Платформа - это не программное обеспечение, платформа - это hardware. “Софтверным” людям было бы хорошо изучить как минимум компьютерную архитектуру и электротехнику. Большой тектонический сдвиг в “железе”, как например приход вычислительных мощностей квантовых компьютеров на потребительский рынок изменит все, что мы знали о профессиональной разработке программного обеспечения. Квантовые компьютеры до сих пор еще в пути до рынка, но растущий интерес к GPU и направленность в сторону параллельных вычислений - уже серьезный сдвиг. Прирост скорости CPU стагнировал последнее время, но в то же время появился нешуточный интерес к machine learning и “big data”. С большей,чем когда-либо раньше скоростью развиваются средства для обработки больших датасетов - OpenML, OpenCL, Go, Cude и прочие языки и фреймворки для параллельных вычислений, и это будет оставаться в мейнстриме еще долгое время. Параллелизация вычислений будет требоваться не только в сферах, традиционно сильно зависящих от вычислительных мощностей( такие как операционные системы, инфраструктура или видеоигры). Сайты сейчас повсюду. Опрос на Stack Overflow 2017 года показывает, что 15% разработчиков работают в компаниях, занимающихся Веб сервисами. Служба Статистики Занятости (в США) ожидает, что рост в веб разработке продолжится гораздо быстрее, чем в среднем (на 24% между 2014 и 2024), из-за его очевидной заметности по причине преодоления “skill gap”. Не только всякие онлайн-курсы по программированию учат в основном только веб-разработке, порталы по онлайн-образованию, такие как Udemy, Udacity, Coursera тоже ими наводнены. Комбинация увеличивающейся автоматизации в сфере, связанной с веб-разработкой, наплыва начинающих программистов с основным фокусом в вебе, позволяют предсказать появление рынка “синих воротничков” среди разработчиков. Некоторые пошли еще дальше, предполагая что появление рынка “синих воротничков” - это стратегическая кампания, созданная многими технологичными компаниями. Другие, конечно, говорят, что мы направляемся к очередному пузырю.

Изменение в спросе на определенные технологии - это не новость. Языки и фреймворки всегда появлялись и исчезали. Веб-разработка в нынешней инкарнации (“JS - Король”) рано или поздно уйдет туда, куда ушла веб-разработка начала 2000-х (помните Flash?) Что внове, так это то, что очень много людей получают образование намеренно и только по популярному фреймворку для веб-разработке в данный момент времени. Перед тем как вы решите назвать себя “Реакт-разработчик”, вспомните, куда ушли те люди, которые называли себя “Flash-разработчиками”. Связывая свою карьеру с определенным языком, фреймворком, или технологией, помните, что это игра в рулетку. Конечно,сложно предсказать какая из технологий останется релевантной, но если вы хотите попасть в точку, я предположу, что основываясь на Эффекте Линды, и выбрать что-нибудь типа C который уже прошел тест временем. Следующее поколение будет иметь де-факто компьютерную грамотность, которой нет у поколения Х и Миллеиналов. Один из выводов - они будут использовать следующее поколение CMS как данность. Эти инструменты будут становится лучше, и молодые работники будут еще лучше их использовать. Эта комбинация точно сметет ценность знаний плохого уровня в IT и в веб-разработке, когда новые образованные подростки войдут на рынок труда. Средние школы тоже видят эту тенденцию, предлагая классы по программированию и информатике - некоторые школьники, закончившие колледж будут входить на рынок труда уже сразу после выпуска из школы.

Другая большая группа новичков в программировании - это MBA и специалисты по анализу данных. Вместо необходиомости знаний по Excel все чаще начинают появляться требования знания SQL - от уровня “неплохо было бы знать” до “необходимо”. Такие инструменты, как Tableau, SpotFire, SalesForce, и другие web-ориентированые системы для учета метрик будут и дальше замещать таблицы(в Excel) как первичное средство составления отчетов. Если это и дальше продолжится, все больше специалистов по анализу данных будут учить SQL просто потому что это проще, чем экспортировать данные в таблицу Excel. Люди, которые ищут как повысить свой уровень и быть выше и круче на своих позициях, берут онлайн курсы по базам данных и статистическим языкам программирования. С этими новыми знаниями, они могут позиционировать себя как дата-сайнтисты, потому что они знают и машинное обучение, и как использовать статистические библиотеки. Посмотрите на Metis’ curriculum как пример такого пути. Наконец, общее количество людей, изучающих информатику и программирование продолжает расти. Университет Пердью(Purdue) например, сообщает, что количество поданных заявок на их программу по информатике удвоилось за последние 5 лет. Университет Cornell сообщает о похожем увеличении выпускников по Информатике. Этот тренд неудивителен, учитывая повсеместное распространение программного обучения. Молодым людям сложно представить, что компьютеры будут играть меньшую роль в нашем будущем, так почему же не изучить то, что обеспечит стабильную работу в будущем. Обычный аргумент в индустрии сейчас крутится вокруг идеи о том, что образование, которое сейчас получается по специальности Информатика за 4 года превращается в никчемный балласт. Я слышал такой аргумент, повторяющийся от курса к курсу, на сайтах по веб-разработке, а также онлайн от больших Имен в своей области, как например Эрик Эллиот(Eric Elliott). Противоположный взгляд на вещи также популярен, “все программисты должны заработать свой высший диплом”

Как и Эрик Эллиот, я думаю, что хорошо, что сейчас больше возможностей, чем когда-либо, чтобы войти в программирование, и потратить на это 4 года - это может быть не лучший вариант для многих. Тем не менее, я соглашусь с Вильямом Бэйном(William Bain), что фундаментальные знания,которые применяются в каждой из дисциплин программирования, жизненно важны для стабильной карьеры, и эту информацию до сих пор тяжело получить вне университетских стен. Я писал раньше о том, какие знания должны быть у инженеров для долгой карьеры, и присоединюсь к Bradfield, чтбы распространить их знания. Школы программирования всевозможных форм и размеров становятся повсеместным, и это хорошо. Есть куча вещей, которые можно изучить в программировании без понимания, что такое O нотация, хитрые структуры данных и разные алгоритмы. Тем не менее, молодые выпускники Стенфорда пока что не соревнуются со свежими выпускниками из Hack Reactor, только если в одной или двух суб-индустриях. Школы программирования выпускают учеников, которые пока что не стараются устроится на работу в сфере промышленного программирования, криптографии/компьютерная безопасность, робототехники, сетевой инфраструктуры или AI. Но уже в таких областях, как веб-разработка это уже происходит, причем очень быстро.

Некоторые навыки, связанные с программированием, уже начали переходить из разряда “редкие навыки” в “обычные ожидания”. Наоборот, инженерное мастерство, которое нужно для создания таких монстров как AWS, очень далеко от того чтобы быть обычным. Большие компании двигают технологии вперёд - Amazon, Google, Facebook, Nvidia, Space-X, и и.д. - и обычно они ищут людей не с “базовым знанием JavaScript”. AWS обслуживает миллиарды пользователей в день. Чтобы поддерживать такую нагрузку, инженер по инфраструктуре должен отлично понимать сетевые протоколы, компьютерную архитектуру и иметь несколько лет соответствующего опыта. Как и в каждой области, здесь есть и дилетанты, и ремесленники. Эти престижные фирмы решают проблемы и строят системы которые раздвигают границы возможного. Тем не менее, они до сих пор стараются закрыть вакансии по тем специальностям, где требуются базовые навыки программирования. Люди, которые могут писать алгоритмы, которые предсказывают изменения в генетических последовательностях которые соответствуют действительности, будут очень ценны а будущем. Люди, которые могут запрограммировать спутники, космические корабли, автоматизировать производство, будут оставаться высоко востребованными. Это не те области, куда можно попасть, пройдя “трёхмесячный интенсив”, как минимум без значительной предварительной подготовки. К сожалению, повсеместность компьютеров не создала поколение людей, которые понимают математику, компьютерные технологии, инфраструктуру сетей, электротехнику и пр. Компьютерная грамотность - это не то же самое, что наука о вычислениях. Несмотря на то, что математика существовала с начала времен, до сих пор лишь малая часть человечества обладает статистической грамотностью, а ведь компьютерные науки - достаточно старый предмет. Еще Евклид изобрел несколько алгоритмов, один из которых мы используем когда делаем HTTPS запросы; факт того, что мы используем https каждый раз когда логинимся на сайт, автоматически не передает знания о том, как этот протокол работает.

Много профессиональных областей обладают бимодальным распределением заработка - сравнительно небольшое количество участников зарабатывают очень много денег, а большинство зарабатывает хорошие деньги, но не находятся в числе верхних 1% получателей. Национальная Ассоциация По Трудоустройству собирает данные которые могут визуализировать этот феномен с абсолютной точностью. Большая доля, выпускников юридических ВУЗов зарабатывают от $45.000 до $65.000 - хорошая зарплата, но точно не зарплата “топовых профессионалов”.

Распределение зарплат

Распределение зарплат для людей с дипломом юриста(Национальное агентство по трудоустройству)

Мы привыкли думать, что все выпускники юридических ВУЗов планируют становится партнерами в юридических фирмах, но на самом деле для них есть много путей - помощник юриста, клерк, государственный защитник, судья, юридические услуги для бизнеса, разработка договоров, и т.д. Выпускники технологических ВУЗов также имеют множество возможностей для профессиональной практики - от веб-разработки до высоконагруженных систем. Базовый уровень грамотности в разработке становится уже требованием, а не “неплохо было бы иметь”. Я предполагаю, что подобный подход будет развиваться в вакансиях разработчиков. В то время как всегда будет когорта программистов, которые зарабатывают много денег, осваивающая передние рубежи тезнологий и расширяя их, будет также присутствовать растущее количество программистов среднего класса, обеспечивающих новую комьютерно-ориентированную экономику. Средняя зарплата web разработчиков, без сомнения, будет сокращатся. Говорят, я подозреваю, что количество вакансий “программистов” в целом только продолжит расти. В то время как предложение будет поспевать за спросом, мы скорее всего увидим здоровый бум в разнообразии работ для программистов среднего класса. Также будут оставаться зарплаты для топовых профессионалов, которые постоянно расширяют границы возможного

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