一个程序员,从最基本的做做coding,到成为一代宗师,通常需要经过下面六个阶段: 第一阶段
! N, u! U* R! x9 W5 X0 ` 此阶段主要是能熟练地使用某种语言。这就相当于练武中的套路和架式这些表面的东西。一般来说,比较好的入门语言有c/c++、java、delphi和perl(当然,汇编也是一门相当重要的工具)。就这四门语言而言,我通常只使用c/c++进行开发,这是目前应用最为常见的语言,特别是c,和低级语言有很多相似之处;java的最大优势在于跨平台性,但是其执行效率确实是一大问题;delphi是数据库开发人员的利器,如果你希望从事erp开发,一定要学好这门语言(当然,也有c#,不过我没有用过,也就不便评价:-P);至于perl,如果你要使用unix/linux平台,这门语言一定要学会的!我推荐各位可以看看eckle写的thinking in c++或者是thinking in java入门。这一阶段最好的练习方法是多用最基本的语言写程序,比如用c++的话,除了i/o之外,就不要使用任何的库函数和api了,这样才能尽快的掌握一门语言的基础。
( W7 x3 E1 e+ M& [, L 第二阶段
" [! T* W3 Y3 o: I4 ]8 P0 v3 v+ C' L 此阶段能精通基于某种平台的接口(例如我们现在常用的win32 api)以及所对应语言的自身的库函数。到达这个阶段后,也就相当于可以进行真实散打对练了,可以真正地在实践中做些应用。目前,在windows平台下最好的参考资料当属msdn,上面有绝大多数win32 api的介绍,不过都是e文的(最起码我拿到的版本是),要求有较高的e文能力(大概也就6级的水准吧)。至于库函数,一般在网上很容易找到相应参考资料的。最好的练习方法就是多写些程序,但和第一阶段不同的是,这一阶段要尽量用api和库函数写。- o0 o6 a3 R3 p: ^
第三阶段5 J1 E, v+ h& D8 D2 x
这个阶段要求程序员深入地了解某个平台系统的底层,具备初级的内功,也就是“手中有剑,心中无剑”。这个阶段要求程序员对os的原理和实现有一定的理解,最好使用开源平台进行学习,如linux,因为在windows下,所有的细节都是屏蔽的,很难了解到它到底是怎样运行的。这个阶段正是我目前努力的目标,按照目前的进度,我在今年就应该能够升级到这里了。; X% t7 S+ `( K, b% z
第四阶级
) L+ M" i1 j1 h 到达这个阶段的人就不多了,这些人大都是一流的黑客、公司的骨干了,能直接在平台上进行比较深层次的开发。比如能进行vxd(想想当年陈盈豪的cih病毒)或操作系统的内核的修改。这时已经不再有语言的束缚,惟一的束缚就是你的开发思想,语言只是一种工具,即使要用自己不会的语言进行开发,也只是简单地熟悉一下,就手到擒来,完全不像是第一阶段的时候学习语言的那种情况。一般来说,从第三阶段过渡到第四阶段是比较困难的,因为很多人的思想变不过来。 |