Skip to content

💻Origins & Evolution

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

Share

Программная инженерия — необычайно молодая профессия, носящая старые идеи. Люди разрабатывали пошаговые процедуры для машин с 1840-х годов, но никому не платили за работу «инженера-программиста» вплоть до двадцатого века, а само название должности было предложено — наполовину провокационно — только в 1968 году.

Ее история проходит через графиню, которая никогда не видела, как работает ее алгоритм, женщин, которые вручную перемонтировали компьютер размером с комнату, офицера ВМФ, который хотел, чтобы машины читали по-английски, и конференции в Баварских Альпах, которая дала название этой области, объявив, что она находится в кризисе.

Where it began

1843Лондон, Англия

Ада Лавлейс, переводя статью итальянского инженера о незавершенной аналитической машине Чарльза Бэббиджа, добавляет набор примечаний, длиннее исходного текста. Последняя из них, «Примечание G», шаг за шагом описывает, как машина будет вычислять последовательность чисел — алгоритм, написанный для компьютера, который не будет существовать еще столетие, и момент, который большинство историков отмечают как концептуальное зарождение программирования: идея о том, что инструкции машины могут быть разработаны, записаны и проверены как вещь, отдельная от самой машины.

Timeline

1843Ада Лавлейс публикует первый алгоритм

Переводя итальянскую статью о незавершенной аналитической машине Чарльза Бэббиджа, Лавлейс добавляет примечание, описывающее шаг за шагом, как машина будет вычислять числа Бернулли — обычно называемую первой опубликованной компьютерной программой.

1890Перфокарты Холлерита составляют таблицу переписи населения.

Машины для подсчета перфокарт Германа Холлерита обрабатывают данные переписи населения США примерно за год, а предыдущий подсчет вручную занял почти восемь лет; его компания позже становится частью IBM.

1943–1945Шесть женщин программируют ENIAC

Кей МакНалти, Джин Дженнингс, Бетти Снайдер, Марлин Вескофф, Фрэн Билас и Рут Лихтерман программируют ENIAC размером с комнату в Пенсильванском университете, физически устанавливая переключатели и подключая кабели, без каких-либо инструкций и языков программирования, которые могли бы ими управлять.

1952Грейс Хоппер завершает работу над первым компилятором

Система A-0 Хоппера в Remington Rand автоматически переводит символические математические обозначения в машинный код, заменяя чрезмерную ошибку ручного копирования адресов подпрограмм — прямого предка каждого компилятора с тех пор.

1957FORTRAN поставляется для IBM 704

Команда Джона Бэкуса из IBM выпускает FORTRAN примерно после двух лет работы; Сообщается, что в течение двух лет более половины всего машинного кода в США будет написано на нем.

1968Конференция НАТО назвала «программную инженерию»

На конференции в Гармише (Западная Германия) участники намеренно заимствовали термин «инженерия программного обеспечения», чтобы доказать, что создание крупных программ требует той же дисциплины, что и наведение мостов, называя хронические перерасходы средств в этой области «кризисом программного обеспечения».

1969–1973Unix и C обретают форму в Bell Labs

Кен Томпсон и Деннис Ритчи создают операционную систему Unix на запасном PDP-7, а затем в 1973 году переписывают ее на новом языке C, разработанном Ритчи, чтобы она могла работать более чем на одном типе компьютеров.

1981IBM PC приносит программное обеспечение на каждый стол

ПК IBM запускается с PC-DOS от Microsoft, превращая программное обеспечение в массовый потребительский продукт почти мгновенно и укрепляя молодую компанию, основанную Биллом Гейтсом и Полом Алленом шестью годами ранее на Altair BASIC.

1991Linux и Всемирная паутина появляются с разницей в несколько месяцев

Линус Торвальдс разместил ядро ​​своего хобби в Usenet в августе, назвав его «просто хобби, оно не будет большим и профессиональным»; В том же месяце Всемирная паутина Тима Бернерса-Ли становится публичной, а открытое, свободно распространяемое программное обеспечение становится стандартом Интернета.

2021–2023ИИ перемещается в редактор кода

GitHub Copilot (2021 г.) и ChatGPT (2022 г.) вводят генерацию кода моделей на большом языке в повседневное использование; Через несколько лет GitHub сообщает, что пользователи его собственного инструмента принимают код, предложенный ИИ, для большой и растущей доли строк, которые они сохраняют.

