crossorigin="anonymous">

孤悟提示您:看後求收藏(奇妙書庫www.qmshu.tw),接著再看更方便。

面特別需要進一步瞭解的話,我也可以調整一下面試問題的側重點。

其實,整個面試過程就是為了回答一個問題,我是否願意和此人一起共事。決定這個問題的答案即包括面試者的技術能力,也包括其他方面,如是否對這個工作有足夠的熱情,是否有團隊精神,等等。

好,說了這麼多套話(自己都要煩了),那就舉一個具體例子吧。

觀察的過程從我在第一次見到面試者就開始了。當然了,不會特別在意著裝,因為微軟大多數人都不在乎這一點,尤其是技術部門。如果面試者顯得有些緊張,我往往會建議是否要喝點什麼,再加上幾句今天天氣哈哈哈的話,緩解一下情緒。都是過來人嘛。特別指出的,每次我都會問是否要先用洗手間。

因為有一次我剛把一位老兄帶到辦公室,他就很不好意思地說剛才喝水喝多了,一定要解決一下子。的確這是我的過失。所以從此以後我就特別注意這一點。

如果是午餐面試的話,我的原則是絕對不會在餐桌上問及技術問題。因為我自身有痛苦的回憶。?

一進辦公室,第一件事是關門(不過不會放狗?),鎖定機器並且把電話關閉,這是我認為對面試者應有的尊重。

面試剛開始,往往先作一個簡單的自我介紹。然後開始問一些基本問題,如為什麼對這個職位感興趣。

不要覺得這個問題不重要。因為具體的知識往往不是最重要的,而對從事領域的熱情更為關鍵。不會的東西可以學,但是沒有學習的動力就麻煩了。特別的,微軟面試的一個特點就是對面試者以往的工作背景問得不多,甚至很多時候並不特別在意以前的工作經歷和這個職位是否相關,其根本原因就是認為不會的東西,學會了補上就可以了。

下面往往就切入面試的主要部分。對於軟體開發人員職位來說,這一塊就是程式設計了。

一般不會(至少我是這樣)考特定的一個領域知識。舉個例子,我絕對不會讓面試者回答一個特定的Win32API是幹什麼用的,或者用ATL寫段程式。問題就是基本的資料結構/演算法/程式語言。如果面試者說對C++不瞭解,沒關係,JAVA也行。怎麼,JAVA也不會,那pseudo…code也可以呀。

坐上了面試官的位置(2)

問題的方式往往採用由淺入深的方式。為了這本書,我忍痛貢獻出自己最為得意的一個考題:

問題:寫出一個函式,判斷輸入一個整數是否為素數

不難吧?當然了,如果你說不知道素數是什麼,我就無語……好在我面試過程還從來沒有遇到過這種情況。

如果你沒寫好函式的定義(declaration),確定輸入輸出引數型別,就迫不

及待開始寫內部程式碼的話,我心裡就要打個問號了。

好,程式碼在白板寫好了。

這裡就來了下一個問題,首先檢查函式的基本邏輯是否正確。

其次,檢查一下是否正確處理各種邊界的情況,如0,1,2等等。

以上只是兩個基本問題。好了,函式寫完了,也處理了邊界條件。

那下一個問題:如何提高它的效率?

這裡可以有演算法的改進,例如從測試的最大數字n/2變成n的平方根,每次迴圈的步長可以是2等等。

但是,如果效率還不夠高,怎麼辦?

這裡測試的就是是否可以靈活考慮使用各種其他的資料結構。例如如果分析輸入範圍只是0到1000,是否可以考慮hashtable?事先計算素數表。如果面試者提到這一點,好,又一個問題:如何最快計算一個範圍內的素數表——素數篩法?

但是,如果效率還不夠高,怎麼辦?

是否可以考慮caching,如果函式輸入有一定模式?caching的基本模式和演算法?什麼樣的應用程式會如此密集使用素數判斷?是否合理?

這就是我說的由淺入深的提問方式。當然了,不同的人有不同的面試方法,這裡說的只是一個微軟經常採用的方式。

還有一點,就是如果你對某個問題不知道答案的話,也許並沒有關係,因為許多情況下,面試官並不指望你能回答出所有問題。就像上個問題中的素數篩法的演算法。如果這樣,你可以據實回答:“這方面我並不瞭解,我推測可能是如何如何…”但是,如果你要不懂裝懂的話,那結果可能會得不償失。

面試收尾

遊戲競技推薦閱讀 More+
愛,是要追的

愛,是要追的

交通工具類:滄海一葉舟
遊戲 完結 18萬字
圖騰

圖騰

吻火
遊戲 完結 120萬字
冷月戀雪

冷月戀雪

竹水冷
遊戲 完結 9萬字
夢斷千年

夢斷千年

中國長城網
遊戲 完結 14萬字
弒天劫

弒天劫

吹嘻
遊戲 完結 12萬字
過氣花魁太子妃

過氣花魁太子妃

溫暖寒冬
遊戲 完結 43萬字