Заглянув в истоки информатики, можно обнаружить, что изначально она не только не имела такого названия, но и не преподавалась ни в одном университете. Информатика как дисциплина была подразделом математики и/или инженерии. Первый факультет информатики был создан в 1962 году в Университете Пердью, и лишь спустя еще 15 лет появилось небольшое количество факультетов и в других университетах. В 1980-х годах информатика все еще считалась областью математики или общего машиностроения. Однако программисты появились еще в 1940-х годах. Кем были эти первооткрыватели и чем они занимались?
Первые программисты были аналитиками, инженерами, математиками или просто «умными женщинами в холодильнике» (многие из них были женщинами, а большинство компьютеров находились в прохладных помещениях). Эти «программисты» должны были иметь обширное образование и знания в области математики и/или инженерии. К концу 1960-х сфера уже находилась в активном развитии, а люди, задействованные в ней, стали известны как инженеры ПО. Это были очень высокообразованные люди (в основном женщины), обычно с учеными степенями по математике.
Маргарет Гамильтон — одна из первых и величайших разработчиков ПО.К 1980-м годам в колледжах и университетах начали закрепляться факультеты компьютерных наук. Этот период считается золотым веком информатики. Персональные компьютеры начали распространяться по всей Америке, а такие фильмы, как Военные игры (WarGames), порождали интерес к компьютерам. В этот период уважаемого звания инженера ПО были достойны только те, кто получил официальное образование в области математики, информатики и/или электротехники.
К концу 1990-х годов начали появляться те, кого сейчас называют «программистами» и «разработчиками». Это были люди, получившие диплом по военно-технической подготовке, по практическому программированию или просто обучившиеся в интернете. Постепенно эта новая группа вошла в область разработки ПО. Внезапное развитие получили и другие технические профессии, такие как специалисты по сетям и системные администраторы.
Еще до начала 2000-х годов практически каждый специалист, желающий работать в области разработки ПО, обладал соответствующим образованием. Однако уже в конце 2010-х годов по крайней мере половина людей не имели образования.
Может стоило пройти еще несколько курсов по программированию?Звание «инженер ПО» частично утратило популярность и использовалось в основном для обозначения руководящих должностей в крупных технологических корпорациях. Диплом больше не является обязательным показателем пригодности для работы программистом, и фактически образование вовсе не требуется. Стандарты снизились до такой степени, что практически любой, кто может печатать, теперь зовется «программистом».
Спрос на любого, кто может программировать (даже на самом примитивном уровне), взлетел до небес. Однако число людей, способных получить соответствующее образование, относительно невелико, а программисты нужны прямо сейчас. Соответственно, чтобы как-то удовлетворить спрос, необходимо снизить стандарты и слепо надеяться на лучшее. Но прежде чем делать вывод, стоит заглянуть немного глубже.
На самом деле причина кроется в развитии и распространении компьютерных технологий. Высококвалифицированные инженеры ПО требовались лишь потому, что количество компьютеров на предприятии равнялось… одному. Это был очень большой, сложный и дорогой компьютер. Не было сетей и интернета. Люди, работающие на этих машинах, должны были быть учеными, инженерами и математиками, а сама технология была неразвитой и в значительной степени экспериментальной. По мере развития компьютерных технологий необходимость в специалисте «на все руки» отпала. Технические роли (как и сама технология) разделились между множеством узкоквалифицированных специалистов, вместо нескольких высокообразованных универсалов.
Это происходит во всех областях. Рассмотрим ранние годы автомобилестроения: только те, кто разбирался в металлургии и инженерии, могли работать в этой сфере. В 1930–40-х годах спрос на автомобили резко вырос, был изобретен конвейер и созданы модульные детали. На сегодняшний день среднестатистический рабочий на конвейере, производящем автомобили, практически ничего не знает о машиностроении и металлургии, не говоря уже о компьютерных науках, которые теперь необходимы для управления автомобилем. С другой стороны, специалисты по ремонту и обслуживанию автомобилей практически ничего не знают об инженерии и металлургии (или информатике). Они используют диагностическое оборудование, сообщающее им о проблеме, заказывают детали онлайн и заменяют их. То же самое произошло и в области компьютерных наук и разработки ПО.
Так же как и в примере с автомобилестроением, спрос на квалифицированных рабочих в программировании взлетел до небес, а компьютеры и ПО стали модульными, пакетизированными и вышли на производственный уровень. Параллельно произошло развитие областей, связанных с информатикой, таких как сетевые технологии, системное администрирование, шифрование, базы данных, электротехника и т. д.
Занятие по основам работы с компьютером.Надпись на доске: «Добро пожаловать на первое занятие!»Один компьютер другому: «Не волнуйся, они бояться тебя больше, чем ты их».Современных «программистов» и «разработчиков» можно сравнить со специалистами по автомобильной технике. Они обучены программированию в качестве технического навыка, а также обладают базовыми знаниями в области информатики, поскольку она имеет непосредственное отношение к программированию. Обычному программисту больше не нужно знать, как проектировать и конструировать алгоритм сортировки или поиска и математически анализировать его производительность перед реализацией. Программист просто находит «часть», отвечающую за сортировку или поиск, и подключает ее.
На данный момент мы наблюдаем не гибель инженеров ПО или ученых-информатиков, а расцвет специалистов по программированию.
Ученые-информатики и инженеры ПО не были вытеснены «программистами» и «разработчиками». Профессии и должности просто были реорганизованы в развивающуюся индустрию.
Программист: «Не работает… Почему?»Ученый-информатик: «Работает… Почему?»Ученые-информатики все еще продолжают работать над созданием новых теорий и технологий, а инженеры ПО — воплощать все это в реальность. Однако теперь большую часть ежедневной тяжелой работы в разработке ПО выполняют специалисты по программированию.
Ученые-информатики, математики и инженеры ПО с образованием в области компьютерных наук, все еще существуют и спрос на них выше, чем когда-либо. Однако, если раньше они составляли 100% людей в этой индустрии, то теперь их намного меньше. Причина не в том, что им нашли замену, а в том, что благодаря им появилась новая востребованная профессия — программисты.
Благодаря взрывному росту технологий и работе тех первооткрывателей в разработке ПО целое поколение людей получило возможность построить прибыльную и интересную карьеру в практически недоступной ранее области. Так же как автомобильная и производственная революция 1930-40-х годов привела к росту уровня жизни, так и революция в области информационных технологий 2000-х сыграла ту же роль. Происходит демократизация информатики.
Преподаватель: «Таким образом, для любой недетерминированной машины Тьюринга М, которая выполняется за некоторое полиномиальное время p(n), мы можем разработать алгоритм, который принимает ввод W длины n и производит Enw. Время работы равняется O (p2(n)) на детерминированной многоленточной машине Тьюринга и…»Студент: «Что происходит? Я просто хотел научиться делать видеоигры».Теперь выбор за вами. Практически каждый может принять участие в этой технической революции.
Перевод статьи Alexander Katrompas: The Fall of The Software Engineer, The Rise of The Programmer Technician
Комментарии