红联Linux门户
Linux帮助

如何提高自己的编程水平 &!!

发布时间:2005-05-03 23:59:23来源:红联作者:wade9900
不知不觉做软件已经做了十年,有成功的喜悦,也有失败的痛苦,但总不敢称自己是高手,因为和我心目中真正的高手们比起来,还差的太远。世界上并没有成为高手的捷径,但一些基本原则是可以遵循的。

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

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

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

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

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

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

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

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

  这些是我这几年程序员生涯的一点体会,希望能够给大家有所帮助。

转载别处!谢谢浏览!
文章评论

共有 78 条评论

  1. xiayousen 于 2007-05-28 01:30:41发表:

    呵呵,说得很好亚。我赞同

  2. cz_lsm 于 2007-05-28 00:16:39发表:

    真正的程序员总是那么的谦虚、谨慎,值得我们更加好好地学习

    :0L :0L :0L :0L

  3. hbioer 于 2007-05-27 10:37:28发表:

    感谢了,就是要这个了!

  4. 寂寞男孩 于 2007-05-25 21:49:54发表:

    :49ab:1

  5. 寂寞男孩 于 2007-05-25 21:41:34发表:

    :ha3nd

  6. 寂寞男孩 于 2007-05-25 21:41:25发表:

    :victory:

  7. 寂寞男孩 于 2007-05-25 21:41:16发表:

    :0)1

  8. 玉杰天 于 2007-05-25 10:25:55发表:

    :0L

  9. tomliugen 于 2007-05-22 11:43:26发表:

    学习

  10. 暗夜 于 2007-05-19 01:47:34发表:

    学到了。。

  11. csbinghu 于 2007-05-18 21:06:04发表:

    :ha3nd

  12. athlonxpgzw 于 2006-12-28 13:44:49发表:

    :0L :0L :0L :0L :0L :0L :0L :0L

  13. athlonxpgzw 于 2006-12-25 20:45:17发表:

    :0L :0L :0L :0L :0L :0L :0L :0L :0L :0L :0L :0L :0L :0L :0L :0L :0L :0L

  14. zypjackie 于 2006-11-18 11:25:36发表:

    :0L

  15. 于 2006-11-17 16:29:28发表:

    有见解,顶

  16. 云轩2008 于 2006-08-26 17:24:56发表:

    感受颇深
    值得我们学习

  17. minny 于 2006-08-21 20:53:38发表:

    支持

  18. linux110528 于 2006-07-23 15:39:13发表:

    谢谢~~

  19. wing 于 2005-12-04 02:21:03发表:

    支持

  20. jemney 于 2005-10-26 23:06:16发表:

    谢拉

  21. Coso 于 2005-10-15 00:37:01发表:

    不错,支持

  22. 爱的边缘 于 2005-08-26 00:47:06发表:

    顶了

  23. artiomgy 于 2005-08-19 00:22:34发表:

    看看

  24. 何哥 于 2005-07-22 18:49:51发表:

    不错

  25. 中国人 于 2005-07-10 00:25:06发表:

    了解

  26. wade9900 于 2005-05-13 23:23:14发表:

    是啊!就是为了一个共同的目标,我们才在这里交流的啊!谢谢啊!

  27. weib5337 于 2005-05-12 20:37:38发表:

    我正在努力学习,不希望成为一个高手,但希望能成为一个合格的程序员

  28. wade9900 于 2005-05-11 22:27:58发表:

    我也是刚学JAVA啊!大家互相学习啊!

  29. yuze 于 2005-05-11 21:29:21发表:

    是需要看看一些基础的东西了。

  30. yangzi 于 2005-05-11 09:26:25发表:

    好的,我会把我们现在的这个新论坛网址发到别的网站上去的。(真正的程序员总是那么的谦虚、谨慎,值得我们更加好好地学习。)

    [ Last edited by yangzi on 2005-5-11 at 09:29 ]

  31. wade9900 于 2005-05-10 21:40:56发表:

    是大家互相的学习,呵呵!有空多带朋友过来转转,谢谢啊!

  32. yangzi 于 2005-05-10 09:38:20发表:

    有了各位工程师的帮助,我想我们的论坛人气一定会越来越旺的。wade9900工程师,以后我会向你多多学习的,还望多多指教。

  33. wade9900 于 2005-05-09 21:26:48发表:

    是啊,大家支持,我们的论坛才能越办越好啊!你说是不是啊?

  34. 中国人 于 2005-05-08 00:56:51发表:

    linux的精神,不求回报,顶

  35. wade9900 于 2005-05-07 22:41:38发表:

    同志们看完贴子就支持一下啦,谢谢啊!为了我们大家的论坛!你们的支持,才是我们发展的动力啊!谢谢了啊!

  36. wade9900 于 2005-05-06 00:04:25发表:

    希望大家能在这里好好的交流!谢谢!谢谢你们给我这个平台!

  37. 非你不要 于 2005-05-05 00:51:42发表:

    U

  38. lwf 于 2005-05-04 22:28:52发表:

    你的经验可以使我们少走弯路!