故事(3):两次弃用的变态笔试题
电话的沟通虽然不可能对一个程序员作全面的了解,但基本上能有一个比较概括的判断,这也许就是所谓的第一印象吧!
通过电话的初步沟通我对来面试的程序员已经有了初步的印象,但说句实话,还是印象不怎么深。因为,毕竟仅仅是电话筛选而已,并没有更深入的了解与接触。
在最开始组建这个部门的时候,我基本上不用笔试,而是直接与应聘者面试。因为,希望招聘到骨干人员,希望能够直接面对面的沟通更加方便。但是,当招聘初级程序员的时候我开始也是这样作的,但发现这样作确实非常没有效率。原因就是,用一句不是很恰当的形容词“滥竽充数”的应聘者还是比较多的,即使是经过了电话沟通的应聘者也不例外,仍然是很多东西掌握的都不扎实。
后来,我还是选择了采用其他公司惯用的一个方法——“笔试”。
我开始的时候挺懒的,懒得自己编笔试题,就直接从网上搜一个,也没怎么看直接给程序员去笔试了,我大概开始搜到的那个题是这样的:
1、 面向对象的特征有哪些方面
2、 String是最基本的数据类型吗?
3、 运行时异常与一般异常有何异同?
4、 说出ArrayList,Vector, LinkedList的存储性能和特性
......
9、 Collection 和 Collections的区别。
10、 HashMap和Hashtable的区别。
11、 final, finally, finalize的区别。
12、 sleep() 和 wait() 有什么区别?
13、 同步和异步有何异同,在什么情况下分别使用他们?举例说明。
14、 abstract class和interface有什么区别?
......
27、 垃圾回收的优点和原理。并考虑2种回收机制
28、 请说出你所知道的线程同步的方法。
29、 你所知道的集合类都有哪些?主要方法?
30、 多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么?
31、 JSP的内置对象及方法
......
36、 XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式?
在刚刚开始笔试的时候,我跟前台说帮我判一下卷子,凡是内容非常少的或者很多都不对的,就直接让他们走就行了。
但当我等了半天,给前台打电话问问卷子答得如何时,得到的答案是,他们全都走了,我问何故?
前台MM一脸的委屈,你过来看看就知道了!
呵呵,使我万万没想到的是,基本上很多的程序员都是文不对题甚至交白卷。
我比较疑惑,明明在电话沟通的时候说是有项目开发经验啊,怎么连笔试都过不了?显然我这样的某些做法是错误的!
说句公道话,我发现这个笔试题确实有些变态,也不是谁总结的,有些不常用的题目的具体答案我自己都觉得有些难,更何况这些初级程序员了,显然这个筛子太密了,把应聘者都筛掉了,不行!立刻总结:
第一点,辛辛苦苦打电话约来的面试者,连面都没见到就全让前台给拒了,面试者需要我自己来亲自见面,不管是否过了笔试我都见一下。
第二点,如果每一个应聘者都答不出来,说明这个笔试题有点难了,需要调整笔试题。
于是,我调整了我的笔试题,更加贴近了这个职位,我的笔试题如下:
1、请写一段html,完成下列表格的样子。注意:是单线边框。
2、字符串
“A@B@C@D”,以@字符拆分 返回数组。
3、字符串String s=”SDsBEaA”,要求最后生成s=”AaBDESs”.
4、有3张表,Student表、SC表和Course表
Student表:学号(Sno)、姓名(Sname)、性别(Ssex)、年龄(Sage)和系名(Sdept)
Course表:课程号(Cno)、课程名(Cname)和学分(Ccredit);
SC表:学号(Sno)、课程号(Cno)和成绩(Grade)
请使用SQL语句查询学生姓名及其课程总学分
(注:如果课程不及格,那么此课程学分为0)
5、请说出这个程序的目的是什么?返回结果是什么?
public Station(URL urla){
try
{
String a="",b="";
InputStream ins = urla.openStream();
BufferedReader bReader = new BufferedReader(new InputStreamReader(ins));
String info = bReader.readLine();
int i=1;
info=bReader.readLine();
while(info!=null){
a=info.substring(0,info.indexOf("@"));
b=info.substring(info.indexOf("@")+1,info.length());
if (i==1){
this.X1=Integer.parseInt(a);
this.Y1=Integer.parseInt(b);
}
if (i==2){
this.X2=Integer.parseInt(a);
this.Y2=Integer.parseInt(b);
}
if (i==3){
this.X3=Integer.parseInt(a);
this.Y3=Integer.parseInt(b);
}
if (i==4){
this.X4=Integer.parseInt(a);
this.Y4=Integer.parseInt(b);
}
i++;
info=bReader.readLine();
}
}
catch(MalformedURLException e){
System.out.println(e);
}
catch(IOException e){
System.out.println(e);
}
}
这次调整之后,终于不是满篇白卷了,但仍然有很多同学还是好多都不会。
这次调整的题目是非常贴近实际编程的,一道Html题,两道Java编程题,一道SQL语句题,一道读程序理解题,我觉得不难啊!怎么还是有很多同学不会作呢?
当然,还是有人能答得出来或者说基本上能答得出来,那么基本上能答出来的都进入了面试环节。
后记(关于那个变态题的后面的故事):
上面的那个变态笔试题被我扔掉之后,若干日子以后,我不亲自去面试和笔试了,那个变态题被我的一个项目经理得到了,他仍然用这个笔试题去笔试。后来一个偶然的机会我发现原来他还在用这个变态题!
我非常惊讶的问他:“这个这么变态的题你竟然还在用?他们都会吗?”
答曰:“没问题啊,基本上很多人都答得很正确!”
我晕!怎么回事?难道他遇到的都是高手?
后来才明白,这个能在网上随时可以搜到的变态题已经早就被这些应聘者烂熟于心了,就是为了应付笔试才去突击背下来的!
于是,由于这个原因,这个变态题被第二次弃用了......
请看《我是主考官(4):与答白卷的同学聊聊》近期贴出,敬请关注............
另:为了大家阅读方便,可以直接点击本博客的“我是主考官”栏目,这个系列的文章都在这个栏目下,谢谢!
《Java程序员,上班那点事儿》,前言,目录
卓越网销售链接
China-pub销售链接
当当网销售链接
《Java程序员,上班那点事》纪念帖