Junior Front-End 面試心得 - 2022 Q1

這篇文章主要分享的是 2022 Q1 前端工程師的求職過程,全文包含投遞履歷和面試心得兩個部分。
投遞履歷部分主要針對前端工程師這個工作和其他工作領域的不同來做說明,而面試心得部分則盡量去除主觀因素的影響並以客觀的角度陳述整個面試過程。

前言

由於我預期看到這篇文章的人也已經是將自己準備成找工作的狀態了,所以本文不會包含如何自學、以及如何準備作品集等等的資訊。

如果你才剛踏上學習前端這條路,這部分網路上也已經有非常多有用的資源。畢竟想要靠電腦吃飯,利用 google 解決問題的能力也是很重要的!

至於很多人可能在意的個人背景部分,我認為掌握好自己能控制的事情才是更為重要的。而公司在確認一個人是否符合資格的過程中,學歷也只是其中的一個項目而已。

投遞履歷

關於找工作,每個人可以承受的時間成本不同,導致選擇的標準和投履歷的方式都有所不同。

對於準備入行的情況來說,除了朋友推薦等少數的例外,大部分都還是透過人才招募網站的管道進行。其中,數字網、Yourator、Meet.job,會是我認為比較好用的網站。

這邊以沒有特定公司偏好的海投為例:

1. 產業相關

主要以軟體業、資訊服務業、網路相關產業為主。值得一提的是,今年因為普遍的缺工,導致科技業也有許多不錯的機會。

然後在公開履歷時記得要勾選取消保險、傳銷、殯葬業的選項,以節省雙方寶貴的時間。

2. 公司相關

本土或外商?規模是大還是小?偏新創或傳統?

公司組織架構?公司福利?

加班文化?距離遠近?

這部分的偏好因人而異且各個行業都通用,所以不贅述。

值得一提的是公司產品部分,有的公司並沒有自己的產品,而是以做客戶案子為主的接案型公司。查看網路上的評論,這類的工作「通常」比較操,時程壓力之下會需要加班,使用的技術也較為固定。若客戶為政府或金融機關,則有可能需要駐點。不過相對地,通常在談薪水時天花板也較高,可以預期高上 5k 左右。

3. 工作相關

(1) 制度

是否是全職?遠距工作?需不需要駐點甚至出差?

受到疫情的影響,過去門檻相對高的遠距工作,對於現在的軟體工程師來說已經是一個常態。儘管前工作沒有過這樣的經驗,建議也可以將這樣的工作型態列入選項,除了增加更多機會,說不定也會讓生活的樣貌變得更加不同。

(2) 內容

留意工作流程,面試時再深入了解或找機會提問

JD 上都會寫到工作內容,大方向不外乎 development、feature、fix、refacturing、optimizing、research。團隊裡面不可能同時全部都碰,且個人認為主要在做哪些事對於第一份前端工作來說甚至也不是需要優先考量的點。

不過之所以需要特別留意的原因是,不同的面向背後都會對應到不同的工作流程,而這同時會牽涉到公司對於程式碼品質的要求。提升自己程式碼的品質,對於職涯發展是有相當程度的幫助的。

不過這部分因為每間公司都會有不同的做法,所以可能要等到面試時才有機會更進一步的了解。

(3) 使用技術

公司在 JD 上通常會寫兩個部分: Requirement 和 Nice to Have。根據個人經驗,基本上只要會個七八成就有機會收到面試通知。

至於框架部分,以 2022 年初來說 React > Vue >>> Angular。筆者雖然學的是 React,不過也有應徵上使用 Angular 的公司。畢竟框架只是一個工具,透過資料綁定、生命週期、UI render 等等的概念實作讓你更輕鬆的開發。

重點還是在核心的 Javascript 能力。

面試心得

投遞 68 家,獲得 19 個面試機會,面試 11 家,錄取 6 家。
以下心得不包含現職公司。

塞席爾極光科技

  • 面試時間:2022/2/21 (一) 15:30 (約 1.5 小時)
  • 地點:建國北路
  • 流程:筆試 ⇒ 人資面談 ⇒ 技術主管面談

筆試題目

