做一个优秀程序员应该知道的15件事
1. 懂得分享。尽可能使用开源,并且当你有能力的时候,要对其有所贡献。聚全社会之智慧,胜过某些“大”公司之短视。
2. 公平竞争。尝试其他技术、框架、方法和观点。不要总以为只有你的选择才是可行的。别的选择也有可能比你的要强得多。要以开放的心态,来检验其他人的选择。
3. 不要攻击他人。像第2条所说的,不要仅仅因为别人恰巧使用.Net、Java或PHP就去攻击他们(我在这方面有一次教训)。有时,它们或许要比你所认为的更有效。只要别人不是一无是处,你就可以从他们那里学到很多东西。
4. 自我完善。尽量发布可以运行的代码。不要指望QA能给你找出所有的程序错误。要经常并且全面深入地测试你的代码。
5. 不要拿不属于自己的东西。使用软件要遵守许可,不要偷了之后又装无辜。
6. 伤害他人要道歉。代码审查是一个不错但很少用的想法。指导经验比你少的程序员,有助于整个团队。不要公开批评他人。指导并不是贬低别人。别人有时候会接受,有时候不接受。其实,有时候你可能会从自认为水平不如你的人身上学到很多东西。
7. 未雨绸缪。动手写代码之前要尽量理解要解决的问题。要做原型、从网上查找实例、跟其他也做这个的人讨论或者只是练练手而已。构建你从未做过或用过的东西是个坏习惯。如果开始就有思路,结果可能会更好。
8. 拿得起放得下。不要害怕替换、重写、重构或者放弃垃圾代码。有时候,如果碰到可留可不留的代码,直接扔掉才是上策。永远不要爱上你的代码。
9. 饼干和牛奶是好东西。没错,程序员应该有好的工作环境。如果想让编程变得轻松,那么一把好椅子、一个安静的地方、一台配置高的电脑以及各种工具是必需的。经理应该充当尽力保护程序员,防止琐事干扰他们。作为一名程序员,不要接受一种被奴役的生活。如果老板对你不好,换个好东家。
10. 平衡生活——学习、思考、绘画、唱歌、跳舞、工作、玩耍,每样都会一点。我喜欢Google的方式,在那里,你有20%的时间用来思考任何你认为值得做的事情。老板应该提供休息室、娱乐室或者一些能让人放松清醒的环境。
编程是一项艰苦的脑力劳动活;有时你的大脑确实需要休息一下。拒绝例行公事地每周工作80小时,否则你的工作质量将大打折扣,花费大量时间取得的成果将前功尽弃。另外,如何释放工作生活压力,可以参考伯乐在线的这篇文章:《3步释放工作和生活压力》。
11. 每天下午小憩一会。每天工作24小时不会让你更有效率。休息、回家,然后打个盹。通常,很多难题是在我回家的时候解决掉的,解决方法通常在我开车时或第二天早上突然想到。
12. 不要闭门造车。读读博客、学习新语言和框架、参与讨论以及看看同行在干什么。两耳不闻业界事,你就无法成为一名更优秀的程序员。
13. 保持好奇心。想想塑料杯中的种子:根向下长,枝叶向上长,没有人知道这是为什么,但是我们都是这样的。一般来说,在编程和技术世界,每天都有新奇东西出现。看!很神奇吧!每天学习,让你思维更广,技能更新,选择也就更广。如果你认为编程枯燥乏味,那么你要该换行了。
14. 金鱼、仓鼠、白鼠以及塑料杯中的小种子——它们都会死,我们也是。代码会过时并且死亡。有时你需要做的是把它们埋了,然后重做。不要为了省钱而继续维护那可怕的代码!
15. 想想那本书:《雌雄大盗》,你学到的第一个词——“看”。如果不去尝试,你永远学不到东西。我在编程中学到的东西都是来自尝试新事物和练手。每天早上我浏览很多网站,看看编程世界里又发生了什么;在八十年代早期我刚参加工作时,我就一直开始这样做(不过,那时候是看杂志)。如果你回头看五年之前,你会发现编程其实很简单。