面試中如何剔除“魚(yú)目混珠”程序員?
對(duì)于一個(gè)公司來(lái)說(shuō),執(zhí)行招聘面試事宜是一個(gè)耗時(shí)耗錢(qián)的項(xiàng)目,從顧問(wèn)公司和人才中介挑選出合適的簡(jiǎn)歷之后,還要花更多的時(shí)間找出合適的候選人。有的時(shí)候這些機(jī)構(gòu)會(huì)向你保證這些人都是 Java 天才、SQL 專家、全棧開(kāi)發(fā)者等等,但實(shí)際上如果你盲目的信任他們并邀請(qǐng)應(yīng)聘人員參加面對(duì)面的面試的時(shí)候,你會(huì)很失望的。所以我覺(jué)得最快的甄別方法就是先電話面試,之后再根據(jù)他們的表現(xiàn)采取面對(duì)面的交流。
為了獲得更多的反饋信息,提高自己的方法,在這里先和大家分享一些自己工作以來(lái)使用的篩選出來(lái)的編程問(wèn)題,從這些常見(jiàn)的編程技巧里面選出兩個(gè)左右的問(wèn)題,例如Java、SQL、XML、編程、編碼、OOPS、多線程和UNIX。和期待你說(shuō)出對(duì)于同一技能的考察有什么好的方法。
下面是我列出的如何過(guò)濾和篩選出不同編程技能的問(wèn)題,這主要有兩個(gè)目的,一是為了給面試者熱身,另外就是幫助主考官剔除不會(huì)編程的“程序員”,那些SQL 專家盡然不會(huì)編寫(xiě) JOIN 查詢。
在 SQL 方面,我的第一個(gè)篩選問(wèn)題就是請(qǐng)他們描述一個(gè) Left Outer Join。不需要說(shuō)得多么精準(zhǔn),我只是想看看他們有沒(méi)有做過(guò)除了 two table inner join 之外更多的東西。根據(jù)他們的回答我會(huì)問(wèn)他們古典SQL查詢,以核實(shí)他們是否知道這樣的原理以及如何應(yīng)用這些知識(shí)。如果他們使用 Inner join 而不是 left outer join 的話,估計(jì)就會(huì)錯(cuò)過(guò)成為正式員工的機(jī)會(huì)了。
在 Web 開(kāi)發(fā)方面,首先提的問(wèn)題是解釋一些一個(gè) GET 和一個(gè) POST之間的區(qū)別。這里我至多就是想知道他在 URL 里面通?吹降 GET 是什么,以及在 HTML Forms 里 POST 是什么形式的。根據(jù)他們的回答,還可以繼續(xù)問(wèn)一些關(guān)于 GET vs POST 使用限制、安全性等問(wèn)題。這些問(wèn)題完全足夠讓你明白眼前這個(gè)人對(duì)互聯(lián)網(wǎng)是否有真正的了解。
在 UNIX 方面,其中一個(gè)比較流行的篩選方法是相當(dāng)簡(jiǎn)單的:你是如何找到一個(gè)特定的程序并解決問(wèn)題的?我期望他們能告訴我關(guān)于 ps、grep 和 kill 之類的命令。同時(shí)也想測(cè)試一下他們對(duì)ps options 的理解程度。第二個(gè)篩選問(wèn)題就是在 UNIX 系統(tǒng)里找出大量的文件。千萬(wàn)別誤會(huì),如果應(yīng)聘者不能回答這些問(wèn)題的話,那么他很難在這個(gè)有大量程序和服務(wù)器連接的項(xiàng)目中完成任務(wù)。
在招聘 OOPS(Object Oriented Programming)方面,請(qǐng)他們講述一下 Class 和 Object 之間的區(qū)別。這樣的安排主要是想他能夠在描述定義的基礎(chǔ)上講一講構(gòu)建項(xiàng)目的藍(lán)圖,關(guān)鍵是想測(cè)試回答問(wèn)題的人如何理解概念,并且不會(huì)被概念所困擾。接下來(lái)就是請(qǐng)他舉個(gè)例子,根據(jù)他的例子來(lái)問(wèn)他,在什么地方創(chuàng)建這個(gè)對(duì)象,由誰(shuí)來(lái)創(chuàng)建等等。
招聘程序設(shè)計(jì)人員,尤其是提到代碼,最流行的將魚(yú)目混珠的程序員剔除的問(wèn)題是 “Fizz-Buzz” 測(cè)試。如果一個(gè)程序員無(wú)法在10-15分鐘之間寫(xiě)出一個(gè) Fizz-buzz,那他可能需要更多的鍛煉,或許根本沒(méi)有準(zhǔn)備好。另外一個(gè)方法就是讓他們寫(xiě) Fibonacci series(斐波納契數(shù)列),并請(qǐng)他們優(yōu)化一下。大家都知道 Fibonacci 是非常常見(jiàn)的,但是你可能會(huì)很驚訝的看到這些程序員很難在之上寫(xiě)出這些數(shù)列,即使是在 IDE 上也寫(xiě)不出來(lái)。