一場成功的技術面試的幾個關鍵點
在過去的歲月中,我不但參加過很多場程式設計師面試,也親手舉辦了許多。我清楚的知道搞砸面試的眾多因素。最糟糕的情況就是,面試官通過一些晦澀難懂的技術知識以顯擺自己的聰明睿智。
“錯了!原因是將它型別強制轉化為十六進位制!“
[“呵呵”,笑著用手指了指]
這件事曾真實地發生在我身上。至今讓我記憶猶新。雖然最後他們還是願意僱傭我,但我婉言拒絕了。這樣的互動對雙方都是一種折磨:不但封閉了應聘人員的技術思維,也讓面試官獲取不了他們真正需要的資訊。
最好的編碼測試可以讓應聘人員和麵試官一下子就明白將來共事的感覺和情境。所以,專業的編碼面試應該具備以下三個特點:
1.開放式對話
良好的編碼面試所提出的問題應該是開放式的,不受限制的。為什麼呢?我們需要從對話中瞭解開發人員的喜好、風格和知識。我們的目標不是為了瞭解瑣碎小事,而是要對該應聘人員如何解決問題有一個整體的把握。具體的技術問題不應該放到編碼面試中來,它們應該屬於之後的技術面試。
編碼測試的真正價值所在,是尋找一個真正的愛好者。
但也不必矯枉過正。
比如說,我對職業棒球大聯盟一無所知。然而,關於犯規、投球以及罰球線我也能講得頭頭是道。如果不進行開放式對話的話,你或許就會給我打上“對棒球瞭解甚深”的標籤了。但是,一旦你像一個真正的球迷一樣跟我討論棒球,或者找一個內行人來,那用不了20秒,我大概就會露馬腳了:你會發現,我知道的只是一些規則,一些皮毛。
編碼面試也應當如此。你的知識是不是隻停留在表面,要像照妖鏡一樣立馬現出原形:不是因為我問的是棘手的問題,而是因為一旦我們討論起創造性的解決方案,是金子的才會發光。當然應聘人員偶爾說一句——“我不知道”也是完全可以接受的(總比信誓旦旦地給出錯誤答案要好!)。但是,如果應聘人員不能對他們的解決方案說出個子醜寅卯來,那就必然不是一個真正的愛好者。這也是為什麼對話的目的並不侷限於單純的測量知識層面上。
2.模擬現實
允許應聘人員選擇技術和方法。他們的選擇能說明很多問題。如果你正在尋找JavaScript開發人員,而對方恰巧通過建立伺服器來呈現解決方案,那就值得好好地談一談。允許應聘人員選擇自己慣用的IDE。允許他們谷歌不知道的東西,就像他們在現實生活中那樣。儘量模擬現實情境。在白板上用鉛筆寫程式碼是不現實的。它會導致優秀人才的壓力從而增加遺漏人才的風險。
接下來就讓我在我的IDE上搞一個小時?呵呵,這也不現實。
相反,考慮到結對程式設計對實際問題的重要性,你也不必特意難為應聘人員。不妨將對方當成是幫你解決問題的同事。在此過程中,你還可以看到他如何使用IDE,搜尋了哪些內容,以及攻克的重點是什麼。
如果你正在建立一個標準化的測試,那麼請確保它與崗位是相關的。例如,如果你正在為醫療行業構建Web應用,那麼編碼測試就應該是使用Web應用程式來解決醫療相關的問題。一個好的編碼測試能夠讓人預覽今後的日常工作。無論是應聘人員還是面試官都應該對彼此成為同事有著美好的期許。
3.不要設定正確答案
建立一個簡單的編碼測試是很容易的,比如說, 反向字串,計算斐波納契數,或者列印fizzbuzz。但從這些連結上面我們可以發現,這些問題都是沒有價值的。因為它們不鼓勵對話,也不能代表我們在工作中需要解決的實際問題,而且谷歌或百度一下,答案就有了。
當然,你也可以在測試時禁止網上搜尋,但是,請記住,一個良好的編碼測試應該力求模擬真實的工作場景。在編碼時禁止訪問谷歌就像不允許廚師翻閱食譜一樣,都是很逗比的行徑。事實上,良好的編碼面試應該是開放式的,沒有侷限的,同樣也沒有所謂的“正確答案”。這樣一來,不但解決方案不容易在網上找到,還可以討論應聘人員所選方法的優缺點。
就是這樣。也不是那麼難,對吧?
英文原文:What Makes a Great Coding Interview? Be Real 翻譯:geekwww
相關文章
- 這48個Java技術點,讓你的面試成功率提升5倍!Java面試
- 關於面試,避開這幾點,成功機率更大~~~面試
- 25個關鍵技術點,帶你熟悉PythonPython
- MDM獲取UDID的幾個技術點
- 面試小結--前端面試的幾個雷點面試前端
- 面試驅動技術 - Category 相關考點面試Go
- Python求職怎麼樣?面試成功的關鍵技巧分享Python求職面試
- 技術管理的6個關鍵原則
- 28個關於PHP核心技術的面試題,助力跳槽!PHP面試題
- C#中的幾個簡單技術點C#
- 透漏幾點面試的真相面試
- ERP實施的關鍵點,你的企業做到幾個?
- 線上教育平臺開發的幾個關鍵點
- 作為面試官的一點點感悟,談談技術人的成長之路面試
- Codidate - 一個先進的線上技術面試平臺面試
- 異常-finally關鍵字的特點及作用(面試)面試
- JavaScript:面試頻繁出現的幾個易錯點JavaScript面試
- 敏捷測試關鍵成功因素敏捷測試
- 「 ThoughtWorks面試 —— 一次愉快的技術交流 | 掘金技術徵文」面試
- C語言的幾個關鍵字C語言
- 實現人工智慧應用場景的關鍵技術人工智慧
- 7個關於"this"面試題,你知道幾個?面試題
- 技術面試中常見的幾道智力題 來看看你會做幾道?面試
- 現代資料架構的7個關鍵技術架構
- Salesforce在CRM市場成功的關鍵是什麼Salesforce
- 技術選型的一點個人思考
- 關於大資料技術的一點思考大資料
- 關於Integer面試的一個問題面試
- 實現VR直播的關鍵技術VR
- 關於MQ的幾件小事(一)訊息佇列的用途、優缺點、技術選型MQ佇列
- 使用Kubernetes的5個關鍵點!
- 關於Fabric聯盟鏈和幾個公有鏈以及基於DHT技術的HoloChain的測試AI
- 記一次旁觀他人的技術面試面試
- 分享幾個重要的Android面試題Android面試題
- “技術轉產品”比產品更噁心的幾個點
- 一個螞蟻前端曾經的辛酸面試歷程 | 掘金技術徵文前端面試
- 聊聊測試開發中提升 level 一些關鍵技術
- 關於Tomcat的13道面試題,你能答對幾個?Tomcat面試題
- 關於面試的一些個人看法面試