E+ 資源與模板

【海外求職指南】找海外軟體工程師工作,如何在面試時脫穎而出?

2024年11月21日

💡 E+ 資源與模板

此篇文章節錄於 E+ 成長計畫的《海外求職指南》,整本指南以超過 80 頁的篇幅,完整談如何在海外求職與面試做最有效的準備。只要加入 加入 E+ 成長計畫,即可獲得這份海外求職指南的完整版。

海外求職指南
海外求職指南

「在找海外軟體工程師的工作時,有什麼要訣可以讓自己脫穎而出?」 是許多工程師在準備面試時會問的問題。關於這個問題,如果要有一個最關鍵的回答,我們認為是回答要有洞見 (insight)

先前聽一位 Meta 前主任工程師分享,他說在面試中會讓他給 Strong Hire 的候選人,通常是能在面試過程中,讓他覺得有學習的人。

很多人會認為面試時是被檢核知識、能力與經驗;候選人與面試官的關係,通常是面試官知道比較多,所以來考核候選人。但事實上並非如此,在面試時是可以去教面試官的,更進一步說,如果能做到面試官在聽完你講得內容後後,有「我從中學到了點什麼」的收穫感,這反而更可能讓自己獲得 Strong Hire。

早些年 Meta 創辦人 Mark Zuckerberg 在接受訪談時,也有談到類似的觀點。他在決定是否聘僱某個人時,思考的點會是「假如今天位置反過來,我會不會想為這個人工作」,意即他只會聘用那些比他還厲害,能在面試中教他東西的人。

什麼是洞見?

這時問題就來了,在面試時,該如何讓面試官覺得你有洞見? 讓面試官覺得有從你身上學到東西?

要讓回答有洞見有兩個關鍵

  • 第一是聽眾原先不知道,或是與聽眾原先認知不同的觀點
  • 第二是這個不同的觀點,還要對聽眾來說有價值、有幫助。

當面試官能聽到他原本不知道的,同時是對問題來說很有價值的觀點,當這兩點都做到,那就會容易讓面試官覺得這個回答很有洞見。

不過這時又有另一個問題,即使知道洞見的定義,但在準備面試時,該如何讓面試官能輕易聽懂你想談的洞見呢?

關於這個問題,我們推薦 PIE 架構。

讓面試準備更容易的 PIE 架構

PIE 架構是由下面三個要素所構成:

  1. Point (觀點):觀點要「簡單」表達
  2. Insight (洞見):洞見要讓人足夠感到「意外」
  3. Example (範例):範例讓人能夠「具體」理解傳達的內容

之所以會推薦這個架構,而不是推薦在回答時直接就講最關鍵的洞見,是因為要讓面試官聽懂你說的話,是需要循序漸進的。

在史丹佛大學教授 Chip Heath 寫的書《Made to Stick》當中談到一些讓人能夠容易聽懂你說的話的關鍵。其中的三個元素,就是「簡單、具體、意外」。

而 PIE 架構分別對應了「簡單、具體、意外」這三個要點,因此比起單純講洞見,用 PIE 架構能讓傳達洞見時,變得更容易讓面試官理解。往下讓我們分別拆解這三個要點。

1. Point (觀點):要簡單表達

先讓我們來談 PIE 架構中的 Point (觀點)。在這個架構中,Point 代表了你想傳達的核心觀點或主題。除了要用簡明的用語來表達,還建議直接講出重點,這樣可以讓你的訊息更加清晰易懂。

如下圖所示,這種溝通方式又叫金字塔原則 (The Pyramid Principle)。金字塔的頂端是主要觀點 (main point),往下才會有輔助的想法與細節。

金字塔原則 (The Pyramid Principle)
金字塔原則 (The Pyramid Principle)

直接講重點有助於面試官快速抓住你的論點,並引導他們進一步提問或討論。在這種表達法的精髓在於,直接把觀點說出來,然後再補充細節。這樣做將能夠避免鋪成了很多細節,結果反而讓面試官不知道重點在哪。

而在講觀點是,保持簡單是非常重要的原則。當你把事情講得簡單,別人就容易理解,這聽起來像是廢話,但偏偏是很多工程師做不好的。

溝通複雜化似乎是過去所受教育的產物之一,舉例來說,過去在學生時期,我們需要讀越來越困難的英文單詞與文法,從考高中到考大學,再到考托福與 GRE,同樣的內容會用越來越困難的單字、複雜的句型來表達。

這本身沒有錯,在某些情境下也確實推薦用更進階的詞匯與文法,來做更精確的表達。但是在做技術溝通時,很常需要反過來,把重點放在技術,溝通不求複雜而是求能夠好懂。

舉一個例子來說,下面這段是請 ChatGPT 用各種 GRE 單字文法寫的,關於快取 (cache) 的介紹:

Cache is an expeditious, diminutive repository of volatile memory that expedites data retrieval by retaining frequently requisitioned information. This ephemeral storehouse augments computational efficiency by circumventing the necessity to access more dilatory storage apparatus, thus ameliorating overall system performance through judicious data proximity.

接著再看請 ChatGPT 改寫成連中學生都能懂的版本:

Cache is a special kind of memory in computers that's really fast. It keeps stuff the computer uses a lot close by, so it can get to it quickly. This helps the computer work faster overall. Instead of always going to the main memory, which is slower, the computer checks the cache first to see if what it needs is there. 󠀠

