- 相關(guān)推薦
如何面試程序員
你要面試一個(gè)程序員,應(yīng)該問他什么問題?
首先,最重要的是,你自己一開始就應(yīng)該想清楚:
1. 需要新員工完成什么樣的任務(wù)?
2. 怎樣的人能完成這樣的任務(wù)?
3. 哪些途徑和方法可以發(fā)現(xiàn)這樣的人?
只有明確這些根本性的問題,才能正確高效地完成面試。
假定你對(duì)上一節(jié)的三個(gè)問題,已經(jīng)有了清晰的想法,那么接下來就可以設(shè)計(jì)如何提問了。
有一些提問的原則,是你應(yīng)該遵循的:
每一個(gè)面試問題都有明確的目的。你不僅自己了解,還能向其他面試官解釋清楚。
多提一些開放性(Open-ended)的問題,而不是那種用Yes/No就可以回答的問題。這樣做使你有機(jī)會(huì)與面試者展開討論,并且提出后續(xù)的問題,盡可能多地了解對(duì)方。
不要問宗教、家庭、健康、個(gè)人隱私等方面的問題。
不要問太復(fù)雜的問題。因?yàn)槊嬖囌邲]有太多思考時(shí)間,所以無法周全地回答,你也就無從判斷他的能力了。
為了確認(rèn)面試者是勝任的,你可以問一些與職位相關(guān)的專業(yè)方面的問題。(不過通常來說,一次面試不足以看出一個(gè)人的專業(yè)能力。)
比如,你的招聘職位是系統(tǒng)管理員,你可以問如何快速地在50臺(tái)機(jī)器上部署Linux?(提示:正確答案不是刻錄50張安裝光盤。)
另外,你還應(yīng)該向面試者了解他的過去,因?yàn)檫^去是未來的最好預(yù)測(cè)依據(jù)。不過,提問的重點(diǎn)不要僅僅是他過去的成果,更要關(guān)注在當(dāng)時(shí)的環(huán)境中,他是如何決策和實(shí)施的。
因?yàn)槿耸菚?huì)發(fā)展的,所以某種程度上,面試者的綜合素質(zhì)要比他的專業(yè)能力更重要。
所以,具體的技術(shù)問題(如何調(diào)用API、什么是設(shè)計(jì)模式、編程語(yǔ)言的語(yǔ)法等等)可以少問一些,更應(yīng)該關(guān)注面試者的事業(yè)心、對(duì)工作的熱情、進(jìn)取心、自律能力、毅力等方面。
下面是一些典型問題:
Why did you get into development?
你為什么開發(fā)軟件?
How many technical books did you read in the past year?
去年你讀了幾本技術(shù)書籍?
What was your favorite technical book in the past year? What did you learn from it?
去年你最喜歡的技術(shù)書籍是哪本?你從中學(xué)到了什么?
What websites do you read regularly, related to development?
平時(shí)你經(jīng)常訪問哪些編程類網(wǎng)站?
Do you maintain any open-source projects?
你有自己的開源項(xiàng)目嗎?
Do you code in your spare-time?
業(yè)余時(shí)間你編程嗎?
Do you love programming, or do you do it for the money?
對(duì)于你來說,編程是一種愛好,還是一種謀生手段?
Have you accomplished anything important in your career yet? Do you want to?
你的職業(yè)生涯之中有什么重要的成就?它是你主導(dǎo)的嗎?
What would make you feel that you have done something important?
什么事情會(huì)讓你很有成就感?
某些情況下,你可能需要了解面試者的分析判斷能力,看他能否全面地思考問題、客觀地評(píng)價(jià)自己。
那么,你可以依次提出這樣三個(gè)問題:
What‘s your favorite programming language? Why?
你最喜歡的編程語(yǔ)言是哪種?為什么?
If you could add one feature to your favorite language, what would it be? Why?
如果允許你為這種語(yǔ)言加一種功能,你會(huì)加什么功能?為什么?
If you could remove one feature from it, what would it be? Why?
如果允許你取消一種功能,會(huì)是什么功能?為什么?
這里的重點(diǎn)是,讓面試者從正反兩方面評(píng)價(jià)一件自己熟悉的東西,看看他的思維是否片面。答案無所謂對(duì)錯(cuò),只要面試者有一個(gè)明確的立場(chǎng),能夠從正反兩方面說出令人信服的理由,就可以了。比如,某個(gè)軟件的口碑不好,但是面試者說他很喜歡,而且說得出一大堆理由,清楚地解釋了這種軟件的優(yōu)點(diǎn)和缺點(diǎn)在哪里,這樣就很好。
你還可以把這些問題,套用在其他東西上面,比如操作系統(tǒng)、文字編輯器等等。
【如何面試程序員】相關(guān)文章:
如何面試:面試程序員12-08
程序員如何被面試11-06
如何去面試程序員,英文11-20
如何在面試中發(fā)現(xiàn)優(yōu)秀程序員12-11
程序員面試時(shí)說優(yōu)缺點(diǎn)如何回答05-19
Java程序員面試寶典12-14
java程序員面試指南11-26
如何招聘到優(yōu)秀的程序員06-19