Skip to content

Tưởng nhớ — Margaret Hamilton, 17 tháng 8 năm 1936 – 30 tháng 9 năm 2026

← Quay lại Vai Những Người Khổng Lồ

Margaret Hamilton seated inside an Apollo command module mockup, 1969
Hamilton bên trong mô hình khoang chỉ huy Apollo, 1969. Ảnh: NASA (phạm vi công cộng).
Tưởng nhớ

Margaret Hamilton

17 tháng 8 năm 1936 – 30 tháng 9 năm 2026 · Nhà khoa học máy tính · Trưởng phần mềm bay Apollo · Mẹ đẻ của 'kỹ thuật phần mềm'

Margaret Hamilton lãnh đạo nhóm MIT viết phần mềm bay trên tàu cho chương trình Apollo — đoạn mã đưa phi hành đoàn tới Mặt Trăng và trở về, trên một máy tính có bộ nhớ chỉ bằng phần nhỏ của đồng hồ hiện đại. Bà làm điều đó trong khi phát minh ra cả ngành học: chính bà đã tạo ra thuật ngữ kỹ thuật phần mềm, vào thời cụm từ đó bị coi là trò đùa.

Từ Paoli đến Cambridge

Margaret Heafield sinh năm 1936 tại Paoli, Indiana, và lớn lên một phần ở Bán đảo Thượng Michigan, con gái một nhà thơ kiêm giáo sư triết học. Bà học toán — phụ học triết — tại Earlham College và tốt nghiệp năm 1958, cùng năm bà kết hôn với James Hamilton. Con gái Lauren ra đời năm 1959.

Bà định học cao học toán trừu tượng tại Brandeis. Thay vào đó, để nuôi chồng qua trường luật Harvard, bà nhận công việc vốn chỉ định là tạm thời tại MIT — viết phần mềm dự báo thời tiết cho Edward Lorenz (vâng, Lorenz của thuyết hỗn loạn) trên các máy tính LGP-30 và PDP-1. Không có khóa học lập trình nào; người ta học bằng cách làm. Bà giỏi ngay từ đầu.

Điều đó đưa bà đến Phòng thí nghiệm Lincoln của MIT và dự án SAGE — hệ thống phòng không quy mô lục địa, một trong những hệ thống đầu tiên đòi hỏi phần mềm không được phép hỏng. Tại Lincoln Lab, Hamilton nổi tiếng là người sửa được những chương trình không ai sửa nổi; đồng nghiệp bắt đầu giao cho bà những con bug khó và kỳ lạ nhất. Bà đang học khả năng chịu lỗi trên một cỗ máy canh giữ cả lục địa.

Apollo

Năm 1965, Phòng thí nghiệm Dụng cụ của MIT — sau này là Draper — đã thắng hợp đồng NASA về dẫn đường trên tàu Apollo. Hamilton là lập trình viên đầu tiên được MIT tuyển vào dự án Apollo, và là người phụ nữ đầu tiên lập trình cho nó. Bà bắt đầu ở các sứ mệnh không người lái, rồi thăng lên dẫn đội viết phần mềm bay cho các mô-đun Chỉ huy và Mặt Trăng có người. Đến năm 1968 bà chịu trách nhiệm phần mềm Mô-đun Chỉ huy và Dịch vụ; ở đỉnh cao, hơn 400 người viết mã cho Apollo.

Cỗ máy mà mã của bà phải điều khiển nổi tiếng là nhỏ: Máy tính Dẫn đường Apollo chạy khoảng 85 kilohertz với khoảng 72 kilobyte bộ nhớ dây thừng — được dệt đúng nghĩa đen, từng sợi dây qua các lõi ferrite, bởi các "bà cụ nhỏ" — công nhân nhà máy xỏ tay từng bit chương trình. Phần mềm không được ghi vào bộ nhớ đó; nó được chế tạo vào trong đó. Không có cách vá lỗi sau này.

Margaret Hamilton beside the printout stack of Apollo Guidance Computer software
Bức ảnh nổi tiếng: Hamilton đứng cạnh chồng bản in mã nguồn của Máy tính Dẫn đường Apollo — cao gần bằng bà. Mỗi trang đều là công sức. (Phòng thí nghiệm Draper / phạm vi công cộng)

Con gái bà tìm ra bug trước cả NASA

Một trong những câu chuyện hay nhất lịch sử phần mềm là của một đứa trẻ. Lauren Hamilton, khi đó khoảng tám tuổi, hay đến phòng thí nghiệm cuối tuần và chơi phi hành gia trên trình mô phỏng. Một lần, cô bé bấm phím giữa mô phỏng và khởi động chương trình tiền-phóng ngay trong "chuyến bay" — xóa sạch dữ liệu dẫn đường của máy tính. Hamilton nhận ra chuyện gì đã xảy ra và đề nghị thêm kiểm tra lỗi để chuỗi đó không bao giờ chạy được trong chuyến bay thật. Câu trả lời từ trên: phi hành gia được huấn luyện để không bao giờ mắc lỗi; chuyện đó không thể xảy ra.

Trên Apollo 8, phi hành gia Jim Lovell — làm đúng điều Lauren đã làm — vô tình khởi động cùng chương trình đó, xóa dữ liệu dẫn đường khi đang quay quanh Mặt Trăng. Đội của Hamilton làm việc suốt ngày đêm để dựng lại các bảng và đưa phi hành đoàn về nhà. Kiểm tra bà yêu cầu được thêm vào sau đó. Mọi lập trình viên đều nhận ra bài học: con người làm được thì con người sẽ làm.

Ba phút chứng minh bà đúng

