2009-01-07

第一次工作面試 (Shawn)

Mr. Q 挫了我的心很嚴重,我的信心動搖了,顯得六神無主。過了五分鐘,Shawn 禮貌地敲了門進來。Mr. Q 嚴肅的對待襯托出 Shawn 的和善。Shawn 拿著我在 104 的 resume 全部內容,一五一十地問了寫程式的經驗。大約如下:


1. 試述遇過最嚴重的問題,之後怎麼解決。
Hmm... (心中一直覺得待會的答案會很虛,可是還是鼓起勇氣說了) 之前去 NCHC 參加比賽,一開始遇到一個很大的 gap,一時忘了 stack & heap 的用途。只把 huge array declare stickly,執行的時候一直會 overflow,找不出問題在哪。之後,朋友知道我的問題才跟我講說,為甚麼不用 heap 的空間呢?之後,我才想到 os 在 Memory Management 的觀念。雖然沒有很難,但是這是我近期遇到的大頭問題。


2. 試述自己喜歡的語言,及對語言的認知。
我喜歡 C/C++,但是 C++ 後面的 template 章節還沒有很清楚。我喜歡 C 可能受到網路社群的影響,像 jserv 這種厲害的 hacker,就很令人崇拜。
Shawn: 你也認識 jserv?熟嗎?
a2n: 喔,我跟我另一個朋友 (c9s) 有跟他聊過,我朋友比較熟。
Shawn: 喔,那你們可能跟他還沒有很熟。因為他現在在我們公司。
a2n: @____________@!!!! 驚!!!!!!!!!!!!!


3. 有參加過社群哪些 open source projects?
老實說,我沒有親自跟著社群的 committer hacking,大多都看 documentation 和讀 mailing-list 而已。


4. 試述 device 對 os 發出 interrupt 之後的處置。
Hmm... device 對 os 發出 interrupt 後,os 會根據發出訊號的 device check 它的 priority 決定去 swap in/out 正在執行的程式。之後就針對 request response。
Shawn: 根據什麼 priority?
a2n: Hmm... i don't know
Shawn: 根據 interrupt vector table,mapping 後對 os request 才有 response。
a2n: 啊... ... 我忘了有 vector table。 (心想將近 5 年前楊老師上的 Computer Architecture 這次我都沒有 review 到,糟)


5. 試述 Vitrual Address mapping to Physical address 的詳細過程。以 Linux kernel tree 中的 VA with two levels.
Program 知道的 VA 其實是 mapping 到 PA,所以都需要 indirect。
Shawn: Hmm... two levels 呢?
a2n: @_@??
Shawn: L1 VA mapping to L2 VA, finally mapping to PA.


之後我跟 Shawn 說 FreeBSD 的 PAE, Shawn 問我對 TLB 的了解,想也知道我不認識 TLB。聊 gdb 怎麼直接取得 PA。和 HW R&D 一起 debug,SW R&D 好奇示波器怎麼顯示,說是滿有趣的。問我的英文口音是怎麼來的,聊 refactoring,splint,assembly。後來有哪些話題已經忘了... 之後 Shawn 說是時間到了,出去約五分鐘又進來,說第三位正在 meeting 不能過來,Shawn 又和我聊了不少。他還一時讓我產生一種錯覺,因為他聊了很多工作的內容,還主動要我多問一些工作內容;那種感覺就像是你已經 pass 第一階段了,現在在引導你早點進入職場狀況。

之後,我們還是結束話題,因為實在沒有話題了。我問的最後一個問題是:「請問我錄取的機會大嗎?」
Shawn: 現在還不能給答案,因為我們內部還需要討論才會有答案,我們會在日後通知你。

沒有留言: