程序员必须知道的事情, 一般人我不告诉他
原文链接 https://drmingdrmer.github.io/tech/bla/2018/08/26/programmer-should-know.html
注:以下为加速网络访问所做的原文缓存,经过重新格式化,可能存在格式方面的问题,或偶有遗漏信息,请以原文为准。
软件开发里所有的东西都已经发明出来了! 人们总是在做重复的事情, 假装在发明新的东西. 如果有个东西让你觉得很酷很新, 那它肯定是从Smalltalk, HAKMEM, Ivan Sutherland, Douglas Engelbart, 早期的IBM, 或者Bell 实验室其中之一抄来的.
别相信编译器, 别相信工具, 别相信文档, 别相信你自己.
我们已经不需要更多的编程语言了! 但是... 你还是会立马跑去发明一个新的语言. 恩...我猜, 你那个超酷的新语言肯定还是用的IEEE-754浮点数, 和定宽整数吧.
维护代码比写代码困难的多. 写很多很多新代码其实就是在犯懒.
我们学习到的知识是, 内存, cpu, 带宽都是无限和免费的. 实际上不是这样的, 不是这样的, 不是这样的. 推荐读读 Knuth的 prematrue optimization 相关的文字.
几个月之后你就会忘记你当时为啥写那段代码... 写的时候能写多直白就多写多直白(xp建议: 永远低估几月后自己的智力准没问题的).
有时候一行sed命令就够了.
如果谁跟你说他的方案绝逼是最好最快的, 小心点. 编程是个艺术不是宗教.
如果你觉得有个事情你要重复做10次以上, 就立刻把它做成自动化的!(xp觉得大概3次就该考虑了...)
备份是一个事情, 恢复备份是完全不同的另外一个事情!
仅仅是在你自己的电脑上可以工作不代表没有bug. - Piers Sutton.
想要装一个新工具的话, 等0.1版本出来再说, 让其他人当小白鼠(
Let other people be guinea pigs
).好的程序员写好的代码. 杰出的程序员不写代码. 大师程序员删代码.
出问题时, 别管有多少领导正在朝你吼着训话, 第一件事情总应该是稳定复现bug.
或早或晚, 你会遇到一个经验丰富的前辈, 偶尔他会向你传授 Laws of Programming. 让他滚一边去.
原文链接: What are some things that only someone who has been programming 20-50 years would know?