folder_open

面試雜記

arrow_right
article

面試心得–Niceday玩體驗

面試心得–Niceday玩體驗

2019/03/11~2019/03/25【前端工程師 Front-End Web Developer】錄取

公司概況

#

地點位於台北捷運七張站附近,公司規模約20人,前端約2人,後端含Devops約2人;辦公空間與另一間公司共享,有開放式也有隔層式,不過工程師座位會是隔層式,而且桌子是L型的大空間;上下班打卡,每日表定工作8.5小時,但可以自己彈性調整,只要每月合計工時達標即可;薪資保證13個月外加每季至多0.25個月的績效獎金,按績效比例計算。

職缺介紹

#

請見ReactJS.tw貼文open_in_new或CakeResume職缺連結—前端工程師 Front-End Web Developer,Niceday玩體驗open_in_new

面試過程

#

整場面試由2位面試官主持,一位是後端技術主管,而且慣用系統是Linux,另一位是前端技術主管。

面試官介紹

#

技術棧的部分後端是Laravel,前端是React及GraphQL,以Jenkins自動化測試,但手動部署至AWS Load Balancer;公司現階段商業模式是與賣家分潤,但想尋找新的商業模式,所以目前打算開發模組化介面租給廠商,讓廠商可以客製化自己的行銷網站,所以這個時間點錄取的話是能夠開發全新功能,而不必接手前人的程式碼~~,算是一個很吸引人的誘因~~。

自我介紹

#

最近的產能都投注在Scribo的開發上,只好端出來賣弄一下了,在Niceday的面試也是我第一次開著用Scribo寫的履歷進行自我介紹,好險Live Demo時沒出什麼問題XD,面試官在面試前也很用心地看過我其他篇的面試心得,是個有點意料之外的驚喜!

技術測驗

#

由於面的是前端職缺,所以接下來都由負責前端的面試官主持,首先是口頭的技術問答,憑印象記得的題目及回答如下:

  • Q: SPA和傳統網站的差異? 有什麼優勢?

    A: SPA只有初始載入時會傳輸完整html,其餘靠AJAX動態載入,傳統網站則是每次request都會傳輸完整html;SPA可以減輕server負擔,也可提升前端使用體驗

  • Q: 如何加速頁面載入? 前後端皆可,請舉三個例子

    A: lazy loading, gzip, minified js

  • Q: let與var的差異?

    A: let是block scope, var是function scope

  • Q: 如何判斷 Object 和 Array?

    A: lodash

  • Q: js的繼承機制?

    A: prototype blablabla

  • Q: 如何複製陣列?

    A: Array.slice()或是ES6的spread operator

  • Q: 相較於其他前端,你覺得自己有什麼優勢?

    A: 資工本科系的背景及受過的完整訓練有助於開發上的思考及品質

接下來面試官把他的筆電投影至電視,準備了3題js的程式碼,問我執行結果,具體題目雖然無法完整重現,但是各題考的觀念大致如下:

  1. Array的filter()、map()、reduce()

    let arr = [
    {/* ... */},
    {/* ... */},
    {/* ... */},
    ]
    let result = arr
    .filter(/* ... */)
    .map(/* ... */)
    .reduce(/* ... */)
    console.log(result)
  2. Functional Programming、compose

    let compose = (...fns) => {/**/}
    let discount = (price) => (price * 0.8)
    let commafy = (str) => (/* 某種regex,將數字每三位數標上逗號 */)
    compose(
    discount,
    commafy,
    console.log
    )(2000) // 結果是 2000 * 0.8
    compose(
    discount,
    discount,
    commafy,
    console.log
    )(2000) // 結果是 2000 * 0.8 * 0.8
  3. JS的同步、非同步及event loop機制

    console.log(1)
    setTimeout(() => {
    console.log(2)
    }, 0)
    new Promise(resolve => {
    console.log(3)
    setTimeout(() => {
    console.log(4)
    resolve(100)
    }, 0)
    }).then(data => {
    console.log(data)
    })
    console.log(5)
    // 結果是 1 3 5 2 4 100

QA及行政

#

最後階段是慣例的問答,然後後端主管應該同時有負責人事,所以向我說明工作時間、薪資結構等情況,然後帶我稍微參觀了一下辦公環境,順利結束本次的面試。

核薪結果

#

  • 本薪:55k/mth×13mth/annum=715k/annum55k/mth \times 13mth/annum = 715k/annum
  • 獎金:依工作績效 p[0,1]p \in [0, 1],每季發放 55k/mth×14mth×p55k/mth\times\frac{1}{4}mth\times p

面試結果及時程

#

  • 2019/03/11 透過FB聯繫發文者投遞一頁式履歷
  • 2019/03/12 Email寄送詳細版履歷
  • 2019/03/13 面試邀請通知,預計3/18面試
  • 2019/03/18 一次性面試
  • 2019/03/25 錄取通知
  • 2019/04/03 拒絕offer