酷玩實驗室作品
首發於微信號 酷玩實驗室
微信 ID:coollabs
程序員這份工作
在今天看來
已經是標準的直男崗位瞭
但在軟件尚未起步的蠻荒時代
可是由很多程序媛
貢獻自己的青春和智慧
開辟瞭這塊土地
而她們的其中一位就是
瑪格麗特 · 希菲爾德 · 漢密爾頓
她的代碼指引阿波羅 8 號飛向月球
又在危難中解救迷失方向的他們
避免瞭一場慘烈的天空事故
實現瞭人類登月的豪言壯語
而她所在的部門
卻是曾經 NASA 覺得最沒用的——
" 後備方案部 "
瑪格麗特從小就是乖乖女
聽爸媽的話
穩妥的從大學畢業瞭
主修數學的她
那時並不會寫代碼
在讀書時
她嫁給瞭詹姆斯 · 漢密爾頓
兩人感情很好
隻是小兩口的日子並不富裕
這時候一個工作機會擺在她面前
地點在麻省理工學院實驗室
有一份臨時的編碼工作
於是瑪格麗特為瞭補貼傢用
抱著試試看的態度
一腳踏進瞭程序員的世界
沒想到真的試對瞭
最開始瑪格麗特隻編寫天氣預報系統的代碼
負責人看她很熟練
把她從臨時工轉為瞭正式工
後來她又轉到瞭著名的林肯實驗室
為美國軍方寫代碼
那時候的寫代碼
不像現在隻要用鍵盤打出來
再用編譯器編譯一下就能運行
而是真的用打字機敲在紙上
再由一幫精於針線活兒的女士
用銅圈把代碼的信息編到內存裡
線路穿過磁芯會產生信號
有信號為 1
沒有信號為 0
那個年代就是這樣
把代碼變成計算機語言的
瑪格麗特在軍方的出色表現
又讓她被推薦進入 NASA
在那裡
她帶領一個小團隊
為即將要載人航天的阿波羅計劃
編寫軟件代碼
也許是因為瑪格麗特溫和的性格
NASA 把她安排到瞭一個無關緊要的部門
這個部門的作用是
準備一個這次任務失敗後的備用方案
聽起來很重要
但當時沒有人重視他們
因為那時的計算機
儲存空間和計算能力都有限
決策者不希望有任何 " 累贅 " 部分
而且整個團隊的核心都是奔著成功去的
每個人都認為失敗是不存在的
瑪格麗特帶領的部門
是 NASA 認為最不重要的
這個部門甚至被命名為 "forget it"
但瑪格麗特不這樣認為
凡事總要有一個備用方案才行
她依然認真地用模擬器模擬飛行狀態
檢查系統漏洞
撰寫新的代碼
某天
她在模擬時發現一個巨大的系統漏洞
那時飛船正在模擬飛行狀態
瑪格麗特在無意地擺弄鍵盤
結果不小心按下瞭 P01 鍵
這個鍵會觸發一個預發射項目
這時系統彈出瞭錯誤信息
這個錯誤信息可能使系統直接崩潰
正在模擬飛行狀態的瑪格麗特
雖然受過大量訓練的宇航員很難犯這個錯誤
但瑪格麗特還是立馬為整個系統
寫出瞭一個備用糾錯方案
這個糾錯方案能讓宇航員
可團隊的領導人不同意將它放進計算機
他們說:
" 宇航員們都經過瞭嚴格的、完美的訓練,‘絕對不可能出錯’。"
瑪格麗特隻好作罷
並在操作系統中寫下備註:
" 不要在飛行時選擇 P01 模式 "
但事實就是這麼湊巧
阿波羅 8 號在環月任務中
宇航員羅威爾一時疏忽
還是按下瞭 P01 模式
系統頓時報錯
所有的巡航數據全部清空
飛船將要失去方向
瑪格麗特立馬領著手下的程序員
連夜奮戰 9 個小時
將清空的數據一一補回
修復瞭這個問題
阿波羅 8 號才成功返航
經過這一次事故
瑪格麗特更加堅定瞭 " 備用 " 的重要性
事實再一次證明她是對的
就在阿波羅 11 號登上太空
即將著陸月球地面的前 3 分鐘
系統忽然警報大作
因為雷達突然發來大量數據
導致系統過載
原來是登月艙分離前
有人忘記關閉登月艙的對接雷達
電腦一直在監視著一個沒有用的雷達
那時的電腦一時處理不瞭這麼多的數據
過載的系統很快面臨崩潰
若是系統崩潰
阿波羅 11 號將直接墜毀在月球表面
當時情況非常緊急
兩位宇航員都做好瞭犧牲的準備
總統尼克松甚至準備好瞭悼詞:
" 命運註定和平探月的人在那裡安息。勇敢的尼爾 · 阿姆斯特朗和巴茲 · 奧爾德林明白他們沒有返回的希望。"
人類第一次踏足月球
眼看就要變成一場災難
幸好瑪格麗特想到瞭這一點
她做的系統
永遠能備不時之需
她設計的系統頂住瞭壓力
電腦最寶貴的計算資源
會被優先用於最關鍵的部分
比如安全登錄
處理不重要的雷達交互數據任務則被砍掉
程序能夠隨時中止低優先級任務
專註於高優先級的任務
這就是現在每個程序員都知道且熟練的
" 異步程序 "
(健哥表示 66666
蛋蛋姐表示)
多虧瞭瑪格麗特設計的系統
阿波羅 11 號順利的返回瞭地球
如同登月一樣
歷史上每一次偉大的成就
都是伴隨著錯誤和風險的
" 不出錯 " 隻是理想狀態
沒有備用方案的時候
就是最危險的時候
2016 年 11 月 24 日
由於瑪格麗特在登月計劃中作出的巨大貢獻
奧巴馬授予瑪格麗特自由獎章
與她同臺的還有比爾蓋茨、喬丹等人
最近
美國媒體 IT world 通過投票
選出瞭還在世的 " 世界上最偉大程序員排名 "
瑪格麗特的名字
穩穩地排在第一
後來有人采訪瑪格麗特
關於兩次救飛船於危難之中的感想
瑪格麗特說道:
" 我不想在報紙頭版頭條上看到:「阿波羅計劃失敗,瑪格麗特團隊難辭其咎」這樣的標題。"
對於瑪格麗特來說
最重要的
是以備不時之需
瑪格麗特當時寫過的代碼,壘起來比她人還高