1. 用過什麼工具 (framework, template, preprocessor...)
2. websocket
3. cors 如何克服
4. 用過什麼 css 排版方法
5. 費氏數列
6. React 生命週期
7. Virtual DOM
8. Redux 用處

資訊

  • 技術:Next.js, Tailwind, Golang
  • 團隊:前端加主管 4 位,1 位 app 工程師
  • 開發方式:Scrum

心得

辦公室空間大,幾乎都是男員工,大家都非常安靜地在工作。根據人資的說法,主管喜歡自律的員工,所以工程師都是台大為主。

一開始先被帶到人資辦公室寫筆試,寫完後進行人資面試。簡單自我介紹後,先由人資介紹公司及產品,後進行提問。其中印象深刻的一題:「什麼樣的原因會促使你想要離職?」

結束人資面試後,被帶到另外一間會議室和技術主管面談。技術主管的問題不會很刁,主要為 React/Redux 相關,另外有問 git 的 rebase 和 cherry-pick。

結果

無聲卡

名留

  • 面試時間:2022/3/8 (二) 11:00 (約 1 小時)
  • 地點:南京東路
  • 流程: 技術主管面談 ⇒ 董事長特助面談

資訊

  • 團隊:1 位 PM,4~5 人的 web 團隊和一名前端實習生
  • 技術:React, Node.js

心得

技術主管面談:自我介紹後開始 demo 專案、資料夾結構。另問遇到什麼困難和學習過程,照實回答即可。

董事長特助:語速快,主要針對履歷作提問。專案已達 90% 左右,主要工作以維護和修 bug 為主,之後會朝向 web application 做開發。之所以不找外包是因為有自己的功能想開發,未來想結合 VR, AR 的應用。敘薪時提到無經驗範圍為 36K~40K,不過 104 上寫的明明是待遇面議,因此面完就決定不考慮這間了

結果

offer get

悠福科技 (Showmore)

  • 面試時間:
    • 一面:2022/3/8 (二) 15:30 (約 1.5 小時)
    • 二面:2022/3/19 (一) 16:00 (約 1 小時)
  • 地點:
    • 一面:線上 google meet
    • 二面:吉林路
  • 流程:
    • 一面:front-end 面談
    • 二面:CTO 面談

資訊

  • 技術:React, Vue, Golang
  • 開發方式:Scrum

心得

一面

一面的面試官為兩位 front-end,會先請你在 15 分鐘內做完一份約 10 題的測驗。

程式題不包含演算法,主要考寫法和輸出順序。基本上觀念題若可以達到不用猶豫即可作答的程度,應該就能在時間內寫完,不過我超過了將近五分鐘也沒被面試官提醒就是了。最後驚險地答對 6.5 題。

簡單針對考卷檢討後,兩個面試官分別提問。第一個主要針對 React,同時也有看作品集,詢問我專案內的上傳圖片是怎麼實作的。第二個提問較隨性,主要是針對履歷內寫到的技能,我被問用 async/await 實作 sleep function,最後沒有寫出來。

整個過程像是同事之間的討論蠻愉快的,面試官會根據你的回答有沒有打在點上,去知道說你到底熟不熟悉某些觀念,若發現你觀念有點不清楚會立刻和你說,並用核心且簡單的方式去解釋。整體來說收穫不少。

二面

一面過兩天後收到了二面邀請,這次須親自前往公司和 CTO 面談。

公司位於吉林路舊大樓,辦公室空間狹小,有兩個空間分別擠滿了工程師。CTO 提到公司目前所在地是由天使投資人提供,之後會有搬家的打算。

CTO 人氣場強大,擁有讓空氣凝結的能力。想事情動輒花費 10 秒以上,眼睛還會閉起來。不按牌理出牌,聽到和他想法不同的事情會馬上打斷你。

公司主要是做數位行銷相關、電商開店平台,並持續會做 prototype 的發想。目前公司正在試行強制 code review 的制度,把團隊比喻成大部隊,強調任務執行力、主動、心理素質,並預告會有一定程度的壓力和辛苦。

