自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

我面試程序員的經(jīng)驗(yàn):一個(gè)能一網(wǎng)打盡的技術(shù)問題

移動(dòng)開發(fā)
我始終相信,一個(gè)熱愛編程的人不會(huì)只在工作中編程,在家中他們也會(huì)繼續(xù)創(chuàng)造樂趣,這是一種愛好。多少次,我在工作中因?yàn)榈疤鄣腅clipse而感到失望,只能在我回家后,寫Ruby on Rails代碼尋找快樂,放松身心!

[[119175]]

常見的招聘過程

我之前的主要工作是參與招聘并進(jìn)行技術(shù)面試,招聘的總過程如下:

1. HR所進(jìn)行的面試:判斷候選人是不是一個(gè)連環(huán)殺手或精神病。

2. 技術(shù)專家進(jìn)行的面試:判斷候選人是不是一個(gè)優(yōu)秀的程序員。

3. 大老板進(jìn)行的面試:判斷候選人愿意接受多少報(bào)酬。

我面試過兩種類型的人:實(shí)習(xí)生和準(zhǔn)員工。實(shí)習(xí)生只需要經(jīng)歷以上第二條步驟即可,其他人則需要經(jīng)歷所有的步驟。在那個(gè)公司工作的兩年多時(shí)間里,我進(jìn)行 了超過200次技術(shù)面試,這對(duì)我來說是一種豐富的學(xué)習(xí)經(jīng)歷,我逐步弄清了這一過程的實(shí)質(zhì)。這里有一個(gè)很重要的前提,請(qǐng)你記住,在法國(guó)你不能輕易解雇一個(gè) 人,雇傭了一個(gè)錯(cuò)誤的家伙,你就等著抱憾終身吧。找出最好的候選人極為關(guān)鍵,不能犯任何錯(cuò)誤,這是一個(gè)繁瑣的過程,但我樂在其中。

特別專業(yè)的中彩票式技術(shù)問題

在2008年,我進(jìn)行了我的第一次技術(shù)面試,當(dāng)時(shí),公司已經(jīng)有了一套工作流程供我參照:面試時(shí)間1小時(shí),候選人有30分鐘時(shí)間回答15個(gè)測(cè)試問題, 之后我們會(huì)花15分鐘時(shí)間討論他們的回答,外加15分鐘時(shí)間回答關(guān)于工作方面的問題。我很快就意識(shí)到這樣的問卷是多么的糟糕,我的意思是,你竭盡全力也找 不出比它更坑爹的東西了。我們公司里大概有50%的項(xiàng)目都是使用Java編寫的,所以測(cè)試題就非常專注于Java,其中包含了5個(gè)瑣碎的問題,緊接著是 10個(gè)關(guān)于特定Java框架的極難問題,比如我們經(jīng)常使用的問題有:

類和對(duì)象的區(qū)別。

Struts 2中的execAndwait攔截器的用途是什么?

見鬼的是,甚至是我自己都無法解釋這些問題或再補(bǔ)充點(diǎn)什么,每一次面試我都祈禱候選人不會(huì)用這些問題來反問我!對(duì)一個(gè)面試官來說,這很諷刺,不是 嗎?無論如何我還是會(huì)快速瀏覽一下他們的回答(2-5分鐘),之后將時(shí)間放在討論他們的簡(jiǎn)歷上,這浪費(fèi)了很多時(shí)間,于是我決定改進(jìn)一下。我上網(wǎng)比較了成百 上千個(gè)面試問題,那時(shí)我相信我們必須在測(cè)試中放置正確的問題,才能展示一個(gè)人才的真正優(yōu)秀之處,正所謂“好馬配好鞍”。

寬泛的、怎么回答都對(duì)的技術(shù)問題

