在讀完由使用者端自動取得當機回報之後,ㄚ琪要繼續讀軟體人員面試教戰守則,但是如果你到原文看,你會看到『This is a very old version of an article that has since been extensively rewritten. The latest version is The Guerrilla Guide to Interviewing, Version 3.0.This version is here for historical reasons only.』這樣的建議,好在新的一篇也翻譯好了,軟體人員面試教戰守則(第三版),所以ㄚ琪一文看四遍,看有沒什麼啟發?
這一篇管理開發人員的面試原則,但是相反地,你也可以把它當成,如何被錄取的原則,如果你的志願是開發人員的話,所以我們可以從這兩個角度來看,一個是如何面試人,一個是如何被錄取。約耳分析說有三種人:一種人是混的人,缺乏最基本的工作技巧、一種人是才華橫溢的超級明星(哼,約耳自屁為這類人,好吧!先姑且認同一下,ㄚ琪還是謙虛一點好了),大多數的人是不能確定水平的候選者,如果捫心自問,ㄚ琪可能被列為這一級的,所以說,要怎樣在面試過程中,從這個層級邁向才華洋溢的超級明星,就很應該好好地讀讀,因為不只約耳要找明星,所有的公司都想找到這樣的明星。
約耳的錄取標準:『有頭腦,並且能完成工作 (Smart, and Gets Things Done.)』,確保你對問題的解決沒問題,如果你常碰到挫折,現在還能存活,表示你的問題解決能力夠強,相信很多人都會喜歡,ㄚ琪也很喜歡!有頭腦不是那種看起來有頭腦但是不能完成工作的人雖然那種人經常擁有博士學位,所以請公司覺醒吧!不是只有博士才有頭腦的,碩士生也有啊,像我只是沒時間再去念博士而已!至於那些完成工作但是沒有頭腦的人是公司的累贅,是負債,講得可真露骨啊!
約耳面試時最重要的法則是:
『做決定 (Make A Decision)』
所以若是你常猶豫不決,請你千萬不要幹經理人,這樣你會很難找到明星,那些明星在你那也很快幹不下去,對於一個這樣個性的人來說,你的生活要常常面臨忍耐的考驗,希望你可以適應愉快!
「錄取你,但是不能在我的團隊中」「也許,我不確定」「嗯,錄取,我想是這樣的。但是關於…,我想知道…」這種話請不要是擔任面試官的你要講的,切忌啊!雖然如果公司體質不佳的話,很怕找不到明星,這樣根本沒人來做,但是換各方向想想,縱使找到這樣一個普龍共的,你公司還是不會有起色,但是如果真的找到千里馬的話,那公司就有艾科卡來幫你反敗為勝了,所以呢?如果你真的是明星,那你去哪家公司,好像就沒有差別了,但是如果你是中間人是,我會勸你不要去那種公司,因為你會害了他們!倒不如找個體質好的公司,這樣子幸運的話,或許可以進去餬口飯吃!反正公司好,不會倒!
「Oracle 8i中的資料類型varchar和varchar2有什麼區別」這種差勁的問題,準上班族就不用準備了,反正這個未來的老闆,也不怎樣!
看一下約耳的面試計畫:
- 自我介紹
- 應試者參加過的專案
- 無法回答的問題
- C語言函數
- 你滿意嗎?
- 設計問題
- 挑戰
- 你還有什麼問題?
面試者要盡量讓應試者放輕鬆,這種老闆真體貼啊!真要好好觀察了,如果我有這個機會再去應試的話,喔!不,我希望可以一直在我這家公司混口飯吃,所以這招,還是給畢業生注意好了,我可是要好好學學這個面試原則的人啊!
我想討論專案,應該是件滿能勝任的吧,ㄚ琪有類神經網路的學校專題,也有資料探勘的論文,也有可以讓部門的生產效率提昇的資訊專案,來錄取我吧!哈哈~!但是要從這裡找得其實是『熱情』,注意了,這個態度真的很重要,我在教會也用積極來看你喔,因為這可以套在工作職場上,所以或許你可以不用談專案,談你有沒信仰,是否積極應該也可看出!
『無法回答的問題』好像是腦筋急轉彎,好吧!大家不要被嚇壞了,就找個依據隨掰掰吧!
程式問題:
-
- 將一個字串逆序
- 將一個鏈表(linked list)逆序
- 計算一個位元組(byte)裏有多少bit被設成on
- 二元搜索
- 在一個字串中找到可能的最長的子字串,該字串是由同一字元組成的
- 字串轉換成整數
- 整數轉換成字串 (這個問題很不錯,因為應試者要用到堆疊或者strrev函數)
糟糕,ㄚ琪太久沒寫程式了,這些問題有點生疏了說,那我一定要好好複習想想才行,請大家等著,我一定會幫各位做面試前複習題的,敬請期待!
他們的函數運行快嗎?看一下他們多少此調用了strlen函數。我曾經看到應試者寫的strrev的演算法竟然只有O(n^2) 的效率,而標準的演算法效率應該是O(n),效率如此底下的原因是因為他們在迴圈中一次又一次調用strlen函數。
『Is their function fast? Look at how many times they call strlen. I’ve seen O(n^2) algorithms for strrev when it should be O(n), because they are calling strlen again and again in a loop.』
當我看到這句中譯時,讀來有點問題,所以把原文貼出,中譯有說竟然只有O(n^2) 的效率,有時候我覺得令人驚訝的語氣,可能是很厲害的,雖然這裡看起來是很鄙視的一種語氣,效率如此底下的原因應該是注音錯別字,可是原文沒有這樣說喔!原文只說因為他們在迴圈中一次又一次地呼叫strlen,這個典故可以查回歸原點得知!
『許多人注定腦子裏就沒有理解指標的那根弦。所以說理解指標是一種與生俱來的品質,而不是一種單純的技巧。理解指標需要腦子轉好幾個彎,某些人天生不擅長轉這幾個彎。』確實我發現指標挺難的說,要搞清楚真的得花很多時間,不過一定要會,不然你沒法通過像約耳這樣的面試!
『計算一個位元組(byte)裏有多少bit被設成on這個問題,是考考面試者對C的位元運算的掌握,但這是一種技巧,不是一種品質,所以你可以幫助他們』,什麼查表演算法、緩衝機制以及最聰明聰明的演算法,大家要掌握,怎麼做?現在我不知道!
有些面試寫作技巧:
事先向應試者說明,你完全理解,沒有一個好的編輯器光在紙上寫程式碼是困難的,所以你不在乎他們手寫的程式碼是否看上去不整潔。
好程式設計師的標誌:這個應該大家都懂吧,不多說,不過ㄚ琪有這個好習慣!
好的程式設計師在寫程式碼前會訂一個計劃,特別是當他們的程式碼用到了指標時。畫草圖是一定要的啦,ㄚ琪沒這麼高招,所以碰到較難的題目一定要畫圖看看!
問『你對程式碼滿意嗎?』這個問題,對ㄚ琪來說是覺得較困難,因為我覺得這有一些盲點,寫好了的程式一般通常很難說出它有缺點,既然沒缺點,應該會很滿意吧!所以說…問這種問題就好像在打心理戰一樣,玩梭哈好像也是這樣,不是嗎?
第六部分:關於設計的問題。就像是要徹底地瞭解使用者需求,才能設計出東西來是一樣的道理,那個只『畫了一個方塊』的面試者,來人啊!拖出去了吧~!
第七部分,挑戰,都到最後了,不管怎麼玩都要堅持下去,別被面試官唬了,錄取即將在望!
負面的面試問題:
首先,避免不合法的問題。有關種族,宗教,性別,出生國,年齡,服役記錄,是否老兵,性傾向,生理障礙的問題都是不合法的。
其次,不要在問題中給予應試者暗示,我們公司喜歡或者不喜歡什麼樣的員工。
最後,不要問那些腦筋急轉彎的題目,例如6根火柴怎麼拼出4個三角形。希望我可找到不考這種題目的公司,很多公司就是喜歡這樣考,切!
第三版的面談,另外題到了履歷篩選和電話篩選,這兩個環節是面談之前的過程。
寫程式來測驗面試者還是很重要,但是這一版的問題變成了:
- 寫個函數找出某個字串是否以大寫字母A-Z開始
- 寫個函數算出半徑已知的圓面積
- 將某陣列中所有的值累加起來
這裡改用簡單的問題來測試,不過測的是速度,哇,不是會了就好了,還得熟練啊,這個測試更艱深了不是嗎?我想這時候我有點汗顏我還能繼續帶在軟體界了。
遞迴和指標的問題,還是不會變,經典問題,超永恆的!如今很多原本的名校可能都只用Java了,看來約耳是覺得不以為然了,我也有點是,不過我還是要準備SCJP啊!
『向應徵者推銷這家公司和這個工作。即使你不想錄用對方,這一點還是很重要。』但是我覺得面試官總是拿這個來考應試者,你好像應該要對公司有瞭解吧!很少聽到考官會好好推銷的!
『決定是否錄取應徵者最佳的時點,是在面試結束後約三分鐘加右。太多太多公司允許面試官在幾天甚至幾週後才交出意見。問題是時間過得愈久,記得的內容就愈少。』看起來這個有效率多了,我的面試經驗是都要等一週以上,因此Yahoo的第二次面試,我沒去了,我等太久了,去別家公司上班了,唉!
第三版感覺補充了很多較新的資料或者是闕漏的,但是主旨沒啥改變,所以我很快地瀏覽過,分享給大家看看!裡頭有些問題,我看是須要好好研究複習一下,培訓一下未來的面試可能。
1 則留言