作者gocreating (小平)
看板Soft_Job
標題[心得] Wearisma 面試心得
時間Sat Mar 3 16:37:21 2018
網頁好讀版:
https://goo.gl/ZegAep
--
第一次知道Wearisma這家公司是因為實驗室帶我的博班學姊向我推銷,說她有個學妹在裡
面(其實也是我的學姊),所以我剛好有機會內推賺到面試機會。完整的職缺要求和公司
簡介在PTT徵才原文「[徵才] 偀向軟體Wearisma徵全端工程師(70~90k)」中都有提及了,
是一間英國公司,2018/03要在台灣設立總部,所以目前極力徵才中,雖然優先尋找一個
月內可以onboard的資深的工程師,但像我這種菜逼八也是會給予面試機會,未來有
junior的職缺可能也能進吧!
職缺概要
應徵的是全端工程師,基本要求如下:
- 資訊工程背景相關系所畢業,3年以上工作經驗
- 良好的英語會話與表達溝通能力及傑出的團隊合作
- 與國外同仁開會時,能接受彈性上班時間 (例如:12PM - 8PM/每週1~2天)
- 致力於撰寫簡潔有效率、可讀性高、易於維護及測試的程式
第一階段面試
面試前有信件提醒面試過程約20~25分鐘,前後分為General Questions和Technical Task
兩部份。面試官大約在面試開始前一刻加我skype,然後用訊息告知即將撥打通話,接通
後會簡單問候,然後說明稍後的面試流程。
自我介紹
首先是簡單自我介紹,我說明自己是主修資工,研究所的方向是ML相關,未來想成為一位
全端工程師,平時會做一些Side Projects來娛樂一下,面試官這時候感到興趣,請我挑
一個Side Project來介紹,我就提供了SomeGuy(網頁好讀版中的網站)的網址給他,我一邊說明,面試官也一邊
詢問使用了什麼技術。
研究內容
接著她表示對我的研究非常有興趣,也想瞭解(畢竟徵才文中就有提及要做ML相關的工作
),我也簡單介紹了自己做的研究方向還有使用的技術,接著被問到我的研究有什麼樣的
Challenge,我就繼續順著問題補充說明,算是勉強過關。
知道Wearisma在做什麼嗎?為何應徵?
其實在面試前有翻過Wearisma官方網站,但還是看不懂網站上的介紹,所以面試官向我詳
盡地介紹了一次Wearisma是什麼樣的公司,至於為何應徵的這題我倒是沒有太多想法,就
回說想當個Web Developer。聽完面試官講解後,我對於Wearisma的理解如下,給大家參
考參考:
Wearisma是一間軟體公司,提供一個平台來媒合品牌(Brand)與追蹤者(Influencer)
,但主要客戶是品牌,Wearisma會從追蹤者的社群網路中蒐集資料,運用資料分析技術將
結果匯報給品牌,作為行銷(Marketing)的依據。
Technical Task
題目長這樣:
Given a string with left and right parentheses, how you verify the string is
valid (balanced)
Ex. ((())()()()) -> Valid, ()) → Invalid
一開始我覺得這問題很適合使用Stack來進行運算,解釋完想法後面試官送了
())這個case
過來,我也理解這樣子Stack在Empty時會發生問題,就改用Counter計算括號的方式重新
說明新的作法與思路,然後又再一次被
())(這個special case考倒,於是我又想了新的方
法,面試官最後才放過我XD
中文問答
問完Technical Task後,面試還剩最後3分鐘,面試官也知道我英文頗爛,就特例跟我用
中文對談了(面試官也是台灣人),大致就了解一下公司概況,台灣公司3月才會正式開
始,所以目前還沒有Developer,最後就詢問何時能開始工作,有問題也能信件保持連絡
。
第二階段面試
第二階段是純粹的Coding Test,面試官開了一個共同編輯的google docs給我,上面已經
列好題目如下:
Given an array A, write a function to move all 0's to the end of it while
maintaining the relative order of the non-zero elements. For example, A = [0,
1, 0, 3, 12], after calling your function, A should be [1, 3, 12, 0, 0].
乍看下會覺得很簡單,開新的陣列來存不就好了,但是往下一看附帶了2項限制:
Note:
You must do this in-place without making a copy of the array.
Minimize the total number of operations.
function可以用pseudo code來寫,一開始可以寫較差的版本,例如我先建立一個O(n^2)
的寫法:
function move(arr) {
let len = arr.length;
for (let i = 0; i < len; i = i + 1) {
for (let j = i; j < len; j = j + 1) {
if (arr[i] === 0) {
arr[i].swapToNext();
}
}
}
}
一邊寫的過程中,面試官會詢問你的思路,還會直接在docs上面用範例來演示程式執行的
效果,還給了我提示讓我想看看能不能改善這個版本,後來順利寫出O(n)的版本:
function move(arr) {
let len = arr.length;
let idxHead = 0;
let i = 0;
while (i < len) {
if (arr[i] > 0) {
arr[i].swapToIndex(idxHead);
idxHead = idxHead + 1;
}
i = i + 1;
}
}
到此為止面試時間也差不多半小時,後面就單純詢問我有沒有任何其他問題,然後結束本
次面試。
第三階段面試
如果通過第二階段的話,據說會面試一小時,創辦人、工程師還有同事都會參加,還會考
最後一題Coding Test。但是我在第二階段就被刷掉了,所以無法提供此階段面試的細節
。
結論
英文面試
我自認英文讀寫能力中等,但聽力和口說大概就沒救了,人生中第一次用英文溝通這麼久
其實頗緊張,但如果能上的話我覺得是個很棒的練英文環境,而且每年還能免費去英國一
趟!面試部分也因為英文不好的關係常常詞不達意,沒辦法百分百發揮。
省錢省時
整個面試過程只需要動滑鼠和敲鍵盤,不用在外面搭車奔波,也沒有費時的筆試,其實是
個值得推薦的優點!
用心的面試流程
從寄出履歷至邀約面試,以及面試的過程都能感受到Wearisma的用心。包括回信時間不會
拖拖拉拉,信中問候讓人覺得很親切,約面試時會double check,讓人感覺謹慎,甚至約
第二次面試時剛好遇到年假,也能被體諒而順延,個人覺得滿貼心的!面試過程也很積極
地讓我了解公司在做什麼,面試結尾時面試官也很坦白地說馬上要面試下一位,從中也能
感受到公司對準時和效率的追求,整體而言真的可以感受Wearisma有用心在做好一件事情
。
--
http://i.imgur.com/OyDCwTJ.jpg
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.37.167.242
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Soft_Job/M.1520066247.A.2CF.html
1F:推 oneheat: Leetcode NO.20 03/03 16:57
2F:推 oneheat: 另外想請問一下用stack在())的case會有什麼問題? 03/03 17:03
3F:推 harryron9: 我也覺得stack不會有問題 03/03 17:18
4F:推 sorryla: stack empty有判斷好就不會有問題 03/03 17:26
5F:→ ken1325: 要英文精通我就不行了=.= 03/03 18:23
6F:推 Martin23: 推推 03/03 21:06
7F:推 freetempo: 推XDD 03/03 22:24
8F:推 matrixki: Leetcode 20 & 283 both questions are level easy 03/03 22:53
9F:→ matrixki: 感謝分享 03/03 22:53
10F:→ matrixki: 這就是國外工程師面試的常態呀 多數是easy&medium的題目 03/03 22:55
11F:推 brianhsu: 這不是標準的 stack 嗎? () 之 後遇到 ) 做 pop,stack 03/03 23:25
12F:→ brianhsu: 是空的或 pop 出來的不 match 就是 u 03/03 23:25
13F:→ brianhsu: 非 balance 啊? 03/03 23:25
14F:推 pika928: 感謝分享 03/04 00:27
15F:推 srxrrr: 推分享!! 03/04 08:19
16F:推 doranako: 推分享 03/04 08:57
17F:推 VisualStudio: 推分享 03/04 15:47
18F:推 alfreadx: 推分享 03/04 18:57