(本文經原作者 黃光文 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為 〈別讓學生思維害死你…〉;首圖來源:unsplash。)

【我們為什麼挑選這篇文章】或許是傳統填鴨式的教育導致,也可能是亞洲學生本性內向不愛發問,一些台灣學生常常在面試求職碰壁、真實進入職場需要很長的適應時間。本文作者黃光文為一名高中數學老師,時常在其臉書分享自己在教學現場的經驗、閱讀文章的讀後心得,本文將透過一則 Google 面試題,探討台灣學生的通病。(責任編輯:賴佩萱)

我個人很喜歡的一個作家——吳軍老師分享他擔任 Google 主管時,面試的一些經驗 。他列舉了面試者很常犯的錯誤 ,我個人覺得間接點出了台灣很多孩子在面試的一些通病。

他很喜歡問面試者的一道面試題目:假如有一個巨大的數組(你可以理解成一串數字),如何用最有效的方法找到它的中間值?

據他面試的經驗,大概會有 10% 到 20% 的面試者,會聽題不仔細就快速地給出平均值

面對不確定的指令就問清楚,不要倉促給回應

我們快速回顧一下定義, 如果有三個數 1,10,1000,那平均數就是 337,而中間值就是 10,你可能會以為,這只是沒有聽清楚、太緊張了。

有沒有覺得很熟悉?學生考完試最常說的一句話 :我只是太緊張了,看錯或算錯…。

在文章中他強調一個「好的面試者」,如果不確定問題,應該向主考官確認,而不是倉促地給出,這樣才能給主考官一個可靠的印象

相信以後你在工作遇到「不確定的要求」,會搞清楚再動手,而不是匆匆忙忙動手,卻常把事情搞砸。

Google 面試題的兩大陷阱

這個題目還有兩個陷阱:

第一個是 「巨大」 這個詞。當一個題目規模巨大時,原先適用於小規模的方法 ,在很多的時候就不適用了。有經驗的人都懂這一點,但是很多剛從學校畢業的學生,卻缺乏這種概念。

第二個是「最有效 」這三個字。找到中間值的方法很多種,題目要的是最好的,很多面試者會直覺回答:先排序再找到中間的那個數字。

這樣的回答,就是同時掉入這二個陷阱。「排序」是一種解決方法,但絕對不是最有效的,當面臨的是巨大的數組時,為了找到一個數字而排序,顯然做了太多無用的動作,而且排序這種想法,幾乎每個人都可以想得到。

找巨大數組的中間值,其實是想測你解決問題的能力

對 Google 這樣的公司,面試題不太可能這麼容易,對 Google 來講,要處理的數據量真的太大,所以他一定要找到比排序更有效的方法。

有些面試者會這樣講:我知道你考我這題,不是要尋找排序這樣的方法,雖然排序也能解決問題,你能不能給我點時間,讓我想想更好的方法…這樣的回答,就是告訴對方 :我知道考這道題的目的 ,同時我也知道排序 。

這就是一個好溝通者的回答。當然如果過了幾分鐘還是想不出來,有經驗的面試者會說: 能不能給我點提示 。因為在工作中請求幫助,永遠比自己悶頭做不出來還要

A:1,3,4,35,70,90,109
B:4,1,3,35,90,109,70

A 和 B 都可以快速地看出中間值是 35,排序最根本的問題是「做了太多無用的工作」。

這道題只要求找到中間值,至於大於或小於中間值的哪些數字彼此的關係、相對順序是什麼,並不是我們的重點;可是排序這個方法把這些工作不可避免的做了,而且顯然多做了很多的白工,所以要找到最有效的方法,一定要避免單純的排序

那麼要怎麼不經過排序?讓小的數字都在左邊,大的數字都在右邊?

其實很簡單,我們從數組裡面隨便找一個數字,讓它和數組中每一個數字去比較大小。 如果比他大就放在右邊,比他小就放左邊,以 10 億數組的中間值來說,第二個方法比排序可以快 300 倍以上。

面試不是學校考試,別再不懂瞎猜

效率的提高完全來自於少做了很多沒有用的工作…說真的,看完這篇很有感觸,台灣很多孩子即使畢業了,都還是保持著學生思維,準備面試資料,也不管有用沒用大大小小,全部都塞進去;回答問題還是跟以前考試一樣,以為都不能發問任何問題,甚至怕問題會讓自己顯得很無知,所以寧願自己揣摩亂猜答案(反正沒有倒扣猜好猜滿)。

可是面試這種測驗,想看的是你問題解決的能力、溝通協調的能力。面試跟紙筆考試真的不一樣,你可以求救、互動。

相信我,有不懂是正常的,不要不懂還裝懂,不要懷疑坐在你前面的專業,因為他們看的除了你現在的能力,還有未來的潛力,因為對他們來說,最重要的是把問題解決
,而更多的問題是沒有答案的。

#謝謝吳軍老師的好文
#謝謝安強老師的推薦
#Google面試題

(本文經原作者 黃光文 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為〈別讓學生思維害死你…〉;首圖來源:unsplash。)

看更多面試秘訣