看板 Soft_Job 關於我們 聯絡資訊
其實公司找人,就只是在找"合乎公司需求"的人才而已,青菜蘿蔔各有所愛 先講我interview時想要找的人,是想要遇到能讓你surprise的人: 根據這個前提,大家可以想想,都能夠答的出這些在wiki上面有答案的應徵者,會讓你 surprise嗎?若是我是DK,面試了十幾二十人,竟然都沒什麼人答的出來,我想遇到一個 全對的傢伙,我應該會surprise XD. 但因為我自己面試別人時,從來就覺得問這些沒 什麼意思,大家都是人,記憶力有限,所以即便是很基本的東西還是有可能忘掉... 因為我希望從面試者的回答裡面,聽到比較有深度的東西,所以就盡量問不是一翻兩瞪眼 的題目。ex: 當你發現一個web service死掉的時候,你會怎麼找問題 or 說一下user 從browser上輸入一個網址後,後面會發生什麼事情. or 有用過版本控制嗎?svn or git 都可以,那你可以講一下他們的原理嗎? 其實這些問題都沒有所謂的標準答案,只有答的完整不完整而已,我就遇到可以把git講 的超級完整的新鮮人,因為他自己很有興趣,花時間研究過,他還考我知不知道git commit的時候那串hash code是怎麼產生的(wow, 連這個都知道,very impressive!) 但也遇到問新鮮人發出一個request後會發生什麼事,他就說:server就會回應他內容阿 ...說實話,也沒有錯... 但這個答案就沒有讓你surprise.基本上這些問題,都能讓我們更多去觀察這個面試者的 特質,例如剛剛那個很嫩的新鮮人,在聽完我們講dns, server request handle,blabla 之後,問他有沒有問題,他說...喔,懂了,沒有。我們就知道,這面試差不多了,因為 即便他遇到他不會的問題,他也沒有想要知道更多.大家都當過菜鳥,你現在會的,覺得 很簡單的,很理所當然的,你以前真的都知道嗎?肯定不是,既然這樣,何必對別人賣弄 你很熟悉的東西呢?interview其實就是考驗面試考官,能否發現有潛力、有實力的人阿. 覺得台灣軟體業的悲哀,就是大家都只想要找即戰力,但完全不看重素質... 舉個例子來說:前年我記得隔壁team錄取了一個大學剛畢業的新鮮人,滿月後聽他sharing 覺得很普通,好奇為何麼當初進的來,就跑去問當初面試他進來的leader,結果讓我很 驚訝,他說:他的確面試的時候表現很普通,但我們發現他在白板上寫code的時候,會 一直做一個動作,就是會來回反覆檢查,然後找到一點錯誤,再檢查,還會自己refactor ,他們就是看上這點...這個動作,讓所有面試他的人覺得"surprise!",老實說,有幾個 新鮮人答不出來merge sort跟bubble sort,然後又有幾個會自己做refactory阿,講真的 演算法大部分都已經有現成的library可以用了,誰還要你自己刻 ==,但refactor真的 是天天都在上演阿~ DK所問的問題,若是在他們的工作上都有用到,找到一個都能答出上述問題的人才, 想必也是理所當然的事情~至於答不出來的,各位也不必太在意,因為...就只是不適合 你開的是什麼職缺,就找什麼樣的人。還是那句話,青菜蘿蔔,個有所愛~ ※ 引述《uid88 (uid88)》之銘言: : 那些這次沒有答好題目的應徵者,他們回去後會做什麼? : 是不是回家去背這些題目? 再去熟讀大一大二DB課本? : 下次到另外一家面試,是不是就是大家比誰背得多,誰背的完整? : 如原PO文中所提,答案不就在wiki上嗎?... : (唉,似乎又看到聯考的遺毒...) : 當然你可以說,如果他在這個領域下過功夫,「這個」「那個」應該不會不知道 : 可是對寫程式寫出興趣,後來都在寫程式想要把這當職業的人, : 和對考試讀出興趣,對各種所謂考題都滾瓜爛熟、準備好考試的人 : 比較起來,後者會容易出線 : 他們學校畢業後,我們要驗收的是什麼? : 是對這個產業的認真、熱誠和興趣 : 還是他們修課的成績單? : 當題題都有一半的人不會,「下修再下修」時 : 給他們的印象是什麼? : 是不是也要檢討一下面試的內容和流程? : 我希望這些被問了都回答不出來的應徵的人 : 1. 不要因為這樣就對這自己在這產業失去信心和興趣 : 2. 不要因為這樣回家就開始背書 : ※ 引述《DarkKiller (System hacked)》之銘言: : : 這篇要講的不是面試者,是以面試官的立場寫下一些心得。 : : 7/28~7/30 到南部去面試,排了 21 個人,有 4 個放鳥所以只面試到 17 個 : : 人,大多都是網站後端相關的職缺,也有一些 API Engineer 與資訊系統的職 : : 缺。 : : 這次面試都是從 104 上找,以大學或碩班新鮮人為主。只要符合這些條件我都 : : 請我們家 HR 聯絡來談:(是 OR 不是 AND) : : 1. 有 Programming 工作經驗。 : : 1. 剛畢業/退伍,資工/資科/資管畢業。 : : 2. 剛畢業/退伍,有任何資訊相關的作品。 : : 3. 剛畢業/退伍,自傳寫得還可以的。 : : 挑履歷的標準應該是不算高... : : 我 interview 的習慣是一律從面試開始,先說明投的這個職缺要做什麼事情, : : 然後跟面試者先確認這是不是他要投的職缺。 : : (因為偶爾會遇到投錯職缺的,確認後可以省下大家時間...) : : 接下來就是問一些工作上會用到的技術相關的問題。以網站後端、API : : Engineer 以及資訊系統來說,因為主要都是跟資料庫有關,所以大多都是先從 : : 資料庫起頭開始問: : : * 請列出 RDBMS 裡的 JOIN 有哪些。 : : 答案可以參考 https://en.wikipedia.org/wiki/Join_(SQL) 這邊。 : : 大概有一半的人一個都答不出來,可以講出的人我會要他說明他列出的 JOIN : : 在這種圖的表示法: : : https://i.imgur.com/7BIsxZn.png
: : 各種千奇百怪的答案都會出現 XD : : * 請說明資料庫裡 Transaction 是做什麼的。 : : 答案可以參考 https://en.wikipedia.org/wiki/Database_transaction: : 邊。 : : 大概也是有一半的人會回答「不知道」,有蠻多人以為 transaction 就只是 : : Atomic 的特性。 : : 如果大概還講的出東西來的我會再問 ACID 的四個特性。 : : 關於 ACID,可以參考 https://en.wikipedia.org/wiki/ACID 這邊,不過只 : : 有兩個人有被問到 ACID,其中一個只答得出 AC,另外一個對 CID 都用掰的。 : : * Primary Key、Unique Key、Index Key 的差異 : : 已經是比較偏實務上會碰到的議題了,不過超過一半不知道差異。甚至會說 : : 他之前的工作用不到 Index Key... XD : : 可以參考 https://en.wikipedia.org/wiki/Database_index 這邊,不過維 : : 基百科這邊的資料比較偏學術上的說明。 : : * 資料庫的「正規化」做了什麼事情?解決了什麼問題? : : 也大約是一半的人答不出來。答得出來的我會問 1NF 做什麼,然後所有人都 : : 在這題掛掉... : : 參考 https://en.wikipedia.org/wiki/Database_normalization: : https://en.wikipedia.org/wiki/First_normal_form 這邊。 : : 這些資料庫理論是工作上比較會碰到的東西。我不太喜歡問 SQL 語法怎麼下, : : 主要是因為這些語法各家都不太一樣,真的用到時查一查就好了。而觀念的東 : : 西才是難教的,interview 的時候問這些鑑別度還算高... : : 接下來我會問一下資料結構與演算法的東西: : : * Stack 與 Queue 的差異? : : 熱身用的題目,大多數人都答的出來。不過還是有唸了四年資工的人說不出 : : 來,讓我囧在那邊... : : * Priority Queue (Heap) 是什麼? : : 有些人是「聽過,但忘記了」,有些人是完全沒聽過,基本上就是都不知道... : : * Tree、Binary Tree、Binary Search Tree、Balanaced B.S.T. 的差異? : : 意外的是大約一半的人不知道 Tree 與 Binary Tree 的差異,就更不用說後 : : 面這幾個的差異了... : : 可以把四個資料結構的差異都講出來的有兩位,我就問了 AVL tree 與 RB : : tree 的差異,然後就掛掉... : : * QuickSort 與 MergeSort 的差異? : : 這兩個都是經典的演算法,不論是學校還是職場上都會花很多時間教或是用 : : 到的經典演算法。 : : 兩者的差異隨便列出來應該就一堆,不過情況比想像中的有趣... : : 像是 O(logN) 的 QuickSort 與 O(N) 的 MergeSort。或是把 BubbleSort : : 當作 MergeSort 在講... : : 如果面試者不知道要從哪裡開始的話,我都會提示「時間複雜度」會是一個 : : 方向。不過都答不太出來... : : 有好幾個面試者都有提到 Divide-and-Conquer,然後被我反問哪一個是 : : Divide-and-Conquer 哪一個不是? : : 然後我有時會要求用手寫一些程式 (不限程式語言,也不需要 include 之類的 : : 步驟,重點有表達出來就好): : : * 九九乘法表。 : : 請不要小看這個題目................................................. : : * isPrime(n)。 : : * GCD(n, m) 與 LCM(n, m) (最大公因數、最小公倍數)。 : : 死亡率還是很高的題目。 : : 講一下心得好了。 : : 我 interview 的習慣是問到答不出來為止,這樣我才會知道會多少東西。通常 : : 都是從基礎的東西開始問,而蠻意外的是,大多數人都會死在起跑點... : : 本來 Programming 的東西還打算考 Eight Queen 之類的問題,不過後來還是 : : 下修再下修... : : 另外一個我還蠻喜歡問資工畢業生的問題是,「你都唸了四 (六) 年的資工, : : 知道資訊領域最高獎項是什麼嗎?」 : : 還蠻意外的是大多數人都不知道 :p : : https://en.wikipedia.org/wiki/Turing_Award : : 最後問一下,有人要投履歷嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.115.119.225 ※ 文章網址: http://www.ptt.cc/bbs/Soft_Job/M.1406796044.A.F15.html
robler:在白板上寫程式還要refactory是要逼死誰XD 07/31 16:45
hl4:可能是覺得寫完也只能盯著考官發呆,乾脆順便重構一下 07/31 16:52
knt:話說,他的code其實是錯的XD 07/31 16:54
final01:我就在想寫對又refactory還普通阿 XD 07/31 17:08
leochen0818:青菜蘿蔔各有所愛。 07/31 17:40
saladim:"refactor" as a verb 07/31 18:17
knt:thanks for correcting! 07/31 20:13
Baternest:git算sha1的hash這段在Git權威指南這本書看過 07/31 21:17
※ 編輯: knt (59.115.119.225), 07/31/2014 22:30:51
uranusjr:Refactoring (n.). Refactory is not a word. 08/01 08:06