這裡是整理了一般程式設計師面試時會碰到的十種常見問題。

如果你是一個資訊背景的人,在面試程式設計師職缺的時候,通常會跟一般的技術職缺有些不同,這裡整理了十個很常見且應該要避免的問題。

沒有在紙上或是白板上寫程式的經驗

這是應徵者常會犯的毛病之一,一般的面試常常會使用紙筆或是白板讓應徵者作答,許多應徵者的程式設計能力很好,但是卻沒有這方面的經驗。

一個只會在電腦上使用 IDE 寫程式的人,突然被要求使用紙筆寫程式,會是一件有困難的事情,再加上這個場合是在面試,不是在自己的家裡,在如此緊張的氣氛中更加深了它的難度,而且在沒有編譯器的情況,面試者無法靠著編譯器幫他除錯,也會讓程式中很容易參雜一些平常不會注意到的錯誤。

第一次使用紙筆寫程式是有些難度的,我自己本身也有類似的經驗,在大學的時候修習系上開設的程式設計課程,平常上機的小考我都是輕鬆拿滿分,結果碰到期中的大考突然要在考卷上寫程式,一時之間還真的不會寫,考出來的成績就不是很理想。

建議如果沒有使用只比寫程式經驗的人,在面試之前可以自己在家練習一下,以免碰到類似的窘境。

不要死記程式碼

許多社會新鮮人都或習慣把一些特定問題的解法背下來,而記得這些問題的解決方法是不錯,但是也請順便把這些解法的緣由也搞清楚,例如很多人都會記得交換兩個變數可以使用 XOR 位元運算來解決,但是並不是所有的人都清楚它為什麼可以這樣做。

死記程式碼不是一個根本的辦法,它也許可以讓你順利解決一兩題測驗,但是最終若想要通過整場的面試,以及面對日後工作上的挑戰,還是免不了需要對於基礎的概念有一定的了解,重點不在於你會多少程式語言,而是在於你了解多少程式語言背後的觀念。

缺乏溝通與表達

如果在面試時,你對於面試官所提出的問題有些疑問或質疑,其實是可以直接跟面試官討論的。

而在你不知道答案時,與其呆呆的不知道說什麼,或是說一些答非所問的話語,不如誠實的告知面試官你不知道問題的答案,並且依照自己所知道相關議題,告知你所擅長的是哪一問題。

沒有準備電話訪談

現在許多公司在實際面試之前,可能會先以電話的方式進行一次訪談,而電話的訪談分實際上面對面的面試也有很大的差異,很重要的就是你必須注意聽清楚對方講的話,並且清楚的表達自己的回應。

當然在進行電話訪談時,最好準備紙筆在身邊,以便記錄訪談中的重要事項,另外在回答專業問題時,要以口語的方式回答,不要使用一般書本上的用語,不然可能會讓對方以為你在照書念,或是上網查資料。

雜亂的程式碼

請不要忽視程式碼排版的重要性,不管你的學識多高、或是程式設計能力多好,當對方在檢視你的程式能力時,最基本的條件就是要先看得懂你在寫什麼,如果程式太雜亂,導致面試官看不懂,那其餘的都不用談。

另外好的程式碼排版,對於程式的除錯也會有一定的幫助,所以養成排版的好習慣在任何時候都是很重要的。

沒有表現出你的解決方案

面試官通常會對於應徵者所提出的解決方案有興趣,他們不會預期每道題目應徵者都可以完美回答出來,但是他們會期待應徵者提出一個可能可以解決問題的方案。

有時候你可以告知面試官你所規劃的方向爲何,而在實際作答的時候,也許會有些小地方卡住,運氣好的話面試官也許會提醒你,如果真的沒辦法答對,至少可以讓面試官知道你的大方向是對的,只是還差一點細節,而不是什麼都不懂。

變數與函數的命名

不管你使用什麼程式語言來解決問題,變數與函數的命名對於其他的人在看你的程式碼的時候會很重要,而有好的命名方式也可以幫助這個程式更容易被維護。

面試官也許不會因為變數與函數的命名不當而質疑你的程式設計能力,但建議還是養成好習慣以防萬一,例如一個交換變數的函數可以名為 swap,而不要取名為 func 這種沒意義的名字。

履歷表中包含你不懂的技術

這也是一些新鮮人常犯的錯誤,為了讓自己可以有更多的機會錄取,有些人會把一些自己也不是很懂的技術或程式語言寫進履歷中,這雖然可以讓你比較有機會可以接受面試,但也相對的你在面試的時候踢到鐵板的機率也會比較高,通常在經過幾分鐘的對談之後,面試官就可以清楚了解你的程度在哪裡,特別是很熟悉這些技術的人,甚至只需要聽你講幾句話,就可以知道你懂不懂!

缺乏自信心

在面試的時候,自信心佔了重要的角色,在面試官問你問題時,即便你的答案是正確的,但是如果缺乏自信,無形之中也是會扣分的,因為通常企業會希望一個比較有自信的人來任職。

熬夜準備面試

在面試前一晚,不要因為要準備面試而熬夜,在面試的時候你會需要一個清晰的頭腦與充沛的體力。

許多應徵者很容易在面試的場合一緊張就腦袋空白,尤其是面試官看著你在白板上作答的時候,在面試的前一晚睡個好覺,放鬆一下再去面試,可能會有些幫助。

參考資料:The Geek Stuff