分类: LINUX
2009-07-07 21:05:53
编程是一个从来都不缺乏专家的领域。
那么什么是所谓的专家级别呢?看看如今的招聘广告就知道了。“有经验”的程序员往往只要几年编程经验。如果谁有十五年以上编程经验,反而会被人怀疑他的智商。
但是在计算领域,超过十五年以上编程经验的杰出人物却比比皆是。
远的有:Kenneth Lane Thompson(UNIX的发明者), Dennis MacAlistair Ritchie(UNIX和C语言的发明者),Donald Ervin Knuth(《计算机编程艺术》的作者,TeX的发明者),Frederick Phillips Brooks, Jr.(《人月神话》的作者, IBM360计算机之父)(这些人都是ACM图灵奖的获得者)...。近的有:Richard Stallman(GNU之父),Kirk McKusick(BSD顶极黑客), Larry Wall(Perl之父)...我不想再举例了,太多了,一页都写不完。我想这已经足够驳斥那些带有偏见的人们的观点。
况且,十五年并不见得他已经学会了所有的编程知识。很多“有经验”的程序员搞不清楚C语言运算符的优先级。有更多“有经验”的程序员不清楚sizeof到底如何运用。看来,所谓的“有经验”,远没有达到专业的水准。
在很多企业里,经理们从来不看代码。他们也不写代码。其实只要看少量的代码就能知道程序员的工作大环境。
要成为专业程序员,以下是一些建议:
1、阅读别人的程序,尽量开阔自己的视野。想想如果是自己,该如何实现。
代码孰优孰劣,只有对比了才知道。GNU工程里,向来不缺乏高质量的代码。BSD也是一个学习的例子。就算是UNIX的原始代码也有非常多值得借鉴的地方(高效,简洁,优雅)。
2、如果看到“漂亮”的代码,想想他为何如此编写。或许能从别人那里学到东西。一个优秀的程序员,之所以称他优秀,是因为他的代码为人所称道。他们的编程思想就在代码当中。分析他们的代码,就是学习他们编程思想。
3、每天留点时间,对自己的代码进行反思,提炼。Dennis Ritchie曾说过,“我一天中最有成效的工作就是删除了200行代码”。大师况且这样,又何论我们这些“平庸”的程序员呢?
4、不满足用一种方法解决问题。解决一个问题可以有多种方法。选择一个最有效的方法是专业程序员的共同特质。
总之,只有不断地努力,提升自己的能力,才能真正成为专业级程序员。
“十五年并不足以成为一个专业程序员。” --杰拉尔德.温博格