工作也要好几年了,其实作为面试者的次数并不多,作为面试官一共只有近百次。最近公司一直在招人,也面试了不少人,想谈谈最近面试的一些感悟。
面试背景:本人面试主要是2-3年经验的初中级java开发人员,主要是非核心业务以及作为人员储备,对于人员要求不算高。
技术水平
可能是要求确认不高和筛选简历的问题,大部分的人的水平确认一般,2、3年经验大部分人只是会用框架开发。
1).实事求是,简历上是要实事求是:会就是会,不会就是不会。明明就是知道一些皮毛,甚至是都没在项目中真正使用过,也说自己熟悉,这样反而会造成减分。
可以分为这几个层次:
- 了解:有自己学习过相关资料,写过demo
- 熟悉:在具体项目实践使用过,有一定的使用经验
- 掌握:在具体项目实践使用过,有较多的使用经验,对其原理有一定的了解,能解决大部分问题
- 精通:有大量的实践经验,深入了解过其原理,能根据实际场景做优化,能解决
绝大部分的问题。
这是我个人认为比较好的区分标准,给大家做个参考。
2).投其所好,简历中尽量可以写上面试官感兴趣的技术或者项目经验。可以通过公司的资料、岗位的要求进行优化。
3).技术实力,简单的基础知识如java的继承,ArrayList和LinkedList区别等,大家多多少少都可以答得上来,不过来面试的多多少少会去刷题。深入一些基本排除绝大部分人,大部分人就答非所问。可见大部分人确认只是在使用java,并没有研究过java,最多是做到知其然不知其所以然。
可以学习研究Java的途径有很多,最好的莫过于书籍、java源码、实践。当然过了初学阶段,应该多看看原理性的书籍,而不是再看《从入门到精通》。
书籍有《thinking in java》、《深入理解java虚拟机》、《Java多线程编程核心技术》等,还有很多非java的书籍也是值得我们多去研究的。现在书真不算贵,关键是是否有恒心去学习,如果你能把1k的书(按均价50元算,就是20本书)认认真真啃下来,你一天就能赚回来书费。
java源码可以看:jdk源码(集合、基础类型、IO、多线程)、开源项目源码(spring、mybatis、tomcat)。大家可以从jdk的源码开始,相对来说是更容易理解的,比如HashMap、ArrayList的源码学习起来并不算难。开源项目的源码,很多并不好理解
实践就是多敲代码,只是看一遍,大部分人是记不住的更别说理解了,所以多谢代码很重,哪怕是照着demo敲一遍,都会有不同的效果。当然我更建议在理解的基础上自己写,甚至能考虑到不同的场景下,怎么如何使用这些技术,而不只是能写demo。
在面试中的人当中,有以上经历的少之又少,更别说深入研究。希望更多的从业者可以学习原理而不是简单的使用。
不过说来惭愧,在以上种种中,很多本人也是浅尝而止,没能够深入研究,这也是我写博客的原因,希望可以逼迫自己学习得更深刻,也是对于自己学习的记录和传播。
沟通能力
大部分的人表达能力都是尚可,毕竟表达和沟通对于开发并不是很重要的一点。关于在面试中的沟通注意事项:
1).关于自我介绍,面试很多是以这个开头,是给面试者第一次展示自己的机会。在面试时,很多人的自我介绍只是报一下姓名、年龄、工作年数。大家可以多加一些内容:包括自己的项目经历、技术能力、突出点等做一些概要性总结,甚至可以多加一些面试官可能感兴趣的内容(可以通过公司信息、招聘要求等了解)。
2).关于项目经验,首先还是强调一下要真实,其次多聊自己做过的和熟悉的,很多人长篇大论的介绍,结果都不是自己做的,一问三不知,反而减分。
其他
除了技术和项目,也会聊聊其他的,比如:职业规划、兴趣爱好、离职原因、技术学习、作品等。
这些不是关键的,但也要要挑积极向上的说
1)职业规划,大部分人都是成为架构师或者管理,最好是能更细致的计划和向目标的具体方案。
2)兴趣爱好,你说喜欢LOL,如果遇到面试官也喜欢游戏还好,否则就呵呵了。
3)离职原因,你说加班严重,哪怕这家公司很少加班,也可能会减分,如果是加班多的公司,就又呵呵了。
4).技术学习,很多人都没学习的习惯,多是遇到问题再去解决。
5).个人的作品或者博客等,可能是后端确实少有人,自己写应用的,没有遇到过有人自己写过的,博客也是很少有人写,这块做得好也是有加分的。
关于培训班
IT行业相对于其他行业真算是门槛低、收入高,今年来发展快速,需要大量人才。所以吸引非科班人员的加入,很多是通过培训班的途径加入这个行业。现在的培训班简历造假严重,什么都敢往上写,培训完就是2年经验,不少人确实还面得像模像样的,真可能被忽悠通过。其实不少人是学得不错,是可以考虑,但是你并没有简历上的经验和能力,也不值要求的待遇。因为这些人,有时候面得特别烦心,现在对疑似的简历直接刷掉。
这是一个恶性循环,也是我们从业者不愿看到的一面,我也在思考是否能改善这样的局面。
愿世界多一些真诚,少一些欺骗。