程序员的成长就是对经验的沉淀与积累。近日,Quora网站中提出了"什么是只有一直从事编程20-50年才能知道的事情"这一问题,Gigantic Software的CEO John Byrd对此作出了精彩回答,总结了14条宝贵经验。 "程序员的成长很大程度上就是沉淀与积累脑中的伤疤,每一行新代码都会在你未来的重构过程中造成一定的伤害。" ——Andrej Karpathy 李飞飞高徒、特斯拉人工智能总监Andrej Karpathy 正如Andrej Karpathy所言,成长就是一个沉淀与积累的过程。学会总结,汲取经验,才能快速提升自我。 而有些事情,只有当你从事了很多年之后,才能得以拨云见日。 以下就是Quora网站中Gigantic Software的CEO John Byrd对"只有从事20-50年编程才知道的事情"的精彩回答。 一
其实,所有与软件开发有关的东西已经被开发出来了,人们只是对其不断的重新挖掘并假装"发明"一些新东西。你所认为非常酷炫或者新颖的东西,都是从Smalltalk、HAKMEN、Ivan Sutherland、Douglas Engelbart、早期的IBM或者Bell Labs中复制出来的。 二
不要相信编译器!不要相信工具!不要相信文档!不要相信你自己! 三
我们不再需要更多的编程语言了。不过,你还是会立马跑去开发一个新语言。让我猜一下,你所谓的"神奇"的语言,用的是IEEE 754二进制浮点数算数标准和固定精度整数吧。但我想告诉你的是,你所"发明"的语言已然是破损不堪的。 四
要知道,维护代码比写代码要更困难。编写大量的新代码可能是"懒惰"的标志。 五
你在学编程的时候会有一种错觉,仿佛内存、处理器时间和网络带宽都是无限且免费的。但我要告诉你的是: 它不是!它不是!它不是! 去看下Knuth大师有关过早最佳化(premature optimization)的文章吧!毕竟他说过一句名言:"过早最佳化是万恶之源"。 六
你将在接下来的几个月里忘记你写的代码的作用,并且读着你写的这些代码,你会觉得它简单得可笑。 七
有时候,你所需要的只是sed中的一行代码而已。 八
一定要小心那些说话特别绝对的程序员!比如,"我的方法永远比你的好",或者"编程是一门艺术,而不是一种信仰"。 九
备份是一回事儿,恢复是另一回事儿。 十
代码能在你的机器上正常运行,并不代表它没有bug。——Piers Sutton 十一
在安装开发工具之前,请等待0.1版本的开发工具。让别人去当小白鼠吧。 十二
优秀的程序员写好的代码。伟大的程序员不写代码。宗师级程序员删除代码。 十三
不管有多少经理对你大声训斥,你要做的第一步是复制bug。 十四
你总会遇到一个在你身边呆了一段儿时间的长辈,他有的时候会教你一些有关编程的规律。请忽略这个人的存在!