經(jīng)過大約一個(gè)月的研究,我已經(jīng)在網(wǎng)上找遍了各種問題,提煉出最好的50個(gè)問題,我認(rèn)為它們都是好問題,因?yàn)橛萌魏握Z言都能回答它們,同時(shí)難度也是平穩(wěn)提升的。我將這50個(gè)問題打散,組成5套10大題,隨機(jī)分發(fā)。

示例:

單例是什么?你什么時(shí)候會(huì)用它/不用它?

這問題好多了吧,我覺得顯而易見的,一個(gè)給力的問題通常會(huì)得到一個(gè)給力的回答作為回報(bào),我實(shí)踐了幾個(gè)星期,但是不知何故這并不完全奏效,我覺得我已 經(jīng)做的很好了,但結(jié)果卻并不怎么好。是的,這些問題能夠測(cè)試出一個(gè)人是否熟悉編程理論,然而最終我對(duì)此人能否編程依然一無所知,直到最后我也不確定用這種 方法招聘員工能比用以前那種粗糙的struts 2問卷好多少。我想了很多,我意識(shí)到這其中有兩個(gè)巨大的問題:

1. 問題太泛了,如果不專注于某一種語言,我無法討論諸如SQL,前端細(xì)節(jié)等話題。

2. 問題太短了,10個(gè)泛泛而談的問題涉及面太窄,我沒法通過其他方式判斷此人是否是優(yōu)秀的程序員。

我需要的是更多的問題,并且這些問題必須針對(duì)候選人所申請(qǐng)的工作內(nèi)容。

面試問題寶典:10萬個(gè)為什么

事情逐漸有點(diǎn)失控了,當(dāng)時(shí)我繼續(xù)深入研究,并創(chuàng)建了一個(gè)全自動(dòng)化的測(cè)試工具(在一個(gè)實(shí)習(xí)生的幫助下):測(cè)試經(jīng)理(QM)。這個(gè)工具使招聘過程變得完 美:在初次面試后,HR會(huì)選擇三個(gè)與工作描述相關(guān)的話題,之后工具會(huì)自動(dòng)生成一組多項(xiàng)選擇題,其中包含3*20=60個(gè)隨機(jī)但具體的問題,其難度符合測(cè)試 者的經(jīng)驗(yàn)水準(zhǔn)。

示例:

(javascript)
var i = 0;
function a(){
  var i = 2; 
  i++;
} 
a(); 
alert(i);    =>    0 ? 2 ? 3 ?

之后,工具會(huì)繪制一個(gè)小圖表,產(chǎn)生并發(fā)送郵件給HR,直接顯示結(jié)果,而不是一堆無用的指標(biāo)。這是我多么為之驕傲的工具!我急切盼望著有候選人能夠測(cè) 試這套系統(tǒng)!我坐在HR旁邊,在內(nèi)部系統(tǒng)上觀察候選人選擇某些答案后的實(shí)時(shí)分?jǐn)?shù)。QM使我們所有的工作都變得更容易了,看上去非常完美,直到在我們自己的 開發(fā)人員上測(cè)試它時(shí)……

好吧,情況比我們想象中的更為離奇,我們之中許多優(yōu)秀的開發(fā)人員會(huì)獲得和被我拒絕的那些人一樣的分?jǐn)?shù),這才是正解,QM被證明是無效的!我花費(fèi)了很 多時(shí)間建立這個(gè)工具,同時(shí)也花費(fèi)了很多時(shí)間認(rèn)識(shí)到我犯了一個(gè)巨大的錯(cuò)誤:我們希望對(duì)結(jié)果進(jìn)行自動(dòng)化處理,這迫使我們只能設(shè)置選擇題。用戶只需要選擇一個(gè)答 案,因而問題最后大多演變成了技巧性問題,最終的結(jié)果是我們根本沒有測(cè)試軟件開發(fā)的技能!要面對(duì)這副窘境非常艱難,但最后我還是承認(rèn)這個(gè)工具產(chǎn)生了反作 用,展示了錯(cuò)誤的印象。

