如何成为优秀的程序员?

原创 2004年08月10日 12:38:00
1)学习应该从基础打起,不要一开始就尝试最高深的技术。

2)每看一本书,不要说这章我以前学习过了,也掌握的很好,因此我可以跳过这一章看 更重要的了。

3)对于作业,遇到不会的尽量不要立刻向别人请教。如果实在解决不了的问题,可以先完成你会的,然后把一些特别的难点提炼出来,向高手请教。

3)不要指望书本和行家能帮你解决一切问题,因为并不是所有问题都能由别人教给你。

4)向别人请教问题应该把问题说明白。对于错误提示信息应该原样提供出来,不要按自己理解的信息提供。因为既然你自己做不了,说明你理解一般都有问题。

5)问问题最好能带代码。

6)不要说“编译通过,可是运行时...",因为编译错误和运行错误可能根本没有关系。 一般来说,编译是语法问题,而运行是逻辑问题。

7) 书看千遍不如做程序一遍,应该尽量尝试去写程序。

8)做程序千个不如做好程序一个。应该尽量完善你现在做的程序,而不要不断开新的计 划,而每个计划都虎头蛇尾。

9)要想到你不是一个人写程序,而是和大家一起写程序。

10)高深的技巧虽然显示了高深的本领,但是对于合作往往是有害的,应该尽量写出简 单易读的代码。

11)编制程序应该尽量做到自注释,即代码本身一读就懂,好象自己在说明自己的逻辑一样。

12)复杂的代码如果实在做不到自注释,应该给出适量的注释。

13)注释在修改代码的时候应该相应修改,不能用陈旧的注释去误导别人。

14)代码应该尽量可重用,相同功能的代码应该由相同的函数完成,重要函数应该给出调试信息,以便调试时及早发现问题。

15)应该尽量写小函数,每个函数尽量不要超过40行或者更少。这样不用滚动屏幕也许就可以读完整个函数。

16)对于switch语句,尽量不要有过多的分支,如果分支太多,可以考虑用跳转表。

17)尽量少使用一些有争议的语句,如goto和三目运算符,既然有争议,它肯定有一定的缺点。

18)对于goto,许多工程师技术高到可以合理使用,而不至于导致问题。但是你的程序并不一定给你同水平的人看和修改,他们可不能保证合理的读和修改这些相关代码。

19)代码编写时应该有一定的格式,其基本要求是对理解代码有一定帮助。

20)如果数据是多个模块共有的,应该提供一个封装的类来管理它,并提供一个合适的接口给各个模块。这样,如果数据内容有重大修改,则只要接口不变,基本上可以保证程序不要很复杂的修改。

21)应该尽量考虑到数据的并发控制。

22)数据的并发控制应该封装在接口内,而不要暴露给其他模块,这样可以减少因为并发原因导致的程序死锁。

23)数据本身结构不可以太复杂。应该尽量把不相关的数据分割成为两组数据。

24)对于数据量比较大的情况,应该考虑数据库。

25)数据库接口应该采用标准ODBC或者ADO接口,尽量不要根据实际数据库DBMS提供的接口来处理,因为你可能在实际使用中更换DBMS。

26)小的数据可以考虑文件,文件路径应该必须设计成相对路径。

27)在一个函数中,应该尽量打开文件后使用完后立刻关闭,这样其他程序可能使用文件。

28)不要尝试把文件全部读到内存中,应该分次处理大文件。

29)编写程序应该提供相关的测试程序,以提供测试手段。

30)应该考虑代码、函数的使用情况,不要超越函数可以使用的范围使用之。


--------------------------------------------------------------------------------


  1. 扎实的基础。数据结构、离散数学、编译原理,这些是所有计算机科学的基础,如果不掌握他们,很难写出高水平的程序。据我的观察,学计算机专业的人比学其他专业的人更能写出高质量的软件。程序人人都会写,但当你发现写到一定程度很难再提高的时候,就应该想想是不是要回过头来学学这些最基本的理论。不要一开始就去学OOP,即使你再精通OOP,遇到一些基本算法的时候可能也会束手无策。

  2. 丰富的想象力。不要拘泥于固定的思维方式,遇到问题的时候要多想几种解决问题的方案,试试别人从没想过的方法。丰富的想象力是建立在丰富的知识的基础上,除计算机以外,多涉猎其他的学科,比如天文、物理、数学等等。另外,多看科幻电影也是一个很好的途径。

  3. 最简单的是最好的。这也许是所有科学都遵循的一条准则,如此复杂的质能互换原理在爱因斯坦眼里不过是一个简单得不能再简单的公式:E=mc2。简单的方法更容易被人理解,更容易实现,也更容易维护。遇到问题时要优先考虑最简单的方案,只有简单方案不能满足要求时再考虑复杂的方案。

  4. 不钻牛角尖。当你遇到障碍的时候,不妨暂时远离电脑,看看窗外的风景,听听轻音乐,和朋友聊聊天。当我遇到难题的时候会去玩游戏,而且是那种极暴力的打斗类游戏,当负责游戏的那部分大脑细胞极度亢奋的时候,负责编程的那部分大脑细胞就得到了充分的休息。当重新开始工作的时候,我会发现那些难题现在竟然可以迎刃而解。

  5. 对答案的渴求。人类自然科学的发展史就是一个渴求得到答案的过程,即使只能知道答案的一小部分也值得我们去付出。只要你坚定信念,一定要找到问题的答案,你才会付出精力去探索,即使最后没有得到答案,在过程中你也会学到很多东西。

  6. 多与别人交流。三人行必有我师,也许在一次和别人不经意的谈话中,就可以迸出灵感的火花。多上上网,看看别人对同一问题的看法,会给你很大的启发。

  7. 良好的编程风格。注意养成良好的习惯,代码的缩进编排,变量的命名规则要始终保持一致。大家都知道如何排除代码中错误,却往往忽视了对注释的排错。注释是程序的一个重要组成部分,它可以使你的代码更容易理解,而如果代码已经清楚地表达了你的思想,就不必再加注释了,如果注释和代码不一致,那就更加糟糕。

  8. 韧性和毅力。这也许是"高手"和一般程序员最大的区别。A good programmingis 99 weat and 1ffee。高手们并不是天才,他们是在无数个日日夜夜中磨练出来的。成功能给我们带来无比的喜悦,但过程却是无比的枯燥乏味。你不妨做个测试,找个10000以内的素数表,把它们全都抄下来,然后再检查三遍,如果能够不间断地完成这一工作,你就可以满足这一条。

