公司在南港軟體園區E棟的3樓,走進園區內部,從台新銀行旁邊搭電梯或開門走樓梯上去即可(需先換證拿門禁卡)。環境是一條條的
走廊,每間辦公室都是一間公司。
進門後向行政說明自己來面試,接著被帶到小房間填寫內部履歷及考卷,兩者皆為英文。筆試與程式相關,包含SQL、迴圈、演算法(走訪樹)與物件導向觀念,可自行選擇作答語言,如Java、C#與Python。最後一題為邏輯測驗。
1小時後有人來收履歷及考卷,之後進行一對一面試(中文),約1小時15分鐘,第一次面試總體花費時間2小時15分。
後續的第二、三次面試是與香港的主管進行(講中文),屬於電話面試(使用Skype,不必視訊),個別花了40分鐘左右。
面試問答
知道公司是做什麼的嗎
面試前先瀏覽一下公司網站,之後向主管簡介產品是用來做什麼的,服務什麼類型的客戶。
大學專題的軟體規劃
當時在白板畫出前端發送請求到後端,後端將存取資料庫再回應前端的圖案。由於筆者無正職經驗,因此軟體規劃與實務相比難免不理想。建議的回答是分前後端來說明(如框架、資料庫),若有軟體分層概念可加以補充。
為何專題的HTTP請求都選用POST方法
此為筆者知識不足,導致軟體規劃不佳而被質疑的地方。當時回答GET與POST方法最常見,但GET的做法是在網址攜帶參數,暴露資料是不安全的,因此使用POST。理想的做法是根據各個操作情境,開出GET、POST、PUT與DELETE的API。
做專題遇到最困難的地方
三次面試都有問到。提一個有一定困難度,但是好回答的難點。接著說明解決方式,如程式如何調整,資料如何儲存。
依你所學,進入公司可能容易受挫折,要如何適應
上班時,遇到問題會向同事詢問。另外在開發過程中,也利用機會觀察別人怎麼寫code,慢慢累積出團隊需要的能力。若自身有餘力,亦能將程式專案於下班時間帶回,研究其運作原理(若公司允許)。
你的特色
優缺點都可以講。優點建議提有益工作的。缺點建議別提會影響工作的,亦可提到能夠支撐這個缺點的經驗,例如個性內向但有當過工讀生,跑腿時會與不認識的人對話。
為何專題同時使用兩款資料庫,不使用單一一個就好
前情提要:筆者使用MSSQL存放一般資料,如商品、會員。而為了實現推播功能,照著網路教學而使用Firebase Realtime Database。若要調整當時的回答,筆者會說明使用MSSQL是因為學校教的是這個,透過專題希望能多加練習它。而Realtime Database則老實回答是參考網路範例,自己應該試著開發出一套推播功能的機制,或請組員幫忙研究。意即承認自己不足。
面試建議
1. 實務經驗不足的人,建議先行了解RESTful API的設計,及前後端如何串接。
2. 對自己作品集要足夠了解,例如某段code為何這樣寫、選用某技術或平台的原因。
3. 有關程式與技術的問答,未必有標準答案,主管期望你嘗試捍衛自己原先的看法。
4. 無職場經驗者,建議要知道一些專有名詞(包含英文),才容易反應得過來。
5. 很基礎但平時容易忽略的觀念要準備一下。如抽象類別與介面的差別,你的使用時機。物件導向的is-a和has-a觀念。