这里的“初学者”特指那些有一定计算机编程基础,热衷于软件开发,想学一门语言以便在将来的某个时刻成为职业程序员的人。
先声明一下,我丝毫没有贬低这两种语言的意思,也不想与所有.NET和DELPHI的拥护者做对。相反我认为这两种语言都是非常优秀的,只是他们不适合做为学习软件开发的语言罢了。这就是为什么那些C++高手们怎么看.NET都是失败品一样,你站在一个怎样的高度决定了你看待问题、解决问题的能力。
我用.NET将近一年,现在转过来学习JAVA,当我站在JAVA的角度去看我在.NET中不解的东西时,我发现那些问题其实很简单,大部分时间我都是被微软所谓的“易用性”给误导了。
我们可能没有太多时间去研究像汇编之类很底层的东西,但我们可以从现在起关注软件开发的底层--数据结构和OO思想等,而学习这些的首选语言当然是C++和JAVA。
学习高级语言的最好方法是多看开源项目源码,多动手。学习阶段尽量不用那些高级IDE,尝试着自己动手用基础类库去实现语言自带的高级控件,这将有助于你深入了解系统实现,提高框架设计能力。(.NET的自定义控件功能比JAVA的自定义标签要复杂很多,这也是我不喜欢.NET的原因之一)