1. Предыстория: Первые «программисты» до компьютеров (XIX век).
Кто они были: Математики и инженеры.
Что они делали: Создавали алгоритмы для механических вычислительных устройств.
· Ада Лавлейс (середина XIX века) — по праву считается первым в мире программистом. Работая с аналитической машиной Чарльза Бэббиджа (которая так и не была построена), она написала первые в истории алгоритмы для машины, включая алгоритм вычисления чисел Бернулли. Она же предсказала, что такие машины смогут работать не только с числами, но и с любыми символами, включая музыку и текст.
2. Рождение профессии: Пионеры эпохи первых ЭВМ (1940-е годы).
Кто они были: Математики, физики, инженеры-электронщики, часто — женщины (так как изначально программирование считалось "рутинной" работой, похожей на операторскую).
Что они делали: «Общались» с компьютером на его родном языке — в кодах и переключателях.
· Программисты ENIAC (1945) — группа из шести женщин (Кэтлин Макналти, Бетти Джин Дженнингс и др.), которые программировали первый электронный компьютер общего назначения с помощью кабелей и переключателей. Они буквально «прокладывали» программу физически.
· Конрад Цузе (Германия) — не только создал первые работающие компьютеры (Z1-Z4), но и разработал первый высокоуровневый язык программирования «Планкалкюль» (Plankalkül, 1942-1945). Он опередил время, но не был реализован и оставался теоретическим до 1970-х.
Характер работы: Программирование было низкоуровневым и аппаратно-зависимым. «Код» представлял собой перфокарты, проложенные кабели или позже — последовательности двоичных кодов или мнемоник (ассемблер). Первые IT-шники были универсалами: они разбирались в архитектуре машины, логике схем и математике задачи.
3. Формирование первых языков программирования (1950-е годы).
Это был качественный скачок, который начал отделять «программиста» от «инженера по аппаратному обеспечению».
· Ассемблер (начало 1950-х): Первый шаг к абстракции. Вместо двоичных кодов стали использовать короткие мнемонические команды (например, ADD вместо 01100101). Это сильно упростило жизнь программистам.
· Фортран (FORmula TRANslator, 1957, Джон Бэкус, IBM): Первый реализованный и широко используемый язык высокого уровня. Он был создан для научных и инженерных расчетов. Ключевая идея: позволить программисту писать команды, близкие к математическим формулам (a = b + c), а не думать о регистрах процессора. Это привлекло в программирование огромное количество ученых.
· Лисп (LISt Processor, 1958, Джон Маккарти): Создан для задач искусственного интеллекта. Ввел множество революционных концепций (функциональное программирование, сборка мусора).
· Кобол (COmmon Business-Oriented Language, 1959, Грейс Хоппер и др.): Разработан для бизнес-задач (обработка данных, финансы). Его цель — быть понятным менеджменту (синтаксис близок к английскому). Грейс Хоппер, кстати, была пионером, создавшим первый в истории компилятор (программа, переводящая язык программирования в машинный код).
4. Последствия и формирование IT-профессии.
Появление языков высокого уровня привело к двум ключевым изменениям:
1. Демократизация программирования: Чтобы стать программистом, больше не нужно было быть гениальным инженером-электронщиком. Достаточно было логического мышления и знания математики/бизнес-логики. Начался приток новых кадров.
2. Разделение труда: Появилось четкое разделение между:
· Аппаратными инженерами (hardware).
· Системными программистами (создавали ОС, компиляторы, инструменты).
· Прикладными программистами (решали задачи пользователей на Фортране, Коболе).
К концу 1950-х – началу 1960-х годов профессия программиста (или «computer scientist») окончательно сформировалась как отдельная дисциплина. Появились первые учебные курсы и стандарты.
Краткая хронологическая цепочка:
Ада Лавлейс (теория алгоритмов) → Инженеры-пионеры ENIAC/Z3 (программирование переключателями) → Ассемблер (первый уровень абстракции) → Фортран/Кобол/Лисп (первые высокоуровневые языки, создающие новую профессию).