最美程序员-玛格丽特·汉密尔顿
现在的软件工程师多是男人为主,可是你知道吗?软件工程这个名词却是一个女人发明的,她就是玛格丽特•汉密尔顿,一个计算机科学家,一个企业家。
玛格丽特1936年出生在美国印第安那州保利镇,1954年从汉考克高中毕业,1958年从厄勒姆学院毕业。
她的大学主修的是数学,因此毕业后她去了一所高中教数学。后来她打算去布兰迪斯大学去读抽象代数的研究生,但是计划赶不上变化。在1960年的时候,她意外地从麻省理工学院得到一份软件编程的工作,那是一份编写天气预报的软件的工作,在那里工作的时候,玛格丽特积累了大量软件编程的实战经验。
1961年的时候,她转到林肯实验室工作,并且同时为美国空军剑桥研究实验室编写软件,那时的她在编程方面的天赋逐渐显露出来。那时候的编程采用的汇编模块各不相同,但是她却可以掌握多个汇编语言。
人们经常说的一句话就是最怕比你优秀的人比你还努力,玛格丽特就是那个比我们优秀,比我们还努力的人。那时的她一方面要照顾自己的女儿,一方面还要参与复杂的工作,但是这些她都出色地完成了。
渐渐地她出色地编程天赋被美国NASA发现了,于是她被邀请加入了"MIT仪器实验室",这是一个阿波罗登月计划的一部分。不到1年的时间,她就成为了首席工程师。可以说她编写的软件挽救了阿波罗11号登月失败。在阿波罗登月舱到达月球表面三分钟前,数个计算机警报响起,表示计算机输入数据过多,原因是雷达系统更新了系统中的一个强制计数器,致使主机发生周期挪用。但由于玛格丽特编写的软件健壮性很强,整个系统仍然可以工作。阿波罗的机载软件是以异步执行为思想开发的,高优先级的任务能打断低优先级任务。起初,报警信号被认为是雷达系统被操作人员错误开启,但后来的一项分析报告揭示,一个硬件设计错误导致雷达给主机提供了错误信息。而玛格丽特优先级调配地思想让软件出色地抵挡了发生的错误,让阿波罗11号顺利登月成功了。
其实阿波罗计划开始之初,没人知道做什么,也没人会教你做什么。甚至连软件工程这个词,还要等着玛格丽特来发明。
而有点可笑的是,最早的时候,阿波罗计划的设计者压根就没想到软件这回事儿,在项目计划书上没提到软件,没有预算,没有工作计划。这事儿放在今天看,着实难以想象。
不过,随着阿波罗计划逐步展开,软件工程重要性越来越凸显,玛格丽特也越来越紧张了。毕竟,苏联人加加林代表了全人类第一次进入太空,美国政府压力巨大,全美国都在指望着她,幸运地事,玛格丽特出色地完成了她的任务。
玛格丽特不仅是一个计算机科学家,她还是一个成功的商人。她创立了2家公司,一个是高阶软件公司,一个是汉密尔顿公司。
玛格丽特她不仅提出了软件工程的概念,同时她还是并行计算、优先级调配、端对端测试等技术的先驱者,她的一生是充满传奇色彩,相信你了解了她的一生,一定认为编程绝不仅仅只是男人才能做的更好。