
我同事的家中有一个小朋友正在上幼儿园老师教他算术一个苹果加上两个苹果得到了三个苹果。回到家中妈妈见到桌上有梨子就拿起一个梨子然后再拿起两个梨子问小朋友总共是几个梨子小朋友答不上来家长大怒。这个故事是同事在出租车上讲给我的出租车司机插了一句话使我们豁然开朗“你先给孩子讲苹果然后拿梨子孩子怎么反应得过来”小朋友形象思维还没有建立起来我们就希望他有抽象思维的能力确实是难为他了。形象思维比较容易抽象思维比较难。所以幼儿园的老师使用具体的苹果来进行教学。然而只有形象思维难以解决生活中千变万化的问题所以我们还是要借助于抽象思维来认识问题的本质通过建立一整套的理论体系然后通过逻辑论证一步接一步最后就可能得到某个结论。学习算数虽然比较难但是它不仅能够帮助我们解决苹果的问题梨子的问题还可以解决形形色色的计数问题。这才是我们学习的关键。因此在通过苹果学习算术的时候我们要有意识地进行抽象以学习算术的本质而不是将注意力放到漂亮的苹果上如果我们被苹果的色、香、味所吸引而忽视了需要掌握的本质问题那无异于缘木求鱼越来越远离我们的目标。条条大路通罗马但是有的大道是需要绕远的虽然走的人很多但是可能要兜一个大圈子以至于你还没有走到就开始抱怨怎么这个远中途就放弃了。有的道路虽然要爬山涉水但是却是风光无限直指罗马看起来很难走但是坚持下来却可以更快地穿越浮云一览众山小。.NET 的学习同样如此许多人一方面说 .NET 没有什么好的拖拖拽拽就可以完成开发又有许多人说.NET 技术变化太快需要学习的内容太多新技术已经乱花渐欲迷人眼吾身也有涯而知也无涯以有涯随无涯怠矣是这样吗显然不是软件开发技术是一个不断发展的过程目前来说不同的技术处在不同的发展阶段上.NET 已经进入了组件化开发阶段有的技术还处于进入组件化开发阶段的过程中。对于 .NET 开发来说通过组件技术将复杂的常用的处理封装起来通过高内聚低耦合的设计思想提供给使用组件的程序员一个简单的使用接口结合强大的开发工具的帮助使得 .NET 开发达到了一个空前的高度。但是这使得 .NET 的开发以组件为界呈现出两个不同的开发群体开发组件的程序员和使用组件的程序员开发组件需要扎实的软件开发理论丰富的开发经验。而使用组件的程序员则仅仅需要通过设置一些组件的属性调用一些组件的方法就可以使用组件完成从前需要许多高手才能完成的开发任务。我们不能否认使用组件的程序员的工作但是组件可以解决通用的问题却不能帮助我们解决所有的问题所以即使是使用组件的程序员也必须要学习组件工作的内在机制才能更好地使用组件不能掌握工具的人是不可能用好工具的。因此成为真正掌握 .NET 的程序员就必须要掌握 .NET 的核心向着开发组件的程序员前进。成为一个组件开发人员显然比较难这一步的门槛是很高的以 Web 开发为例必须掌握的基础知识就有 HTTP 协议HTML 语法JavaScript 语言面向对象的解决问题的方法流序列化状态管理的思想及实现等等这些技术在使用 ASP.NET 控件进行开发的情况下你都可以不用了解还可以开发出一个像模像样的网站来如果使用了一些漂亮的模板有一个过得去的美工的话用户可能还是比较满意的。但是如果我们希望实现一些定制化的效果而没有现成的控件如果网站的访问量比较大需要进行优化那你就会束手无策了。所以还是让我们沉下心来从问题的本质来学起不要被 .NET 缤纷多彩的技术所迷惑这些技术确实很好但是没有扎实的技术积累就是无本之木当我们一步一步打好基础在基础知识的学习中再融汇这些应用技术理论联系实际应用。你就会发现 .NET 不简单新的技术也并不复杂学习他们也并不再是一种负担而是对你的一种帮助了。