前陣子幫某公司面試實習生,覺得頗有感觸。
我覺得,作為一個資工(Computer Science)的畢業生,有一些面試問題,會是像叫籃球球員運球一樣的基本。運球運得好的人,不一定可以變成 Michael Jordon,但是很難想像 Michael Jordon 運球會運不好。同樣的,也有一些問題,如果畢了業還答不好,會掩蓋住你在其他方面的成就。
之所以寫這篇,目的倒不是要寫另一篇草莓文埋怨現在學生,而是希望能夠喚起大家對於 “基本功” 的意識。有別於媒體上所宣傳的,面試 Google 和微軟,大多數的問題其實並不是要你天馬行空解題,而是問基本功。
所以我想稍微寫一下我認為的基本功問題,也算是給還在唸書的人一點參考吧。
如果你說你修過演算法/資料結構…
- 解釋時間複雜度?空間複雜度?兩者之間的關係?
- 請解釋以下幾種資料結合及運作方式: hash, heap, stack, tree
- 請提出一種時間複雜度為 NlogN 的演算法,並用你熟悉的語言寫出來
如果你說你修過作業系統/計算機系統…
- process & thread 有何不同?
- 決定 cache 效能的兩個指標?
- 什麼是同步化?要怎麼寫?
- 什麼是 deadlock?要怎麼解決?
如果你說你會寫程式…
- 什麼是 call by value?什麼是 call by reference?兩者的優缺點?
- 寫一個迴圈來看看?
- 寫一個遞迴來看看?
- 什麼是 function 的 signature?回傳值能不能是 signature 的一部份?
- 什麼是 static function?什麼是 static variable?
如果你說你會資料庫…
- 什麼是 normalization?為什麼要做 normalization?
- 解釋 inner join, left (outer) join, right (outer) join
- table 為什麼要做 index? 舉一個做 index 有用的例子和沒用的例子?
如果你說你會 C/C++…
- 請搞懂 pointer
如果你說你會 JAVA…
- 請搞懂 OOP
如果你說你會 PERL…
- 請搞懂 Regular Expression
如果你說你會 PHP…
- 給你半小時應該要能生出一個 Hello, Pesty 的網頁 (當然,Pesty 是 form input 的)
如果你說你會 TCP/IP…
- 把下面幾個服務依使用到的原理照 OSI 層排序: http, telnet, DNS, MAC Address, ping, session, vpn
- 解釋 class A, B, C, 和 class-less
如果你說你會 UNIX….
- 怎麼把 ls 的結果導到 /tmp/test.txt 中?
- 為什麼平常操作不該用 root?
再列下去我就要專做一個網站了….以上問題應該都不算過份吧….唉~
真想請沛大寫一個專門網站…..XD
—-
以上我會的只有 60% 左右…:~
『什麼是 static function?什麼是 static variable?』這一題好像怪怪的。
可能要再補是哪種語言,C 和 Java 裡 static 的語意就不一樣……
Pingback: HEMiDEMi - 黑米共享書籤 - 最新書籤
糟糕,這些問題有一堆我都不知道該怎麼清楚地回答了…
雖然是資工系畢業的,
不過在軟體業寫了六七年程式的現在,
只剩下二個技能:
1.coding
2.google
那….什麼都不會的會問什麼呢 Orz
什麼都不會的,問你認識誰 :p
原來您是我第二位面試官 : ) 這問題實在是太熟悉了。我之後有把 call by value , address ,reference的關係搞清楚,才發現原來我從來沒用過 reference @@ |
我不是本科系,不過這幾個問題應該都很基本,很多公司面試的問題差不多就是這幾種.
—
路人
Pingback: 軟體開發‧技巧篇 - 程式設計標籤
Pingback: 小褲褲滴酷兵!! » Blog Archive » 畢業了,會什麼?
Pingback: chuiyi's Bookmarks on Delicious
Pingback: 阿偉蘇的程式記事本 - [轉貼] 資工畢業生應該要可以答出來的面試問題
Pingback: 阿宅心聲誰人知
Pingback: AK47 » links for 2009-12-31
不好意思可以請讓我轉載嗎?
看完實在感觸很多…
谢谢指点~