Saturday, July 29, 2017

[Interview] @ Synology, Software Engineer

20170729 @ Synology, Software Engineer

面試個人優劣自省:

  • 優:
    • 有一年半學生新創經驗
    • 專案管理帶開發團隊經驗
    • App實務開發專案經驗
    • 研究相關完整專案經驗
    • 113血統
  • 劣:
    • code寫太少,敏感度不夠
    • 興趣領域背景知識不足(接觸機器學習不到一年)
    • 大學基礎科目學習狀況差
    • 以上導致自信心不足

第一關:兩位面試官(10:15 ~ 11:45

  1. 簡單自我介紹(用自備電腦投影片)
  2. 詢問自我介紹中的專案細節,管理經驗。
    1. 處理不配合的成員經驗
    2. 專案的特點和貢獻點
    3. 習慣的語言
  3. 口頭問答(統計在最下方)
  4. 白板題:
    1. 把兩個排序好的array按照大小順序merge起來[1,3,5,8,19]
      [4,5,7,9,18]
    2. 我寫了一個不太妙的O(N^2)解法,過程中有些bug,完成答題。
    3. 如何降低複雜度
      經考官友善提示,完成了O(N)的解法...
  5. QA時間

第二關:一位面試官(12:00 ~ 13:30

  1. 5分鐘自我介紹
  2. 詢問相關經驗的最大困難
  3. 口頭問答(統計在最下方)
  4. 白板題:
    1. 實作一個Matrix, add, get, transpose function.
      1. add: O(n^2)
      2. get: O(1)
      3. transpose: O(n^2)
    2. 各種提升效率的方法
      1. transpose如何變成O(1),當然其他function也會被其影響。
        (在小提示後完成作答)
      2. 如果今天維護一個private member,維護著整個matrix有值的部分(sparse representation),請把add和transpose優化成O(N)。這部分有點慘整個卡死,一直卡在最近處理DL資料議題的sparse特性,還有linked list & array特性之類的想法上,最後考官公佈答案後結束...
  5. QA時間

第三關:兩位面試官(14:00 ~ 15:30

  1. 3分鐘自我介紹
  2. 過去專案經驗負責的內容
  3. 口頭問答(統計在最下方)
  4. 白板題:
    1. 給一維度兩條線,請判斷是否重疊?
    2. 給一維度N條線,請彈斷是否重疊?
      1. 我發想了一個O(N)的解法,但有點過度複雜化問題...
      2. 經過重重提示還是卡住,考官最後公佈答案...
        (離答案只差一毫米那種,白板就是有壓力)
  5. 技術專長詢問
    1. 從原始資料到完成機器學習目標的整個過程
    2. 如何評估資料量是否充足
    3. 如何處理遺失的資料
    4. 如何選擇深度學習模型
  6. QA時間
    1. 這時有聊到我的興趣和公司目前之缺內容有出入的問題...,這讓我意識到其實我履歷上的確太執著機器學習相關領域了,多接觸不同領域應該是很正常的選擇。工作和生活本來就都是這樣才正常~~。
    2. 期待公司有什麼樣的職缺

第四關:HR時間(15:40 ~ 16:00

  1. 簡單自我介紹
  2. 為什麼選研替
  3. 履歷和自傳的一些經歷分享討論
  4. 期待公司有什麼樣的職缺
  5. 覺得自己個性的缺點
  6. QA時間
口頭問答統計:
    1. processthread差別
    2. race conditions怎麼解
    3. static的用法
    4. virtual是什麼
    5. auto變數的優缺點
    6. UDPTCP之間的差別
    7. Synchronous call跟Asynchronous call差別
    8. Stack和Queue差別
    9. linked list和array差別
    10. c++, java, python 編譯上的差異
    11. heap, stack, code, text這些section的差別
    12. atomic用法
    13. 習慣的語言有哪些
    14. static 的用法
    15. 什麼是register
    16. ...

面試結果:

  • 三關白板面試狀況:第三關>第一關>第二關 (順利程度)
    等待二面,說太早來面試了,所以要等約一兩個月內會通知!!!這跟網路上的分享是不同的,再三和人資確認過應該不是安慰的話,只知道這次研發替代役安排會比較其他面試者後再決定,目前判斷起來就是備取吧,希望有機會囉~!

感想:

  • 群暉面試真的好長,但真的很用心,可以看得出來他們對人才的重視,考官們除了技術底子好以外,我發現更多的是優秀的人格特質,絕不是那種超級黑客脫離現實的傳說人物,更多的是尊重。
  • 這是研替的第二間面試公司,連續一開始就挑戰兩間超高難度的公司真的不是很好的策略,不得不說這兩間的人資或是人才策略就是比較積極,難怪很強~
    但目前而言這次面試體驗超好,即使我的專長與面試官完全不同,每個關卡的面試主管,還是會試著了解你在不同領域的努力,即使和技術無關的話題也會重視,我覺得上一間的體驗就差了一些,可能面試就是運氣也佔成份吧。
  • 原來白板提其實沒這麼可怕,並不是以要考倒你為目的的測驗,反而更重視考試的思考過程,你展現的特質,包含技術,表達,思考,抗壓等等的整體反應。

面試技巧:

  1. 不同考官考題可能相同,中間休息時間可以把握把剛剛卡住的問題查詢了解一下。
  2. 不會可以直接承認,但盡可能提出想法,讓考官參考你的思考過程應該有幫助。
  3. 上白板功力會大減30%,瞬間變白癡,準備可能要更充足,最好找人練習,把leetcode題目寫在白板且找人模擬當考官。

No comments:

Post a Comment