摘要:最近,比尔盖茨发布了他的首部自传《源代码》《Source Code》。身为从业10多年码农的我,从小就接受老师们的教育,要学好计算机,以后要做中国的百万富翁。结果现在果然成了百万负翁,对,是背负百万房贷的负翁。
大家好,欢迎来到明哥秀频道!
最近,比尔盖茨发布了他的首部自传《源代码》《Source Code》。身为从业10多年码农的我,从小就接受老师们的教育,要学好计算机,以后要做中国的百万富翁。结果现在果然成了百万负翁,对,是背负百万房贷的负翁。
今天我站在一个软件研发从业者的角度,来带大家瞧瞧比尔盖茨首部自传《源代码》里面,到底讲了个啥。
我们都知道Gates并不是出生贫苦家庭,他的老爸老盖是西雅图律师,老妈玛丽Mary是华盛顿大学校董、第一州际银行主管,还是一个美国最大的慈善捐助机构的主席,家庭条件优渥,妥妥中产阶级。
小学:"智力有问题",差学生盖茨
这本书前几章讲的都是他家庭里的事情,比如他爸怎么追到他妈,他和姐姐怎么和外婆打牌斗智斗勇。可读性有点差,我就跳过这段了。
盖茨在小学时,被多个老师认为智力有问题,功课也很差,是个典型的差学生。一个原因是,盖茨很调皮,他就是要搞怪、要做个幽默与众不同的小孩。比如老师上课时,盖茨就大笑打断,老师让大家朗读他就发出怪声。
五年级的时候,盖茨要被接收语音矫正。他的语音矫正师说盖茨“智力发育迟缓”,建议让他父母给盖茨留一级。盖茨说还好他爸妈没听他的。
盖茨还经常和他的老爸老妈争吵,非常叛逆,被带去看了几年心理医生。用现在的话来讲,这孩子是没救了!
心理医生是克雷西博士,他和盖茨几次沟通后,能看懂盖茨,知道他聪颖另类。他引导盖茨:与其你浪费精力和父母对着干,不如专注学点未来踏入社会用得上的技能。克雷西博士还告诉他父母,你们给盖茨都一些自由空间,做点让步,不要对盖茨态度这么强硬。
初中:接触计算机,磨练编程技术
1967年,盖茨进入了一家专门招收西雅图富二代的私立中学--湖滨中学,读七年级。
湖滨中学的七年级和八年级是低年级部,9~12年级是高年级部,也就是初中2年,高中4年。一般低高年级不怎么打交道。湖滨中学非常注重运动,多项赛事都是冠军蝉联学校。但盖茨知道自己是个“运动白痴”,也被别人说是书呆子、讨厌鬼。然后盖茨继续保持当班级活宝状态,不写作业,在课上胡搞。
当要做个小组项目时,老师把最好的学生分到一起,却把成绩垫底的学生分到和盖茨一组。盖茨意识到,他老师眼里认为盖茨也不聪明,他挺伤心。在接下来的两年时间里,虽然盖茨也尝试着努力一把,但老师安德森,还是给了盖茨超低的分数。
很快到了七年级末,湖滨中学校报底部有一行小字:从秋季学期起,数学部将接入一台计算机,希望同学们能用来开展大型项目。
八年级开始,他和一个人高马大、一头凌乱头发,叫肯特的同学成了至交好友。肯特同样也是运动白痴,他也融入不了湖滨中学已有小圈子里。盖茨是特别在意别人对他的评价,但肯特一点不在意别人对他的评价。肯特对什么感兴趣就做什么,只为自己感兴趣的事物而活。虽然当时肯特才12岁,但他关心的却是国家政治!
有个老师这么评价肯特“关于政治,他知道的可能比我这辈子知道的还多。”
特别的,盖茨和肯特经过一次学校组织的徒步旅行后,就成了形影不离的好朋友。白天他们在学校聊天,晚上煲电话粥继续聊,一聊就好几个小时。他们还一起读了很多本名人传,一起对这些人评头论足。
八年级的一个上午,斯托克林老师带盖茨等同学去见识新来的机器,一台电传打字机。通过这台电传打字机,可以接入远在加利福尼亚某处的电脑主机,然后就可以玩游戏、写计算机程序。这个电传打字机配备了一个电话拨号盘,先拨号通过电话线登录到远程主机。这,简直是和以前拨号上网一样啊! 并且呢这个方案有个牛皮的名字,叫“分时系统”,即同一台计算机同时分配给多个用户使用。
盖茨说:“我居然可以亲手操作一台计算机,这简直太酷了!”
为了使用这台终端机,学校每年要花1000多美元,加上每小时8美元的机时费。数学部负责人杜格尔老师很有办法,他联络湖滨中学许多家长,每年举办一次义卖会,为学校各项活动筹款。1967年3月,他用三天筹到了3000美元,这些钱足够让大家用这台终端机一段时间了。(备注,1967年3000美元,相当于现在18~36万人民币,每小时8美元机时费,相当于现在500~1000元玩一小时电脑,数据来源deepseek-r1计算。按最低500元一小时看,盖茨这玩电脑的费用是真贵!)
但挺搞笑的是,没人知道如何使用这个玩意。杜格尔老师掌握的编程知识,不到一周就传授殆尽。而数学老师赖特虽然学过几个编程语言,但从没实操过。但学校基于直觉,认为这台终端机是个好东西,认定总会有人能搞明白的。
我们的主角,盖茨第一次把这4行BASIC语言程序敲进计算机
INPUT X,Y LET A=X+Y PRINT A END
这段程序是一个加法计算器,你输入两个数,它会直接告诉你这两个数的和。比如输入5和3,它会输出8。
盖茨说这4行代码,简单优雅符合他对秩序感的追求,而他的即时响应宛如一阵电流般激动人心。
后面,盖茨编写出了第一个计算机程序---井字棋游戏。能写出这个游戏可不容易,盖茨生平第一次不得不深入思考游戏规则、考虑每一种可能的情况。只要有一点错误,这游戏就无法正常运行,用现在的话来说“不能有bug,有bug就得修,不然跑不起来”。虽然这个游戏很简单,但是让机器成功跑起来,盖茨收到了极大的鼓舞。
盖茨说,计算机强迫他必须注重每个细节,一个逗号或者一个分号放错地方了,就无法运行。穿越到现在,现在程序遇到错误,问下chatgpt、deepseek立马能知道哪里错了,怎么改了。
回到书里,盖茨说,计算机编程不需要高超的数学技能。但是对解题过程的严谨性和逻辑性要求很高,需要把问题拆分成可以驾驭的小问题。并且和解答代数题一样,可以用不同的方法得到同一个结果。盖茨还写了个月球着陆器的shell终端游戏,可以用键盘控制上下左右。
湖滨中学安装了这台终端机没多久,斯托克林老师,没错就是带盖茨认识电传打字机的那个老师。他写了个无限循环的程序,这意味着如果没人强制中断程序,他会一直保持运行。这个失误花费了100多美元(换算到现在就是6千~1万2人民币),这对所有人来说都是个教训。我算了下,8美元一小时上机费,也就是这个死循环跑了12.5小时。
下面呢,盖茨做了和很多写代码初学者都会干的一件事,包括我也是。就是为了避免产生不必要的费用,尽可能先把程序写在纸上,然后抢占上机操作机会。上机后很快把程序输入,等待结果。如果程序不对,他就必须退出登录,找个角落排查哪里有问题,然后再排队再试。 大家听起来挺麻烦的,很多初学代码的同学,当然也包括我,和比尔盖茨一样,对这个过程很上瘾。因为每一次调试能多学到点知识,程序能多跑几步,再调试再多跑几步,最终解决完所有bug,得到想要的结果。我自己觉得,这很像dota或者王者荣耀里对线补兵赚钱,然后攒钱买小装备、打装备,最后五杀上高地获得胜利。这把打完,就开下一把,根本停不下来!而且越是失败,越菜,越想再来。
盖茨通过写代码建立起很大的自信,他认为自己虽然才八年级,但是高年级能做到的,他也能做到,不能让比人超过他。
当时比他高2个年级的保罗-艾伦,对,就是后来和他创办微软那家伙。觉察到盖茨在程序上挺有天分,经常会激一激盖茨,和他说:你不是觉得自己聪明,这个问题你来搞定呗。然后这招对盖茨屡试不爽。
保罗很早就对计算机产生兴趣,他读过很多科幻小说,也在世界博览会上见过计算机,可以说他是见过世面的人。在二年前,当保罗还在初中毕业演讲时,描绘了计算机融入社会生活各个层面的美好未来,它甚至预测用不了几十年功夫,计算即将拥有思考能力。
保罗发表这个演讲时间是1966年,距离现在59年。他说的计算机融入生活,在他们创建微软后,确实很快成真了。但拥有思考能力,我认为去年chatgpt-o1和今年deepseek-R1大模型的出现,也也成真了。
盖茨说,虽然他2年前做过演讲和预测,但他一直没实际使用过计算机,直到现在和盖茨一起才用上。
几周过去后,一大批最开始围着这个终端机的转悠的学生失去了兴趣,只剩下一小撮同学。盖茨和他的同学,用计算机开发了不少小游戏。他还对另一个同学的大富翁游戏做了升级,让计算机可以自己跟自己玩。盖茨还和密友肯特一起开发了个随机语句生成器,把名词、动词、形容词和语法结合,能随机编写一些滑稽的故事,逗的他们开怀大笑。
这里盖茨又夸了下老师赖特,就是那个学过几个编程语言从没实际操作过的老师。赖特是事实上的机房管家,他会因为学生自己发现解决问题的方法而欣喜。当盖茨用代数方法工科几何难题,赖特老师会笑嘻嘻的看着。赖特老师管理机房方式是:从不登记、也不锁门、也没正式指导。湖滨中学也没有开设计算机课!他就是这样敞开计算机大门,让大家来去自如。他相信大家都能自学成才。也有其他老师提醒要对机房严格管控点,但是赖特老师每次都怼回去。
那年秋天,盖茨和他的小伙伴们,整天泡在机房里,写程序、调试失败、重头再来、周而复始。盖茨回忆那是在学校度过最快乐的时光,虽然大家的学校成绩都一落千丈。
每天早晨大家会拼车去湖滨中学上学,附近同学父母轮流开车接送。其中有一个叫汤姆同学,他的母亲罗纳夫人是华盛顿大学的计算机实验室副主任。罗纳夫人和别人正在筹备创办西雅图首批计算机分时系统公司。她这个公司名字叫计算机中心Computer Center Corp.简称CCC,盖茨作为数学迷,给这公司起了个绰号C的立方。
罗纳夫人给湖滨中学校方写信,如果学校里的小程序能去他初创公司帮忙,他愿意让大家无偿使用她们的新型计算机。
在1968年11月的一个周六,盖茨父亲就带他去了C的立方。同样还去的有赖特老师、保罗、肯特、里克,还有其他人。大家去C的立方,可以随意使用计算机,唯一的条件是当机器停止运行或者异常时,必须把异常记录在案。当时机器和现在不能比,问题很多,所以需要让盖茨他们多多使用,测试机器有没有问题。
此时距离盖茨创办微软还有7年,距离发布windows1.0还有17年,距离成为世界首富还有27年 ,距离发布windows xp发布还有33年!
这一期盖茨的故事,先聊到这里,后面还会再做两期。
眼尖的同学可能发现,为啥微软创办的时候是盖茨和保罗,他最好的密友肯特咋没一起创业,没道理啊!这个悬念,等下期再揭晓了。
最后再提一下我自己和计算机相关的事情。那是1995年,我小学一年级结束的那个暑假,离开农村跟父母到城市。在入城市小学前要做卷子,评估能不能升二年级。没错,当时成绩差是要留级的。结果数学太差,当时教研主任高老师,建议我妈让我留级。我妈和盖茨爸妈的决策不一样,她同意了,于是我又上了一次一年级。留级这件事上,我是真留级了,盖茨没留。
1995年,也恰好是windows95诞生那一年。突然有一天,我们学校门前停了一辆大卡车,很多人小心的从卡车上,搬运下一些带电视屏幕、机箱、电话线,没错就是计算机。说一些是上面拨的,还有一些是学生家长送的。当时一台电脑要一万多块,用的起电脑的家庭是真的有钱。很快学校教学楼的楼道,多了一行话“计算机普及要从娃娃抓起”,没错我们就是学校第一批被抓的娃娃!当时学校电脑的cpu还是奔腾386、586,同学们交头接耳谈论着,你鞋套带了吗、586比386快太多了、软盘可是个好东西能通过他装游戏玩。学校开设了微机课,让学生了解计算机组成、学习打字、使用画笔软件等。我至今还记得,老师经常问计算机分为那几个部分,每次都要考。
唯一的编程课程叫logo,是输入指令,控制一只小乌龟画图。不过这个课是个兴趣课,为了参加小学生比赛而设立,我们学校只开了半年到一年就关了。我是其中唯一参与的一年级学生,其他至少都是二年级学生。不过我确实啥也没学到,我当时管abcd还是叫阿波茨的呢。
好,本期就先聊到这里,欢迎大家点赞关注,下期接着聊!
来源:明哥秀