一个程序员的副业项目,被微软“白嫖“30年,拯救了无数人的电脑!

CPU 100%,风扇开始狂响,Windows资源耗尽,系统濒临崩溃。

在这么一个危急的时刻,你只剩下一招可以保命:

召唤任务管理器(Task Manager),找到那个惹祸的程序,无情地把它杀掉。

很少人知道,这么一个可靠、有用的小工具竟然是一个程序员在家里做的副业项目,也是他写的第一个Windows程序。

01

被一本书“骗”进微软

戴夫·普拉默出生在加拿大,11岁就接触了电脑,并且开始学习编程,他很喜欢开发各种系统工具和游戏,比如用于磁盘加速的HyperCache,这一点也将彻底改变他的命运。

大学期间戴夫是Unix的粉丝,自然有点儿瞧不上微软,因为90年代微软虽然已经是PC软件的霸主,但是行事粗鲁而霸道,成了行业公敌。

某一天戴夫在书店中闲逛的时候,发现了一本关于微软的书:

这本书叫做《硬盘:比尔·盖茨与微软帝国的缔造》,讲述了微软内部的各种项目,以及微软那些各种聪明的人。

戴夫看得激情澎湃,彻底被打动了。

他决定去微软实习,见识下这帮人,于是给HR投递简历。

不出意外,简历杳无音讯,微软实在是太热门了,应聘者太多了。

他决定独辟蹊径,想起了自己开发过一个叫做HyperCache 的系统工具,在没有互联网的时候,用户需要在纸质卡片上填写自己的信息,以便获得软件更新和通知。

戴夫在一大堆卡片中找到了一个带有microsoft.com邮箱地址的人,直接给那个人发信。

没想到,他真的获得了面试的机会。

90年代微软的面试是出了名的难,先是HR面试,然后5轮编程面试,需要在白板前写C语言和汇编代码,面试官会不断地逼迫你,直到你被难倒甚至崩溃,每一轮面试只有大部分人都表示可以录用时,你才能进入下一环节,整个面试会持续一整天。

这种地狱面试筛选出来的都是符合他们要求的编程牛人。

(微软园区的X型办公楼,让每个房间都有光线)

戴夫通过了面试,拿到了暑期实习机会。

1994年,戴夫大学毕业,又经历一系列严格的面试,顺利拿到了微软的Offer,年薪3.5万美元。

这个薪水并不高,后来戴夫得知那些罢工的UPS司机的年薪都比他高50%!

但是戴夫并不在意,因为还有个叫做“股票期权”的东西,微软的股票期权在90年代可是太值钱了,十年涨了10倍!

戴夫移民到了美国,开始了白天上班写代码,晚上下班搞副业的日子。

02

深夜灵感

戴夫非常幸运,他参与的是操作系统天神Dave Culter领衔的Windows NT项目。

这个项目对微软来说极其重要,简单来说,我们今天使用的每一款 Windows 系统,其血脉都源自于 Windows NT。

某个深夜,当戴夫在书房鼓捣软件的时候,突然想到:Unix上有ps,top这样查看进程的工具,为什么Windows NT上没有呢?

其实在Windows NT的内部已经具备这样的能力(内核对象、计数器、API),现在缺乏的就是一个可以展示的“仪表盘”而已。

戴夫立刻决定自己写一个程序,让程序员们可以“看见Windows NT系统内部到底发生了什么”。

那些程序在运行,占用了多少内存,哪些资源空闲,哪些资源空着.....

很快,一个粗糙的任务管理器就出炉了,戴夫把它带到了公司。

当时的微软有着强烈的“吃自己的狗粮”的文化,他们在开发Windows NT的时候,也在自己的电脑上运行中每天编译的最新版本。

很明显,戴夫这个粗糙的小工具在吃自己狗粮的时候非常有用,受到了同事的喜欢,开始在内部口口相传。

最后,这个工具被Dave Culter发现了,他也非常喜欢,亲自批准添加到Windows的源代码树当中,成为 Windows 内置工具。

Dave Culter想把任务管理器放到开始菜单的最顶端,这遭到了UI部门的强烈反对,这个工具完全太技术化,太极客化了,完全违反了让PC更简单的目标,这是对他们的严重挑衅!

最后,任务管理器被放入了系统工具中,大家才终于满意了。

想想也挺神奇的,没有复杂的流程审批,没有签订合同,一个人的业余爱好竟然进入了Windows的核心,成了接下来几个月的全职工作。

微软在1993年已经有1万多人,竟然还可以采用“简单粗暴”,“自由高效”的办法,真是“西部蛮荒”的时代。

03

从副业到产品

业余项目升级为正式产品,质量标准立刻飙升。

戴夫之前没有写过带UI的Windows程序,任务管理器是第一个,所以他特别谨慎小心,尽可能地遵守所有的规则。

因此,任务管理器是他写的最接近完美的Windows 应用,开发时主要搞定了3件事:

1.保持程序小巧

NT4 的任务管理器总大小只有80多K(包括图形和资源!),至今仍能在 Windows 11 上运行。

今天的任务管理器约 4MB,原版比现代版本小 50 倍。

2.动态调整UI大小,并且没有闪烁

