1. 扎实的基础。数据结构、离散数学、编译原理,这些是所有计算机科学的基础,如果不掌握他们,很难写出高水平的程序。据我的观察,学计算机专业的人比学其他专业的人更能写出高质量的软件。程序人人都会写,但当你发现写到一定程度很难再提高的时候,就应该想想是不是要回过头来学学这些最基本的理论。不要一开始就去学OOP,即使你再精通OOP,遇到一些基本算法的时候可能也会束手无策。
2. 丰富的想象力。不要拘泥于固定的思维方式,遇到问题的时候要多想几种解决问题的方案,试试别人从没想过的方法。丰富的想象力是建立在丰富的知识的基础上,除计算机以外,多涉猎其他的学科,比如天文、物理、数学等等。另外,多看科幻电影也是一个很好的途径。
3. 最简单的是最好的。这也许是所有科学都遵循的一条准则,如此复杂的质能互换原理在爱因斯坦眼里不过是一个简单得不能再简单的公式:E=mc2。简单的方法更容易被人理解,更容易实现,也更容易维护。遇到问题时要优先考虑最简单的方案,只有简单方案不能满足要求时再考虑复杂的方案。
4. 不钻牛角尖。当你遇到障碍的时候,不妨暂时远离电脑,看看窗外的风景,听听轻音乐,和朋友聊聊天。当我遇到难题的时候会去玩游戏,而且是那种极暴力的打斗类游戏,当负责游戏的那部分大脑细胞极度亢奋的时候,负责编程的那部分大脑细胞就得到了充分的休息。当重新开始工作的时候,我会发现那些难题现在竟然可以迎刃而解。
5. 对答案的渴求。人类自然科学的发展史就是一个渴求得到答案的过程,即使只能知道答案的一小部分也值得我们去付出。只要你坚定信念,一定要找到问题的答案,你才会付出精力去探索,即使最后没有得到答案,在过程中你也会学到很多东西。
6. 多与别人交流。三人行必有我师,也许在一次和别人不经意的谈话中,就可以迸出灵感的火花。多上上网,看看别人对同一问题的看法,会给你很大的启发。
7. 良好的编程风格。注意养成良好的习惯,代码的缩进编排,变量的命名规则要始终保持一致。大家都知道如何排除代码中错误,却往往忽视了对注释的排错。注释是程序的一个重要组成部分,它可以使你的代码更容易理解,而如果代码已经清楚地表达了你的思想,就不必再加注释了,如果注释和代码不一致,那就更加糟糕。
8. 韧性和毅力。这也许是"高手"和一般程序员最大的区别。A good programming is 99% sweat and 1% coffee。高手们并不是天才,他们是在无数个日日夜夜中磨练出来的。成功能给我们带来无比的喜悦,但过程却是无比的枯燥乏味。你不妨做个测试,找个10000以内的素数表,把它们全都抄下来,然后再检查三遍,如果能够不间断地完成这一工作,你就可以满足这一条。
编程好习惯
假如你和我一样是一只正在学习编程的菜鸟,那么下面的十个好习惯与你共勉之。
1、设计规划。现在是模块化程序设计的天下,应用程序要实现的目标是金字塔尖,进行程序设计规划的意义就在于:对构成金字塔的基础模块进行划分,规划得越详细,模块分工越明确,越容易明白下一步该做什么。这好比搭积木的游戏,你可以把你的积木块组合成各种形状,但首先要熟悉每个积木块的功能。
2、有备无患。实战之前,先找一些样例程序仔细研究,最起码明白怎么开头,怎么结尾,别打无准备之仗。
3、葵花宝典。做一份所用程序语言的精简列表,包括基本数据类型、各类运算符说明、基本语句结构、常用关键词(保留字)、常用函数(控件)说明等。
4、自由独立。为你的应用程序建立一个单独的目录,这样既方便应用程序文件的管理,而且如果你要给程序搬"家",卷起"铺盖"就可以走人了。
5、见名知意。程序再小,用的变量也不会少,变量起名应当"见名知意",这是老规矩,好处是显而易见的。推荐使用"匈牙利命名法",它会使你的起名工作变得轻而易举,而且相当专业。
6、对称之美。编程也讲究对称之美,如果程序里用到A循环嵌套B判断,B判断又包含C循环之类的结构,记着使用缩进法,让aenddo对齐ado,bendif对齐bif……诸如此类,依次缩进,总之对称就等于美观加易读。(在易里这条就没用了)
7、多加注解。对程序中自定义的变量、函数、子程序加以功能性的注释说明,别嫌麻烦。如果三五个月之后,连自己写的东西都看不明白了,那才麻烦大了。
8、环境保护。如果应用程序需要修改系统设置,记着执行程序前先保存设置,结束后要恢复设置,千万别污染环境。
9、拿来主义。一个人的力量是有限的,大家的力量是无限的,平时多看看书,有好的经验、巧的方法、用得上的段子不妨拿来。
10、忍者无敌。当你认为程序代码写得"百分百"正确,而程序编译执行却百分百有毛病,你基本属于晕菜的时候,千万要忍,歇口气,重头来,别放弃!相信最终的胜利是属于你的!
在这里还得提醒一下,自己的程序自己写,有些人真的懒的没话说啊,动不动就“哪位大哥大姐请帮我写这样一个程序”如果你是真心想学编程的话,那这有什么意思呢,又不是你自己写的程序,没什么可高兴的,还有些人自己还想也没想就要别人写个程序,如果真有自己解决不了的问题,去论坛搜索一下自己想要的内容或是发个贴问一下倒还正常,我想一般知道如何解决你这问题的人都会帮你,必竟论坛里的热心人还是有很多,要是问题有难度论坛里的高手都解决不了,那就去网上搜一下,相同的例子我想应该可以找到(要学会搜索,网上资源很多啊)我想你做到了“多用心、勤动脑,重基础”这几点(大强老师的名言)再加上足够的时间,那恭喜你你一定会小有所成的!,最后希望某些懒人看到这几句话自己想想吧,愿你学有所成。