Toptal 面試

這次準備面試前先去應徵了 Toptal。一方面是想說作為面試的練習,另一方面如果真的上了,也可以在空閒時做一下 freelancer 好像也不錯。

Q&A

基本上是透過 Skype 進行一個簡單的訪談,包含之前的工作、從哪得知以及為何想加入 Toptal 等等。這關最主要是確認英文的溝通能力,整個過程不到十分鐘。

需要注意的地方是面試官有可能不是英語系國家的人,所以多少會有一點口音。如果怕聽不清楚最好戴上耳機,會比較好一點。

Coding Exercise

在第一關要結束前,面試官會寄送一封包含測驗連結的信件,在兩天之內要完成該測驗。測驗基本上是在 Codility 上進行的,一但按下開始,就要在 90 分鐘內完成三道題目。強烈建議一定要先試過 sample 的測驗熟悉一下介面,會比較好一點。

三道題目大致上做起來是簡單、中等、困難各一題,將有把握的問題解完整會比三題都解一點點來得重要。我大致上是將簡單及中等的解完,但是感覺好像有 edge case 沒考慮到,困難的留到最後才試,並未完成。

Technical Interview

完成測驗後隔天收到預約下一位面試官的信件,不過信件內並未提到上一關解題的成績。

這關是透過 Google Hangouts 進行的,面試官會先告知上一關的成績,並希望你解釋其中一題的演算法。我在簡單與中等的題目上都得到 85 分,也就是有 edge case 沒解到。比較意外的是中等跟簡單的題目拿到一樣的分數,我以為中等會略低一點。但後面解釋的地方講的蠻亂的,這也讓我發現自己對於用英文解釋技術相關的問題還要再加強。

還好面試官還是讓我繼續這一關的測驗。跟上一關一樣是解題,不過面試官會觀看整個解題的過程,一題只有 20 分鐘。這次測驗是在本機用自己習慣的環境來解題,結果題目一下來我就整個傻住,因為要從一個文字檔將資料讀入。讀檔這東西對前端工程師來說實在是很苦手,還好之前有用 Node.js 寫過,不過一開始我竟然想直接 copy paste 資料進程式裡,造成 IDE 當掉,面試官應該有傻眼吧 XD

不曉得是不是一開始的開局的關係,造成我整個解題過程都很緊張。其實讀檔兩三行就寫完了,但是後續整個思路都不佳,看題目也看了很久。結果就是演算法進入的點並不好,而且後面一直在硬寫。最後多花了兩分鐘完成的程式只測過了三個測試資料,第四個有 edge case 沒有通過。面試官很好心的又給了我兩分鐘讓我試著修改,但是我的程式實在太亂,太多硬寫的地方,最後要再改已經無法完成了。

Thoughts

於是我的面試停留在這一關,實在非常懊惱。懊惱的地方在於其實面試結束後我重新再寫過一次,十分鐘左右就完成了。實在不曉得為何一開始要那樣解,不過後悔也來不及了,只能說自己對於解題的準備還不夠吧。解題其實除了演算法之外,也包含讀懂題目以及解答的速度,缺一不可。而且因為開局實在太過緊張,才造成實力無法正常發揮,這也是要再加強的地方。

這次面試的過程也算是讓自己學習到不少,個人的實力有多少,除了自己清楚知道之外,如何讓別人也同樣感受到,也是一件重要的事。就像運動員在練習時成績不論如何,真正到了場上能夠發揮多少實力,也是實力的一種。

Practice makes perfect.