先說重點：我覺得面試的題目要準備夠充分，而且要從簡單到困難，循序漸進，直到求職者答不出來為止。這樣可以了解求職者的能力範圍。有好的能力，給的薪水也會比較高，作的事情也會比較難。但我問完之後，會跟他說明答不出來不代表不會錄取，只會作參考。
我會先把求職者分成兩個類型：新鮮人（完全沒有工作經驗）與轉職者。
對於新鮮人，如果是相關科系出身，我會比較期待他還記得比較多理論的東西，所以我會看他的成績單，修過什麼課程，然後拿該課程的內容來問。舉例來說，一般的資工系都有修過資料結構與演算法，我會問他 Stack, Queue, Hash 的用法，或是 Quick Sort, Bubble Sort，然後請他說明這些課程中，他印象最深刻的內容，再根據他的內容來繼續問下去。
如果他有作品（或專題），或是在外面有打工，就會問實作的東西，例如問作品的哪個部分是他做的，與其他人如何合作，還有對於作品的哪個部分印象最深刻，覺得哪裡最難，後來怎麼解決（解決未知問題的能力）。通常實作強的人，對於這個問題都能很快回答出來。如果作品他做的部分很少，就很容易支支吾吾。
接下來，會給一個實際的問題，請求職者用他最熟悉的程式語言現場說明解決方法，主要觀察的地方是解決問題的過程。之前有問過用 C 寫 string replace 的題目，基本上這個有寫過程式應該都回答的出來。
接著會給一篇英文技術文章，或是給一個技術文件，請求職者閱讀後，大致說明內容，並且講一下可以怎麼應用。通常前面沒問題，後面會死一堆新鮮人。
再來，會問求職者是否有用過常用的工具（版本控制、MVC、Framework），GitHub，以及有沒有參加 Open Source Conference 的經驗等等。這個部分主要是想了解他對 Open Source 的熟悉度，對於未來工作尋找資源上會有幫助。
最後，會問為什麼會來應徵這份工作，對於公司了解多少，有沒有用過公司的產品，舉出公司產品的優缺點。從這個問題可以了解這個人是不是有自己的想法，還是老闆說了就照做的人。
新鮮人的人格特質，只要是誠實、對自己負責的人，基本上就很 OK 了。公司裡面需要有想法的人，也需要老闆說了就照做的人，並不會因為沒有想法就被刷掉，除非是渾渾噩噩不思進取的特質。
轉職者的部份下次（會有嗎？）再來談吧。