菜鳥Rails工作面試初體驗

李威辰
3 min readMay 9, 2018

--

最近跟一個Rails界很有名的前輩來了場馬拉松式的面試(整個過程大約將近四個小時),在這邊紀錄一下面試過程的一些問題,給需要面試的人一些準備的方向。

Code Review

一邊看之前寫的專案,一邊問你為何當初會採取那種寫法,以及提供給你更好的寫法。另外一個比較細節的部分是會問你Rails裡面某些資料夾或檔案的功能是什麼。下面列出一些我印象比較深的問題。

  1. 前端的partial怎麼整理,怎麼把邏輯寫到helper裡面。
  2. controller用到的邏輯怎麼抽象到model中。
  3. Gemfile的功能。
  4. 寫query的時候有沒有考慮到效能的問題。

這個部分建議拿自己比較近期寫的專案來解說,以免發生“那時候我寫了三小?”的情況。這個部分是在測試你平常寫專案是複製貼上居多,還是會去了解每個寫法背後的理由,長期累積下來的一些小細節真的非常多!

問答題

  1. Ruby裡面symbol跟string的差異,什麼情況下會選擇這些資料型態?
  2. Ruby中的module怎麼用,跟class的差異在哪裡?
  3. 敘述使用者點擊網頁後背後的流程,特別注意request header與response header裡面的參數功能為何。
  4. 說出cookie的用途,以及cookie的儲存位置。
  5. 敘述migration的用途。
  6. 敘述Rails裡面 MVC的個別功能,這樣的設計模式有什麼好處?
  7. 測試用的假資料有哪些選擇(fixture與factory bot)?而這些選擇又有哪些cons and pros。

Live Coding

用rspec寫一個spec,然後出一個kata讓你用TDD的方式現場解出來。

這個部分是考驗基本的Ruby語法以及邏輯。這個部分發生一件很有趣的事情,當我還在絞盡腦汁想解法的時候,看了一下前輩的螢幕發現他也正在寫,然後前輩笑笑的對我說:我寫完三個解法了。真的笑到我心裡發寒啊…

文件閱讀能力

唸一篇關於Rails的原文文章,然後敘述這篇文章的概要。這部分是測試閱讀原文文章的能力,畢竟最新的資訊還是英文居多。而且寫過專案就知道,閱讀文件的能力跟產能是絕對正相關的…所以英文還是非常重要啊!

部落格

最後建議有心求職的人一定要寫部落格,畢竟面試大部分都只有非常短的時間,想讓對方了解你的實力在哪裡,部落格跟專案絕對是非常加分的條件!我現在就是用這個部落格來記錄一些技術的用法以及寫程式的心路歷程,寫文章也可以讓自己對於現在學的東西有更深的體會。

以上是一個菜鳥的小小面試心得,希望能讓各位看倌在求職上的準備更有方向。也預祝各位早日面試上自己的第一份Rails工作!

--

--