面試時(shí)讓程序員去編碼

8個(gè)月過去了,我做了更多的研究,視察了一些美國(guó)公司篩選候選人的過程,這時(shí)候我決定去追求另一種方法:只需編碼。這是程序員得到報(bào)酬的原因啊,所 以為什么不直接展示給我看他們是怎樣寫代碼的呢?你會(huì)覺得這很合乎邏輯……在經(jīng)歷了前幾個(gè)月的教訓(xùn)后,現(xiàn)在測(cè)試變得很簡(jiǎn)單:我會(huì)給出三個(gè)算法題,你需要在 30分鐘內(nèi)解決它們。候選人可以任意選擇語言,并使用一臺(tái)電腦作答(無法連接網(wǎng)絡(luò))。這些都是網(wǎng)上能找到的經(jīng)典問題:其中一個(gè)算法題通常涉及字符串操作 (比如在一句句子中逆置單詞),另一個(gè)問題涉及循環(huán)(比如計(jì)算斐波那契數(shù)列),最后一個(gè)問題涉及集合(比如列表排序)。

示例:

print out digits 1-100.
for multiples of 3, print out foo.
for multiples of 5, print out bar.
for multiples of both 3 and 5, print out foobar.

所有事情都變得更清晰,更美好了。我可以很直觀地看到誰在代碼中縮進(jìn)、注釋、遵循約定、尋找解決方案,等等。我可以據(jù)此判斷這個(gè)人在過去的編程量, 此外,通過與他們討論問題的答案也能獲得很多信息。我覺得候選人對(duì)這些測(cè)試題應(yīng)該會(huì)感覺良好,因?yàn)槲乙呀?jīng)試圖解除他們所有的壓力,他們可以從容作答,選擇 他們想用的任何一門語言,征求建議,等等。

起初,我對(duì)結(jié)果感到很振奮,并繼續(xù)執(zhí)行了幾個(gè)月,然而再一次的,我意識(shí)到我遺漏了些什么……好像有些事不對(duì)勁……事實(shí)上我確實(shí)可以依靠這種方式找出 能解決算法問題的人,但他們真的是我所要尋找的優(yōu)秀程序員嗎?請(qǐng)你思考一下,一個(gè)程序員的水平是不是由他能否解決一個(gè)數(shù)學(xué)問題所定義的?是不是由他能否寫 出復(fù)雜度為O(n log n) 而非 O(n^2)的排序所決定的?

能夠一網(wǎng)打盡的面試問題

我很清楚的記得,當(dāng)我初學(xué)編程時(shí),windows 3.1還未問世,QBasic語言是搭載在MSDOS 5.0上的,它包含自帶的幫助信息,其中有所有的函數(shù)和關(guān)鍵字,像一本完美的離線手冊(cè)。至今我還記得那時(shí)候編程的獨(dú)特感受,縈繞在我心頭,每一次我敲擊 F5,看到我寫的程序在我眼前執(zhí)行,每一行代碼,每一個(gè)提示,甚至是顏色,或難以解決的問題……我簡(jiǎn)直是在天堂。我記得我在每一條命令前添加行號(hào),用可怕 的GOTO填滿我的代碼,同時(shí)每天又能學(xué)到很多令人振奮的新東西。我熱愛編程,我會(huì)夜以繼日地編寫游戲、解決問題,并展示給我父母和朋友。時(shí)光飛逝,我從 QBasic到pascal到vb,通過2400bps的調(diào)制解調(diào)器和家庭電話線路,為我們的BBS(Atomic BBS)編寫游戲。我并不優(yōu)秀,好吧事實(shí)上我的代碼相當(dāng)糟糕!但我熱愛它??!我不能失去它……我猜有些人在他們第一次駕駛飛機(jī)、駕駛船只、吸食大麻、吃 in n out(譯注:美國(guó)一家漢堡快餐店)時(shí)會(huì)感受到他們的腎上腺素涌出的感覺,對(duì)我來說,那就是編程、編譯和運(yùn)行。25年前我獲得了這種感受,至今它從未離我 而去,我為編程而生,我永遠(yuǎn)都是程序員。

