當前位置:
首頁 > 新聞 > 她只是一個女程序員,憑什麼獲得奧巴馬授予的自由獎章?

她只是一個女程序員,憑什麼獲得奧巴馬授予的自由獎章?

今天,奧巴馬頒發了他任內最後一批美國自由獎章(美國授予公民的最高獎)。在邁克爾.喬丹、比爾.蓋茨等人之中,有位特別的獲獎者,她叫做瑪格麗特.漢密爾頓。

她只是一個女程序員,憑什麼獲得奧巴馬授予的自由獎章?


她是一個女程序員,一個曾經挽救了阿波羅登月計劃的程序員。


文/李子


雖然現在程序員看似是個男女數量極其不平均的崗位,但就在不遠的過去,在計算機拓荒的年代,卻是有不少女性程序員為此貢獻了智慧與青春。


瑪格麗特·希菲爾德·漢密爾頓(Margaret Heafield Hamilton)就是其中一個。

她只是一個女程序員,憑什麼獲得奧巴馬授予的自由獎章?



一邊看孩子


一邊寫程序


瑪格麗特本姓希菲爾德。她1936年生於美國一個普通家庭,普通地讀完了高中和大學,主修數學。在讀書的時候,她嫁給了詹姆斯·漢密爾頓(James Cox Hamilton),成了漢密爾頓太太。

她畢業之後找了一份教師的工作,教數學和法語。那時候,她的丈夫還在哈佛法學院讀書,她勇敢地承擔起了家庭的責任。不過,她讀書深造的願望並沒有因此熄滅。待丈夫安定下來,兩人一起搬去了波士頓,瑪格麗特準備去再讀一個抽象數學的學位。


然而,兩人的小日子還是太緊張了。此時一個工作機會擺在了她面前。當時計算機科學的先鋒MIT里一個實驗室在招臨時編碼工。瑪格麗特抱著試試看的態度,就這樣踏進了程序員的殿堂。


一開始,她為天體學系寫天氣預報系統的代碼。因為工作出色,轉為正式工,後來又去了大名鼎鼎的林肯實驗室,為美國軍方SAGE項目寫代碼——在冷戰之弦拉得最緊的1960年代,用電腦程序幫助偵查危險的「不友好的飛行物」。

她只是一個女程序員,憑什麼獲得奧巴馬授予的自由獎章?


那時候還沒有「軟體工程」這個學科,更沒有「軟體工程師」這種高洋上的名頭,沒人像今天的「計算概論」一樣教,辛苦在計算機硬體上直接編寫程序的程序員們,就像從前的手工業工人一樣,靠的大多是一點點摸索出來的經驗。


而一張白紙的瑪格麗特,面前的都是前人扔給她的棘手程序。這些毫無頭緒的程序有多難處理呢?前人不得不用希臘語和拉丁語寫評論來取樂。而瑪格麗特是全實驗室第一個解決問題的人,還把調試方法翻譯成希臘語和拉丁語,漂漂亮亮地回敬了一發。


瑪格麗特的女兒勞倫(Lauren),也在這時候出生了。繁忙的媽媽瑪格麗特不得不將小勞倫帶去工作,讓她睡在查爾斯河畔實驗室的地板上,醒來的時候兀自玩耍。

她只是一個女程序員,憑什麼獲得奧巴馬授予的自由獎章?


當時的人們對於這樣一個「工作狂媽媽」十分不理解。「你怎麼這麼不顧你的小孩?」


瑪格麗特並不在意。她熱愛著她這份雖然不時枯燥,但卻充滿挑戰和「神秘感」的工作。她也喜歡著實驗室,喜歡每個人開的極客冷笑話,工作結束之後和每個人去喝酒。「就跟實驗室里其他男孩子一模一樣。」


而勤奮的瑪格麗特,還會在喝完酒之後,忽然想起程序里的一個小錯誤,連夜飛奔回實驗室修改。


「不重要」的程序


救了阿波羅一命


由於出色的表現,瑪格麗特獲得了另外一個機會:加入MIT的Charles Stark Draper實驗室,帶領一個小團隊,為NASA的阿波羅計劃寫軟體。


