大海捞针
为何找个优秀的java程序员如此之难?
作者 Coman Hamilton
6, 23, 2014
java开发者供大于求,找一个优秀的开发者犹如大海捞针。这该赖谁?赖程序员对java没兴趣吗?还是赖瞎了眼的招聘?抑或是语言本身?
不管你同意与否,这里有些关于问题的答案。
问题非语言,而是程序员自身
大多程序员想与众不同,都想尝试。但除此之外,更多的程序员想要一个薪水丰厚的工作。最简单的方式就是学习java——不管自己喜不喜欢写,这就是为什么众多无工作激情的程序员都沦为了java程序“猿”。
“我不是只所有的java程序员都是无能”博客写手Sandy Walsh如是说,他认为太多的程序员得到奖励只是因为盲目的学习使用软件包,而不是真正理解它们,“太多太多优秀的java程序员,不幸的是,无能的更多——将优秀的人淹没了。”
同时,Neil Sainsbury这位Android程序员说,问题的根源是java写手们想成为架构师。“我经常发现自己读代码的时候更多像在规划解决问题的方法,而不是解决问题。”
非但没有得到快速浏览代码及了解作者意图的能力,而且令上司经常一头雾水,不明白到底程序员们想给他们传递什么。“你得深究,学习更多新的令你感到折磨的词(例如Abstract Adapter Factory),让自己成为系统的一部分。”
问题的根源不是人,而是语言的设计
Java博客写手MichaelO.Church认为恰恰相反——Java语言的问题就在于根据一小片代码很难判断程序员的优秀与否。半数公司要某个程序员的时候都会看其一些代码小例。谨慎的开发团队在招募的时候往往会让被召人一天写多种代码以资评估。
对于一些工程,错雇会颠覆整个工程甚至整个公司就此陨落。 考虑到这个原因,技术面试在领先的公司会很频繁。
众所周知java就像老太太的裹脚布——又臭又长,甚至写了500行都不能表达程序员的意图,再加上时间紧,招聘者或者程序员更为难。
会java的人太多
提到入门语言,很多程序员都有java背景。就像找说英语的人很简单,但是找可以写书信语的,就不太简单了。
一个掌握Java基础的java程序员会显得很有经验,招聘者给他们的一些简单的测试,在StackOverFlow就可以找到答案。同时,优秀的程序员经常太忙(或太骄傲)而不能置身于复杂或者很长的编码任务。
同时,年轻且缺乏锻炼的招聘者常常在猎“忍者程序员(ninja programmer)”。Cordelia Dillon认为理想的程序员不该是招聘者草率招募的“风风火火的(rock star)coder”,而更应该像一个雕刻家或考古学家,慢工出细活。
如果招聘者真的很想谈论忍者和摇滚明星,或者甚至雕刻家和考古学家,他们应该先这些角色和他们招聘的软件开发人的角色的共同点。
你看起来不合适
公司很怕那些雇员的技术会很快过时,因为大多公司不想用另一种不好招到人的语言从头开始工程。为了保险使用公司自己制定的解决方法起见,公司宁愿招盲目敲java的程序员。他们来之前java程序员的身份,走之后仍是这个身份。
这就是为什么Sandy Wals会说问题不在于语言,而是公司的雇佣理念。“如果你打造一个将会有很长的生命周期的产品,你需要知道软件将会依赖开发它的程序员。如果你的应用是用比较冷门或者你有自己的封闭生态环境(就像苹果),那就…想想都伤心。”