個人部分,先對於個人背景做簡單地了解,再簡單地問了一些關於專案的內容。比較特別的是,很想知道我在實務工作上的工作流程、問題解決、如何壓期限等等。嘗試結合自己過往的經驗回答,不過卻似乎一直無法符合他的期待。最後甚至問到工作的意義、人生目標等等。

問完期望薪資後,似乎認為我開得太高,要我 promote 一下自己。再詢問目前求職的狀況和處於什麼階段,了解我對找工作的優先順序後,提出是否能接受 part-time。由於最後自己提到已有其他 offer 在考慮,最後有在我期望的時限內回覆我錄取與否。

結果

感謝信

雄獅資訊

  • 面試時間:2022/3/9 (三) 11:00 (約 1 小時)
  • 地點:線上 google meet
  • 流程:技術主管面談

資訊

  • 技術:React, 手刻 css 元件
  • 團隊:10 餘位成員

心得

兩位工程師主管面試,整個過程主要分為兩個部分,前半段為專案 demo,介紹完後面試官會提問,主要針對專案使用的技術,以實作方面為主,不會問到太深的底層原理或優化方式,熟悉自己的專案即可。React 問題只問 li 元素 key 的作用,我的回答讓面試官認為 React 程度還 ok。整體難度算十分簡單。

後半段為公司介紹,公司在內湖石潭路(沒有捷運且荒蕪的地方),上下班公司有派接駁車來往捷運松山或昆陽站。

公司和網頁有關的有二到三組,這組主要是負責品牌系列的網站以及自家 for 業務用的開站系統,其他還有行銷組以製作活動頁為主等等。

目前工作主要以程式碼的重構 (classical component ⇒ functional component) 和維護為主,未來會持續開發開站系統新 feature。

結果

一週後 offer get

享健身、健身管

  • 面試時間:2022/3/9 (三) 15:00 (約 1 小時)
  • 地點:復興北路
  • 流程:作業、一面:技術主管面談、二面:CTO 面談

心得

面試前須寫作業,十題左右,一半是程式題。

公司在商辦頂樓,門禁採用他們自家的空間管理系統,辦公室環境不錯,開放空間且配有升降桌椅,有多間會議室同樣也是採用空間管理系統。公司是享集團,主要在進行共享空間相關的創新,旗下業務相當多,包含享健身運動場館以及健身管運動場館管理系統。

一面

先自介並簡單了解你這個人後,開始 demo 專案,過程中穿插主管的提問。主管的提問難度高,不是像悠福科技那種針對 js 的語法觀念或是網路上常見的面試考題整理,而是會在一個情境下不斷衍伸,並引導到最核心的問題,同時著重在實務上會怎麼做調整和優化。

最後公司介紹的部分講得十分詳細,在我問的問題之外,也會衍伸到相關的一些。例如我提問目前使用的技術,面試官會延伸到為何選擇這個技術當初的各種考量,分析不同技術之間的利弊,以及在未來會朝向什麼方向。提到目前新專案都是會使用 react ,所以會要非常熟悉 react。

感覺上對程式碼品質的要求是這次面試當中最高的,是要求技術的團隊。本來以為沒機會了,兩天後收到了二面的邀請。

二面

主要針對個人背景做提問,面試官似乎對大學領導社團的經歷很感興趣,認為可以對應到專案前期工作分配時會出現的問題。

整體感覺非常好,像聊天一樣沒有什麼壓力。主要的時間都在分享公司的經營和理念:採用美式管理、扁平化溝通,強調積極面對問題的態度 blah blah… (到這邊我就知道應該是涼去了)

被問到比較有印象的題目

1. 為什麼要用 orm
2. nodejs 使用 sequelize 和寫 sql query 的差別
3. 關聯式和非關連式資料庫的使用情境
4. CORS
5. 前端 JSONP script 方法
6. 頁面優化方法
7. useMemo, useCallback
8. SSR
9. React.Component 和 React.PureComponent 
10. fetch, axios 比較
11. Promise 和 async await 混用
12. async function 的 error handling

結果

感謝信

中銳科技

  • 面試時間:2022/3/10 (四) 10:30 (約 1 小時)
  • 地點:八德路
  • 流程:技術主管面談

