HR:有特別想往哪個產業發展嗎?
因為待的第一間公司就是科技新創,我很喜歡那裡的環境和氣氛,同事之間會互相討論,如果遇到現有的技術無法處理的問題,也會勇於去挑戰新的技術,我覺得這樣持續學習的氣氛很好,所以未來也想繼續往科技新創發展。
HR:如果現在有三四個 offer 要選擇,會優先考慮的三個方面是?
第一個是公司和開發團隊的氣氛,如果有多人面試就可以看出團隊之間的氣氛如何;第二個是這份職缺能不能帶給我成長;第三個是交通的方便性。
HR:在團隊開發中,團隊的其他人會怎麼形容我(優缺點各一)?
我團隊的人都說我的優點是對於新東西可以很快摸透基本的使用方式,這也讓我在融入新環境這點很有優勢;缺點的話就是會有點完美主義,不過當我太鑽牛角尖時,團隊成員會提醒我說該 move on 到下一個階段了,那我也會照著開發時程走。
Tech Lead:你 CSS 最常用的屬性是什麼?
最常使用 display: flex,搭配使用的還有 alignItems 和 justifyContent,前者是調整和 flex direction 垂直的對齊,後者則是和 flex direction 平行的物件相對位置。
Tech Lead:若不同 CSS 檔中有同一個選擇器,但其中的屬性不一樣,那顯示時會以哪一份的為主?
我回答如果有選擇器名稱相同的情況,那會使用較晚定義的那個。後來主管有說其實還有其他規則,像是 id 的優先順序大於 class 等等。
Tech Lead:JS 語法題,三題和變數 scope 相關的問題,要回答最後會 console.log 出什麼結果
就是和 scope 相關的問題,要詳細回答為什麼。
Tech Lead:Promise 和 async/await 的關係為何?
Promise 是一種改善 JS 非同步處理的語法結構,本身可以使用 reject 或 resolve 等方法去回傳 Promise 物件,回傳後的物件則是可以用 .then 或 .catch 等方法去操作。
async/await 是建構在 Promise 上的語法,async function 中的 await 語句會等到 Promise 回傳後再往下執行,是比 .then、.catch 等更方便的語法。
後來主管有繼續問說,所以這兩者只是一個先後出現的關係嗎?還是有其他相依關係?這邊我就沒有回答出來了。
Tech Lead:React state 解決什麼問題?
可以讓畫面只渲染某些部分。
Tech Lead:能介紹一下 Redux 嗎?通常你會在 store 裡存放哪些資料?
Redux 就是一個狀態管理套件,可以很方便的存放變數,讓我們在開發時可以不用將變數一層層傳遞,所有變數都是從 store 取得和更新。我通常會在 store 裡放使用者登入相關的資料(像是使用者名稱或設定等等)和很多元件都需要共用的資料(像是在查詢網站中,查詢條件就是經常會使用到的資訊,所以會放在 store 裡)。
Tech Lead:之前的工作經驗有做過 code review 嗎?有印象深刻什麼在 review 階段被抓到的 bug 嗎?
我們在 merge PR 時都會需要 code review,我在這個階段沒有什麼被抓到的 bug,倒是在第一份工作一開始時被抓到一些命名傳統的小問題,不過那是因為一開始經驗還不夠,都隨自己的習慣去命名,後來公司的前輩就有跟我說一些命名的傳統,這些都記下來之後就沒有再被抓了。
CEO:會寫測試嗎?
之前沒有這個經驗,所以就說沒有。後來面試官跟我解釋了 CI 的流程,也說這邊的工程師都要會寫自己的 code 的測試。
CEO:能簡述之前做的其中一個專案的架構嗎?
這題是要以團隊成員的角度,對要新加入的工程師解釋這個專案的架構,我首先說了這是一個前後端分離的網站,然後負責前後端的各有多少人,網站運作的流程是使用者點下查詢後會呼叫後端的 API,API 的路徑大概是哪樣等等。
CEO:知道 GraphQL 嗎?
之前有在專案中使用 GraphQL 串 MongoDB,所以就說 GraphQL 是可以更方便的查詢 noSQL 資料的方法。不過後來面試官有補充說它其實跟 noSQL 沒有關係,只是可以簡化查詢的程序而已。
CEO:有使用過的 GitFlow 是什麼?
前公司是在 commit 前都有透過 ESLint 檢查程式碼,建立 pull request 之後有 code review,過了之後才能 merge 到開發的分支。
CEO:解釋一下 RESTful 的概念
是一種 API 的設計原則,讓 API 的命名更加簡潔易懂,其中的原則有像是路徑裡不需要有 get 或 post 等動詞,直接寫要取得的資料名稱就好。
CEO:能分享一個自己覺得蠻特別的經驗嗎?
照自己的情況回答就好。