如何準備軟件工程師的面試

本文已影響1.54W人 

六月份的時候,我曾經在黑板報上介紹過“如何寫一份好的工程師簡歷”,今天想跟大家來談談如何準備軟件工程師的面試?假設,現在您的殺手簡歷(killer resume)已經吸引了某大公司的注意並約你面試。那麼接下來該如何準備呢?

如何準備軟件工程師的面試

我在Google(以前是微軟)工作期間面試了不下300人,其中某些應聘者確實表現非凡,但有些卻顯得準備不足。當然許多面試準備不足的人最後依然獲得了錄用通知,因爲他們本身確實才華出衆。但如果應聘者能提前準備妥當,那麼面試過程將更爲保險和輕鬆。以下所列出的就是我根據多年經驗總結得出的建議:

1、使用相同的工具和時間限制模擬面試訓練

Google和微軟都會讓應聘者在白板上手工解答編程問題,但通常大部分的應聘者都是習慣於在電腦上利用編程工具系統編寫程序。因此面試的時候,某些應聘者離開了熟悉的電腦光標,站在白板前感覺手足無措不知該如何起行。又或者他們不習慣在編程之時旁邊有人觀看,這會讓他們感到緊張而無法正常思考。

在現實生活中,如果你想要橫渡英吉利海峽,自然不能總是在室內游泳池練習。你必須投身於大海在波濤之中訓練,在準備面試的時候也是如此。

在面試開始之前你最好向招聘單位詢問面試形式和麪試問題。如果招聘單位讓你在某個房間考試且僅提供沒有彙編程序的編輯器,那麼就應該在家中按照這種情景進行練習。如果招聘公司單位讓你在白板上回答問題並會安排考官在旁監督,那麼你就要找一位軟件工程師來扮演考官配合你練習。即使找來的考官經驗不如你也沒有關係,他們依然能幫助你消除在他人面前出錯所帶來的緊張感,這樣可以讓你適應有人在旁邊盯着看的面試氛圍。

如果你恰巧認識我並希望由我來幫你聯繫,那我的條件就是必須請我吃飯:如果你已經工作了就吃日本壽司大餐;如果你還是學生,那麼吃比薩餅也可以。

2、在面試過程中不要對細小錯誤耿耿於懷

我曾不止一次的在面試過程中碰到這種情況:當應聘者知道編程問題後,他馬上就想到了最佳的方案、確定了邊界條件,然後開始編寫程序。但在編寫過程中,應聘者犯了諸如首先檢查是不是操作順序錯誤或忘記設定某變量等無關大局的小錯誤,當我指出其錯誤之後,應聘者立刻變得十分緊張,這種焦慮情緒影響了他在後面環節的正常發揮。

其實這種恐懼心理完全不必要。一名優秀的程序員在編程過程中出現錯誤也是很正常的,就像是小提琴手在演奏高難度的巴赫交響樂時也會偶爾失誤。音樂會的聽衆可能會覺察到這些錯誤,但是聽衆絕對不會因爲這種細小失誤就把出色的小提琴手看作是門外漢。

即便應聘者徹底搞砸了某個編程問題,面試考官也可能會提出不同的問題並會容忍應聘者在某個問題上的失誤。再退一步說,就算某次面試徹底失敗,你也有機會在其它面試上補救。

我的一位同事(一個項目的技術負責人)最近面試了一個人,在開始面試時他覺得面試者的交流方式存在問題,因此開始表現的相當不友好。但經過了整個面試過程後,面試者證明了自身的能力,而我的那位同事也成了那位面試者最堅定的支持者。在過去的一年中,我從未見過這位同事如此強烈的支持哪位面試者。

所以,因此就算面試進展不順,也務必堅持到底不要放棄。

3、在面試過程中不要失禮

這似乎是不用說的問題,但在面試過程中我確實碰到過影響很不好的失禮行爲。曾有一位前來應聘軟件工程師的人看到我就說:“哇,我真不敢相信你這麼年輕!你看上去好小!!我覺得你才18歲!”