The eras

Консоль оператора мэйнфрейма IBM System/360
ArnoldReinhold · CC BY-SA 3.0 · Wikimedia Commons
1950–1960-е годы

Мэйнфреймы и пакетное программирование

Ранние программы представлялись в виде колод перфокарт и запускались партиями, часто в течение ночи, поэтому одна опечатка могла стоить программисту целого дня ожидания следующего запуска. Математики, и в большом количестве женщины, перешли от ручных вычислений прямо к этой новой работе по «программированию», поскольку она считалась канцелярской и ориентированной на детали, а не престижной. FORTRAN (1957) и COBOL (1959) получили распространение в этом десятилетии, и явная трудность создания надежных больших систем на этом оборудовании привела к «кризису программного обеспечения», которому следующая эпоха попытается дать название и исправить.

Миникомпьютер PDP-11, машина, наиболее ассоциирующаяся с ранними версиями Unix.
Stefan_Kögl · CC BY-SA 3.0 · Wikimedia Commons
1969–1983

Unix, структурное программирование и дисциплина получают имя

После того, как конференция НАТО 1968 года обозначила хронические проблемы с бюджетом и надежностью в этой области, в 1970-е годы были созданы и диагноз, и набор инструментов: структурированное программирование, дисциплинированное тестирование и Unix, операционная система, созданная в Bell Labs и переписанная на новом языке C, чтобы ее можно было запускать более чем на одной машине. Миникомпьютеры, такие как PDP-11, распространили реальную вычислительную мощность за пределы нескольких комнат мэйнфреймов, и «инженерия программного обеспечения» стала восприниматься как самостоятельная университетская степень, а не как подобласть математики или электротехники.

Оригинальный персональный компьютер IBM 1981 года выпуска.
Own work (based on graphics by International Business Machines Corporation) · Public domain · Wikimedia Commons
1975–1990

Персональные компьютеры и программное обеспечение в коробке

Комплект Altair 8800 (1975 г.), а затем Apple II и IBM PC (1981 г.) превратили программное обеспечение из того, с чем столкнулись учреждения, в то, что семья могла купить с полки. Индустрия программного обеспечения для массового потребителя и малого бизнеса возникла вокруг текстовых процессоров, электронных таблиц и игр, которые продавались в термоусадочных коробках с политикой возврата вместо контракта на поддержку. В крупных проектах доминировала тщательно документированная разработка в стиле «водопад», даже несмотря на то, что лидеры отрасли — программисты из спальни, университетские хакеры — работали в чем-то близком к сегодняшнему более быстрому и неформальному стилю.

Тукс, пингвин-талисман операционной системы Linux с открытым исходным кодом.
Larry Ewing , Simon Budig , Garrett LeSage · CC0 · Wikimedia Commons
1991–2005

Интернет, открытый исходный код и цикл доткомов

Всемирная паутина и ядро ​​Linux стали общедоступными с разницей в несколько месяцев в 1991 году, и вместе они доказали, что программное обеспечение, созданное открыто добровольцами, которые никогда не встречались друг с другом, может конкурировать со всем, что поставляет корпорация. Веб-браузер почти за одну ночь создал совершенно новый рынок труда; затем этот рынок процветал, а в 2000–2001 годах резко рухнул, уничтожив целое поколение стартапов, но оставив позади Amazon, Google и инфраструктуру, на которой будет строиться следующая эра. Манифест Agile (2001 г.) формализовал реакцию против тяжелого планирования, основанного на документах, в пользу более коротких и итеративных циклов.

Концептуальная схема инфраструктуры облачных вычислений
Sam Johnston · CC BY-SA 3.0 · Wikimedia Commons
2006 – настоящее время

Облако, DevOps и проектирование с использованием искусственного интеллекта

Почасовая аренда сервера у Amazon Web Services (2006 г.) устранила одну из самых больших фиксированных затрат на эксплуатацию программного обеспечения, а магазины приложений практически одновременно предоставили инженерам второй канал распространения, ориентированный прежде всего на мобильные устройства. Git и GitHub (2005–2008) сделали распределенное сотрудничество над одной и той же базой кода нормальным даже для незнакомцев, а автоматизированные конвейеры развертывания сократили разрыв между завершением изменения и его запуском на глазах у пользователей с месяцев до минут. К началу 2020-х годов помощники по программированию с использованием ИИ, обученные работе с общедоступным кодом, превратились из новинки в повседневный инструмент для значительной части профессиональных инженеров — это самое быстрое распространение нового инструмента в профессии за всю ее историю.

