从去年(2013)大概9月份开始,到上个月结束,我在深圳招聘一个Java程序员,要求会写Java的,英文能沟通的。我的要求很简单:
- 一个只实现了功能的函数,重构一下,让其可支持后期扩展,用多态的方式和注册表法(《代码大全2》里面提到了)重构就可以了
- 对该函数写单元测试,知道怎么写,知道使用Mock工具(Mockito、 Jmock、 EasyMock随便哪种都行),能正确的对测试方法进行组织
就是这么简单的要求,公司的HR MM陆陆续续给我找了几十个候选人,在北京的、在上海的、在印度的、在珠三角的都有;5、6年的,10几年经验的都有;不知名公司来的、国企来的、外资公司来的、互联网企业来的、外包公司来的、外资银行来的、HP来的、IBM来的都有;之前是写代码的、搞数据库的、带项目的都有。最终面试完居然就只有俩个部分合格的。
于是我就很郁闷,面试过程中我各种给提示各种暗示各种手段的怕面试人紧张发挥不好, 这么基础的东西怎么都没有几个人会,怎么就没有几个人会写单元测试?怎么就没有几个人会用Mock工具?怎么就没有几个人会玩玩对象关系?
我就奇啦怪了,大家伙是不是都只会配Struct,写Hibernate映射、用Spring配个对象、知道List有几个实现之类的这种随便一搜连百度上都有答案的东西?
后来我意识到,我不能只抱怨,作为一个写了10多年代码,带过项目、做过业务最终还是写代码, 有车有房有妻有娃的四有不太牛逼的程序员,我有责任帮助刚入行的、入行时间不短的,还没车没房的Java程序员们掌握一些基础的东西。
如果你掌握了这些基础的东西的话,而且英语口语还凑合的话,欢迎来找我帮你内部推荐工作,估计一万多的月薪是不成问题的,至于30、40万的年薪应该也是有机会的。
后面我会写这么些东西:代码中如何写日志、如何写单元测试、一些必须知道的Maven知识、一些Spring的使用技巧、一点Git和版本管理的知识、Java程序员所必须掌握的Linux技能、怎么写面向对象的代码等等。希望这些博文能帮助还没车没房的屌丝程序员们提高代码水平。
计划是一周或者一个月一篇,一直写到我没有时间写为止。 发布地址是:http://blog.csdn.net/justfly 和 http://blogjava.net/justfly/。
最后:欢迎拍砖、欢迎吐槽、不文明用语者删。