Маргарет Гамильтон — первая инженер-программист в мире, которая отправила людей на Луну

Аватарка пользователя Дух айтишной эмо школы

Рассказали историю Маргарет Гамильтон, которая стала первым инженером-программистом и написала ПО, которое запустило людей на Луну.

В 1960 году Маргарет Гамильтон было всего 24 года. Тогда гендерные предрассудки были гораздо строже, чем сегодня. Да и предрассудки вообще.

Если сегодня нам кажется, что женщиной-программистом стать достаточно просто, стоит вспомнить, что в начале 60-х годов в США ещё существовала расовая сегрегация.

От Маргарет ожидалось, что она получит степень бакалавра по математике, после чего будет ухаживать за дочерью и поддерживать своего мужа, который получал степень доктора в Гарварде.

Такой сценарий был вполне стандартным: в 60-е приоритет на «серьезных» работах отдавался соискателям-мужчинам, а «приличные» женщины должны были следить за домом и детьми. Такой была картина американской мечты.

Чтобы поддержать учащегося мужа, Гамильтон устроилась программистом в Массачусетский технологический институт. После того, как срок обучения мужа истёк бы, она тоже планировала получить степень доктора математики.

Судьба распорядилась иначе, и Маргарет Гамильтон стала первым инженером-программистом в мире, стала первой женщиной в NASA и написала ПО, которое запустило людей на Луну.

Старт карьеры Маргарет Гамильтон в MIT

Чтобы поддержать мужа, пока он получал юридическое образование в Гарварде, Маргарет Гамильтон сперва устроилась в среднюю школу и предподавала школьникам математику. Чуть позже она нашла объявление о поиске сотрудников в лабораторию Массачусетского технологического института.

Сперва она попала в лабораторию профессора Эдварда Лоренца, где занималась программированием систем для предсказаний погоды. Именно здесь она познакомилась с компьютерами и ПО, и первое время Маргарет была больше синоптиком, чем инженером. Со временем Гамильтон всё больше погружалась в программирование.

Маргарет Гамильтон — первая инженер-программист в мире, которая отправила людей на Луну 1
Молодая Маргарет Гамильтон с дочерью Лорен

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

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

Здесь Маргарет заметили и пригласили на работу в Лабораторию Линкольна MIT, которая заключила контракт по разработке ПО для Минобороны США. В Лаборатории Линкольна Маргарет писала программы, которые позволяли обнаруживать противника в воздухе.

Со временем Гамильтон начала чувствовать, что её карьера подходит к концу, и тогда она решила вернуться в аспирантуру. Тем более, что муж Маргарет всё же окончил обучение в Гарварде. Однако тот нашёл в газете объявление о том, что Лаборатория измерительной аппаратуры Массачусетского технологического института ищет специалистов, которые написали бы ПО для запуска людей в космос. Маргарет это объявление очень заинтересовало.

Как Маргарет Гамильтон пришла в программу Аполло

В 1961 году президент США Джон Кеннеди запустил программу Аполло, и MIT разработала компьютеры для миссии. NASA вернулись к MIT и заключили новый контракт на написание ПО для того же «железа».

В 30 лет, когда Гамильтон присоединилась к миссии, она стала первой женщиной, которая была принята на работу в NASA.

Маргарет Гамильтон — первая инженер-программист в мире, которая отправила людей на Луну 2
Маргарет (снизу слева) с командой Аполло

Несмотря на то, что близкие Маргарет не понимали её и задавали вопросы в стиле «Почему ты оставила свою дочь?», Гамильтон удалось влиться в коллектив научных сотрудников, который состоял сплошь из мужчин. Сотрудники лаборатории благосклонно отнеслись к ней, и вместе команда проводила долгие дни в работе и развлечениях: днём они писали программное обеспечение для первых портативных компьютеров, а вечером могли собраться и выпить вместе.

Кроме того, Маргарет увлекла атмосфера неизвестности и вызов, который стоял перед командой. Тогда в лаборатории MIT никто не знал, как написать ПО для относительно маломощного лунного модуля, который мог бы поддерживать связь с Землей и успешно приземлиться в космосе.

Даже сегодня эта задача считается сложной — взять, к примеру, недавнюю неудачу Луны-25 —, а тогда у лаборантов не было даже стартовой точки в виде готовых технологий, которые они могли бы использовать.

Сама Гамильтон сравнивала эту ситуацию с освоением Дикого Запада: можно было считать, что законов не существует, и только ты решаешь, каким будет этот мир.

Маргарет проводила целые дни в лаборатории за программированием, пока её четырёхлетняя дочь Лорен спала на полу и ждала, когда мама закончит свою работу.

В крайне короткий срок Маргарет Гамильтон добилась больших успехов в системном администрировании, и уже тогда зарекомендовала себя как отличного программиста. Впереди её ждал запуск Аполло-11.

Маргарет Гамильтон — глава отдела по разработке ПО для Аполло-11

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

Однако чем дольше велась разработка лунного модуля, тем очевиднее становилась необходимость в ПО. К 1965 году была выделена команда, которая и занялась созданием программ для Аполло, в которую и вошла Маргарет Гамильтон.

Поскольку разработка ПО не была включена в задачи MIT согласно документации NASA, сотрудники лаборатории придумали новый термин, который легализовал бы их работу. Так Маргарет Гамильтон стала первым инженером-программистом.

Как мы писали выше, Гамильтон уже была уважаемым программистом, но теперь она занималась куда более серьезными проблемами: от успеха миссии Аполло, казалось, зависел успех США в целом. Уже в 32 года, то есть через два года после трудоустройства, она возглавила отдел разработки программного обеспечения Приборной лаборатории Массачусетского технологического института.

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

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

Конечно, программирование тогда выглядело совсем не так, как сегодня: тогда ещё не было кода-текста, и Гамильтон писала программы на перфокартах, проделывая в них дырочки. После этого перфокарты относили в специальный отдел, в котором через перфокарты проводили медные провода: если провод входил в паз, это значило 1, а если провод наматывался вокруг отверстия, это значило 0.

Маргарет Гамильтон — первая инженер-программист в мире, которая отправила людей на Луну 3
Маргарет Гамильтон тестирует программы на симуляторе Honeywell

В конечном итоге, Гамильтон вместе со своей командой удалось разработать программы из 12 тысяч слов, которые хранились на перфокартах. Сперва код протестировали на гигантском мэйнфрейме Honeywell, который моделировал полёт Аполло. После того, как в симуляции всё прошло успешно, стало понятно: код Маргарет Гамильтон поможет людям прилуниться в Море Спокойствия в 1969 году.

Маргарет Гамильтон — первая инженер-программист в мире, которая отправила людей на Луну 4
Маргарет Гамильтон со стопкой из всех программ для Аполло-11 на бумаге
С моей точки зрения, сам опыт работы с программным обеспечением (его проектирование, разработка, развитие, наблюдение за его работой и обучение на его основе для будущих систем) был по крайней мере таким же захватывающим, как и события, связанные с миссией. Второго шанса не было. Мы знали это. Мы серьезно относились к своей работе, многие из нас начали этот путь, когда нам было еще 20 лет. Придумывать решения и новые идеи было настоящим приключением. Преданность и преданность делу были само собой разумеющимися. Взаимное уважение было во всем. Поскольку программное обеспечение было загадкой, черным ящиком, высшее руководство предоставило нам полную свободу и доверие. Нам нужно было найти способ, и мы это сделали. Оглядываясь назад, мы можем сказать, что мы были самыми удачливыми людьми в мире; не было другого выбора, кроме как стать пионерами.
История IT
Космос
2822