2021 前端工程師面試心得
- 文章發表於
前言
哈囉,大家好,從大學時就開始從軟體社群獲取到非常多寶貴的資訊,也想趁這次的機會分享我在 2021 年底面試心得。
個人背景 & 求職目標
自己並非 CS 相關科系畢業的,更沒有參加過任何程式競賽,只是在大學時因緣際會下接觸到了程式,在此之後發現這就是自己的熱情所在,並且開始朝著成為工程師這條道路上前進。
背景: 財金相關科系畢業 / 2 年工作經驗 / 接觸程式至今 4 年
準備方向: HTML / CSS / JS / React Ecosystem / Leetcode 48 題 / Web Security
求職目標: 跨國合作機會 / 世界級產品 / 符合自己的團隊文化
語言能力: 其實自己英文不怎麼樣,就只是敢說而已,而在這次的面試過程中,就是努力的表達自己的想法,多數面試官也會有耐心的聽完,真的很感謝面試官們。
準備資源
整本書深入淺出,比起 YDKJS 我更喜歡這本書的解釋,作者用非常淺顯易動的詞彙講解 JS 的觀念,如果有不懂的觀念從這裡找準沒錯!
老手新手皆宜,React 的官網,如果想要學習 React 第一站就是這裡,裡面有很多實用的範例以及教學。
整本書有三章,第一章介紹基本常用的 Design Pattern,第二章則是介紹 Rendering Pattern,也是我認為最精彩的部分,同時也是面試最常被問到的,尤其現在 Next.js 當道,那為何要用 Next.js,而又怎麼從 JQuery,Backbone 時代到 CSR 在到現在的 SSG/SSR 中間的利與弊都在這裡可以看到。最後一章則是介紹效能優化。
Leetcode 不用說多少要刷一下,而這個是前端的 Leetcode, 建議可以從如何實作一些的原生 JS method 開始著手。
面試總覽
公司 | 管道(D) | 結果 | 時長 | 英文 |
---|---|---|---|---|
Yahoo | HR 邀約 | 一面後感謝信 | D+60 | P |
Foodpanda | HR 邀約 | HR call 後無回應 | N | Y |
Dcard | 官網 | 投遞後感謝信 | D+1 | N |
OneDegree | 官網 | 線上測驗後感謝信 | D+15 | N |
PicCollage | 官網 | 一面後感謝信 | D+11 | Y |
Binance | HR 邀約 | Offer get | D+23 | N |
Appier | 內推 | Offer get | D+38 | P |
Houzz | 獵頭 | Offer get | D+43 | Y |
Shopback | 官網 | 一面後感謝信 | D+30 | N |
Line | 官網 | 婉拒一面邀請 | D+41 | N |
*Y - 全英文, P - 部分英文, N - 中文
此次的面試時間是在 2021 年 11 ~ 12 月之間,內容可能會隨著時間推移而過時,主要分享著重在於準備方式以及學習。
面試公司
Yahoo
職缺
Sr. Frontend Engineer, International Frontpage
面試過程
HR LinkedIn 邀約(D) -> HR call(D+6) -> 1st with TL (D+12) -> 感謝信(D+60)
第一面 - TL
流程: 自我介紹 -> 基礎前端問題 -> Q&A (1hr)
英文自我介紹 / 過往經驗 / CSS / JS
心得
整體下來自己沒有表現得很好,但面試過程是舒服的,當有些基礎 JS 的問題答不出來時,面試官會講解一次其概念,也是學到了不少。
結果
感謝信
Foodpanda
職缺
Front-End Engineer
面試過程
HR LinkedIn 邀約(D) -> HR call (D+1)
心得
HR 透過 LinkedIn 聯繫,過程中皆是英文交流,面試流程大概是基本自介、聊過去的經驗最後 HR 則會簡單介紹 foodpanda 這家公司以及為什麼來台灣等等的資訊。
由於是第一次全英文面試,有很多冗詞贅字導致沒有回答到重點,所以中間被打斷很多次。雖然整體面試體驗有點差,但覺得是自己表現太爛所導致。因為這場面試,讓我有抓到英文面試的感覺,也非常感謝 foodpanda 給我面試機會。
結果
HR 到最後說,會將我的履歷 forward 給 hiring manager, 但到現在還是無聲卡。
Binance
職缺
Front-End Developer
面試過程 (*基本上 1 小時內就會知道結果)
HR LinkedIn 邀約(D) -> 1st with RD (D+6) -> 2nd with RD (D+13) -> 3rd with HR (D+16) -> 4th with TL (D+20) -> offer call (D+23)
第一面 - RD (CN)
流程: 自我介紹 -> 技術面試 -> Q&A (1hr)
問題: Web 優化 / React hooks / JavaScript
註: 比較特別的是面試完後,該面試官還有透過 HR 給我 feedback。
第二面 - RD (TW)
流程: 自我介紹 -> 技術面試 -> Q&A (1hr)
問題: Promise / React&Redux / JavaScript / 過往經驗
第三面 - TL (TW)
流程: 技術面試 + Behavior questions -> Q&A (1hr)
問題: 網頁優化 / 過往經驗 / Behavior questions
小結
問題通常是由淺入深,所以就不多著墨於問了什麼,值得一提的是, Binance 面試流程是非常有效率,體驗也很不錯。
而主管跟裡面員工也不吝於分享他們的經驗,也很感謝他們給我的職涯建議。
結果
Offer get
Appier
職缺
Front-End Developer
面試過程 (*面試後基本上 1 天就會知道結果)
朋友內推(D) -> 1st with RDs (D+10) -> 2nd with PL/VP/CTO (D+17) -> 3rd with CEO (D+21) -> offer conversation (D+22) -> offer call (D+31)
第一面 - RD* 5
流程: 自我介紹 -> 輪流提問 -> 技術面試 -> Q&A (2.5 hr)
問題: 過往經驗 / 兩題線上實作 (Promise & React)
第二面 - Product Lead* 2 / VP / CTO
每關流程: 自我介紹 -> Behavior questions -> Q&A (Total: 3.5 hr)
根據你過去的經歷去提問以及各種 Behavior questions
第三面 - CEO
流程: Q&A (0.5 hr)
這關基本上就是閒聊,整個過程算是非常愉快的。
心得
有些人可能會覺得 Appier 為什麼需要這麼多關卡,但自己面完後並不會覺得這是冗長不必要的,反而每一輪面試都讓我與 Team 有更多時間認識彼此,以及了解自己是否符合對方的文化。
另外 Appier 是這幾間公司當中面試體驗最好的公司,從第一面與多位面試官 live coding 的氣氛以及跟各主管面試交流的過程中,感受到大家都是非常友善並且熱於分享經驗,收穫良多。公司方面也能感受到裡面的同事都非常有能力,並且薪資也是非常有競爭力的,個人認爲是一間非常不錯的公司!
結果
Offer get
Houzz
職缺
Front-End Software Engineer
面試過程 (*面試後基本上 1~7 天內就會知道結果)
獵頭 LinkedIn 邀約(D) -> 獵頭 call (D+8) -> 1st with RD (D+18) -> 2nd-1 with Engineer Manager, 2nd-2 with Engineer Manager (D+24) -> 3rd with Hiring Manager (D+39) -> offer call (D+43)
第一面 - RD (JP)
流程: 自我介紹 -> 技術面試 -> Q&A (1hr)
問題: CSS Module vs CSS-in-JS / Code-Splitting / Reverse String
註: 比較特別的是面試官有認真看過我的部落格,所以也互相討論了 Functional Programming 議題以及對將其引入到團隊看法,最後請我將 Reverse String 用 Functional Programming 改寫。
第二面之一 - Engineering Manager (US)
流程: 自我介紹 -> 技術面試 -> Q&A (1hr)
自我介紹完與問一些問題後,就開始進入程式測驗。這關只有一題,類似實做 Promise.all + throttle 的 method。由於面試官一開始給的資訊偏少,所以我就先寫出如何使用該 method 以及寫出一個 test case,確認彼此是在同一個頻率後才開始實作。寫完後會問你哪裡可以優化以及再提出幾個 case 測試該的程式,之後就是 Q&A。
第二面之二 - Engineering Manager (JP)
流程: 自我介紹 -> 技術面試 -> Q&A (1hr)
問題: String to Int
一樣是先自我介紹完與問一些問題後,就開始進入程式測驗。整場面試非常好玩,感覺非常像是在 pair programming, 過程當中面試官會請你先寫 pseudo code, 然後去做時間複雜度分析,再來會問哪邊可以優化,直到面試官覺得我們在同一個頻率才會開始實作,中間也會來回討論以及給你 hint。是目前所有面試中最有趣的面試,也是面試完學到最多的一次面試。
第三面 - Team Hiring Manager (US)
流程: 介紹團隊 -> Q&A (1hr)
這關基本上就是未來所屬 Team 的 Hiring Manager 聊天,交換彼此的想法,過程非常輕鬆愉快的,也更加確定這就是未來我想要進入的公司。
結果
Offer get
結論
其實一開始面試都非常挫折,第一輪投的前四家都吃了感謝信或是無聲卡,當時覺得自己沒準備好就裸辭換工作是不明智的抉擇。但還是只能回頭檢討自己,把自己的心態調整好,很幸運的是第二輪就有拿到一些 offer,而且也是自己喜歡的公司!
也很感謝前同事們在我氣餒時幫我一把,給了我勇氣!
最後想說的是,收到感謝信或無聲卡都沒關係,那都很正常。重要的是把心態調整好,努力準備自己,一定會有公司看上你!