不知不觉做软件已经做了十年,有成功的喜悦,也有失败的痛苦,但总不敢称自己是高手,因为和我心目中真正的高手们比起来,还差的太远。世界上并没有成为高手的捷径,但一些基本原则是可以遵循的。
1. 扎实的基础。数据结构、离散数学、编译原理,这些是所有计算机科学的基础,如果不掌握他们,很难写出高水平的程序。据我的观察,学计算机专业的人比学其他专业的人更能写出高质量的软件。程序人人都会写,但当你发现写到一定程度很难再提高的时候,就应该想想是不是要回过头来学学这些最基本的理论。不要一开始就去学OOP,即使你再精通OOP,遇到一些基本算法的时候可能也会束手无策。
2. 丰富的想象力。不要拘泥于固定的思维方式,遇到问题的时候要多想几种解决问题的方案,试试别人从没想过的方法。丰富的想象力是建立在丰富的知识的基础上,除计算机以外,多涉猎其他的学科,比如天文、物理、数学等等。另外,多看科幻电影也是一个很好的途径。
3. 最简单的是最好的。这也许是所有科学都遵循的一条准则,如此复杂的质能互换原理在爱因斯坦眼里不过是一个简单得不能再简单的公式:E=mc2。简单的方法更容易被人理解,更容易实现,也更容易维护。遇到问题时要优先考虑最简单的方案,只有简单方案不能满足要求时再考虑复杂的方案。
4. 不钻牛角尖。当你遇到障碍的时候,不妨暂时远离电脑,看看窗外的风景,听听轻音乐,和朋友聊聊天。当我遇到难题的时候会去玩游戏,而且是那种极暴力的打斗类游戏,当负责游戏的那部分大脑细胞极度亢奋的时候,负责编程的那部分大脑细胞就得到了充分的休息。当重新开始工作的时候,我会发现那些难题现在竟然可以迎刃而解。
5. 对答案的渴求。人类自然科学的发展史就是一个渴求得到答案的过程,即使只能知道答案的一小部分也值得我们去付出。只要你坚定信念,一定要找到问题的答案,你才会付出精力去探索,即使最后没有得到答案,在过程中你也会学到很多东西。
6. 多与别人交流。三人行必有我师,也许在一次和别人不经意的谈话中,就可以迸出灵感的火花。多上上网,看看别人对同一问题的看法,会给你很大的启发。
7. 良好的编程风格。注意养成良好的习惯,代码的缩进编排,变量的命名规则要始终保持一致。大家都知道如何排除代码中错误,却往往忽视了对注释的排错。注释是程序的一个重要组成部分,它可以使你的代码更容易理解,而如果代码已经清楚地表达了你的思想,就不必再加注释了,如果注释和代码不一致,那就更加糟糕。
8. 韧性和毅力。这也许是"高手"和一般程序员最大的区别。A good programming is 99% sweat and 1% coffee。高手们并不是天才,他们是在无数个日日夜夜中磨练出来的。成功能给我们带来无比的喜悦,但过程却是无比的枯燥乏味。你不妨做个测试,找个10000以内的素数表,把它们全都抄下来,然后再检查三遍,如果能够不间断地完成这一工作,你就可以满足这一条。
这些是我这几年程序员生涯的一点体会,希望能够给大家有所帮助。
转载别处!谢谢浏览!
山桀骜云轻狂 于 2017-11-28 13:01:25发表:
好好学习
chinazhonghao 于 2016-05-01 21:06:26发表:
好好学习一下
geekf 于 2015-11-18 14:51:30发表:
谢谢分享!
lang1437 于 2011-02-22 11:41:02发表:
十年吗?!哎。。。
随便521241 于 2011-02-16 09:22:54发表:
学习!
花开花败2011 于 2011-02-12 19:34:46发表:
我顶
sean2008 于 2009-07-31 22:44:51发表:
:0)1
s_songlin 于 2009-07-22 14:32:48发表:
学习一下,
balini 于 2009-07-22 11:36:03发表:
9# wade9900
衷心地感谢您!!!!
baesky 于 2009-07-21 11:33:06发表:
无他 惟手熟尔
tjt1127 于 2009-07-21 10:23:28发表:
顶了
tiedingyan 于 2009-07-21 08:26:46发表:
呵呵,好经验,值得学习,多谢
jiangkaibo1987 于 2009-07-19 03:29:09发表:
楼主不错
tangran 于 2009-07-03 15:33:41发表:
有用,个人感觉本人还是基础需要加强
ggsvvss 于 2009-07-02 14:37:42发表:
指导贴
ggsvvss 于 2009-07-02 14:37:40发表:
指导贴
刘冲 于 2009-07-01 16:56:53发表:
呵呵wangnan537 于 2009-07-01 16:37:06发表:
支持
jackxiao 于 2009-06-15 20:38:41发表:
很有用的文档,受用,谢谢啊
GQ_Linux 于 2009-06-15 17:32:35发表:
先来顶一下
xiao5914234 于 2009-06-14 15:19:35发表:
最后一条太难了点
88833324 于 2009-06-11 22:13:35发表:
恩,说的很不错,支持下
lang1437 于 2009-05-05 08:21:16发表:
不错呵呵 算法的确要好好学学 弱项呀!
dingjing 于 2009-05-04 22:13:50发表:
谢谢楼主分享经验
nxlinux 于 2009-02-28 19:48:16发表:
up
释梵 于 2009-02-28 11:30:36发表:
十年磨一剑,古今终同归!
heiyie 于 2009-02-28 10:02:12发表:
我想要成为高手,,,,,
zhouhunt 于 2008-01-22 17:58:11发表:
不错,很好的方法
奶茶dsk 于 2007-12-22 10:04:00发表:
呵呵。。
xionglei191 于 2007-12-21 23:30:38发表:
学习了
zhongleibest 于 2007-12-11 17:49:56发表:
不错。。十分感谢啊。。:0wmjh(1
ivanbin 于 2007-12-06 13:07:16发表:
互相学习
Perfy 于 2007-12-06 00:26:59发表:
programming..
AaronWoo 于 2007-12-05 19:42:49发表:
受益匪浅啊。因为自己不是计算机专业,所以学习时遇到很多困难
ROBINSON 于 2007-11-27 14:08:01发表:
顶!顶!顶!顶!顶!顶!顶!顶!
流v星 于 2007-11-14 12:59:02发表:
(5ty( 恩,手得很好 啊!收获不少啊!
自己还有很漫长的路要走啊!
继续努力!
zhou329 于 2007-11-12 12:28:47发表:
如果您有时间的话
请打开这个网址
谢谢合作
xiayousen 于 2007-06-03 12:19:21发表:
呵呵,来学习啦
梦影 于 2007-06-03 01:02:54发表:
离散数学? 没学过这个 要注意一下了
angzi123 于 2007-06-01 23:14:18发表:
学linux里的人生哲学。