2024 LINE TECH FRESH 面試心得

Brandon Lu
6 min readApr 21, 2024

--

根本還沒進 LINE 就在那拍畢業照的我

前言

個人覺得以前段班的實習來說,LINE 的面試難度算是相對友善的,不像 Google / Appier / Microsoft / … 需要跑至少兩關以上,也不會考你白板題。

基本上 LINE 的面試只有一關,下面的流程會以時間線去做敘述,希望可以幫助到其他也想進來這個好地方的人!

面試職位

LINE TECH FRESH (Backend, Central Dev 兩個 Team)

投遞履歷:D+0 Days

剛好有朋友在裡面,所以有幫內推一下,覺得有內推真的有差,大約一週後就收到了面試通知

我投遞的是 Central Dev 跟 Backend 兩個 Team,不過之後才知道原來這次的 Backend 其實是 LINE Travel,而 Central Dev 實際上是兼顧公司內部服務以及機動支援的 Team,可以接觸到的範圍非常廣泛

面試作業:D+10 Days

之前其實在投遞時沒聽過有面試作業,因此在收到面試通知之後嚇了一跳:居然收到了乾淨架構主題的面試作業。很久以前我就想好好了解軟工這個部分,包含常常聽到 SOLID, DI (Dependency Injection), IoC (Inversion of Control), 各種五花八門的詞,於是我把握這次機會上網做了很多功課

相關中文資源其實不是很多,加上我對這個領域幾乎沒什麼接觸。所以我的替代方案是去 YouTube 找國外工程師的講解、論壇分享,看爆啊!

推薦閱讀順序:透過十幾分鐘的短影片建立非常概略的輪廓,了解整體脈絡;之後再去看文章跟論壇分享,會有比較詳細的設計哲學講解、程式碼範例,可以更深入的理解

短影片:

Dependency Injection, The Best Pattern

Hexagonal, Onion & Clean Architecture

Understand Clean Architecture in 7 Minutes

讓水球帶著大家從 0 開始導讀「乾淨架構」原文書!

SOLID Principles: Do You Really Understand Them?

文章:

The Clean Architecture — Uncle Bob

使人瘋狂的 SOLID 原則:單一職責原則 (Single Responsibility Principle)

使人瘋狂的 SOLID 原則:開放封閉原則 (Open-Closed Principle)

使人瘋狂的 SOLID 原則:里氏替換原則 (Liskov Substitution Principle)

使人瘋狂的 SOLID 原則: 介面隔離原則 (Interface Segregation Principle)

使人瘋狂的 SOLID 原則:依賴反向原則 (Dependency Inversion Principle)

論壇分享:

🚀 The Clean Architecture (Ian Cooper)

Fred聊聊SOLID設計原則

搞笑談軟工

不過就算把上面的資源全部看完,其實也只會跟我一樣對乾淨架構有粗淺的理解而已⋯⋯真的要熟練的話除了要多練習、實作之外,可能也要組個讀書會來研讀原著,一起討論才不會陷入自己的象牙塔當中!

更:錄取之後還真的收到了寒假作業,要我去研讀原著⋯⋯太狠了沒想到這天來得這麼快

面試:D+20 Days

本來的形式會是兩個 Team 的面試官一起來面試我,但由於其中一個 Team 的面試官有臨時會議。在我的要求下,跟 HR 約好變成兩個 Team 分開面。其實有點慶幸,因為我的面試作業真的花了超級多心思在準備的,只有一個小時面試的話可能會冷落另一個 Team 的面試官

LINE 的面試流程大致可以分為三關

  1. 面試者自我介紹
  2. 技術問答(or 面試作業問答)
  3. 面試官介紹 LINE 以及公司文化、QA Time

我覺得這三關當中都有可以把握的地方,讓我一個一個介紹

面試者自我介紹

好的開始是成功的一半,這邊奠定了後面要問你什麼的方向

💡 秘訣:可以做個小簡報稍微介紹一下自己的經歷、擅長的東西、做過的專案

面試官看到有興趣的地方就會在下一關開始延伸技術問答

技術問答

其實有點記不起來具體的問題了,不過應該也沒什麼餐考價值。畢竟根據經歷、專案不同,本來會問的東西就不一樣

在這邊要注意:

💡 一定要對自己的專案做好功課(你的 XXX 是怎麼實作的?有遇到什麼困難嗎?原理是什麼?)

💡 對於技術的比較、取捨最好也要熟悉(為何選A資料庫不選B?如果選C的話會怎麼樣?)

根據我的個人觀察,LINE 實習生分享會幾乎每一組都分享了他們用 OOO 技術去解決了 NNN 問題;在 Side Project 這方面,用到 CI/CD, Docker, K8s, …… 的話有一定的機率會加分

可參考 【TECH FRESH 畢業分享會】原來實習有這些眉角?

QA Time

到了萬年難解的問問題時間了,前面如果被電,一定腦袋一片空白只覺得完蛋了⋯⋯但我覺得倒也不必,如果不是太過於致命、會導致 Strongly Rejected 的失誤,在這邊可能還救的回來

💡 問個好問題可以表現出你對這個工作的深度理解,印象分++

個人覺得加分的問題包含「詢問工作細節」、「在進行 XX 時可能會遇到 XX 問題,你們通常會怎麼處理」舉例:「在進行壓力測試時,你們有遇過單一機器發出流量不夠大的情況嗎?你們會怎麼做到分散式壓力測試的數據收集跟監控?」

等待 HR 通知:D+40 Days

等待的時間真的有夠漫長,我面試 Backend 的時候有被問倒一兩個問題(沒說明好 Open-Closed Priciple, 寫測試的方法不夠 best practice)實在有夠焦慮。我每隔幾天就會夢到 HR 打過來一次,甚至有一次的夢境是經過馬桶的時候突然從裡面噴出了兩張摺疊好幾層的紙條,展開之後看到居然是兩個 Team 的 offer,到底什麼鬼劇情

還好最後順利地兩個 Team 都錄取了,實在非常感謝朋友幫忙內推跟建立心態,也感謝女友忍受我在旅行沒事的時候就在研讀 Clean Architecture、忍受一切、安排超級讚自由行的行程

總結

就我目前的觀察而言,LINE 希望尋找的應該不是演算法選手,是找出對軟體工程有熱忱的實作派。(以公司的角度大概是用實習的薪資換到接近 Mid-level 的工程師,還可以打亮在軟體圈的名聲) 所以其實應該不太需要準備刷題,平常可以做的準備大概就是好好研讀技術、應用在專案上面、貢獻 Open Source、多關注 LINE 工程部落格。這些準備不只可以拿來準備 LINE 的實習面試,長遠而言更是一條軟體工程師必走的道路!一起加油

我平常會在 IG 工程帳 @backend_b__ 分享所見所聞,如果你覺得這篇文章不錯或是有共鳴的話就幫我分享+標註吧

--

--