最近在一家公司帮忙,因为那个公司的一个主要股东和我很谈得来,他们公司是准备提供医疗相关服务的,这个股东也是阜外医院的一个先心专家。
这里暂时不谈其他问题,仅仅从招聘的过程中看到的一些信息和让我深为担忧的事情。
招聘技术人员的过程并不长,比起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被发现。
我深深地担忧目前程序员的基本技能、素质和责任心,因为他们的学习和基础都显得如此单薄,没有着力点。也终于理解了为什么这些年刚毕业从事程序员职业工作的人员薪资下降如此厉害。
好好反思一下吧,不仅仅是这些学生和刚工作的人员,学校、培训机构也需要同样甚至更多的反思。
======================转载分割线===========================
原文地址
确实需要反思。
刚看到这个题时,头脑中根本就没有考虑数据表示的范围,变量也是用int类型的。
路很长,需要学的还很多。
借用一句广告语,keep moving!
分享到:
相关推荐
本文从一名程序员的角度出发,分享了对于“程序员”这一职业的理解和个人感悟,并提出了几个重要的基本素质:认真负责、坚持上进以及良好的表达沟通能力。 #### 认真负责 作为一名程序员,认真负责是最基本的要求...
高级程序员基本素质 提高程序员的素质(转载)
2016-2017年度WEB程序员必备技能.pdf2016-2017年度WEB程序员必备技能.pdf2016-2017年度WEB程序员必备技能.pdf
### 程序员的基本素质 #### 团队精神与协作能力 团队精神与协作能力是程序员必备的核心素质之一。在软件开发过程中,很少有独立完成的大型项目,因此能够与团队成员有效沟通、协作至关重要。优秀的程序员不仅要有...
在IT行业中,成为一名合格的程序员不仅需要扎实的技术基础,还需要一系列软技能和个人素质。以下是成为一名真正合格程序员所必备的七种关键素质。 #### 1. 团队精神和协作能力 团队合作是软件开发中不可或缺的一...
综上所述,《2017年Web程序员技能树成长指南》涵盖了从基础到高级的Web开发知识,包括JavaScript、前端框架、CSS、Git、性能优化和服务器端技术等多个方面,旨在帮助开发者构建扎实的技术基础,适应快速变化的Web...
【程序员应具备的素质】 在IT行业中,程序员扮演着至关重要的角色,从底层硬件到上层应用,他们的工作贯穿整个技术栈。...通过不断学习和实践,程序员可以不断提升这些素质,为IT行业的发展做出更大贡献。
16. 学习一门新技术:学习一门新技术可以帮助程序员更好地拓展自己的技能和知识,提高自己的职业竞争力。 17. 更好地了解你的 IDE:更好地了解自己的 IDE 可以帮助程序员更好地提高自己的开发效率和生产效率。 18....
程序员应该具备的技能程序员应该具备的技能程序员应该具备的技能
本篇文章主要讲述了程序员需要具备的基本技能,以便更好地在软件开发领域中崭露头角。 首先,熟练掌握开发工具是程序员的必备技能。其中,C/C++和JAVA是重点推荐的开发工具。C/C++以其高效率和高度灵活性,成为了...
学习Java服务器页的程序设计基础 详细了解语法,脚本元素,隐含对象和扩张操作 创建实际的应用程序 将数据库集成到JSP结构中
诙谐幽默的表述出IT程序员的点点滴滴,已经程序猿应该具备的品质、与好的习惯,制作优美的PPT使你赏心悦目,参观一下,只需一个积分,评论即可返回积分,相当于免费下载
2. **具体实践**:在日常工作中,程序员应当积极参与团队讨论,主动分享自己的见解和技术方案,同时也要尊重并采纳同事的意见。此外,通过代码审查等方式促进相互学习和改进。 **二、良好的文档编写习惯** 1. **...
未来五年程序员应该干的事,值得大家一看。
总之,成为一名合格的程序员,既需要深厚的专业技能,也需要良好的个人素质和职业态度。在不断变化的IT行业中,保持学习的热情,持续提升自己,才能在激烈的竞争中脱颖而出,成为真正的行业专家。
在IT行业中,程序员是至关重要的角色,他们负责创建和维护软件、应用程序以及各种技术解决方案。那么,什么样的人适合成为程序员呢?程序员应具备哪些素质?同时,又有哪些禁忌需要避免呢? 首先,程序员需要耐得住...
疯狂Java 突破程序员基本功16课1 完全清晰版 5分超低分 挥泪相送啦!这是第二部分 记得下第一部分哇!
昨天在图书馆看书,看到《电脑报》上的一篇文章,题目为《30岁不是程序员的终点》,(详情可参看...5、了解基本的软件工程知识和软件设计技术。 必须具备的基础知识: 1、LAMP技术(加强):Linux+Apache+Mysql+PHP,是P
技术技能是程序员面试中一个非常重要的部分。需要准备自己的技术技能,包括编程语言、数据库、框架、开发工具等。 团队合作 团队合作是程序员面试中一个非常重要的部分。需要准备自己的团队合作经验,包括如何与...