南臺科技大學

#分享 2020 前端工程師面試 準備與心得(LINE Taiwan、17Live、Binance、Tiktok/ByteDance)

3月1日 00:39
想要完整的觀看體驗,強烈建議Medium好讀版:
➡️前言 每次在準備面試的時候,最困擾的問題就是找不到類似的經驗參考,所以想把這一年面試的心得分享給需要的人。 最一開始求職的原因很簡單,因為上半年時,原本的約聘工作合約快到期,快沒飯吃了所以開始找工作。 但面試時間不是集中在上半年看起來有點奇怪,這是因為年中年尾意外遇到了一些機會是HR linkedin上邀約的,覺得有興趣就去試試看。 時間線+結果大概像這樣: LINE Taiwan:2019/10 ~ 2020/01 (沒Offer) 17Live: 2020/02 (Offer Get) Binance:2020/07 (Offer Get) 新加坡Tiktok(ByteDance):2020/11 (Offer Get) 所有面試的職位都是前端工程師/Frontend engineer。 主要是分成主動投遞(LINE,17live)跟HR linkedin上邀約(Binance,Tiktok/ByteDance),有些公司說不定已經改變了面試流程,但我想應該還是可以當個參考。 ------------------------------ ➡️ 正文開始~ 背景+準備 簡單說一下背景好了,本身是私立科大資管系畢業,大四開始第一份工作。 如果不算大四工作+大三實習的話,畢業後到現在前端工作經驗是約2.5年的時間。 這篇文章一開始求職時(2020年初),在那時大概是1.5年。 會走上Web前端這條路其實也蠻莫名其妙的,因為原本在大學時,自己想做的是寫app,大二大三學了一些Android開發後想去找個Android開發的實習,結果去了實習的公司之後被分配去做Web前端…沒想到這樣誤打誤撞反而學出了興趣,最後踏上了這條不歸路。 ------------------------------ ➡️ 準備方向 我想可以分成兩個部分,第一個是基本前端+JS知識,第二個是leetcode刷題。 1. 基本前端+JS知識 先說說第一個好了,我想不管前端後端面試,都要給自己一個概念:面試的重點不是想知道「你會用什麼工具」,而是想知道你「為什麼要這樣做」或「要如何解決基本的問題」。 做出東西很容易,但你理解「為什麼」要這樣做嗎? 很多人可能認為只要學會XXX框架XXX工具然後做出東西就足夠了,雖然滿足業務邏輯生出產品沒有什麼錯,但對工程師來說,真正該學會的是你必須明白「為什麼要這樣做」。 舉個簡單的例子,選擇用React來做前端開發時,不該只是因為這東西很潮去用他,而是去理解為何要用它後才決定用它。 另外,很多人在面試前總會擔心會不會被問到XXX框架或XXX工具要「怎麼用」等問題,反而卻忽略了「基本」這個心法對一個工程師來說有多麼重要。 舉個例子來說,下面一個很經典的scope問題在實戰上很常會遇到,如果沒有這方面的「基本」JS概念應該答不出來。 for(var i = 0; i <= 5; i++) { setTimeout(function() { console.log(i); },1000) } 要最大程度的提升自己對JS的基本理解,像是閉包,this,event queue等等還有很多,都是該掌握的,這裡推薦可以看看you don’t know JS這本書。 前端知識的部分,自己已經熟悉的框架跟工具,能理解其中的一些原理跟用它的理由是必要的。 以React來舉例,像是useEffect的dependencies array沒搞好會出啥問題、React內部render階段跟commit階段做了什麼事情等等,不用真的要完全理解每一行源碼怎麼寫,而是去好好的認識自己在用的工具,然而這些都不是賽擠咖稱才來準備的,平常沒事就該多思考這些部分。 保持著不斷詢問自己「為什麼要這樣做」的態度,我覺得對自己的成長有很大的幫助! 2. leetcode刷題 第二個這其實很難說,因為前端面試不一定會遇到考leetcode的部分,但以我的經驗來說,這次這幾間分享的公司都是有遇到的,難度介於Easy~Medium,所以這還是得準備一下。 能輕鬆解決Easy等級的題目我覺得是必要的,Medium部分能掌握的就盡量掌握,Hard我是沒遇見過。 練習方向我自己是把題目的類別區分開來練習,像是Google一下把BFS DFS BackTracking等類別分出來分開練習,個人覺得蠻有效的。 ------------------------------ ➡️ 接下來開始心得分享。 🏠 LINE Taiwan 管道 透過Head hunter投遞。 面試流程 做作業 ➡️ 1輪phone interview➡️ 2輪onsite interview (可能更多,不太清楚)。 結果 沒offer。 心得 整體面試的感覺很不錯,唯一的缺點就是可能因為是年底,等待的時間太長了… 從開始面試到最後得到結果大概搞了快3個月的時間,面的職位似乎是LINE Today的職位。 作業的部分基本上就是leetcode easy~medium題目+一些前端應用題。 一開始是HR安排視訊面試,面試當天有兩位面試官,其中一位還是前同事,世界真的好小XD。 主要是針對履歷上的專案還有前面作業題目的討論跟考一些JS的基本題目,就這樣結束了第一面,後來收到了onsite的邀約,onsite的部分約了兩次。 第一次onsite是跟一位前端主管面試,討論了一些前端知識+履歷問題,比如SSR的應用跟為什麼要用哪些技術等等問題,後來HR進來討論其望薪資等等。原本以為到這一關就結束了,結果HR通知還要約一次final onsite,跟之後的team member面試。 第二次onsite考了不少白板題,大多都是圍繞JS應用下去考,這部分算是前端實戰+基本能力的綜合考察,硬要舉例子的話有點類似像下面這些題目的感覺。
後來就掛掉了,很可惜自己的能力還不足,最後沒有得到offer,但這份經驗對我的能力提升有很大的幫助! 🏠 17Live 管道 透過官方的bamboo投遞。 面試流程 做作業 ➡️ 2輪onsite interview + 1輪HR interview。 結果 offer get 心得 整體面試的感覺很不錯,這次面試的速度很迅速,兩三個禮拜就搞定了。 面試下來的感覺其實也跟LINE差不多,都是要先做作業然後onsite這樣,只是17這邊的輪次就沒有到那麼多。 作業的部分是做個小程式,考對React的熟悉度+細節處理等等,還有JS的基本能力,通過後HR邀約onsite面試。 第一輪onsite的部分,進來兩位面試官,主要是履歷上的討論+白板題,白板題考了一題leetcode easy~medium等級的題目+follow up,還有JS的api應用,題目類型跟LINE面試時遇到的很像,可以參考上面的連結。 第二輪是跟兩位manger面試,主要是討論履歷上的專案跟一些情境題的面試,蠻印象深刻的點是詢問技術問題的時候都能得到很清楚的解釋,沒有那種被含糊帶過的感覺,很被尊重的感覺。 最後HR的部分就是行為面試+對薪資待遇的期許等等,最後很幸運的收到offer! 去年年初的時候17的辦公室搬到仁愛路上,是一整棟獨棟的辦公室,一樓裝潢也很美,重點廁所很乾淨,是個很舒適的地方,有興趣的可以去試試看。 🏠 Binance 管道 HR LinkedIn上邀約 面試流程 全程遠端,HR安排面試 ➡️ 3輪Tech phone interview ➡️ 1輪HR 結果 offer get 心得 Binance的職缺都是遠端的職位,台北也有辦公室可以辦公,看個人興趣要不要去辦公室。 比較特別的是3輪面試都是遠端進行,我遇到的面試官有台灣人也有中國人。 第一輪,主要是跟一位台灣前端面試,面試內容是對一些前端知識的討論,像是討論類似React的render階段跟commit階段分別做了什麼事情或者Redux狀態管理的討論等等,還有些JS白板題,算是中規中矩的面試,面試官人很好讚讚。 第二輪跟上一輪面試給我的感覺差不多,只是這位面試官對性能優化的話題很熱情XD,問了很多這類的問題,像是給你一個情境去優化個web app,自己本身對於效能優化的議題很感興趣,算是個受益良多的一場面試。 第三輪是跟Binance前端業務的大主管面試,這一關可能因為前兩關已經把要問的基本問題都問完了,所以大多是履歷上的討論+經驗的交流,最後來了個設計類型的題目,類似給你些個情境設計JS的Object等等,結束了這次面試。 最後就是HR通知要發offer了,然後談談薪資這樣。 遠端面試真的要特別注意網路的問題,我在第一輪開始的前10分鐘wifi突然出了點問題,還好重開機就好了,真的是嚇屎人。 Binance工作是全遠端的模式,喜歡遠端辦公的可以試試看。 🏠 Tiktok/ByteDance 新加坡 管道 HR LinkedIn上邀約 面試流程 全程遠端,HR安排面試 ➡️ 3輪Tech phone interview ➡️ 1輪HR 結果 offer get 心得 因為面的是新加坡的職缺,所以全程都是用他們家的Lark遠端面試。 這次面試的感覺跟前面的都不太一樣,可能是因為大部分時間都是在考leetcode很新奇XD,整體面試的感覺很流暢非常滿意,從開始到收到offer大概只花一個月的時間。 主要有四輪,三輪技術,一輪HR,前兩輪應該是跟senior前端,第三輪則是hiring manger。 第一輪,一開始針對履歷討論了大概10分鐘後開始考leetcode的題目,難度medium,面試官人非常親切,一開始因為我英文爛,看題目時有點眼殘,面試官還很謙虛的說是他自己的問題沒把題目解釋清楚,給人的感覺真的很棒(英文真的很重要QQ)。面試過程很像是在交流,主要是想理解候選人的CS基礎到哪裡。 另外在面試的過程有一點很重要,解題時不要自顧自的寫,要像個人講點話。解完題後有額外想補充的一定要拿出來講或討論(但別裝B)。這樣可以讓面試官覺得你不只是在解題,而是真的像在實際工作上,遇到問題提出自己的想法跟同事一起討論的感覺,我想這也是面試的重點之一,因為沒有人會想跟機器人工作。 解題過程都是英文進行的,人生第一次英文面試真的有點抖,還好最後順利通過。 第二輪,跟前一輪很像,只是這輪考了兩題,一題Easy一題Medium,另外面試官好像對效能優化的討論挺感興趣,還好之前有做過類似的事情,分享了一些用React profiler的經驗跟怎麼樣針對某些需要調整的component預防re-render等等。 第三輪,這一關是跟hiring manager 面試,應該是因為前兩關都面的差不多了,主要是討論了履歷上的經歷,問了些前端的知識+情境設計的問題,最後我問了跟團隊有關的一些問題。這裡很有趣的一點是,面試官真的很熱情XD,介紹很多團隊在做的事情,比如團隊在用的技術等等,這一關結束後有種半隻腳已經踏入Tiktok的感覺。 第四關,是HR的關卡,很多人到了這一關可能感覺已經上了,但其實這一關被刷掉的情況也是存在的,所以還蠻膽戰心驚。主要都是一些行為模式的問題,還有聊聊薪資待遇等等,等待了大約一個禮拜的時間後offer get! 現在這個職位好像也還在招人,所以想嘗試看看新加坡工作的朋友可以試試,因為新加坡的總部是新成立的,headcount的位置應該還是很多的。 ------------------------------ ➡️ 結尾 以上就是這次的心得分享,整體感覺下來面試的方向都很像,所以歸納成基本前端+JS知識跟leetcode刷題。 其中Tiktok的面試對我來說是最新奇的,因為這是我第一次面幾乎全考leetcode的面試,之前在練習刷題的時候總是懷疑自己是不是真的能夠上戰場,這一次的經驗給了自己很大的信心。 不管是leetcode還是JS的白板題,都很看重基本跟交流溝通的能力,還有真的要明白自己用某些技術的理由而不是盲目跟風,反而會不會用框架等這種問題都沒遇見過,畢竟有心法(基礎)的人學框架真的很快。 最後謝謝耐心看到這裡的人,希望這些分享能夠幫助到大家~
41
回應 2
文章資訊
Logo
每週有 28 則貼文
共 2 則留言
國立清華大學 資訊安全研究所
Binance 好酷 ==
南臺科技大學
很酷哦學長