同樣的內容,第一個版本反而會讓想傳達的核心概念,被字詞給淹沒得難吸收;第二個版本則是很直接、好懂。在軟體工程師的面試中,如果被問到快取,講第一種版本好像展現自己的詞彙量,但其實沒有什麼加分,反而可能讓面試官抓不到你的重點。

2. Insight (洞見):要讓人意外

在談完 Point(觀點)後,接著要進一步談 Insight(洞見) 。Insight 是深入分析後得出的見解,通常包含對某個問題或現象的獨特見解。在面試中,表達洞見的目的在於提供一個新穎的視角,讓聽眾或面試官感受到某種程度的「意外」

如同開頭提到,洞見要讓人足夠感到「意外」兩要件:

  • 聽眾原先不知道,或是與聽眾原先認知不同的觀點
  • 聽眾原先不知道,或是與聽眾原先認知不同的觀點該觀點對聽眾來說有幫助

如果能做到面試官在聽完你講得內容後後,有「我從中學到了點什麼」的收穫感,就更可能讓自己獲得 Strong Hire。

3. Example (範例):要具體

在談完 Point(觀點)和 Insight(洞見)後,最後我們要聊 Example(範例) ,這是一個關鍵步驟,可以讓你的表達變得更加具體和有說服力。提供範例不僅能幫助聽眾更好地理解你的觀點和洞見,還能使你的論述更加生動和引人入勝。

範例的重要性在於它能夠將抽象的概念具體化,使其更容易被接受和記憶。在面試中,當你表達一個觀點或洞見時,若能夠用真實的案例或具體的數據來支持你的說法,這將大大增強你所陳述的內容的可信度。

例如,若你提到某種技術的應用效果,可以引用你在過去專案中實際遇到的挑戰及成功案例,這樣能讓面試官感受到你對該技術的深刻理解及實際經驗。

想要在回答中加上範例,可以常用以下的起手式:

  • For example, [搭配具體案例]
  • For instance, [搭配具體案例]
  • Take [某件事] as an example, [搭配具體案例]
  • Let me share an example, [搭配具體案例]

用 PIE 回答行為面試問題

往下,我們將會用「請分享過去在團隊合作中學到最多的體悟」這題行為面試常出現的問題,來示範如何用 PIE 架構回答。把三個部分和在一起,就會是很有結構、好懂、有洞見且具體的回答。

面試問題

請分享過去在團隊合作中學到最多的體悟

回答:

Point (觀點)

Over the past year, I’ve learned that teamwork isn’t just about being nice with everyone like a family. It's more effective to think of a team like a professional sports team. When we take this approach, we tend to perform better.

Insight (洞見)

When we try to avoid conflicts, it might feel nice, but it can stop the team from doing its best. Being a good team member sometimes means speaking up when things aren't going well, even if it feels uncomfortable. Being professional means having tough conversations when something isn’t working.

Example (範例)

In the past, I always tried to be nice to my teammates and avoid conflicts. I wanted everyone to get along, and while our team had great harmony, we weren’t very effective. Our productivity was low.

After getting feedback from my mentor, I realized that being nice wasn’t enough. I needed to have those tough conversations, even if it felt uncomfortable. So, I started addressing issues directly but respectfully. I still tried to be kind, but I was more honest about what needed to be changed. The results were amazing. Our team dynamics shifted, and both our productivity and quality improved largely. Compared to the previous quarter, we built around 20% more features, and our bug rate dropped by more than 30%.

This experience really taught me that good teamwork isn’t just about avoiding conflict—it’s about pushing each other to be better like a professional.

用 PIE 回答技術面試問題

前面我們已經練習了如何用 PIE 架構回答行為面試的問題。事實上,PIE 架構不僅可以回答行為面試問題,用來回答技術面試問題也可以,以下是用 PIE 架構來回答技術面試問題的範例。

面試問題情境

在「請設計一個 AI 聊天機器人系統」的系統設計面試中,你談到了要用限流器。這時面試官追問, 「要選哪種限流演算法? 為什麼選那一種而不是別種?」

用 PIE 回答的範例

先直接把 Point (觀點) 講出來,下面的回答是直接說令牌桶演算法更適合。

When we talk about rate limiting in a system like an AI chatbot, we need to find a balance between controlling traffic and providing a good user experience. The token bucket algorithm is a better fit for this because it gives us more flexibility.

接著講出 Insight (洞見) 搭配 Example (範例),下面黃色重點是 Insight (洞見),而藍色重點是具體情境的 Example (範例)

Think of the token bucket as a jar that slowly fills up with tokens, and each time a user makes a request, they take a token out. If there are enough tokens, the user can keep making requests quickly, like having a conversation with the chatbot without too many pauses. This feels more natural and less frustrating, especially when the user wants to ask a bunch of questions in a short amount of time.

On the other hand, the leaky bucket is more rigid. However, if a user tries to make multiple requests at once, they’ll have to wait, which can be frustrating. Plus, any unused capacity is wasted, which isn’t ideal for a system where we're billed monthly based on usage.

In short, the token bucket lets us be more flexible, giving users a smoother experience while also making sure we’re not wasting resources. That’s why we chose it for this system.

💡 E+ 資源與模板

此篇文章節錄於 E+ 成長計畫的《海外求職指南》,整本指南以超過 80 頁的篇幅,完整談如何在海外求職與面試做最有效的準備。只要加入 加入 E+ 成長計畫,即可獲得這份海外求職指南的完整版。

海外求職指南
海外求職指南