程式設計師?還是小丑?

發表於2011-08-29

注:本文轉載自外刊IT評論

這是我遇到的問題。

和你從不認識的人坐在一起,試圖弄清楚他是個程式設計師還是個小丑。

我沒有想侮辱任何人的意思,而且,我是第一個要感謝這麼多年的教育和努力終於把我變成一個專業小丑的人。

但是,有些程式設計師,我的天。

就像最近,我面試了一位畢業生。我把他叫做Ada。對於程式設計師新手,我充滿憐憫,為了和緩的幫他熱熱身,我給了他一道溫和的問題來消解我們之間的陌生。

我讓Ada寫一段程式,在紙上,列印出“hello“這個詞10次。用什麼語言都行,我說。

下面就是Ada寫出的。

不管怎麼說,拼寫是完全沒有錯誤的。

我差點就被這些化妝成程式設計師的小丑給騙了。我本以為他會使用一些基本的迴圈句法。你說這種東西還要去告訴他嗎?

是的,我覺得也沒必要。

有些人喜歡集郵。我喜歡收集詭異的程式碼。我在程式碼審查的過程中收集它們,這些年已經有了豐富的收穫。我收集它們主要是好玩,但在面試中它們卻能派上大用場。

我會在一次面試中挑出10個程式碼例子,大多少是C#和TSQL程式碼,然後問面試者如何評價它們。

事實上,由於經常做這個,我已經記住了一段解說詞,就像這樣:

我會向你展示一些程式碼,這些程式碼都是在正式的程式碼審查中發現的,它們都是已經準備好要釋出給客戶的程式碼。你可以認為它們是經過編譯,測試,能符合需求要求執行工作的程式碼。你需要指出的是這些程式碼中存在的一些涉及到日後維護工作的問題。

語法型小丑

這樣,就比如我會展示一段像這樣的程式碼

對於這段程式碼,你可能會驚訝,我希望程式設計師能發現這第二行程式碼完全是多餘的。但語法型小丑會立即指出你沒有宣告xnumber 變數。

“提醒一下”,我說,“這是從一大段程式中摘錄出來的,它是編譯通過的,而且經過測試。“然後我滿懷希望的看著他。

語法型小丑執著的回覆說“可是你確實沒有宣告這些變數!“

“你再說一次這些變數沒有定義,
你/媽的的再說一次,我看你敢。”

 

萬事通女孩羅西型小丑

語法型小丑歸罪於沒有好好聽,萬事通女孩羅西型小丑問題更大了。

羅西女孩拒絕相信程式碼裡有任何的錯誤,即使在我明確的說“這裡有一些問題,你要找出它們!“很顯然,在羅西女孩生活的魔幻世界裡沒有任何不好的程式碼。

“不會有寫的不好的程式碼的,
而且,你看我這可愛的頭髮!”

 

“我一眼就看出來了,我只是不知道如何向你解釋“型小丑

用力的一彈紙,確信的一點頭,很顯然,這種小丑清楚的知道問題出在哪裡。

但是就是在這關口,他們無法找到正確的詞來解釋清楚。

即使你給他幾分鐘讓他想想,他們還是想不出來。你等他一整天,還是如此。

即使你等到海枯石爛、對面只剩下一堆骨架,你也等不到他們能找到正確的詞語來答覆你。

儘管他們有發現問題的銳智和本能,這類小丑不能表達出來,這不能不讓人惋惜。

“等等!我知道怎麼回事!
可是,我怎麼用簡潔的話把它說清楚呢…

 

小題大做型小丑

這種小丑很神奇。當能用迭代器時他們絕對不願意使用簡單的迴圈。當能用遞迴時,他們絕對不願意使用簡單的迭代。如果你想派人蔘加程式碼混淆技術大賽,這些小丑正是你要找的人。

“這程式碼很明顯缺少抽象—代理—façade模式…”

 

憤怒型小丑

很多次我都會被禮貌的問候,與他們愉快的談論天氣,倒杯茶,安排妥當,開始一場關於程式設計的對話。

接下來的事情會讓你無法招架。

憤怒型小丑很酷,沉著,鎮定—在你問他第一個問題前。

“我怎麼他/媽的會知道,這是他/媽的什麼破問題”

 

並不是都這樣糟糕

公平的說,如果某個人在面試我,他也許會認為我是個小丑,也許認為我是這些型別小丑的混合體。這是面試官的特權。

不僅如此,一些程式設計師會認為給他們面試的人正是馬戲團團長,這是他們的特權。

不管情形是怎樣,親愛的程式設計師們,你要明白,我只是想在我們之間建立一種融洽的關係。但有時候,我發現這很難。

還是很有趣的。

 

相關文章