我始終相信,一個(gè)熱愛編程的人不會(huì)只在工作中編程,在家中他們也會(huì)繼續(xù)創(chuàng)造樂趣,這是一種愛好。多少次,我在工作中因?yàn)榈疤鄣腅clipse而感到失望,只能在我回家后,寫Ruby on Rails代碼尋找快樂,放松身心!

回到上一個(gè)話題,在一年的嘗試和失敗后,我完全放棄了技術(shù)測(cè)試。我會(huì)坐在候選人身邊,花5到10分鐘閱讀和點(diǎn)評(píng)他的簡(jiǎn)歷,不問任何問題,之后我會(huì)翻過簡(jiǎn)歷,看著候選人的眼睛問道:“我們剩下大概30分鐘時(shí)間,你能告訴我你所編寫過的最成功的項(xiàng)目的情況嗎?”

這個(gè)簡(jiǎn)單、獨(dú)特和客觀的問題是關(guān)鍵。一些人會(huì)含糊地回答他們之前的工作或?qū)W校的項(xiàng)目,而另一些人會(huì)突然變得生龍活虎,盡管一開始他們還有點(diǎn)放不開, 他們會(huì)熱情激昂的談?wù)撍麄兙帉懙挠螒?、制作的站點(diǎn)、貢獻(xiàn)的開源項(xiàng)目、開發(fā)的工具,他們會(huì)很驕傲的展示給我看。我時(shí)常會(huì)被他們的侃侃而談吸引和著迷,繼而詢 問他們這些喜愛的項(xiàng)目的所有細(xì)節(jié),他們的話匣子打開了,講述了他們所攻克的技術(shù)難題,加上一些小小的個(gè)人情懷,仿佛這就是他們的孩子。還有一點(diǎn)無法令人忘 懷:我仿佛可以看到他們眼中的光芒,仿佛可以看到他們小時(shí)候編譯和運(yùn)行第一個(gè)hello world程序的情景,很快,我意識(shí)到了我們的共同點(diǎn),我們都是程序員。

他們中的絕大多數(shù)人沒有接觸過struts或其它我們正在使用的指定框架,然而當(dāng)他們一進(jìn)入工作后,他們總是會(huì)成為金牌程序員。他們學(xué)習(xí)快速,能寫出更好的代碼,他們用創(chuàng)造力和正能量激勵(lì)著其他人,他們是真正的程序員。

責(zé)任編輯:閆佳明 來源: techug
相關(guān)推薦

2024-04-26 00:25:52

Rust語法生命周期

2024-02-27 10:11:36

前端CSS@規(guī)則

2019-12-13 16:00:11

Dubbo面試題Java

2021-08-05 06:54:05

流程控制default

2021-10-11 07:55:42

瀏覽器語法Webpack

2013-08-02 10:52:10

Android UI控件

2024-04-07 08:41:34

2024-08-26 10:01:50

2024-06-12 00:00:05

2023-09-06 18:37:45

CSS選擇器符號(hào)

2021-05-27 06:17:52

前端開發(fā)技術(shù)熱點(diǎn)

2010-08-25 01:59:00

2011-12-02 09:22:23

網(wǎng)絡(luò)管理NetQos

2019-07-24 15:30:00

SQL注入數(shù)據(jù)庫

2020-02-21 08:45:45

PythonWeb開發(fā)框架

2020-04-03 08:30:45

信息安全黑客網(wǎng)絡(luò)安全

2015-06-01 10:37:41

數(shù)字取證數(shù)字取證工具

2013-10-16 14:18:02

工具圖像處理

2023-04-06 09:08:41

BPM流程引擎

2024-07-02 11:12:17

Pythonfind()函數(shù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)