在阿波羅的最初的預算報告中,根本就沒有「軟體」二字。不過後來,NASA意識到了軟體的重要,逐漸把軟體相關的團隊擴大到了400多人。但瑪格麗特依然是一個無名小卒。她負責的,大概是整個計劃當中最不受重視的部分:「萬一」任務失敗之後的後備方案。但所有人都不重視,覺得這不可能發生。連這個部分的名字,都被稱作「Forget it」。

她只是一個女程序員,憑什麼獲得奧巴馬授予的自由獎章?



「我想為整個系統中加入一旦人工出錯之後的備用糾錯方案,」瑪格麗特說,「但是他們不同意。他們說,宇航員們都經過了嚴格的、完美的訓練,『絕對不可能出錯』。」


也的確,那時候計算機的存儲空間和計算能力都十分有限,決策者不希望有任何「累贅」的部分。瑪格麗特無奈,只好在操作系統里做了一個備註,「不要在飛行的時候選擇P01模式」


但是,壞事兒還是發生了。阿波羅8號環繞月球的任務中,宇航員羅威爾(Jim Lovell)一時疏忽,按下了P01模式,所有的巡航數據都被清空了,飛船分分鐘迷路


接到休斯頓緊急打來的電話之後,瑪格麗特領著一群程序員,連夜奮戰了9個小時,過了每一行代碼,修復了這個問題,數據被重新上傳上去。阿波羅8號得以成功返航。


而真正的考驗還在後面。隨著登月計劃緊鑼密鼓的進行,美國政府和NASA都繃緊了弦,蘇聯就在背後,一刻也不能停止。瑪格麗特加班工作的時候也越來越多了。而成就總是伴隨著錯誤和風險——就在阿波羅11號歷史性著陸月面的3分鐘之前,忽然警報大作,軌交雷達發來了大量的數據湧入電腦存儲區,快把電腦弄崩潰了。若是系統崩潰,飛船將毫無懸念地墜毀在月面,「人類的一小步」可能是一個大坑和兩條生命。

她只是一個女程序員,憑什麼獲得奧巴馬授予的自由獎章?



但是,瑪格麗特設計的系統頂住了這個壓力。在大量的數據湧入電腦的時候,最寶貴的計算資源,被用於最關鍵的部分,比如安全登陸本身,而處理不重要的雷達交互數據的任務被砍掉,讓程序可以隨時中止低優先順序任務,專註於高優先順序任務。


這次的事件,也讓她提出了後來的「非同步程序」的概念。即程序可以不用等待當前任務響應,先處理其它任務,待到任務處理完成之後再接受任務完成的通知。這也提高計算效率,防止程序被卡死。用開發術語來說,瑪格麗特的程序「魯棒性」(Robust)非常高,在出錯的時候更穩定、更可靠。


瑪格麗特拯救了人類的登月計劃。她不僅努力、聰明,而且心思縝密,她的團隊在每次程序確定之後,都會一遍遍嚴格地測試,使用模擬器(儘管還非常初級、簡陋)來模擬登陸狀況。許多問題她早就考慮到了,畢竟「不出錯」永遠都是一個理想狀態。


當時的程序員們工作系統化程度很低,如果出現了錯誤,程序員們就潦草地往「出錯理由」裡面填一個「有bug」完事兒。瑪格麗特認為這遠遠不夠。她認為程序員們需要理解錯誤,梳理錯誤的原因,並防止下一次程序出錯。這種我們現在看來完全是常識的東西,在計算機的「蠻荒年代」,需要一顆清醒而負責的頭腦來制定最初的規範。


瑪格麗特打趣說,自己如此努力,是因為「不想在報紙頭版頭條上看到『阿波羅計劃失敗,瑪格麗特團隊難辭其咎』」。「責任感」三個字,或許在她身上,比什麼都清晰。

她只是一個女程序員,憑什麼獲得奧巴馬授予的自由獎章?



這就是她寫的代碼,反覆修改的版本,幾乎快要超過她嬌小的身軀了。就是這些代碼,寫好之後列印出來,然後被送到另外一個小工作室,在那兒有一幫精於針線活兒的女士,用銅圈「寫」到硬體上……


(也不要再想當然地說計算機是男人的事業了。)


「軟體工程師」


一個程序員的自我修養


勤奮,充滿責任感,又一直對自己的事業抱有熱愛。這就是一個軟體工程師的自我修養。


