2026年10月9日 星期五

老工程師的技術生活(五十七)--- 悼念Margaret Hamilton

說起來也很巧,我前一篇文章,提到寫韌體程式觀念裡的RTOS 。

其實以我入門時看過美國人用組合語言寫汽車四缸引擎噴油點火控制程式。

裡面處處塞著所謂的故障碼概念。這個概念在這位第一位NASA 女性軟體

工程師 Margaret Hamilton,在她所寫的阿波羅任務中的控制程式就已經

建立這樣子的概念了。所以稱她為現代軟體先驅,一點也不為過。

但很不幸的是:這周三傳出她以九十歲高齡辭世了。

無論如何,以我們這些後進晚輩裡,也都未必能像她一般的建立這種

韌體控制概念。人家還是用很基礎的機械語言刻出來的程式...更不用說

她的程式容量或周邊資源...

以下是我搜尋節錄的兩篇報導:

Margaret Hamilton, computing pioneer who led software development for 

the Apollo program, dies at 90


Margaret Hamilton: ‘They worried that the men might rebel. They didn’t’

其中第二篇報導裡,有一張屬於她經典照片:就是列印出來的程式碼

比她人還要高。

有興趣想進一步了解她的傳奇,現在AI 搜尋很方便,可以找一下。

---

等你稍微看過她的資歷,你會有一種感覺就是:人家就是有那個環境

與機會可以讓她在工作經驗裡,創造出一種屬於她的成就。

所以我以前也常常說:不是你厲害,年紀輕輕的出來創業,

你就可以努力地磨練出怎樣的功力?有時候還是得看你過去經歷了

怎樣的工作經驗或環境。不是在大公司不好,也沒人說你就非得要

做過甚麼技術或產品。就像我個人:雖然不是電子電機或資訊科班

出身的,但我很高興在我真正入行寫韌體程式前,我就有機會在

自我要求下去研讀美國人用組合語言撰寫的那一套完整的引擎控制

程式。然後在經歷園區IC 設計公司SOC 產品的韌體開發---實現基礎

技術套用在產品上。還記得我寫過的一篇文章:

電子自學學習心得回憶(二)

文章中,我所推導控制程式的概念,就是來自於美國人所寫的那套

引擎控制程式,然後背後運行的也是老美所寫那套分時多工系統。

---

努力學習固然重要,但我一直強調的是:你的學習條件與環境也很重要。

不是傻傻地埋首自家實驗室裡,十年磨一劍,你就變得很厲害了...

我自己都不認為自己很厲害或是天才型的工程師,我們也是凡人而已。

也都是需要透過實務經驗或從別人的教導與參與產品開發過程去累積。

當你閱讀別人偉大成就的故事時,你自己也可以想想:你為你自己的

學習環境與條件創造出你那些與人不同之處?

或許這才是當我們在悼念緬懷一位偉大的工程師時,所應該自省與

思考的地方。

2 則留言:

  1. 記得這個專案的原始程式是有上傳到github的

    https://github.com/chrislgarry/Apollo-11

    所有程式都跑在一個1.024 MHz處理器,4KB RAM,72KB ROM的硬體上,
    去完成一個非常複雜的任務....當時甚至連Intel 4004都沒有
    除了大廠的CODE以外,這是我看過註解最詳細的程式之一XD

    當然,上萬行的組語要看是一件很花時間的事,看看別人是怎麼解析這份程式

    參考資料
    【尘封 57 年的代码史诗】阿波罗登月程序代码全开源
    https://blog.csdn.net/qq_73472828/article/details/160799018

    阿波罗11号登陆月球 —— 航天器设计的过去与现在
    https://ww2.mathworks.cn/company/technical-articles/the-apollo-11-moon-landing-spacecraft-design-then-and-now.html

    從登月計劃看電腦軟體發展
    https://hackmd.io/@sysprog/apollo-guidance-computer

    AGC Code Learning Notes
    https://blog.yehao.me/programming/2019/09/02/apollo-11.html

    大多數人也許一生也接觸不到這種工作,但至少可以看看在還沒有
    多少軟體工程觀念的年代,一個偉大的任務是怎麼被實現的。

    回覆刪除
  2. 感謝你的整理與貼文。

    我想我們在看別人貼文或分享文章時,應該不是拿來
    當開箱吹噓文或只是要讓別人按讚而已。

    而是真的可以從中留下一些可以值得學習或參考的經驗。
    不管這個經驗是成功或失敗的。

    畢竟隨著時代巨輪的前進,我們今天所留下的,也都只是
    當下的"雪泥鴻爪"而已。慢慢的它也會隨著時間消失在歷史的
    洪流中。

    是的,有些工作與學習機會也都是一種因緣際會。
    也不可能都可以讓你"面面俱到",更何況除了這些工作上的事。
    我們還有其他屬於每個人的家庭生活。

    人生就是如此這般,大家都好好的把握當下,真的不要羨慕誰?
    那些你在社群媒體燈光下的背後,也可能藏著你所不知的另一面。

    這些過往的技術,大家如果真的有空...就是我常說的:有錢、有閒時。
    在好好研究一下吧。

    再一次感謝@yaingc 。

    回覆刪除