自过完年到现在,作为一名中小型(200-500人)的互联网公司的小Java技术面试官。目前已经面试了将近200个求职者(基本为3年内经验),作为一名技术深度不怎么样的程序员.我还是被雷了个外焦里嫩,面试者我就不多说了,林子大了什么鸟都有,大家都懂。简单谈一谈我常问的一些问题以及目的吧。
1.前台后台都做吗? (10分)
这一般是我的第一个问题,超过90%的人会回答:"都做,后台多一点,前台少一点。"这不是我想要的答案,鬼都知道程序员都要多少涉及一下前台,后台更不用说了。
碰到过一个聪明人,他是这么回答的: 前台js写的比较熟练,html的框架模板也能搭建的非常整齐美观,只是特效能力比较差,这个问题我不想过多讨论,加分但不减分。
2.事务,什么是事务,为何用事务(10分)
大部分面试者,就会举各种各样的例子(比如银行存钱,这个最多)来说明这个问题,其实他们都理解。但这不是我想要的答案,我期望的答案只有一句:"保证数据的一致性和完整性" ,可惜只有5%左右的人答出来了
这个问题可以大概了解出面试者的分析能力,以及语言总结能力,还有他们对这个玩意的理解程度,答不出减分,举例子不加分。
3.面向切面(AOP),原理是什么(10分)
这个就是对技能的掌握程度了,大部分又是举例子,什么找中介啊之类的, 其实就是来掩盖他们懂一点实现逻辑,但是不知道源码怎么实现的。但还真是有学霸能把代理的原理讲出来,非常好,答不出减分,举例子不加分,讲出原理双倍分。
4.两个项目之间如何通信(10分)
很基础的问题,答上来就有分,说明你接触或者了解过网络。
5.在上个问题基础之上问,碰到乱码怎么解决,utf-8和gbk可以直接转换么(10分)
大部分应聘者到这里基本就开始胡扯了,有说声明字符串编码接收的,有说改项目编码的,各种各样五花八门。更有甚者,utf-8和gbk可以直接转换,直接说明了他们完全没有遇到过此类问题,也并不了解编码。答不出不减分,胡扯减分,答对双倍分。
6.简述一项技术或设计模式的原理(20分)
这个几乎是送分的,但90%的人答不出.我很不解。答不出减分,答出加分。
问完以上几个问题,我大概可以判断出应聘者的技术程度,基本上过50分,就已经达到复试要求了。虽然不能说明这个求职者对技术掌握的范围与深度,但至少说明他是一个对程序员都兴趣的人。
因为我面试的大部分都是3年以下工作经验的,所以并没有问一些和java没太大联系的问题。偶尔会碰到一些学霸,我会跟他们讨论讨论缓存, 数据库调优,大数据的处理,并发问题等。答出来的都加分, 答不出的我也会引导一下,然后让他们自己分析给出方案,到这里的基本都是确定可以录取的,剩下的就是谈薪资而已。