▲Bytedance/Run The World 前端工程師面試,圖片來源: freepik
文/Kenneth Cheung
最近面試了兩家公司的前端
來跟大家分享一下整個過程!
其實目前我沒有特別在找工作,目前待的公司、工作內容和待遇其實也沒有什麼不滿,但 LinkedIn 平常還是會關心就業市場的動態,在今年(2020) 11月中的時候有收到新加坡 TikTok recruiter 在 LinkedIn 上的職缺邀請,這算是在過去近一年以來我比較興趣的一個機會了,稍微考慮過後,基於以下的考量,決定來試試水溫!
RTW 也是 LinkedIn hunter approach,應徵動機則是
於是更新了一下履歷後送出,兩家公司的流程也就各自開始了。
自己在前端面試的準備方向大致分成四個部份,但這次沒有這麼多時間來準備這些,因為算是突然的機會,也沒有請他們排比較遠的時間,重點複習一下就提槍上陣了!
能說明自己過去的專案經驗,可以用 CTCI 裡的 SAR 或 SOAR框架:
這邊會問到的範圍其實蠻廣的,但有一些題目跟方向還是可以事先準備,剩下的就看臨場反應跟口語組織能力了,平常的累積還是很重要的。
Bytedance: offer get
Bytedance 的流程是:
每輪的時間約 45 分鐘
面試官聽起來是中國人,是別 team 的前端工程師,面試以中文進行
面試內容主要偏向演算法,使用 coderpad,總共考了三題:
1. JS 觀念:讀 JS 程式碼,答 console log 會印出什麼東西
自己沒有全答對,有一個地方我不確定,但我有把我不確定的部份跟面試觀溝通,先做一個假設,但事後去查證,我做的假設是錯的…
2. 演算法題:在 Leetcode 有原題,難度 Easy
確認問題需求後,邊解釋邊寫出來,有一些 bug,再邊解釋自己的觀察,邊修正,最後有修正完成。
3. 演算法題:接近一題 Leetcode 上的 hard 原題,有些變形
一開始說了一些大概想用什麼思路去解,面試官同意後就開始邊解釋邊寫,中間有遇到一些 bug 小卡一下,最後大概完成 8 成,Normal test cases 都有過,但有一些 special cases 因為時間關係沒有實作,但有解釋有哪些需要做的事,最後再聊一下有沒有其他解法。
雖然沒有一題的過程是完美的,但跟面試官溝通討論過程還蠻順暢的,面試官的回饋也很正面。
Recruiter 回饋:Positive
面試官聽起來是中國人,是別 team 的前端工程師,面試以中文進行
前半段針對我履歷上的經驗,問了蠻多相對應的技術問題,像是我在 Github 有一個 react 的 HOC 專案,他會問我一些對 react 生命週期、Render flow 的認識等等…
但老實說,自認沒有答得很順,有好幾題也都不確定,但不知道的問題至少自己有提出一種假設,並且根據這種假設會有什麼結果,但從面試官的表情也看不出來他有沒有買單我的說法。
後半段是 Javascript 的 Coding ,給定程式的介面和行為,來實作出對應的程式。
這邊是用視訊分享我的螢幕,在 codepen 上做給他看,算做的順,也是邊解釋邊寫,中間有討論到一點實作細節、不同的實作方法的優缺點跟可能發生的問題(memory leak 等)。
Recruiter 回饋:Positive
面試官聽起來是中國人,是該職缺團隊的主管,面試以中文進行
這關的面試內容就完全沒有 Coding 了,都是環繞在過去的專案經驗,跟對專案、產品的 Sense。
我覺得自己的表現沒有什麼特別突出的地方,敍事邏輯架構有的時候有點跳躍,也沒有那種厲害的專案經驗可以拿出來講很多很深的東西。但就是中規中矩沒有出什麼大錯這樣。
Recruiter 回饋:Positive
面試官是一個在 Facebook 待過的新加坡 local HR,面試以英文進行
這關就問了比較多 Behavior questions,當中也包含期望薪資的部份,覺得做錯了一件事,就是還是敵不過 HR 的懇切詢問,還是不小心透露了我現在的薪水,不曉得是不是因為這樣,導致 offer 的 package 相較於研究的行情偏低,
技術 3 輪關面下來雖然從 Recruiter 得到的回饋都是 Positive,但自己覺得面試表現在 第 1 輪 > 第 2輪 > 第 3 輪,演算法 和 JS coding 的表現是自己相對比較有自信的。三關既然都是 Positive 而且目前 Bytedance 新加坡是比較大規模的招募,心理覺得應該是有 offer 了,只是條件好不好而已。
大概在一週後收到 offer 通知,從 LinkedIn 上收到邀約到收到 offer 大概是一個月,Package 比心理預期的下界還低了一些,當時有問他們是否能再高一點,他們就回說這是他們經過審慎市場評估的 fair package,然後球又回到我這裡了,認真想了幾天,覺得還是先捥拒這個 offer,主要是因為:
在回覆拒絕以及原因後,大概過了一週多,Bytedance 表示願意再談,最後有給到期望,也就接受了。
RTW 這邊的流程是:
這個作業是要用串流服務供應商的 API 來做一個視訊通話的前端專案,當時收到作業其實有點猶豫要不要終止面試流程,主要是因為:
但想想這也是個不錯的練習,自己對於串流技術也有興趣,就設了一個目標,在一個週六的下午把作業作出來。
第一版因為時間有限,完成度其實蠻低的,程式也沒有太多整理,不過我還是交出去了,然後說了一下因為時間有限 blah blah blah…
但對方表示你可以慢慢來做到一版你自己可以接受的再交上來,於是我接下來幾天再花了一些時間把細節修一修再交一版。
面試官是 RTW 的前端工程師、前端 Lead,以中文進行面試
主要是聊 Javascript, React, Performance, 過去專案經驗,我的表現跟 Bytedance 第 2 輪 聊技術的部份有點像,有些不確定的問題,自行假設後給出一個回答。
面試官是 RTW 的前端主管,以中文進行面試
這關則是聊專案經驗跟一些 Behavior Questions,跟 Bytedance 的 第 3 輪也差不多,覺得自己的經驗好像少了一些亮點,還有陳述的部份可以再加強!
進行完上述的面試之後,過幾天Hunter 告知 Run the world 不會跟你繼續最後一輪跟 CTO 的 1-on-1, 從收到作業邀請到最後收到將不會繼續面試的通知,整個過程也是大概一個月。
面完這幾輪雖然一直有下一關,其實沒有覺得自己很可能會拿到 offer,因為在 bytedance 的面試中,我覺得自己演算法 和 coding 部份表現得比較好,雖然其他地方有缺點,但至少是有亮點的。
反觀在 RTW 其實表現平平:
RTW 的待遇、福利在台灣算不錯的,有很多管道在招人,看起來也有很多技術挑戰,如果這樣的表現能拿到 offer ,我也會覺得蠻奇怪的。
推薦文章>>2023 多家全端工程師&前端工程師(Appier/imToken/PicCollage/CakeResume/HackMD/美商安佩科技/Netskope)面試心得分享
在這次的面試過程中,我自己也有蠻多收穫的,雖然有些東西在讀文章或別人的經驗多少也都有看過,但發生在自己身上會有更深刻的了解。
在以前我有過一場演算法面試,我雖然把題目解完了,整個實作的過程我都沒有什麼溝通,只有在寫 code,可想而之那場面試就沒過關了。
但是在這次面試中的演算法面試中,雖然沒有一題完美完成,但過程即使是做答卡住了,我也會說出目前卡住的點是什麼,可能有什麼做法,遇到 bug 也有溝通自己覺得哪裡可能出問題了,打算用什麼方式來驗證自己的假設,反而得到不錯的結果!
在專案經驗的面試過程中,覺得過去沒有說來會讓人眼睛為之一亮的經驗,讓我反思,其實認真做好日常的工作就是對未來最後的準備。
如果平時能主動發掘專案中可以做得更好的部份,也主動承擔具有挑戰性的任務,我相信對自身能力的成長和未來職涯的發展性都會有很正面的影響。
如果說自己的學習哲學不是要把所有技術面向都摸的很深,就把自己覺得有價值、會有興趣的部份,礸研深入一些。再盡量把履歷跟面試的話題引導到你擅長的部份。
我想不只是技術的部份,如果有很厲害的開源專案、技術部落格等等,我覺得也會是一個很突出的部份,這次的面試經驗讓我相信亮點的重要性!