SlideShare a Scribd company logo
1 of 38
面試心得分享
郭⾄至軒 (a.k.a KuoE0)
kuoe0.tw@gmail.com
慘電心得分享
郭⾄至軒 (a.k.a KuoE0)
kuoe0.tw@gmail.com
Attribution-ShareAlike 3.0 Unported
(CC BY-SA 3.0)
http://creativecommons.org/licenses/by-sa/3.0/
Latest update:

11/20/13
注意!
公司找你進來幹嘛?
注意!
公司找你進來幹嘛?
賺錢啊!廢話!
不給看勒

不給看勒
板書題
1. 給定一個大小為 N 的陣列,有以下兩種操作:
- 查詢任意區間 [A,B) 內的數字和
更新任一個 index 的數字
第一項操作一般來說需要 O(R) 的時間,R 表示區間大
小;而第二項操作只需要 O(1) 的時間。兩者複雜度合
起來一看的話,總共還是需要 O(R) 的時間複雜度。如
何降低總共的時間複雜度?
-

!

2. 實現對 linked list 進行 bubble sort,不允許更換節點
的數值,僅能改變鏈結位址。
第一題
寫出 segment tree
即可,不難!
不過⽩白板現場 coding 真有點難...
第二題
不過 bubble sort,
有什麼好怕的!
But
人生最厲害就是這個 BUT!
注意指標交換造成節
點自我指向之問題
不過這只是⼩小 case,雖然⾯面試當下滿容易思緒混亂。
注意 bubble sort 的
原理,不要寫成
insertion sort 或是
selection sort!
如果這不是悲劇,那什麼才是悲劇?
不給看勒

不給看勒

言立馬拆穿
資料結構
如何對 linked list 進行 binary
search?可修改 linked list 的
資料結構。
我想了一個很複雜的
做法...
面試官給了我解答...
言立馬拆穿
C++
請解釋 C++ 的 overloading?
!

請解釋 C++ 的 overriding?
!

請解釋 C++ 的 virtual function?
!

請解釋 template 存在的用意?與使用繼承
來實現泛型的差別?
請解釋 C++ 的 overloading?
就是可以讓運算子有不同的行為...blablabla...

請解釋 C++ 的 overriding?
就是重新定義函式的行為...blablabla...

請解釋 C++ 的 virtual function?
就是用來實現多型的方法...blablabla...直接舉例...

請解釋 template 存在的用意?與使用繼承
來實現泛型的差別?
我不知道...
這是錯的

請解釋 C++ 的 overloading?
就是可以讓運算子有不同的行為...blablabla...

請解釋 C++ 的 overriding?
就是重新定義函式的行為...blablabla...

請解釋 C++ 的 virtual function?
就是用來實現多型的方法...blablabla...直接舉例...

請解釋 template 存在的用意?與使用繼承
來實現泛型的差別?
我不知道...

誠實是種美德,也是種無能的表現。
謊⾔言⽴立⾺馬拆穿
資料庫
請問資料庫中的 XXX 跟
OOO 的分別?請問 YYY 又
是什麼?
連該名詞都沒聽過...
言立馬拆穿
嵌入式系統
你當初嵌入式系統開發了什
麼東西?
可遙控相機雲台
可以水平 360 度旋轉與垂直轉動。
旋轉會⽤用到⾺馬達,你怎麼控
制⾺馬達?
以 PWM 進行控制
PWM 可以送出脈衝來控制馬達的轉動角度。

還好沒丟 Jserv 的臉... ><
終於有句實話
作業系統
請解釋 semaphore 與 spinlock?
binary semaphore 與 mutex 的差別?
!

請解釋 IPC 是什麼?溝通用的記憶體叫
什麼?
我忘記了...
靠!有沒有念過大學啊!
不給看勒

不給看勒

