与大家一起学习(转载)
我每天都要收到很多的朋友来信。有不少的网友经常问我:面对众多的开发工具/语言,我该选择哪一个?怎样才能学好一门语言?怎样才能算是一个真正的程序员?…… 其实我也就半吊子水,很多时候亦是半懂不懂。我学电脑全是靠自学的,没有人教,也没有人问。因此走了不少弯路。当然现在看来,那些走过的弯路也算是一种积累。我所使用的开发工具是这样一个经历:GWBASIC->FOXBASE->TC->VFP->VB->PB->DELPHI->VC++。总的说来,各种开发工具各有秋千,应根据具体应用来采用不同的工具。例如写MIS用PB/VB就很好,界面设计用VB/Delphi很不错,写系统软件,用C/C++是最好的。对于初学者来说,先用一种可视化强的工具(如VFP/VB/DELPHI)比较好,容易掌握,上手也快。但如果你想走更深入一引起,我建议你还是很有必要去精通C,甚至汇编。
有人说,C/C++太难学了,开发效率也不高。我先不说C/C++优越于其他语言的地方(这在很多的资料中都有介绍),就单从一个很功利的角度来说说。Delphi/VB对于一般人来说学上几个月就可以上手了。易学的东西→学的人肯定多。而对于C来说,由于它难掌握,学的人不火,但一旦你真正掌握了,你的竞争实力就比其他人强。现实中,C程序员的工资普遍高于其他程序员就是一个证明。
那么,怎样跨越程序新手这道坎呢?下面这几点建议也许对你可能有些帮助:
1. 遇到问题时从所有你能想到的方面考虑去试图解决;
2. 一定要多动手,学一个专题(如网络/多媒体)后写一个软件检验自己;
3. 有几本关于内幕核心权威书,最好是老外写的;
4. 用好联机文档(如MSDN)查询函数和资料,利用网络资源;
5. 掌握好跟踪调试技巧,多看一些高手的程序,从本质上理解;
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
⑴ 扎实的基础。数据结构、离散数学、编译原理,这些是所有计算机科学的基础,如果不掌握他们,很难写出高水平的程序。据我的观察,学计算机专业的人比学其他专业的人更能写出高质量的软件。程序人人都会写,但当你发现写到一定程度很难再提高的时候,就应该想想是不是要回过头来学学这些最基本的理论。不要一开始就去学OOP,即使你再精通OOP,遇到一些基本算法的时候可能也会束手无策。
⑵ 丰富的想象力。不要拘泥于固定的思维方式,遇到问题的时候要多想几种解决问题的方案,试试别人从没想过的方法。丰富的想象力是建立在丰富的基础的知识上,除计算机以外,多涉猎其他的学科,比如天文、物理、数学等等。另外,多看科幻电影也是一个很好的途径。
⑶ 最简单的是最好的。这也许是所有科学都遵循的一条准则,如此复杂的质能互换原理在爱因斯坦眼里不过是一个简单得不能再简单的公式:E=mc2。简单的方法更容易被人理解,更容易实现,也更容易维护。遇到问题时要优先考虑最简单的方案,只有简单方案不能满足要求时再考虑复杂的方案。
⑷ 不钻牛角尖。当你遇到障碍的时候,不妨暂时远离电脑,看看窗外的风景,听听轻音乐,和朋友聊聊天。当我遇到难题的时候会去玩游戏,而且是那种极暴力的打斗类游戏,当负责游戏的那部分大脑细胞极度亢奋的时候,负责编程的那部分大脑细胞就得到了充分的休息。当重新开始工作的时候,我会发现那些难题现在竟然可以迎刃而解。
⑸ 对答案的渴求。人类自然科学的发展史就是一个渴求得到答案的过程,即使只能知道答案的一小部分也值得我们去付出。只要你坚定信念,一定要找到问题的答案,你才会付出精力去探索,即使最后没有得到答案,在过程中你也会学到很多东西。
⑹ 多与别人交流。三人行必有我师,也许在一次和别人不经意的谈话中,就可以迸出灵感的火花。多上上网,看看别人对同一问题的看法,会给你很大的启发。
⑺ 良好的编程风格。注意养成良好的习惯,代码的缩进编排,变量的命名规则要始终保持一致。大家都知道如何排除代码中错误,却往往忽视了对注释的排错。注释是程序的一个重要组成部分,它可以使你的代码更容易理解,而如果代码已经清楚地表达了你的思想,就不必再加注释了,如果注释和代码不一致,那就更加糟糕。
⑻ 韧性和毅力。