電話的溝通雖然不可能對一個程序員作全面的瞭解,但基本上能有一個比較概括的判斷,這也許就是所謂的第一印象吧!
通過電話的初步溝通我對來面試的程序員已經有了初步的印象,但說句實話,還是印象不怎麼深。因爲,畢竟僅僅是電話篩選而已,並沒有更深入的瞭解與接觸。
在最開始組建這個部門的時候,我基本上不用筆試,而是直接與應聘者面試。因爲,希望招聘到骨幹人員,希望能夠直接面對面的溝通更加方便。但是,當招聘初級程序員的時候我開始也是這樣作的,但發現這樣作確實非常沒有效率。原因就是,用一句不是很恰當的形容詞“濫竽充數”的應聘者還是比較多的,即使是經過了電話溝通的應聘者也不例外,仍然是很多東西掌握的都不紮實。
後來,我還是選擇了採用其他公司慣用的一個方法——“筆試”。
我開始的時候挺懶的,懶得自己編筆試題,就直接從網上搜一個,也沒怎麼看直接給程序員去筆試了,我大概開始搜到的那個題是這樣的:
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語句題,一道讀程序理解題,我覺得不難啊!怎麼還是有很多同學不會作呢?
當然,還是有人能答得出來或者說基本上能答得出來,那麼基本上能答出來的都進入了面試環節。
後記(關於那個變態題的後面的故事):
上面的那個變態筆試題被我扔掉之後,若干日子以後,我不親自去面試和筆試了,那個變態題被我的一個項目經理得到了,他仍然用這個筆試題去筆試。後來一個偶然的機會我發現原來他還在用這個變態題!
我非常驚訝的問他:“這個這麼變態的題你竟然還在用?他們都會嗎?”
答曰:“沒問題啊,基本上很多人都答得很正確!”
我暈!怎麼回事?難道他遇到的都是高手?
後來才明白,這個能在網上隨時可以搜到的變態題已經早就被這些應聘者爛熟於心了,就是爲了應付筆試纔去突擊背下來的!
於是,由於這個原因,這個變態題被第二次棄用了......
本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/useway/archive/2009/07/25/4378766.aspx