2017 Yahoo暑期實習Android&Front-End 電話面試心得

熱騰騰的Yahoo 電話面試心得,今天中午(2017/4/21)剛面完,怕忘記趕快打一打。

2017/4/18星期二下午,突然來了封Email,

This is XXX from Yahoo Taiwan. Now, we are hiring 2017 summer interns to join our project development. To recruit more young talents and enthusiasts, I’d like to invite you to have a phone interview with us. The phone interview usually takes around 30 mins.  …..

太令人興奮了!! 竟然收到Yahoo的電話面試通知,馬上回信感謝他給我機會面試,並馬上約好當週五中午面試。 有趣的是我順道一提詢問面試是以中文還是英文面試(因為IBM的慘痛經驗),主管人很Nice地回覆面試是使用中文,還帶一個印象深刻親切的笑臉圖案,哈哈。

面試前有種範圍太大無法準備的感覺,Android, React, Node.js如果要考可以考得非常難。 我只好看著自己履歷,稍微複習一下。 沒去複習技術。現在想想真笨,應該要去K一些常見的面試問題。

面試開始:

總共兩位面試官,其中女面試官就是寄信給我的主管,另一位男主管可能也對我有興趣所以來參加面試。
他們先請我先自我介紹
我先介紹學歷,講過去的實習經歷,再來講我的作品集。
女主管便從我的作品集中問問題。
例如:

  1. 我們碩一上的高等資料庫課程,有使用到Graph Database:
    問:主管便問這種DB跟一般的Mysql有什麼不同?
    答: Graph Database在對於一些比較複雜的資料比較在行,像是社群網路資料中的好友資料。(可參考)
  2. 我與同學自己開發的校園聊天APP:
    問: 你們Android的聊天介面是怎麼做的?
    答: 用Recycle view ,送出對話的時候把訊息放進對話array裡,然後更新。
  3. 接著問: 當使用者一直往上滑可以看對話歷史嗎?當使用者往上拉,對方傳訊息你怎麼處理。
    答:我們會去DB拉歷史紀錄。傳訊息這邊的我們還沒考慮到這麼細的UIUX,對方傳訊息recycle view會更新,所以如果你滑在最上方會被拉回去最下面。
  4. 連環問:你說你們聊天APP,用到Google Firebase Database,可以跟我介紹他的優缺點或是有什麼Tips嗎?
    答:它的好處是DB是Realtime的,它的SDK也包含許多監聽的功能,如果我現在傳訊息給對方,Android的監聽Function會馬上啟動並更新畫面。 缺點大概就是它還很新,所以有時候會有Bug很難找,目前遇到Android監聽Funtion有時會不明原因Crash。

這邊就猜出來女主管是Android Manager了,全部問題都是她問的。這時女主管說她電腦要沒電了,要去拿個充電器,你們聊一下。

這時就換男主管問我問題。但男主管用比較聊天的方式問。

  1. 問:我看你的履歷,好像後端Node.js的部分比較多,那你前端React方面技術如何?
    答:確實我後端放入的心力比前端React多,React只有在新創公司實習時,寫過一個簡單的後台介面,讓別人可以Key in資料到資料庫。
  2. 接著問: 那你何時開始用Node.js?
    答: 我大學的時候,同學那時候都很夯Node.js,所以拿Node.js寫專案以及專題。
  3. 連環問:那你JS語法ok嗎?
    答: 上個實習時我有使用一些ES6的寫法,像是使用Promise來讓程式更簡潔增加可讀性。

女主管回來話鋒一轉,表示要多問技術部份,個人經歷的部分已經瞭解了。

  1. 問:請解釋Android Lifecycle。
    答:打開APP進入onCreate…..  有人突然打電話來:onPause -> onResume. (參考)
    Ps: 面試時好像少講了onStart, 真的面試前該複習一下,失策。
  2. 連續問:Android 有一些元件的 Listener 應該註冊在哪個Lifecycle.
    答:onCreate。 PS:寫這篇去查詢發現我錯了,當時我還答得這麼簡潔有力。(答)
  3. 連環問:當你手機轉畫向,Life Cycle如何變化?
    答:我之前有去查過,但我忘記了。 (主管答:沒關係
  4. 接著問:如果你要傳資料去別的Activity, 有哪些方法可以傳:
    答:Intent 或是在別的Activity註冊 Broadcast receiver。
  5. 再問:那傳資料的格式有什麼?
    答:我都是把資料放進Bundle,然後格式是Key Value的方式取值。
  6. 奪命大招:Design Pattern的部分你懂多少?
    答:讓我想一下…(當下愣住了) 想一想之後我講Singleton Pattern。
    問:那跟我說要怎麼建立一個Singleton跟概念。
    答:運用Static,像是我在寫Http Request的時候,不想讓每個Activity都new一個物           件,我就創一個Singleton讓各個Activity共用。

再來就算是閒聊,問自己對於各個技術投入的時間比例大概佔多少。
我照實講研究所之後就比較少碰React和Android,比較常碰Python資料分析以及Backend Node.js。但在大學時花很多時間寫Android和Node.js。
主管便問Android和 Front-end兩個職位你會選擇哪一個。
最後就是讓你問問題。並說下週會有結果。

心得:
我覺得Yahoo面試官人非常的好,主管直接寄信來約面試這點,讓我覺得跟其他公司非常不同。主管也會跟你閒聊一下,剛好聊到實驗室學長去年也在他們Team實習,我也提到Yahoo News改版之後很美又很簡單整齊明瞭。
另外這次我幾乎是裸考,還好面試官可能是看在只是暑期實習沒有出非常難的題目,主要都是基本題,建議考前稍微複習一下,面試過程中就會比較不緊張也會順很多。感謝當時面試官沒有在我答錯的時候狠狠釘我 :)

PS: 有任何錯誤的地方請告知我,感謝~~
如果你覺得這篇有幫助到你,請幫我點下廣告,雖然此網站流量很低根本不會有Profit,至少我可以知道我有幫助到人 :)