戴夫不得不重写一些控件,给列表视图添加一些新方法,确保在一个巨大网格里如果只有一个单元格变化,只有那一个小矩形被重绘。

由于早期的版本是在家里写的,起名时很随意(缺乏想象力?),一些类都加上了Dave的前缀,例如Dave's frame window proc, Dave's group class,等到完成功能,有时间去改名时,系统已经进入Beta阶段,无法再做这些小修改,只好保留了下来。

3.稳健,准确,可靠

所有的进程都可以阻塞,挂起,不再响应,但是任务管理必须永远运行。

任务管理器必须精确无误,不允许有丝毫错误。

但是戴夫发现,有时候CPU的利用率偶尔会超过100%,他认为是内核统计有Bug,但是内核团队并不买账。

于是戴夫写了一个断言,在超过100%的时候触发警告,并且在断言中写下了家里的电话,以便测试人员可以在凌晨3点给他联系。

几周以后,终于在内核中抓到了这个Bug。

悲催的是,戴夫还没来得及删掉断言中的电话号码,微软的Build Team就做了一个Beta版本,并且分发到了合作伙伴和特定客户。

幸运的是,由于这个Bug已经被Fix,戴夫家的电话从来没被客户打过。

90年代微软的工作环境是非常疯狂的,产品发布时经常搞“死亡冲刺”。

更让人震撼的是,这些在产品发布阶段每天干16个小时,很多都是百万富翁,千万富翁(微软80年代上市,造就了上万名的百万富翁),这些家伙可以连续加班,不回家,就睡在工位下面,直到把Bug给找出来解决掉为止。

微软公司也愿意提供一切所需,咖啡,丰富的食物,甚至游戏!只要能把产品按期发布。

某个周日的凌晨5点,戴夫接到电话,说一个组件在Build中失败了,公司联系不上这个组件的正式负责人,只好找他这个备用联系人。

虽然只睡了几个小时,戴夫依然回到公司把这个组件修好,没有影响整体的Build。

经理非常感激,对戴夫的奖励也别具一格。

周一戴夫来到公司,发现了两张NBA贵宾票,是Dave Culter 的私人票!就在球场旁边!能听到球鞋摩擦声、球员喊声,是顶级 VIP 才能拿到的票。

04

副业变财富

除了任务管理器之外,戴夫在业余时间还开展了另外一个副业:ZipFolders。

在WinZip大行其道的时候,这个小软件可以在资源管理器当中直接查看Zip文件,不用解压,还是挺有用的。

戴夫把ZipFolders当做共享软件来发布,每天都能卖出10几份,是一门不错的生意。

有一天,戴夫上班之前接到了一个微软经理的电话,说想要买下这个软件,内置到Windows当中,不知道戴夫是否愿意谈谈。

戴夫自然很乐意,他说:行啊,我可以顺便去你的办公室聊聊。

这把产品经理吓了一跳:你得和微软的旅行部门联系,得预约啥的.....

戴夫也很纳闷:我就在微软上班啊,为啥要飞到微软.....

经过一番沟通,对方才知道,戴夫就是微软的员工!

戴夫当然无法拒绝这份收购的邀约,因为他拒绝的话,微软就会自己做,他怎么能和自己的雇主竞争呢?

收购价格应该很不错,因为第二周戴夫就开着跑车来上班了:

如今,ZipFolders依然是Windows的一部分。

任务管理器和ZipFolders被收编以后,戴夫继续折腾各种工具软件(例如MemTurbo)并且在互联网上卖。

那时候是弹窗广告的“黄金时代”,戴夫通过买广告让销量竟然达到了每天1000份!

他下班后不得不花费大量时间去制作软件Copy,打印邮件,邮寄软件,还要回复邮件,处理退货,根本就忙不过来。

这严重影响到了他的主业:给微软写代码。

大度的微软给放了三个月的假,让他好好想想人生的方向。到底是老老实实地在微软干活儿, 还是自己去当老板?

戴夫选择了后者。

2003年,35岁的戴夫离开微软,创办了自己的公司SoftwareOnline LLC,后来他声称公司售出了数百万份适用于 Windows 的的软件。

不过戴夫的公司后来也因为营销过度,吃了官司,被华盛顿州罚了15万美元。

05

写在最后

戴夫后来说自己“喜欢看机器工作”,一个磁盘整理的动画,他可以看很久。

他甚至会去除洗衣机的安全机制,只为了打开盖子看看它工作的样子,这种对机器和电脑内部的好奇可能是戴夫编写工具类软件的原始动力。

也许正是这种近乎“痴迷”的好奇心,让戴夫在别人看不到问题的地方,发现了可以被工具化、可被改进的空间。

他写的诸多工具也给他带来了巨大的回报,HyperCache让他找到了进入微软工作的机会,任务管理器和ZipFolders影响了全球几十亿台电脑的日常运作,即使在退出微软后,各种工具依然帮他打下来一片天下。

2018年,戴夫开通了他的YouTube频道,在其中讲述计算机编程,以及他钟爱的汽车相关的内容,关注者超过百万,成了网络大V。

戴夫的这一辈子,过得真是非常精彩。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值