心得

10 人以內的團隊,公司不大,主要有四個區域:辦公區域(有隔板區分一格一格座位那種)、一間會議室、茶水間和總經理室。

面試官有三位,分別為 PM (面試官 A)、全端工程師 (面試官 B) 以及另一位面試官 C(不知道職稱,最後負責 demo 公司專案)。

整個過程主要分成兩部分,前半段是專案 demo,面試官 A 會針對產品的流程做提問、面試官 B 因為是後端背景,所以對專案後端比較有興趣。沒有問技術相關的問題。後半段則是面試官 C 進行公司介紹以及 demo 專案。

目前產品尚在開發階段,有合作的 UI 設計會出 figma 設計稿。而前端部分目前是手刻元件,面試官 B 表示在 dependency 方面沒問題的話會保留導入新技術的空間,並同時強調主要還是先以將產品做出來為主。

至於招募理由是原前端要離職,需要補上他的位子協助面試官 B 做開發。面試官 B 說他主要是後端背景,前端沒有玩的很深,因此很高機率的情況是沒有人帶。
因人數少所以開發方式蠻自由的沒有什麼規範,除了每週開始和結束的討論和 review,其他時間有問題就隨時可以討論。

結果

無聲卡

康大科技

  • 面試時間:2022/3/10 (四) 14:00 (約 1.5~2 小時)
  • 地點:南京東路(華航總部樓上)
  • 流程:技術主管面談 ⇒ 人資面談

心得

上樓後分為兩邊,一邊是康大,一邊是其他的小公司。面試的會議室位在另一邊,於是無法見到辦公區域的狀況。被總機帶進去後,人資隨即進來要我填寫人事資料。填完後等了一陣子,人資來收回資料並請技術主管過來面談。

技術主管是跨部門的主管,也有自己的團隊約 10 人左右。人很親切,簡單聊了一下之後 demo 專案,之後是有一份考卷約十題,用口述的方式回答。最後有兩題演算法,一題比較簡單是找因數,一題是 Maximum Subarray,因為覺得寫不出來加上面試官還在對面等,想了 30 秒後就投降,並簡單解釋了自己的思路。最後問了幾個大方向的問題,感覺得出來主管蠻在乎團隊的學習,每個月會有技術分享會,也有帶自己的團隊寫鐵人賽。

面談結束後叫我稍等,等了十來分鐘人資才走進來。敘薪過後便馬上得到了 offer,並開始動之以情、說之以理。有印象的幾句話:「很少人可以得到面試官的認同,你是其中一個」、「就我到目前為止的觀察,你應該是一個做事很認真的人」

隨後得知整個報到流程:一開始會先在前面那名跨部門的技術主管底下的團隊進行新生訓練。時間不超過三個月,達到他覺得沒問題的程度之後就會被公司分配到各個專案的團隊,開始做案子的輪迴。

結果

offer get

仁寶科技

  • 面試時間:2022/3/15 (二) 15:30 (約 0.5 小時)
  • 地點:microsoft teams
  • 流程:技術主管面談

心得

面試前除了要進系統填人事資料表,還有適性測驗和邏輯測驗,題目數量都蠻多的讓人有點厭煩。面試時不用 demo,自我介紹過後由兩位面試官進行提問。

第一位面試官主要針對個人背景提問,技術題只有問 props 和 state 的差異。另一位面試官一劈頭就問我專案的 sample code 是什麼,原來他以為我是去把別人的程式碼拿回來改成自己的專案。後來還說沒聽過 heroku。不知道是不是沒開鏡頭的緣故,兩人感覺都沒什麼精神。

因爲沒有介紹公司在做什麼,最後開放提問時才自己問了一下。目前主要是維護舊的兩個穿戴式裝置的 React 專案。公司使用的技術方面,三種框架都有使用,未來大型專案會使用 angular。另外有先預告,工作一段時間過後除了前端以外也會需要接觸到後端,主要使用 php 加上一些 Node.js。

結果

無聲卡

雷技資訊

  • 面試時間:2022/3/16 (三) 13:30 (約 1.5 小時)
  • 地點:南軟E棟
  • 流程:作業 ⇒ 筆試 ⇒ 面談