Nỗi ám ảnh sâu nhất của bà là xử lý lỗi — lập trường cấp tiến thời đó. Phần mềm được kỳ vọng hoặc chạy hoặc hỏng; Hamilton khăng khăng nó phải tiếp tục chạy xuyên qua lỗi: báo cho phi hành đoàn biết điều gì sai, và bảo vệ trước nhất công việc ưu tiên cao. Phần mềm Apollo chạy dưới bộ điều hành lập lịch ưu tiên, với "màn hình ưu tiên" đưa báo động ra mặt bàn thay vì giấu đi.

Ngày 20 tháng 7 năm 1969. Apollo 11 đang hạ xuống Biển Tĩnh Lặng khi máy tính dẫn đường bắt đầu réo báo động tràn điều hành 1201 và 1202 — máy bị đòi làm nhiều hơn khả năng vì một radar tiếp cận đang bơm dữ liệu nó không cần. Thiết kế của Hamilton làm đúng điều bà thiết kế: bỏ công việc ưu tiên thấp, tiếp tục điều khiển hạ cánh, và báo cho phi hành đoàn. Ở Houston, kỹ sư 24 tuổi Jack Garman — người thuộc lòng các mã báo động — giải thích cho giám đốc bay Steve Bales ý nghĩa của chúng. Lệnh truyền lên: "go". Armstrong và Aldrin hạ cánh.

Bài học bà để lại: các báo động không phải trục trặc — đó là hệ thống làm đúng điều nó được thiết kế để làm trong điều kiện không ai lường hết. Hãy viết phần mềm nói thật khi gặp khó, sắp xếp điều quan trọng, và suy giảm nhẹ nhàng thay vì chết trong im lặng. Ý tưởng đó — lỗi là hành vi được thiết kế, không phải bất ngờ — vẫn là trái tim của kỹ thuật tốt, và cùng một bản năng đứng sau các công cụ phân tích mã trước khi nó chạy.

'Kỹ thuật phần mềm'

Khi Hamilton bắt đầu gọi công việc của họ là "kỹ thuật phần mềm", các đồng nghiệp lớn tuổi cười — phần cứng mới là kỹ thuật; phần mềm chỉ là thứ gõ vào. Bà cứ dùng thuật ngữ đó cho đến khi chính công việc làm nó không thể chối cãi: một ngành có yêu cầu, thiết kế, kiểm thử, mô phỏng và đánh giá. Cụm từ sống sót qua những kẻ hoài nghi. Giờ nó là tên của nghề — và bà không chỉ đặt tên, bà đã chứng minh ý nghĩa của nó, trên đường tới Mặt Trăng.

Sau Apollo — kỹ thuật bằng kiến thiết

Hamilton dành những thập kỷ sau để hình thức hóa điều Apollo dạy bà: hệ thống phải đúng ngay từ thiết kế, chứ không phải gỡ lỗi đến đúng sau đó. Năm 1976 bà đồng sáng lập Higher Order Software, nơi tạo ra công cụ thiết kế USE.IT — hệ thống được đặc tả theo luật tiên đề để cả lớp lỗi bị ngăn trước khi một dòng mã chạy. Năm 1986 bà lập Hamilton Technologies tại Cambridge, phát triển Universal Systems Language (USL) và bộ công cụ 001 — "phát triển trước khi có sự thật", kỹ thuật hệ thống nơi phần mềm thừa hưởng sự nghiêm ngặt của hệ thống nó phục vụ. Bà dẫn dắt công việc đó đến hết đời.

Vinh danh

President Obama awarding Margaret Hamilton the Presidential Medal of Freedom, 2016
Tổng thống Obama trao Huân chương Tự do cho Hamilton, 2016 — 'bà tượng trưng cho thế hệ những người phụ nữ thầm lặng đã giúp đưa nhân loại lên vũ trụ'. (Ảnh Nhà Trắng — phạm vi công cộng)

Lời cuối

Hamilton qua đời ngày 30 tháng 9 năm 2026 tại Cambridge — trong tầm mắt của phòng thí nghiệm nơi bà lần đầu biết phần mềm có thể là gì. Bà 90 tuổi. Bà còn lại con gái Lauren — cô bé mà những ngón tay từng tìm ra con bug mà quy trình của NASA không tìm được — một con rể, hai cháu trai và bốn chắt. Giám đốc NASA gọi bà là 'người tiên phong có công giúp Apollo và những hành trình đầu tiên của nhân loại tới Mặt Trăng thành hiện thực'. Một lễ tưởng niệm được lên kế hoạch tại Cambridge.

"Không có cơ hội thứ hai. Chúng tôi biết điều đó. Chúng tôi xem trọng công việc, nhiều người trong chúng tôi bắt đầu hành trình này khi mới ngoài hai mươi… Chúng tôi phải tìm một con đường và đã tìm ra. Nhìn lại, chúng tôi là những người may mắn nhất trên đời; không còn lựa chọn nào khác ngoài làm người tiên phong."
— Margaret Hamilton, MIT News, 2009

Vì sao bà đứng cùng những Người Khổng Lồ

Trang này tồn tại để dạy người ta lập trình. Hamilton là người đã chứng minh lập trình có thể gánh trọng lượng của sinh mệnh con người — và việc đó đòi hỏi sự nghiêm ngặt, khiêm tốn và ý chí thiết kế cho một thất bại mà ta cầu mong không bao giờ đến. Một người mẹ gỡ lỗi trong phòng thí nghiệm lúc nửa đêm, một cỗ máy từ chối đầu hàng trên đường xuống Biển Tĩnh Lặng, và một từ — kỹ thuật — mà bà làm thành sự thật bằng chính việc mình làm. Đó chính xác là lý do những đôi vai tồn tại.

Nguồn và đọc thêm

← Quay lại Vai Những Người Khổng Lồ