What this job replaced

Neighbouring trades that no longer exist — absorbed, automated or regulated away.

Человек-компьютер

1750–1960-е гг.

Задолго до появления электронных машин «компьютер» назывался должностью человека (часто женщины), который выполнял математические расчеты вручную или с помощью механического калькулятора: астрономические таблицы, траектории артиллерии, орбитальные траектории НАСА. Электронные компьютеры взяли на себя вычисления с 1950-х и 1960-х годов, и к тому времени, когда эта работа исчезла, они уже дали машине свое имя.

Оператор клавиатуры

1930–1980-е годы

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

Веб-мастер

1993–2000-е годы

В первое десятилетие Интернета один «веб-мастер» часто проектировал, кодировал, писал копию и администрировал целый веб-сайт — это слово вошло в словари в 1993 году, а в 1997 году получило собственный зарезервированный адрес электронной почты по интернет-стандарту. По мере того, как сайты становились сложнее, роль разделилась на фронтенд-разработчика, серверного разработчика, DevOps-инженера и редактора контента, а «веб-мастер» исчез из списков вакансий.

Trades that vanished →

Каждая эпоха в этой истории заканчивается одинаково: появляется инструмент, который устраняет ручной труд, вокруг которого была построена целая категория должностей — ручные вычисления, перфорация карт, пакетное планирование, ручное обеспечение серверов — и люди, выполнявшие этот труд, либо продвигаются вверх по стеку, либо уходят дальше.

Инженеры, читающие это сейчас, переживают следующую итерацию этого цикла, а не первую встречу с ним. Остальная часть этого описания посвящена тому, что конкретно это значило до сих пор, и что следует ожидать после разумного прочтения доказательств.

Similar professions

📊

Специалист по данным

Находит закономерности и строит прогнозные модели на основе данных — должность 2008 года, основанная на трех столетиях подсчета, тестирования и визуализации доказательств.

AI-resistant 38
📦

Инженер МЛОпс

Создает системы, которые обучают, развертывают, контролируют и управляют моделями машинного обучения в производстве.

AI-resistant 54
🗺️

Менеджер по продукту

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

AI-resistant 50
🔐

Специалист по кибербезопасности

Защищает системы, данные и людей, обнаруживая, предотвращая и реагируя на цифровые атаки.

AI-resistant 63
🌿

Менеджер по устойчивому развитию

Руководит стратегией, измерениями и отчетностью, которые помогают организациям снизить экологический и социальный ущерб при выполнении деловых обязательств.

AI-resistant 66
🧾

Бухгалтер

Хранитель книг: наследник ремесла, настолько древнего, что оно изобрело само письмо, и теперь ведет переговоры с программным обеспечением, созданным для его автоматизации.

AI-resistant 35

Continue exploring

Keep exploring

More in Engineering & Technology

🤖

Исследователь искусственного интеллекта

Разрабатывает и тестирует алгоритмы, лежащие в основе машинного интеллекта, в области, которая сейчас стремится автоматизировать растущую долю собственного исследовательского процесса.

AI-resistant 50
🛰️

Аэрокосмический инженер

Проектирует, анализирует и сертифицирует летательные аппараты, ракеты и космические корабли, отрывающиеся от земли, работая с запасом безопасности, не оставляющим места для догадок.

AI-resistant 74
🌉

Инженер-строитель

Профессия, превращающая реки, скалы и гравитацию в мосты, дороги и чистую воду — тихая несущая сила цивилизации со времен Имхотепа.

AI-resistant 72
🔌

Инженер-полупроводник

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

AI-resistant 60
🦾

Инженер-робототехника

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

AI-resistant 65
🔐

Специалист по кибербезопасности

Защищает системы, данные и людей, обнаруживая, предотвращая и реагируя на цифровые атаки.

AI-resistant 63
📦

Инженер МЛОпс

Создает системы, которые обучают, развертывают, контролируют и управляют моделями машинного обучения в производстве.

AI-resistant 54
🌬️

Инженер по возобновляемым источникам энергии

Проектирует, строит и совершенствует ветровые, солнечные, накопительные и сетевые системы, которые превращают возобновляемые ресурсы в надежную электроэнергию.

AI-resistant 72