程序员的两种基本能力


    技术日新月异,从VC6.0到.NET, 从VS.NET 2003到VS.NET 2005, ORM, AJAX, Application Block.....在不断学习的同时,我也有所反思: 是否做到了知其然,知其所以然?是否有点随大流,流行什么就学习什么,而忽律了一些更基础更精髓的东西呢?

    抛开开发环境和编程语言不谈. 程序员还应该具备两种基本素质: 逻辑能力与抽象能力.

    逻辑能力具体体现在代码的实现上: 高质量的代码需要强的逻辑性, 逻辑严谨, BUG就少; 在一些对代码执行效率要求严格的应用, 好的算法实现更需要好的逻辑能力. 抽象能力则具体体现为设计能力: 将用户的需求提炼抽象为计算机描述;设计一个高效扩展的系统架构; 应用设计模式等去实现代码级的抽象, 从而得到更高的复用性.  

    具备了这两种基本能力  才能写出高质量的代码, 设计出好的系统. 相反, 如果不具备这两种能力,或者能力较弱, 写出来的代码, 设计出来的系统肯定是问题百出. 另外, 逻辑与抽象是基础, 坚实的基础有利于新技术的学习理解. 

    对于程序员,  这两种能力的培养是非常重要的. 基本的数据结构知识是要知道的, 但更重要的是要养成一种习惯去应用算法的思想解决新的问题. 面向对象是老生常谈, 可是确切理解体也不容易. 学习运用设计模式, 是抽象能力的很好锻炼实践.  三层架构, ORM, Application Boloks等都用到了很多的抽象设计理念, 我们更要知道其内含的抽象思想, 做到知其所以然.

   

[个人体会,更新中......]




 


你可能感兴趣的:(程序员)