言立馬拆穿
於是...我第二關就被
趕出去了... :(
心得
是自己準備不夠周全,這一周來聽了些其他同學去面試的題目,感覺都不是太難
的演算法與資料結構題目,不然就是些機智問答,因此還滿有把握的。面試前,
也僅有簡略地把一些演算法復習一下,卻沒多複習演算法之外的知識。學長之前
跟我提過,要去面試一間公司,難道不需要準備

?就是太有把握,完全就是過

度的自信。
常常說自己最熟悉的語言是 C++,結果

?今天被問的問題全都是 C++ 中的物

件導向與泛型程式設計,而我卻無法精確地回答出問題答案,並且帶著不確定的
口吻。而作業系統相關問題,我幾乎無法正確回答出來,僅能靠自身的「猜
測」,或甚至可以說是「幻想」。
最後,悲慘的莫過於將 bubble sort 寫成 selection sort 了。還記得曾經自以
為是的告訴同儕,排序演算法都是基本的。但經過這樣的一次面試,也完全被看
破手

,原來我也不過爾爾。另外,自己對於自己寫出來的程式碼實在不夠有自

信。當寫出我認為正確的程式碼被面試官一直狂電是錯的時,我選擇退縮了,還
「幻想」出了更多為什麼錯誤的理由。儘管,最後證明了該程式碼的正確性,但
無法對自己的程式碼進行捍衛,更顯露出自己根本不熟悉於程式設計上。
Thanks.

More Related Content

More from Chih-Hsuan Kuo

Effective Modern C++ - Item 35 & 36
Effective Modern C++ - Item 35 & 36Effective Modern C++ - Item 35 & 36
Effective Modern C++ - Item 35 & 36Chih-Hsuan Kuo
 
Use C++ to Manipulate mozSettings in Gecko
Use C++ to Manipulate mozSettings in GeckoUse C++ to Manipulate mozSettings in Gecko
Use C++ to Manipulate mozSettings in GeckoChih-Hsuan Kuo
 
Pocket Authentication with OAuth on Firefox OS
Pocket Authentication with OAuth on Firefox OSPocket Authentication with OAuth on Firefox OS
Pocket Authentication with OAuth on Firefox OSChih-Hsuan Kuo
 
Protocol handler in Gecko
Protocol handler in GeckoProtocol handler in Gecko
Protocol handler in GeckoChih-Hsuan Kuo
 
面試面試面試,因為很重要所以要說三次!
面試面試面試,因為很重要所以要說三次!面試面試面試,因為很重要所以要說三次!
面試面試面試,因為很重要所以要說三次!Chih-Hsuan Kuo
 
Windows 真的不好用...
Windows 真的不好用...Windows 真的不好用...
Windows 真的不好用...Chih-Hsuan Kuo
 
[ACM-ICPC] Tree Isomorphism
[ACM-ICPC] Tree Isomorphism[ACM-ICPC] Tree Isomorphism
[ACM-ICPC] Tree IsomorphismChih-Hsuan Kuo
 
[ACM-ICPC] Dinic's Algorithm
[ACM-ICPC] Dinic's Algorithm[ACM-ICPC] Dinic's Algorithm
[ACM-ICPC] Dinic's AlgorithmChih-Hsuan Kuo
 
[ACM-ICPC] Disjoint Set
[ACM-ICPC] Disjoint Set[ACM-ICPC] Disjoint Set
[ACM-ICPC] Disjoint SetChih-Hsuan Kuo
 
[ACM-ICPC] Efficient Algorithm
[ACM-ICPC] Efficient Algorithm[ACM-ICPC] Efficient Algorithm
[ACM-ICPC] Efficient AlgorithmChih-Hsuan Kuo
 
[ACM-ICPC] Top-down & Bottom-up
[ACM-ICPC] Top-down & Bottom-up[ACM-ICPC] Top-down & Bottom-up
[ACM-ICPC] Top-down & Bottom-upChih-Hsuan Kuo
 

More from Chih-Hsuan Kuo (20)

Effective Modern C++ - Item 35 & 36
Effective Modern C++ - Item 35 & 36Effective Modern C++ - Item 35 & 36
Effective Modern C++ - Item 35 & 36
 
Use C++ to Manipulate mozSettings in Gecko
Use C++ to Manipulate mozSettings in GeckoUse C++ to Manipulate mozSettings in Gecko
Use C++ to Manipulate mozSettings in Gecko
 
Pocket Authentication with OAuth on Firefox OS
Pocket Authentication with OAuth on Firefox OSPocket Authentication with OAuth on Firefox OS
Pocket Authentication with OAuth on Firefox OS
 
Necko walkthrough
Necko walkthroughNecko walkthrough
Necko walkthrough
 
Protocol handler in Gecko
Protocol handler in GeckoProtocol handler in Gecko
Protocol handler in Gecko
 
面試面試面試,因為很重要所以要說三次!
面試面試面試,因為很重要所以要說三次!面試面試面試,因為很重要所以要說三次!
面試面試面試,因為很重要所以要說三次!
 
應徵軟體工程師
應徵軟體工程師應徵軟體工程師
應徵軟體工程師
 
Windows 真的不好用...
Windows 真的不好用...Windows 真的不好用...
Windows 真的不好用...
 
Python @Wheel Lab
Python @Wheel LabPython @Wheel Lab
Python @Wheel Lab
 
Introduction to VP8
Introduction to VP8Introduction to VP8
Introduction to VP8
 
Python @NCKU CSIE
Python @NCKU CSIEPython @NCKU CSIE
Python @NCKU CSIE
 
[ACM-ICPC] Tree Isomorphism
[ACM-ICPC] Tree Isomorphism[ACM-ICPC] Tree Isomorphism
[ACM-ICPC] Tree Isomorphism
 
[ACM-ICPC] Dinic's Algorithm
[ACM-ICPC] Dinic's Algorithm[ACM-ICPC] Dinic's Algorithm
[ACM-ICPC] Dinic's Algorithm
 
[ACM-ICPC] Disjoint Set
[ACM-ICPC] Disjoint Set[ACM-ICPC] Disjoint Set
[ACM-ICPC] Disjoint Set
 
[ACM-ICPC] Traversal
[ACM-ICPC] Traversal[ACM-ICPC] Traversal
[ACM-ICPC] Traversal
 
[ACM-ICPC] UVa-10245
[ACM-ICPC] UVa-10245[ACM-ICPC] UVa-10245
[ACM-ICPC] UVa-10245
 
[ACM-ICPC] Sort
[ACM-ICPC] Sort[ACM-ICPC] Sort
[ACM-ICPC] Sort
 
[ACM-ICPC] Efficient Algorithm
[ACM-ICPC] Efficient Algorithm[ACM-ICPC] Efficient Algorithm
[ACM-ICPC] Efficient Algorithm
 
[ACM-ICPC] Top-down & Bottom-up
[ACM-ICPC] Top-down & Bottom-up[ACM-ICPC] Top-down & Bottom-up
[ACM-ICPC] Top-down & Bottom-up
 
[ACM-ICPC] About I/O
[ACM-ICPC] About I/O[ACM-ICPC] About I/O
[ACM-ICPC] About I/O
 

面試心得分享