История

Заглянув в истоки информатики, можно обнаружить, что изначально она не только не имела такого названия, но и не преподавалась ни в одном университете. Информатика как дисциплина была подразделом математики и/или инженерии. Первый факультет информатики был создан в 1962 году в Университете Пердью, и лишь спустя еще 15 лет появилось небольшое количество факультетов и в других университетах. В 1980-х годах информатика все еще считалась областью математики или общего машиностроения. Однако программисты появились еще в 1940-х годах. Кем были эти первооткрыватели и чем они занимались?

Первые программисты были аналитиками, инженерами, математиками или просто «умными женщинами в холодильнике» (многие из них были женщинами, а большинство компьютеров находились в прохладных помещениях). Эти «программисты» должны были иметь обширное образование и знания в области математики и/или инженерии. К концу 1960-х сфера уже находилась в активном развитии, а люди, задействованные в ней, стали известны как инженеры ПО. Это были очень высокообразованные люди (в основном женщины), обычно с учеными степенями по математике.

Маргарет Гамильтон — одна из первых и величайших разработчиков ПО.

К 1980-м годам в колледжах и университетах начали закрепляться факультеты компьютерных наук. Этот период считается золотым веком информатики. Персональные компьютеры начали распространяться по всей Америке, а такие фильмы, как Военные игры (WarGames), порождали интерес к компьютерам. В этот период уважаемого звания инженера ПО были достойны только те, кто получил официальное образование в области математики, информатики и/или электротехники.

Изменения

К концу 1990-х годов начали появляться те, кого сейчас называют «программистами» и «разработчиками». Это были люди, получившие диплом по военно-технической подготовке, по практическому программированию или просто обучившиеся в интернете. Постепенно эта новая группа вошла в область разработки ПО. Внезапное развитие получили и другие технические профессии, такие как специалисты по сетям и системные администраторы.

Еще до начала 2000-х годов практически каждый специалист, желающий работать в области разработки ПО, обладал соответствующим образованием. Однако уже в конце 2010-х годов по крайней мере половина людей не имели образования.

Может стоило пройти еще несколько курсов по программированию?

Звание «инженер ПО» частично утратило популярность и использовалось в основном для обозначения руководящих должностей в крупных технологических корпорациях. Диплом больше не является обязательным показателем пригодности для работы программистом, и фактически образование вовсе не требуется. Стандарты снизились до такой степени, что практически любой, кто может печатать, теперь зовется «программистом».

Telegram-канал по теме
NOP::Nuances of ProgrammingСтатьи и переводы для разработчиков — каждый день
Подписаться

Что произошло?

Спрос на любого, кто может программировать (даже на самом примитивном уровне), взлетел до небес. Однако число людей, способных получить соответствующее образование, относительно невелико, а программисты нужны прямо сейчас. Соответственно, чтобы как-то удовлетворить спрос, необходимо снизить стандарты и слепо надеяться на лучшее. Но прежде чем делать вывод, стоит заглянуть немного глубже.

На самом деле причина кроется в развитии и распространении компьютерных технологий. Высококвалифицированные инженеры ПО требовались лишь потому, что количество компьютеров на предприятии равнялось… одному. Это был очень большой, сложный и дорогой компьютер. Не было сетей и интернета. Люди, работающие на этих машинах, должны были быть учеными, инженерами и математиками, а сама технология была неразвитой и в значительной степени экспериментальной. По мере развития компьютерных технологий необходимость в специалисте «на все руки» отпала. Технические роли (как и сама технология) разделились между множеством узкоквалифицированных специалистов, вместо нескольких высокообразованных универсалов.

Это происходит во всех областях. Рассмотрим ранние годы автомобилестроения: только те, кто разбирался в металлургии и инженерии, могли работать в этой сфере. В 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

Мы в Telegram — подписывайтесь
NOP::Nuances of ProgrammingСтатьи и переводы для разработчиков — каждый день
Подписаться
NOP::HumorИТ-юмор и мемы о боли разработчиков
Подписаться
NOP::Recruiter RemoteУдалённые ИТ-вакансии с вилками
Подписаться
Предыдущая статьяКонец эпохи виртуального DOM (React)
Следующая статьяМаксимальная производительность Pandas Python