怎样快速确定程序员编程的水平(2009/12/10)

 

有关程序员水平的是一个很敏感的话题,我们常常碰到会听人说,某某编程水平很高,某某编程水平很低。似乎水平是靠听出来的。有的时候,朋友单位招人也会请我看看应聘者的水平如何。说真的,看一个人的编程水平不是一件容易的。程序员有两类,一类是能吹的,一类是不言的。吹的人往往海天湖地,容易给人看出破绽;而不声不响的人,你却很难判断其水平的高低。但是,程序员水平还是有一定规律的,水平高的人,必定是开发过许多大的项目,并且编程时间一定要在两年以上的。这个规律反过来是不正确的,很多时候你会发现那些参与过大项目的人、编程时间超过两年的人水平平平。

     程序员的水平通过听其说,观其作,这两个方面就能大致来确定了。听比较简单,只要听他讲从事编程时间有多长,参加过多少大的项目,就能基本判定程序员的水平了。编程时间在两年以下的程序员只能是入门级的,没有做过大项目,也一定是水平一般,那些以兴趣编程者,水平更是一般。另外,听的过程中也可以判断出这个程序员头脑是否清晰,说话是否有条理,逻辑是否严密。这些也是程序员水平的重要方面。

看要相对比较复杂些。我要看一个人的水平如何,往往会请他把自己最得意的程序,拿出来。因为自己满意的程序或自己认为很重要的程序,往往反映他的编程水平。

我看别人程序比较快,下拉程序速度大约在12行。如果程序在300行的话也就是3分钟左右。我看程序主要看一下几个方面:

1、 程序名命名

如果是主程序,则要看命名是否能反应项目主要特质?程序名是否中文?程序名是否是英文?程序名是否英文缩写?程序名是否为拼音?程序名是否无意义?程序名是否包含程序员姓名?程序名是否包含版本信息?如果是非主程序,则要看程序名是否和项目、模块有关联?

2、 函数命名

函数名是否是英文命名?函数名是否中文命名?函数名是否拼音命名?函数名是否英文拼音混合命名?如果是英文命名,英文是否准确?缩写是否正确?读者是否能够看懂。函数名是否能表示函数所要提供的功能?所有函数命名的风格是否一致?

3、 变量命名

变量名是否是英文命名?变量名是否中文命名?变量名是否拼音命名?变量名是否英文拼音混合命名?如果是英文命名,英文是否准确?缩写是否正确?读者是否能够看懂。变量名是否能表示变量要代表的内容?通过查看变量名能否确定变量的数据类型。所有变量命名风格是否一致?

4、 函数中的参数

函数中是否有参数?参数的次序是否具有逻辑性?参数命名如同变量命名。所有函数中的参数命名是否具有相同的风格?

5、 程序中全局变量

程序中有无全局变量?全局变量个数有多少?全局变量的是否以参数方式代入调用?

6、 函数中常量、变量值

在包含调用功能的函数中是否有常量和变量值?被调用函数中是否有常量和变量值。一个函数中是否有超过10行的变量赋值语句?

7、 函数的行数

一个函数的程序行数大于20-30行吗?

8、 函数的格式

函数有统一编写风格吗?函数头的格式一致吗?函数体风格一致吗?函数尾风格一致吗?语句开头对齐吗?语句的缩进空格一致吗?语句左右括号上下对齐吗?

9、 注释

程序中是否有注释?程序开头是否有注释?注释是否用英文?注释是否有用中文?是否每个函数开头都有注释?是否程序重要之处都有注释?

10、              可读性

读者必须需要程序员亲自解释才能看懂程序主要功能吗?读者有在看不懂情况下请程序员进行解释吗?读者是否不需要程序员亲自解释就能看懂程序的主要功能?

 

通过这个方面考察,在心里边给这个程序员打打分,基本上可以断定这个程序员的水平是高、是中、是低。至于这个程序做什么,有什么特别的技巧在这里就不太重要了。当然综合的评判还要结合听的结果。

下篇:《谈谈具有中国特色的“全能型”程序员》

原文地址:https://www.cnblogs.com/n216/p/1622065.html