close

題目來源:http://pesty.yichi.org/blog/2008/06/24/cs_interview_questions/

以下的解答是我隨便亂寫的,請勿當真,後果自行負責 XD

 

如果你說你修過演算法/資料結構…

  • 解釋時間複雜度?空間複雜度?兩者之間的關係?
    • 沒人問過,略
  • 請解釋以下幾種資料結合及運作方式: hash, heap, stack, tree
    • hash : key->value 的 mapping,簡單做法是把 key 算出一個值X,把value塞到array[X]裡,其實也沒人問過
    • heap:沒人問過,跳過
    • stack:後進先出
    • tree:就是那個樣子
    • 其實比較常問的是array, stack, queue, linked-list這幾個
  • 請提出一種時間複雜度為 NlogN 的演算法,並用你熟悉的語言寫出來
    • 沒記錯的話quick sort是NlogN的,不過也沒有人問過

如果你說你修過作業系統/計算機系統…

  • process & thread 有何不同?
    • 常見題,最大的差別是有沒有共用資源
  • 決定 cache 效能的兩個指標?
    • 沒人問過,跳過
  • 什麼是同步化?要怎麼寫?
    • 沒人問過,跳過
  • 什麼是 deadlock?要怎麼解決?
    • 沒人問過,跳過

如果你說你會寫程式…

  • 什麼是 call by value?什麼是 call by reference?兩者的優缺點?
    • 常見題,by value會有複製行為,對於效能有負面的影響
    • by reference會導致caller與callee共用同一變數,有時候其實不希望這樣
  • 寫一個迴圈來看看?
  • 寫一個遞迴來看看?
    • 工研院&acer的考法:寫出費式數列(1,1,2,3,5,8...)的迴圈版與遞迴版
  • 什麼是 function 的 signature?回傳值能不能是 signature 的一部份?
    • 沒人問過,跳過
  • 什麼是 static function?什麼是 static variable?
    • 幾乎是必考題,C&C++共有五組答案

如果你說你會資料庫…

  • 什麼是 normalization?為什麼要做 normalization?
  • 解釋 inner join, left (outer) join, right (outer) join
  • table 為什麼要做 index? 舉一個做 index 有用的例子和沒用的例子?
    • 我不會資料庫,跳過

如果你說你會 C/C++…

  • 請搞懂 pointer
    • 常考題:bit運算、call by value/reference

如果你說你會 JAVA…

  • 請搞懂 OOP
    • 我遇過考Java的只有HTC,網路上有考古題可以看XD

如果你說你會 PERL…

  • 請搞懂 Regular Expression
    • 沒遇過關心Perl的公司,反而有在問python的,不過都說進去再學就好

如果你說你會 PHP…

  • 給你半小時應該要能生出一個 Hello, Pesty 的網頁 (當然,Pesty 是 form input 的)
    • 不會PHP,跳過

如果你說你會 TCP/IP…

  • 把下面幾個服務依使用到的原理照 OSI 層排序: http, telnet, DNS, MAC Address, ping, session, vpn
    • 沒人這樣考,跳過
  • 解釋 class A, B, C, 和 class-less
    • 同上

如果你說你會 UNIX….

    怎麼把 ls 的結果導到 /tmp/test.txt 中?
    ls > /tmp/test.txt
    為什麼平常操作不該用 root?
    因為root只要手滑了就無法挽回
arrow
arrow
    全站熱搜

    james803 發表在 痞客邦 留言(0) 人氣()