如何成为一名优秀的程序员

无论做什么工作, 都希望能做到最好, 就像参与一款游戏, 每个人都希望能赢到最后. 工作自然也会有其”秘籍”, 让我们更快的实现目标. 有些工作五年的程序员仍然很平庸, 也有刚学一年就技术出众的天才....
  • u012515223
  • u012515223
  • 2016年05月16日 17:30
  • 2540

如何成为一个优秀的程序员(宋劲杉)

标签: 程序员编程语言嵌入式行业前景建议 2013-05-30 18:30 1870人阅读 评论(0) 收藏 举报  分类: 职业规划&时间管理&思维方式(2)  ...
  • lin111000713
  • lin111000713
  • 2017年02月09日 09:36
  • 1023

如何成为一个优秀的程序员

原文地址:http://www.blogjava.net/jalor/articles/299143.html 在看这份FAQ之前,你必须先读完ESR的《如何成为一名黑客》(本文末尾附有中译版),该...
  • liyongke89
  • liyongke89
  • 2016年07月31日 10:04
  • 1163

如何成为一名优秀的程序员(知乎)

我不能算是一个很优秀的程序员,但这个问题我已经反复思考了五年了。跟大家分享一下我的看法: 首先, 我认为答案绝对不是 "只要写很多年代码就好了“。我面试过不少有10年经验,代码却写的很糟糕的程...
  • hebiwtc
  • hebiwtc
  • 2014年08月11日 22:50
  • 1053

如何成为一名优秀的C++程序员

C++这门语言从诞生到今天已经经历了将近30个年头。不可否认,它的学习难度都比其它 语言较高。而它的学习难度,主要来自于它的复杂性。现在C++的使用范围比以前已经少了很多,java、C#、python...
  • Heaven_Evil
  • Heaven_Evil
  • 2017年05月25日 14:20
  • 307

如何成为一名优秀的开发者?

原文链接:http://www.sitepoint.com/good-developer/
  • Aylee_Liu
  • Aylee_Liu
  • 2014年10月18日 19:09
  • 1056

成为更优秀的程序员的11种方法

1.实践与犯错误 第一个建议是你应该保持不断练习,代码敲得越多就越高效、犯的错误越多收获得就越多。为什么在你练习时,犯错非常重要?你编的代码越多,你就会意识到你在处理错误、设计、线程处理等情况下...
  • wzq__janeGreen_
  • wzq__janeGreen_
  • 2018年01月02日 17:53
  • 148

成为优秀程序员,从谦虚做起

开心一笑【一哥们上坟,感叹:现在的纸钱做得跟真的一样,烧的时候还真有点莫名的心疼,一阵苦笑之后,妻子来电话说“你不是去上坟了吗?怎么没带上桌上的纸钱?还有,今天我刚刚取的六万块钱哪去了?这哥们听完在坟...
  • huangwenyi1010
  • huangwenyi1010
  • 2017年04月03日 20:35
  • 1043

如何成为一名优秀的软件开发工程师

如何成为一名优秀的软件开发工程师     软件开发工程师是当今社会的热门职业,各大IT企业和非IT企业,都有不同程度的软件工程师的需求。特别是在信息化速度加快的今天,软件开发工程师更是成为了一个高薪...
  • u011155153
  • u011155153
  • 2016年05月20日 10:00
  • 1041

测试职业思考:如何成为一名优秀的软件测试工程师

如何成为一名优秀的软件测试工程师                                                                                   ...
  • zhouyou1986
  • zhouyou1986
  • 2014年01月11日 18:00
  • 5731
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何成为优秀的程序员?
举报原因:
原因补充:

(最多只允许输入30个字)