程序员犯过的错误
2014年1月,苹果联合创始人史蒂夫·沃兹尼亚克来到北京参加了“极客公园创新大会”,非常遗憾,由于个人事务,我错过了近距离观摩沃大神的机会,每每想起,扼腕叹息。如果上天再给我一次目睹沃神的机会,我绝对不会错过。(机会很快就来了,2015年我在硅谷见到了沃兹……那是另一篇随笔。)
很早就读过纸版的《我是沃兹》(2007年版),后来中信出版社再版此书,更名为《沃兹传》,于是在“多看阅读”上购得电子版,最近拿出来又跳读了一遍。好的故事总是常看常新,不同阶段的阅读,总会萌生不同的想法,今天就和大家说说沃兹当年犯过的错儿。
1977年年底,沃兹和苹果第6号员工兰迪·威金顿经过不眠不休的编程和调试之后,终于完成了Apple II对软盘驱动器支持的大部分程序。于是二人起身飞往赌城拉斯维加斯,准备参加CES展会。到了赌城之后,拉斯维加斯的滚滚红尘彻底迷乱了两个土鳖程序员的心,一出悲剧正上演……
当天晚上,沃兹和兰迪完成了最后的调试工作,一切都那么完美,两个好朋友就差对饮一杯红酒然后相拥而眠了,这时候,沃兹做了一个“明智”的选择:兄弟,咱是不是该备份一下程序再睡?沃兹带了两张软盘,于是他决定在空白盘上再备份一份仅有的数据盘,备份进行得很顺利……只是他把该死的空白盘当成了数据盘,于是他得到了两张干干净净的空白盘!
如果普通的程序员碰到这种灾难后,估计自杀谢罪的心都有了,沃兹不是普通人!
在确认了这个“致命”失误之后,沃兹这个编程狂人,就去睡觉了……第二天一早醒来后,沃兹恢复了上帝般的自信,他冷静地坐在Apple II面前,一机在手,天下我有,用一上午的时间盯着屏幕、敲打键盘,他重建了所有的程序,并在展会上进行了完美的演示,Apple II获得了“言语无法描述的成功”!
伟大的程序员如沃兹者,年轻时也会犯下如此的错误,何况我等……
这时我想起了另一个程序员犯的错,这位朋友在一家网络游戏公司工作,他的一部分工作就是手动维护数据库里的一些数据,这个库居然是奇葩的生产库。终于,在一个懒洋洋的下午,暖暖的阳光照在身上,他发现自己昏昏欲睡,鼠标光标神差鬼使地移到了用户表上,右键菜单弹了出来,“delete”被选中,并重重地点了下去……所有游戏用户的资料都消失了,就像一阵风一样。当时这位程序员的感受是:
我的所作所为带来的严重后果并没有立即击倒我。我只是感觉到灵魂似乎出窍了,悬浮在黑暗房间的某个角落,看到各位同事都弓着腰趴在发光的显示器上,他们惊恐地发现,所有的用户数据都不见了。
随后的一记重拳彻底击垮了这家公司,他们的数据库提供商告诉他们,这个数据库实例的备份两个月前就停止了,然后,就没有然后了。
同样是犯错,沃兹犯错后重新拯救了自己和公司,而另一个程序员则击倒自己之后又给公司补了一枪。
这就是伟大与平庸的区别。
总结:
◆ 年轻的时候谁能不犯错?重要的是犯错之后你做了什么。强大了,还是沉沦了。
◆ 无论犯什么错,永远不要执行:sudo rm -rf /
◆ 无论如何,最好不要犯全天下男人都会犯的错。
各位程序员,你们犯过哪些愚蠢而致命的错误呢?