前面不是說到,那個年代不是還沒有「軟體工程」的概念么?在瑪格麗特之前,寫程序是一門手藝,彷彿變法術或者憑經驗拼湊一般,而且沒有實體的東西產出——感覺就像在寫文章,沒人稱呼一個作者為「文字工程師」吧。

她只是一個女程序員,憑什麼獲得奧巴馬授予的自由獎章?



而瑪格麗特用自己的實踐,賦予了這個詞全新的現實意義。她說,「希望給予給做軟體的人們以尊重,與做硬體和其它的人一樣,在這個宏大的工程里各司其責」。她開始用「軟體工程師」來稱呼她在內的程序員


一開始,大家都帶著一點開玩笑的態度在用這個詞,然而,在她的推動下,「軟體工程」成了一門科學,更規範、更系統,瑪格麗特將程序員這份事業提升了一個高度。瑪格麗特團隊寫的程序框架,也用在了許許多多其它的太空計劃、乃至後來的客機系統上,就連你坐的飛機,也該感謝她的代碼呢。而她在自己所涉及到的許多領域,都有創見——比如系統設計、軟體開發、過程模型、開發範式、軟體可靠性、周期自動化等等等等。當時400人團隊所做的事,已經轉化為規模超過 4000 億美元的巨大產業。


然後我們現在的程序員們,就有了「軟體工程師」這個真正的工程師頭銜。

她只是一個女程序員,憑什麼獲得奧巴馬授予的自由獎章?



《WIRED》上近年的她。


離開NASA的瑪格麗特自立門戶,繼續在軟體工程領域發光發熱,2003年,她因技術和科學貢獻獲NASA傑出太空行動獎(Exceptional Space Act Award。該獎獎金37,200美元,是美國宇航局史上對個人的最大獎賞)。今天,她由贏得了總統頒發的美國自由勳章。——是的,人們都不應該忘記,在層疊的代碼背後,那個時常沉默的女孩,也不要忘記為早期的計算機事業付出辛勞的女性們。即使現在也一樣。


記住你的前人,然後在她/他們鋪下的道路上前進。


請您繼續閱讀更多來自 果殼網 的精彩文章:

沒有玻璃也能叫鏡子?當然能,而且很藝術
美國人發現,感恩節更容易發生火災……你猜為啥?
關於《神奇動物在哪裡》你還想知道啥?主創團隊都回答了!
救命啊!我被握力超過3000牛的超大螃蟹夾住了!
把所在地調到三亞,就能給手機電池續命了?

TAG:果殼網 |

您可能感興趣

一個人要想獲得解脫,必須要獲得上師授予的竅訣嗎?
身為林彪愛將,得知自己被授予少將時,竟怒扯肩章表示不服
維多利亞被授予大英帝國勳章,她說只要努力就能讓夢實現!
這個曾經的國軍將領有何能力被授予元帥銜,為什麼又拒絕了
很多人說粟裕應該被授予元帥,究竟是什麼原因?
沒想到此人居功自傲竟然與陳毅元帥拍桌子,授銜時本該授予上將的他毛主席只批他中將!
粟裕當年要是被授予了元帥軍銜,那麼他最可能會取代誰?
繼袁隆平後,他獲得了法國政府授予的農業成就勳章!一定要看圖,絕對是秀色可餐!
55年授銜時,得知自己被授予少將時竟怒扯肩章表示不服,令人意想不到
諾貝爾獎一般只授予活著的人,這3次是例外:有人揭曉前幾天病逝
他是開國功勛,毛主席親切地稱他大哥,但是他卻沒有授予任何軍銜
厲害的一家!繼小貝之後 貝嫂也獲英國皇家認可授予超榮譽勳章!
他自認只能當個連幹部,卻被授予少將,結果棄職去當農民!
他是獨臂將軍,被授予中將,毛主席說是「帥才」
他是哈佛肄業的翩翩少年,如今被授予榮譽博士,還被邀請回哈佛演講!全世界都被他振奮……
中國有個人,臭名昭著,卻還被日本供奉,還曾授予他勳章
他擊落入侵飛機後,毛主席授予他一等功,陳毅卻說出這句話
他曾8次被降級,被林彪看不起,最終毛主席卻授予他免除死刑的勳章
這位將軍被周恩來授予特權可不敬禮,曾在會上鳴槍