(不限資工新手)如何準備非技術面試 ?|應徵技巧分享
無論你正面臨面試挑戰,或是在職場中努力站穩腳步,這裡整理了實用經驗與建議,協助你釐清方向、提升應對力,並在每個職涯轉折點做出更明智的選擇。


文章目錄



圖片來源: freepik 文/DCARD 網友 如果有人跟你說,「Behavioral questions (以下簡稱BQ) 不重要啦,能過coding就好。」 那我可以跟你保證,那個人不是實習生,就是個非常資淺的工程師。 的確,對於實習生或是SDE I (SDE = Software Development Engineer, 這里參考Big 5 如雅馬遜和微軟的分級制度),面試基本上只要BQ不太雷、能夠過算法題就可以拿到Offers。而對於SDE II,則是會開始考System Design。 到了越高級如Senior or Principal或是管理職,BQ的重要性可能還超過技術面試 (注意,這裡不是指「只要BQ做得好,技術面試就不重要」,而是「技術只是最基本的門檻,但要能到Senior,除了技術還需要BQ表現得好」— 所以很會說話,但沒過技術輪還是會被刷掉)。 為什麼呢?軟體開發是團隊合作。除非你的產品太小,不然一個產品的誕生,需要很多人的參與,除了自己本身的團隊裡的工程師,還可能要與PM、Data、Ops等等不同部門合作。「如何與別人合作」、「如何把模糊的想法做成實際的產品」就非常重要。 雖然對於初學者,BQ重要度不是那麼大,但我認為如果能夠提早有系統地知道怎麼準備BQ,可以讓你在面試中脫穎而出。畢竟,硬技能可以讓你得到第一份工作,但軟技能可以決定你未來可以走得多遠多高。 🚨「正確的心態」 開始之前,我想要釐清幾個傳統誤區 - 很多人以為BQ回答得好的人,就是「會唬爛」:這是個非常錯誤的觀念,好的BQ回答通常是非常有邏輯的,並且有例子和故事可以佐證。有經驗的面試官不是白癡,很多問題一追問細節,就可以看得出來哪些是亂掰的。 - 英文發音有沒有腔調、文法爛不爛,影響沒想像中大:表達這種事情,很多時候不是靠文法和腔調,很神奇的是,我遇到很多說著一口「破英文」的面試者,可能表達能力還比英文是母語的人來得好(而且,不要為了你有腔調而自卑,台灣人說英文有台灣腔,不是很正常嗎?)。 💪「開放式問題需要框架」 好的面試者會有自信,而自信來自充足的準備。 強大的面試者會有氣場,而氣場來自於你控場的能力。 我自己在控場時,最常用的框架就是: 1. 定義問題 2. 闡述自己1-3個的觀點 3. 舉例 4. 結尾 🔍「定義問題和闡述觀點」 很多人在準備BQ時,都會聽過”the STAR Method”。 來源:https://www.1111.com.tw/1000w/fanshome/discussTopic.asp?cat=FANS&id=305820 STAR在你「確實有這些經歷時」,用來組織思想時是好用的(對應我的框架裡#3 和 #4),但對我來說總覺得不夠。 比方「跟我說一次你解決衝突的經歷 (Tell me a time when you resolved a conflict)」,是個常見的問題。 但「衝突」是什麼?是吵架嗎?是打架嗎?每個人的定義都不一樣。而且如果我沒有遇過衝突的經歷呢?那STAR就幾乎無用武之地了。 當然,你可以向面試官釐清問題(你:「這裡的『衝突』的定義是什麼?」面試官:「比方說『爭執(arguments)』」),但你仍然可能沒有相關故事可以說。於是可能只能回「hmmm我人際關係還不錯,目前都沒有這種經歷耶」這是一個誠實的回答,你也不會因此被拒絕,但你可以做得更好。 我喜歡在面試中有主導權。所以我會把對方的問題「調整的更精準」(refine the questions)。 我會說 「會有『衝突』,通常是因為有個人情緒參雜在裡面(註:定義並給出我對衝突的看法)。 我知道在工作中,有不同的意見在所難免,除了把注意力放在解決問題本身,我還會考慮對方的情緒(註:暗示對方你是有同理心的)。 因為我上述的工作原則,我不曾和別人有過激烈爭執的經歷,但我可以舉出一個我曾經『和別人意見不同時,我們如何達到共識』的例子,這樣可以嗎?(註:轉換成一個我有例子可以回的問題)」 BQ大部分都是「開放性」的問題,但好的回答通常是「非常精確並帶有例子」的。絕大多數時候,面試官會非常OK你為這些問題做更精確的假設,當他們同意你調整後的問題(從「處理衝突/爭執」到「處理意見不同」),這題問題的主場就是你的了。 ⭐️「情境式問題更需要框架」 另外常見的BQ問題還有情境式的,比方「如果產品經理先跟客戶保證你的團隊只要6個月就能夠完工,再來告訴你deadline,但你卻發現實際上需要2年的開發時間,那你會怎麼做?」 這種問題如果你直接回說「跟產品經理客氣的說達不到」或是「加班」都不是好的回答。尤其是問這種情境問題的面試官,可能就是當事人(比方問過我這題的就是個PM),他們可能會追問「可是這個案子非常重要,一定要完成呢?」或是「2年的東西如何6個月加班完成?」等等讓你越來越失去主導權。所以切記: 1. 要建立自己的框架,不要被問題帶著走 2. 提出解決方法 3. 改進程序 比方:「這個一個好問題。我非常注重溝通(proactive communication),尤其是跟跨領域的團隊合作時。我非常尊重PM的專業,但我也期待PM尊重我的領域。所以我會希望PM在跟客戶保證之前,會來問我的意見,這樣對於客戶和公司都有幫助(註:建立框架,但同時有共情)。 但當然,我知道有時候可能會有意外,假設PM在問過我之前,就向客戶做了保證:首先,我會很實際 (be realistic),跟PM和客戶表達我們實際在研究後有哪些難處。 而在專案管理中,要做出有質量的產品,不變的定律就是,『時間』、『資源』和『項目內容 (scope) 』三者不可能同時擁有(Project Management Triangle),那這時候我們可以和客戶討論,這三塊的優先順序是什麼(註:提出解決方案)。 如果今天我們非要在六個月之內完成,我們勢必要多增加人手資源,或是專注在優先級高的需求 (High priority features)。 如果我們項目內容不能變,也不能增加人手,那就得推遲時間。而根據我的實務經驗,其實絕大多deadline其實不是那麼死的,是可以再談的。 最後,當我們跟客戶重新定好期望時並且達成目標後,我希望內部開一個檢討會議。對我來說,我希望這是一個非常少發生的情況。如果發生一次,我會當作是意外,但如果持續發生,那肯定是內部溝通有問題,我會希望跟PM坐下來好好聊聊看如何把這件事當成一個學習機會,改善之後的流程(註:改善程序)」(改編自我辦卡稱前寫的另外一篇文章,回給B-11的留言) 「需要大量練習」 其實說到底,面試時有好的臨場反應以及邏輯,最終還是要經驗的累積和大量的練習。如果你不知道怎麼準備BQ,我推薦你從Amazon 的Leadership Principles看起: https://www.levels.fyi/blog/amazon-leadership-principles.html 這裡面應該涵蓋幾乎所有工程師會遇到的問題,而且歸類的很好。 我自己是會在準備的時候,把所有問題都看過一遍,並且寫下來我自己的回答(以下是我的筆記其中一篇的截圖)。 每一次在面試前,都會反覆練習說,練習多了也就熟了。 🛣「結論」 另外,我還想說以下幾點: 第一,BQ 是大概除了System Design之外,投資報酬率最高的面試環節。但很多人願意花數個月刷上千題Leetcode,卻沒花數小時準備BQ,非常的可惜。 第二,有Hiring Manager的那一關,絕大多數會問些BQ的問題,因為他要知道你好不好相處,這是用來取得好印象的機會。 如果HM夠喜歡你,就算別人給了Soft No,他也可能把你撈上來。比方我面過一個工程師,我非常喜歡他,即便拿了兩個Soft No,我還是在決策會議上推翻其他人的意見,給出offer。只可惜後來因為其他罕見的因素他還是沒辦法來。詳細故事可以看: https://www.dcard.tw/f/job/p/241887138 這不只適用新創,大公司也是,理論上Amazon Bar Raisers如果拒絕,一個申請者就很難被錄取。但一個L6的EM跟我說,他會為了自己很喜歡的申請者,在會議上”bulldoze”其他人的決定(這是原話)。所以HM那輪真的很重要,尤其如果他非常強勢。 最後,面試是一條雙向道(Two-Way Street),別人可以拒絕你,你也可以拒絕對方。不要覺得面試者只是被選擇的一方,面試只是了解雙方適不適合的過程,這樣的心態可以幫助你建立信心,以及不卑不亢的態度。 祝大家面試順利! (感覺System Designs的面試問題,在這裡的實用性不是那麼高,所以改成說面試後的事,比如「拿到Offers後,如何談薪水」或是「該如何選擇去哪家公司」)。 本文由 DCARD 網友 授權轉載, 原文: 《 (不限資工新手)如何準備非技術面試 ? 》