`
jiagou
  • 浏览: 2523309 次
文章分类
社区版块
存档分类
最新评论

[技术讨论]程序员的基本技能和素质

 
阅读更多

最近在一家公司帮忙,因为那个公司的一个主要股东和我很谈得来,他们公司是准备提供医疗相关服务的,这个股东也是阜外医院的一个先心专家。

这里暂时不谈其他问题,仅仅从招聘的过程中看到的一些信息和让我深为担忧的事情。

招聘技术人员的过程并不长,比起2002年在上海的托普招聘数量少多了,但是,我却失望得更多,担忧也更为加剧。

我给过来的技术人员出的一个简单题目是:

实现100!=?

要求按照自己平时的代码习惯进行完成,脱离计算机,徒手编写全部代码。

参加面试的人员一般都是刚毕业一年到三年间的Java开发人员。部分人员还曾经专门参加了一些培训机构的培训,其中有人说他们的教师就是做过多年开发的程序员,当时带他们的时候就是大量的实践(我不知道真假,姑且信以为真)。

最后发现的问题如下:

1、前后十多个技术人员只有一个人写了注释(这个人曾在对日外包公司工作过一年多),而且仍然缺失很多,让我深为担忧,中国目前这批新入行的程序员的代码质量,居然还是如此混乱,十多年了,仍然如此,教育也仍然如此。

2、在实现的代码中,几乎所有的人定义的输出结果的变量都是int类型,只有一个人使用了long类型。也就是说,只有一个人想到这个会是一个大数计算问题,虽然他也错了,但是,至少他想到了一些。

100!=9.3326215443944152681699238856267e+157(windows计算器得到的结果)

大家可以查一下,其实int和long类型都不能支持到这个数字的计算结果。

事后分析的时候我询问了一下应试者是否知道int类型的范围,几乎没有人能回答上来,我很失望。

我记得在我毕业的时候,类似这样的类型范围都是随口应答的,根本不需要思考,常规应该记住的诸如int、long、float、double等等,这是最最基本的东西。

3、很多人甚至出现严重错误,输出结果变量的初始赋值为0,中间的计算全部都是乘,也就是结果仍然是0。也就是说,写完的代码根本没有经过大脑的反思,就直接提交给主考官来看,这样的代码扔出去交给测试人员,难怪要把测试人员气死。

诸如此类的错误还有很多,就不再一一列举了。

我在2002年做的一个项目的授权系统,从一对一授权到一对多授权,最后一个版本是多对多授权(连续干了三天三夜全部实现,中间没有睡觉休息),一对一授权完成后的测试也就只有三四个bug,而多对多授权做完的测试就是一次性通过,没有任何bug被发现。

我深深地担忧目前程序员的基本技能、素质和责任心,因为他们的学习和基础都显得如此单薄,没有着力点。也终于理解了为什么这些年刚毕业从事程序员职业工作的人员薪资下降如此厉害。

好好反思一下吧,不仅仅是这些学生和刚工作的人员,学校、培训机构也需要同样甚至更多的反思。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics