为何找个优秀的Java程序员如此之难?

标签: 程序人生 java java程序员 招聘 | 发表时间:2014-07-28 11:23 | 作者:techug
出处:http://www.vaikan.com

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会说问题不在于语言,而是公司的雇佣理念。“如果你打造一个将会有很长的生命周期的产品,你需要知道软件将会依赖开发它的程序员。如果你的应用是用比较冷门或者你有自己的封闭生态环境(就像苹果),那就…..想想都伤心。”

相关 [java 程序员] 推荐:

Java程序员常用工具集

- - BlogJava-庄周梦蝶
    我发现很多人没办法高效地解决问题的关键原因是不熟悉工具,不熟悉工具也还罢了,甚至还不知道怎么去找工具,这个问题就大条了. 我想列下我能想到的一个Java程序员会用到的常用工具. 1.IDE: Eclipse或者 IDEA,熟悉尽可能多的快捷键,《 Eclipse常见快捷键列表》. (1) Findbugs,在release之前进行一次静态代码检查是必须的.

Java系统程序员修炼之道

- - 博客 - 伯乐在线
从2002开始接触Java学会HelloWorld这么经典的程序到如今不知不觉已经十年啦,十年中亲耳听到过不少大牛的演讲,见到过项目中的神人在键盘上运指如飞的编程速度,当时就被震撼了. 当编程越来越成体力活,我们还能有自己的思想,还能修炼为Java系统级别的 程序员嘛. 学习与修炼以下知识与技能,帮你早日达成愿望.

Java程序员的现代RPC指南

- - CSDN博客推荐文章
Java程序员的现代RPC指南. 最早接触RPC还是初学Java时,直接用Socket API传东西好麻烦. 于是发现了JDK直接支持的RMI,然后就用得不亦乐乎,各种大作业里凡是涉及到分布式通信的都用RMI,真是方便. 后来用上了Spring,发现Spring提供了好多Exporter,可以无侵入地将一个POJO暴露为RPC服务.

Java面试题:多线程,作为Java程序员你不得不懂

- sun - IT程序员面试网
线程:是指进程中的一个执行流程. 线程与进程的区别:每个进程都需要操作系统为其分配独立的内存地址空间,而同一进程中的所有线程在同一块地址空间中工作,这些线程可以共享同一块内存和系统资源. 创建线程有两种方式,如下: 1、 扩展java.lang.Thread类 2、 实现Runnable接口 Thread类代表线程类,它的两个最主要的方法是: run()——包含线程运行时所执行的代码 Start()——用于启动线程.

Java程序员不该有的6种陋习

- - BlogJava-首页技术区
只有在学会处理异常之后,我们才能说自己是一个合格的java程序员. 只有在摆脱了以下六种异常处理的陋习之后,才能威慑一下刚毕业的小菜鸟.   现在就来测试一下大家对异常的掌握程度. 不用担心,事实上,这些不合理的设计很容易看出来. 那么,以下六种不合理的代码,大家能看出每一种的问题出在哪儿吗.   + ",姓名:" + rs.getString("name"));.

25个让Java程序员更高效的Eclipse插件

- - 博客 - 伯乐在线
Eclipse提供了一个可扩展插件的开发系统. 这就使得Eclipse在运行系统之上可以实现各种功能. 这些插件也不同于其他的应用(插件的功能是最难用代码实现的). 拥有合适的Eclipse插件是非常重要的,因为它们能让Java开发者们无缝的开发基于J2EE和服务的应用程序. Eclipse的插件也能帮助他们开发不同应用架构上的程序.

java程序员必知的8大排序

- - CSDN博客推荐文章
   (1)基本思想:在要排序的一组数中,假设前面(n-1)[n>=2] 个数已经是排. 好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数. 如此反复循环,直到全部排好顺序. //将大于temp的值整体后移一个单位. 2,           希尔排序(最小增量排序). (1)基本思想:算法先将要排序的一组数按某个增量d(n/2,n为要排序数的个数)分成若干组,每组中记录的下标相差d.对每组中全部元素进行直接插入排序,然后再用一个较小的增量(d/2)对它进行分组,在每组中再进行直接插入排序.

【外刊IT评论网】Java程序员的堕落

- - 外刊IT评论网
我曾在多个场合撰文说过,现在培训出来的企业Java开发兵团只知道使用某种框架,但完全不知道这些框架的底层原理. 今天早上,在依次对三个职位的应聘者面试中,我又再次见到了这种情形. 我们的顾问公司收到了一个客户的招聘需求,要一个经验丰富并通晓SQL的Java开发人员. 我们公司在这个客户那里享有非常好的声誉,于是我们从招聘代理公司要来了一批简历,开始搜寻合适的目标.

推荐给初级Java程序员的七个免费教程

- - ImportNew
本书的作者是Bruce Eckel,它一直都是Java最畅销的免费电子书. 这本书可以帮助你系统的学习Java,里面包含有很多好的代码示例. 第三版仍旧是免费的,直到第四版才开始收费,不过仍旧值得买一本收藏. 免费下载: Thinking in Java. 这个教程来自于Oracle/Sun. 我们可以根据我们觉得合适的节奏来进行学习.

Java 程序员容易犯的10个SQL错误

- - ITeye博客
Java程序员编程时需要混合面向对象思维和一般命令式编程的方法,能否完美的将两者结合起来完全得依靠编程人员的水准:. 技能(任何人都能容易学会命令式编程). 模式(有些人用“模式-模式”,举个例子,模式可以应用到任何地方,而且都可以归为某一类模式). 心境(首先,要写个好的面向对象程序是比命令式程序难的多,你得花费一些功夫).