記一次軟體工程師面試心得 | taroko面試
前言我自己很喜歡看一些面試的文章,因為可以從裡面學到許多,如果有面試題目的話那就更棒了,可以邊看邊想,測測看自己的實力。這篇文章是我前一陣子面試某間公司的歷程跟一些心得,希望對大家會有幫助。順帶一提,最後是有拿到offer的。我面試的職缺叫做SoftwareEngineer,軟體工程師,四次面試都是中文的(我原本以為會有英文)。HR有先跟我聊過,我有說我比較想要做前端,所以有些面試的考題會比較偏前端。但因為這間公司也很注重CS的基礎,所以依然會有很多資工本科的問題。(作業系統、資料庫、資料結構與演算法等等)因為公司...
前言我自己很喜歡看一些面試的文章,因為可以從裡面學到許多,如果有面試題目的話那就更棒了,可以邊看邊想,測測看自己的實力。這篇文章是我前一陣子面試某間公司的歷程跟一些心得,希望對大家會有幫助。順帶一提,最後是有拿到 offer 的。
我面試的職缺叫做 Software Engineer,軟體工程師,四次面試都是中文的(我原本以為會有英文)。HR 有先跟我聊過,我有說我比較想要做前端,所以有些面試的考題會比較偏前端。但因為這間公司也很注重 CS 的基礎,所以依然會有很多資工本科的問題。(作業系統、資料庫、資料結構與演算法等等)
因為公司不在台灣,所以面試的形式都是採用 Skype 視訊加上某個線上 coding 的網站。現在很多公司的遠端面試都很喜歡採用這種形式,就是出題目給你讓你即時 coding,面試官那邊看得到你打字(就跟 hackpad 或是 Google docs 一樣),也可以直接 compile 看看答案對不對。
一面一面的面試官是個前端工程師,所以問題會比較偏前端。程式語言的部分我是選擇用 JavaScript 來作答。
第一題在 Facebook 上面,對於按讚這個功能,通常會有以下幾種描述:
只有一個人按讚:A likes this 有兩個人按讚:A and B like this 有三個人按讚:A, B and C like this 有四個人以上按讚:A, B and 2 others like this寫一個 function,會給你一個叫做 names 的陣列,根據 names 輸出結果。
這一題很基本,我覺得主要是想看你會怎麼解決這個問題,以及讓你小試身手一下(怕你太緊張)。我自己的話是直接寫 if...else 去判斷。
另外,記得把一些 edge case 也考慮一下,例如說 names 有可能是空陣列嗎?如果是的話應該輸出什麼?
function like(names) { var output = " likes this"; if(names.length<=0) return ""; if(names.length===1) { return names[0] + ...