[閒聊] interview 心得

作者: DarkKiller (System hacked)   2014-07-31 05:05:17
這篇要講的不是面試者,是以面試官的立場寫下一些心得。
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
最後問一下,有人要投履歷嗎?
作者: Eos (美麗時光)   2014-07-31 05:26:00
其實你問東西的很多台灣業界根本用不到 更別說應屆畢業的了...剛考完研究所的應該可以回答出你大部份的問題 但那是你要的嗎
作者: DarkKiller (System hacked)   2014-07-31 05:42:00
會用不到嗎?我們的確全部都會用到啊?
作者: lovdkkkk (dk)   2014-07-31 06:18:00
我覺得這些是工作越久的可能越答不出來每一項我都曾經很熟, 演算法的全都推過並用 ANSI C 寫過但剛一看還是很多忘了...只要復習一小時就能全回來吧 @@
作者: mrforget (財去人安樂)   2014-07-31 06:25:00
面試兩個多月,除正規化沒被問過,其他都被問過。心得是能被仔細的面試是一種福氣。
作者: idleidle (格物致知 溫故知新)   2014-07-31 06:35:00
資工所不考DB,DB確很常用.DS+演算法,挑好學校的碩班,答得出比例應很高不過 這篇是徵才文無誤.XD
作者: shizeng   2014-07-31 07:23:00
用不到index key,蠻怪的!
作者: ichico (細雪。)   2014-07-31 07:25:00
我覺得transaction的ACID最常用到的的確是A啊XD那三個Key還有Join是蠻常用的,但Join常用的也就那三個吧我是真的很少用self join XD然後一看發現我演算法真的忘了耶 只用高階語言的缺點
作者: guitaryuan (guitaryuan)   2014-07-31 08:04:00
這樣問法是需要即戰力嗎?
作者: manlike ( )   2014-07-31 08:19:00
薪水多少?
作者: ccpz (OoOoOo)   2014-07-31 08:43:00
推DK
作者: bndan (seed)   2014-07-31 09:26:00
DB部份其實不一定(有些系DB非必修)但下半部答不出來就....嗯另外"剛退伍".這畢竟也可能是問題 ~_~
作者: chrisyanglom (澎澎)   2014-07-31 09:31:00
資料庫都不會,可是資結演算法應該都答得出來OK嗎XD
作者: yyc1217 (somo)   2014-07-31 10:12:00
如果是我就準備一台筆電在旁 當場答不出來就GOOGLE給我看能下對關鍵字google到答案就ok
作者: kaitokid2 (蔚藍)   2014-07-31 10:14:00
剛修完資料結構可能可以答不少出來,當完一年兵保證忘光
作者: hSATAC (cAt Ash)   2014-07-31 10:24:00
崩潰~~
作者: a83294 (馬岱)   2014-07-31 10:24:00
我覺得對於一般大學生,剛退伍叫他們回答這個太不人道了XD
作者: fowei (小維)   2014-07-31 10:25:00
像我都只是一知半解. 但給我google我就可以找出解答我個人覺得除非工作屬性需要即時. 不然其實這些用到不多就像index key, 我知道, 但不太熟. 當有TABLE變慢時. 我會想然後去google, 暸解加快 query的方法.. 就會了. 大概半小時
作者: gohpx (懶得想)   2014-07-31 10:32:00
這些問題超熟的..我大概知道D大是何人了...不過這些問題..回答不出不代表不會用..但會講會用才是好的吧
作者: oneheat (等待)   2014-07-31 10:53:00
好難,全部都不會怎麼辦??最有趣的是,我確定考研究所的學生應該都很會
作者: manlike ( )   2014-07-31 10:57:00
而且 Priority Queue 和 Heap 不一樣~
作者: gohpx (懶得想)   2014-07-31 10:57:00
讓人能上網查 那些問題有經驗的也都不太會是問題
作者: descent (「雄辯是銀,沉默是金」)   2014-07-31 10:58:00
要問倒人真的太容易了, 找本面試書的題目就夠不知道你怎麼挑人, 那些人的特質你會選他
作者: manlike ( )   2014-07-31 10:59:00
只不過 Priority Queue 通常用 Heap 實做出來
作者: descent (「雄辯是銀,沉默是金」)   2014-07-31 10:59:00
應該不會是只有答出正確答案的人
作者: oneheat (等待)   2014-07-31 11:03:00
以tree為例,問那麼多tree的差異幹嘛?我都是問他知不知道XX tree,不知道的話會稍微介紹一下,再出個應用題,問他這種case,用哪一種tree好,理由在哪
作者: frank11118 (想睡覺)   2014-07-31 11:08:00
我物理系資結演算法都能答了
作者: yyc1217 (somo)   2014-07-31 11:11:00
我覺得現在比的已經不是誰記得多 而是誰找得快
作者: yseric (不會賺錢的小屁孩)   2014-07-31 11:12:00
最高榮譽有另一個叫Jolt,是best book
作者: MIKEmike07 (加油!)   2014-07-31 11:23:00
推推DK大
作者: a926 (Aaron)   2014-07-31 11:28:00
只知道一些..不過db的部分.我也是db query變慢才會調效說
作者: noonecanstop (籃球夢)   2014-07-31 11:36:00
資工系學生可不像你一天八小時都在做資料庫
作者: KASUGAOSAKA (小步)   2014-07-31 11:40:00
面試前的確要溫習演算法,沒溫習一定掛
作者: edward13 (-_-)   2014-07-31 11:42:00
慘了我嘴巴都回不太出來 只能用code的出來怎辦
作者: robler (章魚丸)   2014-07-31 12:28:00
剛考完研究所的時候都答的出來,現在只答的出來一半吧
作者: andymai (人生只有一次)   2014-07-31 13:06:00
資料庫改用 redis 惹~已哭 Q_Q
作者: ia ( )   2014-07-31 13:33:00
可以聽到一些面試官的聲音..加分惹
作者: enthos (影斯作業系統)   2014-07-31 14:29:00
都忘光了。跟想像的後端不一樣。
作者: fantasysea (Jarvis)   2014-07-31 14:37:00
像學生時期的期末考題, 面試時我應該會被電慘慘XD
作者: OnlyRD (里巷人)   2014-07-31 14:38:00
真的蠻用心的面試,但的確不是每個業界都會用到。有些強者工作幾年都沒碰過這些的話,猛一問搞不好還真問倒但是你是面試新鮮人,CS畢業生不懂的確比較奇怪。
作者: einhander   2014-07-31 14:49:00
你們公司不能上網?還是都在考試?
作者: jack0204 (Jarbar王朝)   2014-07-31 15:22:00
我剛畢業DB沒學好,都在寫C的驅動程式跟Linux系統現在改寫網頁,很多都用過但名詞很多不知道
作者: luciferii (路西瓜)   2014-07-31 16:14:00
像研究所考題+1 XD
作者: Twinkling (哈囉)   2014-07-31 16:36:00
我們現在找人看的都是 個性態度 >> 這些專業能力當然完全都不知道也是不行 不過個性真的很重要就是這些東西要pick up起來 根本一兩周就可以了但是個性跟態度則是決定了根本上的差異....才是關鍵所在
作者: knt (keep going)   2014-07-31 16:45:00
推樓上,個性態度真的比較重要...這東西沒辦法pickup阿
作者: pennymarkfox (潘尼老狐狸)   2014-07-31 16:49:00
還真的都忘光光了耶
作者: enthos (影斯作業系統)   2014-07-31 16:49:00
聯想到這一段 game.163.com/special/news/gushihui025.html他一題未答,大筆一揮,在卷子末尾寫了“慢慢聊”三個字面試官一拍桌子,“你比我強!我給你提比我還高的工資!”
作者: bobju (枯藤老樹昏鴉)   2014-07-31 17:48:00
當年我準備研究所考試時,這些程度都題目都算小case; 但現在再看, 超過一半的題目我都沒把握能夠答得令考官滿意像高中聯考一樣,當年考上第一志願,現在去考恐怕連倒數第一志願的沒把握,太久沒用上早就都生疏掉了
作者: DrTech (竹科管理處網軍研發人員)   2014-07-31 18:43:00
所以直接看學校名稱,與成績單就夠了,根本不用浪費時間驗證別人升學題目準備得好不好。
作者: petingo (皮挺哥)   2014-07-31 18:44:00
可以問一下最後錄取幾個&他們大概答了幾題嗎??
作者: PTT007 ( )   2014-07-31 20:19:00
知道最高獎項是什麼有比較厲害嗎 你拿過是嗎
作者: Beard5566 (有禮貌的鬍子五六)   2014-07-31 21:14:00
大部分的題目沒經驗的新人答不出來很正常,其實你只是想看看能不能中大獎
作者: nypgand1 (祈附‧征前御祭)   2014-07-31 21:30:00
被原 po 面試過推
作者: AndyLeo (打敗超越一切的人)   2014-07-31 22:20:00
DK大大出現了~~~~~~~~~~~@@"
作者: s910 (s910)   2014-08-01 00:06:00
DS那邊還好 有複習ok
作者: norlan17m (又得等三個月)   2014-08-01 00:10:00
這剛畢業或考完試才容易記得吧,業界多年沒用早就忘了其實你就拿研究所考題給他們就寫好了,也不浪費時間問
作者: leicheong (睡魔)   2014-08-01 07:53:00
ACID的事我看很多, 但突然問的話我也是問不出來呢. :P
作者: alexlucifer (你管我叫啥)   2014-08-01 11:54:00
靠腰~某些我也回答不出來,愧對我的工作經驗了~Orz
作者: j87b0003 (I'm 邱老虎)   2014-08-01 12:39:00
我被問過銲接後的變形處理方式(燦笑
作者: jack0909 (csimiami)   2014-08-01 13:40:00
資工不一定有教DB 而且專案也不一定會用到DB
作者: AmosYang (泛用人型編碼器)   2014-08-03 02:16:00
資訊領域最高獎項 = 被人用數億美金收購 :D
作者: cooper6334 (庫波)   2014-08-03 23:01:00
考研究所的時候都會,之後再也沒用到過直到現在工作快一年了我說資料結構的部份
作者: wooie (lizwooie)   2014-08-03 23:23:00
我大三,能答出八成==那我可以直接去工作了嗎XD

Links booklink

Contact Us: admin [ a t ] ucptt.com