面試者的這種言行實在要不得。

面試者也要注意不要說出諸如此類的話:“哇,你真的就是考官嗎?你看上去好老!”“哇,你真的是來面試我的,你看上去好胖!”

在我的另外一次面試中,應聘者的手機在面試開始15分鐘之後就響了,她沒有理會,手機連續響了20秒,這樣不免會對面試造成影響。5分鐘之後,她的手機又響了,她依然沒有理會;5分鐘之後,手機第三次響起。最後她終於抓過手提包在裏面翻出了手機。我想:“是時候關掉手機了,她在進來之前就應該把手機關掉。”但是她在手提包中拿出手機之後卻旁若無人的打起電話來,而且就在面試過程中間!

這種情況唯一可接受的理由就是他有什麼非常緊急的事,但是即便情況如此,那麼他也應該在面試開始之時就講清楚,讓面試官有所準備。

4、不要在面試中喧賓奪主

我曾經面試過幾個應聘者,他們好像鐵了心腸一定要告訴我他們最近的“超級項目”。當我開始發話他們就立刻打斷:“我想讓你瞭解我們近期處理的超級項目,10年之前當這個項目開始之時還默默無聞……”,然後接下來的5分鐘時間都在那裏滔滔不絕唾沫橫飛。

有時應聘者好像打定主意要給每個考官詳細描述其引以爲豪的項目,然後一整天都在那裏翻來覆去的說這個項目。

記住:面試官在面試過程中有具體的問題需要詢問。但是如果應聘者喧賓奪主,那麼考官就可能無法獲得充分的信息來做出判斷,同時這種行爲也會讓考官覺得應聘者很難共事。

如果你確實想談論自己的項目,那麼就應詢問面試官:“我覺得最近的某某項目能充分體現我的能力,我能不能用10分鐘的時間來描述一下具體情況?”這樣就會給面試官空間來調整面試過程,由此也避免毫無徵兆就讓面試離題萬里。

5、在回答需要具體答案的問題之時,記得首先要有總括性的發言。

有時我會問一個答案可以很簡練的問題,例如:“在你的那個成功項目中總共有多少人蔘與?”但應聘者往往會就此打開話匣:“恩,張三參與了這個項目,他負責UI部分,當然我也會給他一些指導。李四也在項目中,她在賓州遠程工作,負責後端服務器。兩年之後我們又有新人王五加入……”

在應聘者滔滔不絕的講了三分鐘之後,我還是不知道這個項目到底有多少人蔘與。

因此首先要簡練的回答問題,然後再展開描述:“在我接手項目時有三個人,但當我離開項目時人數已經增加到12人。”

當然如果能簡練的回答問題,然後徵詢意見之後再展開論述那就更好了:“在我接手項目時有三個人,但當我離開項目時人數已經增加到12人。我可以講一下各人在項目中的具體分工嗎?”

6、在面試中要衣着得體,舒適的商務便裝是最佳的選擇.

人們有時候會爲衣着犯愁。但是最重要的是要讓自己感覺舒適。如果需要具體的建議,那麼我建議穿襯衫甚至T恤衫。對於某些公司(例如:Google),西裝革履顯然是太隆重了。

這條建議不必太看中,因爲面試官不會管應聘者穿什麼。最好應該詢問人事招聘部門穿什麼合適,因爲不同國家有不同習俗,就算美國東海岸和西海岸的公司着裝文化也會有差別。像Google這樣的公司在着裝方面更加隨意,因此如果你穿着“三件套”的經典西服去Google面試,考官可能會有異樣的感覺。因此如果你真的具備軟件工程的本領,穿什麼其實並不重要。某個應聘者曾經穿着皺巴巴髒兮兮的T恤就跑來面試,他的T恤衫上還有着許多破洞。但最後他還是拿到了錄取通知(當然我絕不建議如此穿着)。

相關內容

熱門精選