沒多久,人都到齊了,開場就是自我介紹,打開我的英文自我介紹
中間夾雜各種google翻譯出來的東西,以及拼湊出來的簡單英文句子
雖然講的過程中會抖,但起碼還是把他念完
簡單介紹後到了技術環節,就可以用中文了
首先就被問到我的github裡面的某個小專案
被問到的當下我只能說我困惑了,因為我根本不記得自己寫過
後來看了下應該是之前做測試的時候用的
但我真的看不懂三年前的我到底在做啥,即便我有寫readme
隨後就是問到我近期的專案,問說我是否知道某某東西
說真的很多東西大多第一次聽到
接著就是Live coding環節,內容不難,是個簡單的React專案
就是三個人看著我改code,對方要我想改就改,不一定是說只有bug
由於我平常工作就很常寫code給人看,不會說到很生疏
所以就是把我平常工作習慣直接展現出來
把各種結構先元件化,狀態分離之後再開始看問題
順手修了些bug,最後就發PR等著code review
發完PR之後就開始問我一些問題
- 面是我的後端工程師問我說,怎麼去trace別人的library?
- 如果library是閉源的呢?
- 有沒有看其他open source
這問題確實不錯,之前在研究react-table的時候
因為他們是開源,所以我是可以clone下來直接跑原始碼的
當初就是直接下log去看,只要流程大致了解就好
閉源的話則是因為前端有瀏覽器開發工具
可以大致看看流程,但如果code都編譯過的話,可能就比較沒辦法
看其他的open source的部分,就提到我上次稍微瀏覽過的grafana
因為自己要做的功能跟這塊有點類似
所以觀察他們怎麼處理複雜的狀態
就將類似觀念帶到自己的專案當中
接著是前端leader問我問題,比較有印象的是下面這問題
「對於React 從class發展到推薦用function有什麼看法? 」
我對這很有感
早期學React的時候,當時的我懵懵懂懂
對於class等物件導向寫法一概不通
所以看到class說真的很多東西運作原理都不知道
直到最近因為有用到,才漸漸理解這些概念
所以我覺得React轉而推廣function
也有可能是因為想要推廣他們的語言
因為滿多寫前端,可能是ES5起來的
對於class並不熟悉,所以改用function可能會比較好上手
後面還有問到說 ES6 的 async 與 Promise 有甚麼差?
其實細講來說我並沒有太多研究,只是就理解上來說
async是回傳一個Promise物件,而Promise就是宣告這個物件直接定義他後續的行為
在我專案上使用的時候,async可以帶來更好的可讀性
但是我覺得,我並沒有很深刻的去理解這兩個差異
問問題結束之後,後端工程師就先離開會議了
接下來則是CTO跟前端專案leader繼續跟我聊天
基本上就是互相交流提問
那也講到對方在經營公司的理念、原則與文化
大概統整下來是這樣
- 彈性上下班,全遠端上班
- 原則就是功能要準時、程式要品質
- 只要工作有達成,不管你在哪都可以,想半夜才工作也沒關係,會有人陪你(?)
- bouns 會按照團隊工作的負擔來給,誰付出多少他都會掌握
- 團隊內員工很會幹話,且容易中英文夾雜
最後,我問了對方我是否還有要精進的部分,無論個人特質或是技術?
得到了CTO滿不錯的肯定,說在應對上他覺得算不錯
也知道英文不是我的強項,但至少願意準備
而前端Leader則是建議我多多去研究JS、React的基礎
不要只是追最新技術或是library,把基礎打得更穩
總結下來算是滿愉快的交流,雖然不知道能不能二面的機會
但確實也是不少收穫,尤其是第一次用英文自我介紹
讓我的膽量也提升不少,連很破的英文都敢說,中文的應該沒問題吧XD
對方的團隊規模也相當大,詢問下來也發現到說原來有許多自己不知道的工具以及技術
這次的面試收穫滿滿,也期許自己可以繼續成長