心得

公司是寫 Angular,面試前有作業。需要用 angular 做出一個 to do list,樣式和功能皆套用 w3school 上的範例。

公司在南軟E棟。20~30 人左右一間辦公室和一個會議室。到的時候人資先請我寫一份考卷,限時40分鐘,題目難度簡單,除了最後一題考的 promise 偏複雜,其他都是蠻常見的面試題。

面試官為一位技術主管和一位前端,會先問技術相關問題,再簡單瞭解一下個人背景,最後介紹公司。然後因為公司是寫 angular,所以有問到對框架的了解程度,回答的時候大致上可以往生命週期、數據綁定、狀態管理三個方向去延伸。技術主管會問何謂程式碼的品質。

產品方面主要有兩個,碳足跡追蹤系統以及職業安全衛生管理平台。同時會接美國客戶的案子,不過目前比例較少且趨近於零。有時會需要和美國或其他國家的團隊互相合作支援,晚上開會時隔天可彈性工時。

團隊方面,技術主管會詳細地說明開發流程和專案管理方法,有 code review 及 QA。開發團隊 10 餘人,前端部分 2 人,目前工作內容為維護修 bug、做新 feature 或客製化需求。

結果

offer get

艾普特

  • 面試時間:2022/3/18 (五) 15:00 (約 1 小時)
  • 地點:復興北路
  • 流程:作業 ⇒ PM + frontend面談

心得

前測題目分兩部分:觀念題及實作題。觀念題基本上 90% 來自 這個網站。實作題一題是計數器,一題是 css transform,難度低。

當天三點面試,公司在中山國中站正上方,出站後從旁邊的商辦入口搭電梯上去就到了。進門後發現團隊正在進行一個月一次的講座時間,當天看起來是請外部的教育訓練講師。

面試官分別為一位前端和一位 PM。前端會先簡單問幾題技術題(主要為 React 及 CSS),PM 針對背景做一個大致上的提問,接下來便開始介紹公司。

公司目前分三個產品線,主要是數位廣告投放,有開發自己系統,和不同後台和廣告主做串接。另外還有做電商平台、行銷整合平台。每個線都有前端、後端和 PM。目前要應徵的是廣告這條線的職缺。主要可能會用到 css 的一些基本的動畫。

除了產品之外,PM 對於組織架構、工作流程、專案管理、公司福利也都有很詳細的說明。另外有被問到一題:「身為一個 RD 如何和 PM 溝通技術的問題?無法達到某需求時怎麼辦?」PM 表示之所以會問這題是希望當 RD 遇到問題時,不要害怕向團隊其他成員提出,大家一同解決。

因為事先有在網路上查到公司在 天眼通 上的評價,有特別問到目前組織架構的改革。PM 也很懂我要問什麼,並分享了他過去所知的狀況,也提到目前已無技術長這個職位。強調工作流程、專案管理上更新的歷程,也慢慢形成團隊文化,希望團隊合作、互相溝通、互相協助解決問題。

整體來說實際面下來的感覺其實還不錯。雖然只接觸到產品部門的人,不過也是完全超出了原先對這家公司的期待。如果覺得薪水可以接受(PM 提到無經驗的前端約 40k~45k),對工作內容也不排斥,是蠻推薦大家親自走一遭來面試看看的。

結果

offer get

結語

不知不覺已經入職三個月了,現在回想起來還是非常感謝當初那個瘋狂面試的自己。

面試這件事說來奇妙,即使自認當天表現和反應都不差,最後還是有可能沒有拿到 offer;反之也有覺得當天接球沒有接好,最後卻從競爭者中勝出的例子。

因為這是一場結合天時地利與人和的活動。比起「條件最好的人」,更多公司追求的是「當下最適合的人」。當然過程中免不了自我懷疑,但希望你能夠:

  1. 掌握好自己能控制的事情,並將其範圍越擴越大
  2. 多面試,並在一次次的面試過程中逐漸調整

凡事豈能盡如人意,但求無愧我心。希望大家都能找到心目中的理想工作!