«Всем казалось, что программирование — это самая легкая работа, что-то наподобие стенографирования». Правила жизни Маргарет Гамильтон — программиста-самоучки, покорившей Луну
Источник: twitter.com
Первый полет человека на Луну, первый отпечаток обуви на спутнике Земли, слова астронавта Нила Армстронга, которые он произнес, ступив на лунную поверхность, возвращение живыми с орбиты — всего этого могло бы не быть без кропотливой работы хрупкой женщины в очках — ведущего инженера-разработчика космической программы «Аполлон» Маргарет Гамильтон.
Удивительно, но лавры и признание нашли ее только тогда, когда всем стало очевидно, что разработка программного обеспечения превратилась из не слишком серьезного занятия в престижную профессию.
ОБУЧАТЬСЯ НА РАБОТЕ
«Моя работа не подразумевала какого-то особого уважения. Всем казалось, что программирование — это самое легкое занятие, что-то наподобие стенографирования на печатной машинке. Основной работой считались процессы, связанные с „железом”», — вспоминала Маргарет Гамильтон.
Через 50 лет ее, женщину, работающую над программным обеспечением к миссии «Апполон-11», назвали настоящим открытием XX века.
Маргарет Гамильтон опубликовала более 130 научных работ и основала собственную компанию Hamilton Technologies. А еще она стала одной из немногих сотрудников NASА, увековеченных в виде фигурки LEGO.
Сама же Гамильтон всегда увлекалась точными науками. Она родилась в штате Индиана, а математику изучала в университете штата Мичиган.
Маргарет получила степень бакалавра математики со второй специализацией по философии, а после учебы в колледже даже успела поработать школьной учительницей. Преподавала математику и французский язык.
«Информатика и программирование еще не существовали в виде отдельных дисциплин; программисты учились прямо на рабочем месте», — вспоминает Маргарет Гамильтон о своей первой работе в лаборатории — под руководством профессора Эдварда Лоренца, «отца» теории хаоса.
Ей пришлось разрабатывать систему, предсказывавшую погоду. Там она впервые увидела компьютер и увлеклась разработкой программного обеспечения.
Из проекта «Аполлон» стало ясно — лучше определять системы заранее, чтобы минимизировать количество ошибок, вместо того чтобы сразу выдавать кучу кода, который придется исправлять. Этот урок остался неусвоенным — сегодня ПО разрабатывают так же, как и 50 лет назад
Маргарет Гамильтон
Позже Маргарет Гамильтон работала над проектом SAGE в лаборатории Линкольна, где писала ПО для первого компьютера AN/FSQ-7 (XD-1) по поиску воздушных судов противника. В NASA она попала «по объявлению».
«В этой компании было принято давать новичкам программу, в которой никто не может разобраться и тем более запустить ее. Это была весьма хитроумная программа, и к тому же автор кода находил удовольствие в написании комментариев к нему исключительно на греческом и латинском языках.
Мне дали эту задачу, и я заставила программу заработать. Она даже результат выводила на греческом и латинском языках. Я была первой, кто смог ее запустить», — не без удовольствия вспоминала Маргарет свой первый рабочий день в NASA.
ОШИБКА ЛОРЕН
В NASA она отвечала за разработку бортового программного обеспечения, которое включало алгоритмы, разработанные учеными командного модуля «Аполлона». Все коды Маргарет Гамильтон писала вручную, распечатывала и объединяла в программы.
Одна из самых известных фотографий — снимок 1969 года, на котором программистка стоит рядом со стопкой распечатанного исходного кода главного командного компьютера миссии «Аполлон» с нее ростом.
«Фотографию сделал во время миссии «Аполлон-11» фотограф из MIT специально для газет. Мы увлеклись, сгребли все листинги от «Аполлона» в моем офисе и построили эту башню. Я пыталась найти способ удерживать ее в вертикальном положении», — делилась Маргарет Гамильтон.
Она также любила говорить: «Уточню, что в этой стопке только код — там нет отчетов по устранению багов и логов!»
Люди-вычислители, занимавшиеся вычислениями вручную, в подавляющем большинстве случаев были женщинами, но они не были программистами
Маргарет Гамильтон
Маргарет Гамильтон часто брала на работу свою 4-летнюю дочь Лорен. Пока она создавала программы, девочка мирно спала на распечатках кодов или играла с симулятором компьютера «Аполлона-8».
Однажды Лорен включила последовательность P01, запускаемую перед стартом космического корабля, когда симулятор был уже в «полете». И это привело к сбою системы, компьютер стер все данные по навигации, необходимые для полета.
Маргарет Гамильтон на всякий случай добавила несколько строчек кода, чтобы предотвратить возможность запуска предстартового сегмента во время полета и защитить систему от сбоя.
Позже кто-то из астронавтов «Аполлона-8» признался, что нажимал опасную кнопку. Если бы не превентивные меры Маргарет Гамильтон, это наверняка стало бы трагедией.
ЖИЗНЬ АСТРОНАВТОВ
«Маргарет Гамильтон символизирует поколение невоспетых женщин, помогавших отправлять человечество в космос», — отметил президент Барак Обама в 2016 году, когда вручал ей Президентскую медаль Свободы. Это самая высокая гражданская награда Америки.
Ее наградили за разработку системы, предупреждавшей о чрезвычайных ситуациях в полете и за популяризацию термина software engineering (разработка программного обеспечения).
К слову, этот термин Маргарет Гамильтон придумала от отчаяния. Ей хотелось заявить всему миру, что она и ее команда — тоже инженеры.
«У наших астронавтов не было много времени, но, к счастью, у них была Маргарет Гамильтон», — сказал о ее жизненной миссии на награждении президент США.
Женщинам, которые делают первые шаги в программировании, Маргарет Гамильтон советует следующее: «Не давайте страху завладеть вами и не бойтесь говорить: «Я не знаю» или «Я не понимаю» — глупых вопросов не бывает».