(注:以下内容都是作者个人的学习经验和体会,仅代表个人观点。针对Win32下的Delphi程序开发而言,部分内容或思想也可适用于其它工具或平台下的软件开发。)
在程序员的求职资料中,用得最泛滥的词可能是“熟悉”和“精通”了。评价一个程序员的综合能力并不容易,下面的文字试图以Delphi程序开发为例定义一种描述程序员开发能力的方法。
一、学习阶段划分。
根据我个人的经验,Delphi程序设计分为以下几个阶段:
1、 熟悉阶段。
这一阶段指从未接触过Delphi的人,刚开始学习到初步掌握Delphi的语法、可视化编程、面向对象编程的概念、Delphi IDE开发环境、基本代码编写、程序结构的过程。
熟悉阶段结束后,学习者应该可以编写简单的程序,同时对整个Delphi开发环境有一定的了解,但还不能从事开发工作。
根据学习者是否有编写其它语言代码的经验、是否接触过面向对象编程等因素,这一过程可能需要数天到数十天的时间。
2、 入门阶段。
在熟悉Delphi后,入门的标志是学习者可以有目的地利用Delphi强大的可视化开发环境、结合一些常规的代码编写技术,编制一些小型的程序,或是完成简单的数据库应用。同时,还应掌握基本的程序调试方法。
入门后,程序员可以从事简单的开发工作,或担任中小型系统的用户界面设计及简单代码的编写任务。
同样,如果没有代码编写经验,这一过程将需要一个月或更多的时间。
3、 进阶阶段。
相当多的程序员处于进阶阶段,他们通过经常性地开发工作,积累代码编写和程序调试经验,通过各种途径寻找各类代码编写技巧。每个人根据自已从事的工作或兴趣,在某一方面或几个方面大量的实践,可以独立开发小型、技术含量不高的系统,或在大中型系统中负责普通代码的编写。
绝大部分的在职程序员处于这一阶段,如果一个程序员不是有目的地在学习、工作中总结、提高,可能很长时间、数年甚至终生处于这一阶段。
4、 小成阶段。
只有系统地掌握了Delphi的结构体系,从实践上升到理论,有自己完整的编程思想和风格,或是在深度上达到了相当水平、或是在广度上有了相当经验,知识达到融会贯通的地步,才算小有所成。
此时,在代码编写方面,只要有时间,程序员几乎可以实现所有想做的东西。很多功能,都可以举出几种实现方法并从效率、可读上优化选取。
除了Delphi,程序员应该对操作系统有相当深入的了解,能在短时间内学会新的知识并加以应用,可以读懂绝大部分Delphi源码,完成复杂程序的调试。
如果向深度发展,程序员应该可以编写出具有一定水平的组件、专家或较专业的程序。如果向广度发展,则可以完成中小型的开发任务,或是大中型系统中的核心代码编写以及大部分系统分析工作。
这一阶段几乎是没有现成经验可学的,完全靠个人的修行和领悟,小有所成后程序员在软件方面可独挡一面。
5、 大师级。
如果前面四个阶段在某种程度上都可以看做是“应用”的话,大师级的程序员就处于“设计和创造”这一层次。
他们已到技进乎道的境界,可以把Delphi玩得随心所欲,可以创造新的东西,把握发展方向,随手写的代码都可以当教材用。Borland公司的工程师、国外一些著名软件、控件包的作者、以及国内少数程序员属于这一阶段。
二、代码阅读分析能力。
对一个程序员来说,读懂别人写的代码是一项基本的能力。不仅包括阅读写得好的程序,也包括阅读写得一般甚至低劣的代码。
代码阅读分析又可分为三个层次,一是代码本身的阅读能力,二是代码编写思想的理解能力,三是算法模型分析设计能力。
要看懂一段代码的作用和功能,首先自己应该拥有大量的代码阅读编写经验,然后是从手册资料中快速获得所需信息的能力。然而,仅有这些,很多优秀的代码仍然不易理解,这就需要程序员的宏观分析和联想能力。
和其它所有事物一样,很多代码也只有在特定环境中才有其存在的意义。有经验的程序员在拿到一段代码后并不急于马上阅读,而是在理解代码所在单元甚至工程的功能后再有目的地分析,从宏观(系统框架结构)和微观(具体代码)上分析作者的设计意图、框架结构、实现方法,从中汲取经验或对代码编写质量进行评估。
再深入一些, 是代码和软件的算法设计。给你一段DES加密算法、UCL压缩算法或MCNN多层分组神经网络的实现代码,如果你没有相关的理论知识做基础,即使有源算法模型也是无法看懂的。
三、代码编写调试能力。
程序设计能力一般指的就是代码编写调试的能力,程序员的代码直接代表了他的编程水平。
1、 代码编写规范。
代码、注释的书写是否规范直接反映出一个程序员对程序设计的态度。不同的组织定义了不同的代码编写规范,但从外观上看,写得好的代码看起来都差不多一个模样,而糟糕的代码则五花八门。
2、 程序框架和算法结构。
很多程序员在一开始编写代码时缺乏对开发目标的细致分析和策划,边写边改,结果写出的代码结构冗长、算法凌乱、可读易维护性差,特别是在多人开发时很容易导致开发中后期进展缓慢甚至陷入僵局。优秀的程序员代码书写简练、算法清晰、结构合理,他们善于利用编译器强大的语法检查功能减少潜在的错误,并在设计编写代码时充分考虑程序的可移植性和升级能力。
3、 软件测试和代码调试能力。
调试复杂代码的能力同样是区分程序员能力的重要因素。同一段有问题的代码,不同的人调试的时间可能相差数倍甚至数十数百倍。特别是组件开发等不可视代码的调试,要求一个没有太多经验的程序员完成是不现实的。而一个优秀的程序员同时也应该是一个优秀的测试员,发现问题的能力和解决问题的能力同样重要,尽管并不是所有人都能认识到这一点。
四、程序员类型。
从程序员所从事的工作及兴趣来看,可将其简单地划分为:
1、 应用型。
又可分为以“其它领域结合软件开发”为主和以“软件开发结合其它领域”为主两种。
前者有自己的专业知识,但不满足于简单的操作应用,而利用VB、Delphi等开发工具的强大RAD能力开发与自己专业相关的软件。后者的工作是将计算机技术应用于其它领域,主要为企业编写各种基于商业数据库及网络通讯或一些自动化控制应用的软件。
应用型程序员一般是“广度型”发展的,他们并不注重系统底层知识的学习,而重在“应用”,利用开发工具来实现“行业规则”而不需要阅读编写底层、复杂的代码。
2、 技术型。
这一类型的程序员是纯软件技术型的,他们的开发焦点集中在计算机软件本身上,属“深度”发展型。
技术型程序员大多追求完美、吹毛求疵,对他们来说,花上数小时的时间优化一段代码,使程序执行效率提高10%是一件很惬意的事。技术型程序员一般重名重义不重利,喜欢自由,不愿受现有框架的约束,每每有惊人之举,他们大多特立独行或在软件开发中负责核心代码编写,而这个世界也因这些程序员的存在而变得美丽。
3、 创造型。
创造型程序员结合了应用与技术型的特点。
他们既有精明的商业头脑,又有强劲的技术实力,既是管理人才又是技术人才,是炙手可热的人物。关于他们的描述媒体上已有很多,不再赘述。
欢迎访问最专业的网吧论坛,无盘论坛,网吧经营,网咖管理,网吧专业论坛
https://bbs.txwb.com
关注天下网吧微信/下载天下网吧APP/天下网吧小程序,一起来超精彩
|
本文来源:来自网络 作者:佚名