程序員要注重溝通能力的提升
你曾經在應聘一份編程工作的面試中被問及一些解謎類的問題嗎?我反正碰到過。我被問到的那個問題是:
你最喜歡的那個牌子的蘇打,有多少是在本省被消費的?
拜托,正確的答案不能是“關我什么事”,除非你不想得到這份工作了。我當時對這個問題毫無頭緒,后來才知道這是一個“費米問題”(Fermi Question)。
譯者注:恩里科·費米(Enrico Fermi),美籍意大利裔物理學家,曾經榮獲1938年的諾貝爾物理學獎。他能夠通過非常少量或者不精確的數據,來得到比較好的估計,費米問題或費米估算因此得名。一個經典的費米問題的例子是,“在芝加哥有多少位鋼琴調琴師?”
謎題作為一種新生事物,在1990年代的程序員面試里風靡一時。這在《How Would YouMove Mount Fuji?》(如何移動富士山?)一書中有很好的記載,書中還強調微軟公司在招聘過程中就使用了謎題。
如果你已經知道你將去應聘的公司會問這類謎題,預先研究一下常見的面試謎題是很明智的。如果你覺得你已經對一般的謎題很在行了,那我就要來考驗你一下,看看下面這道史上最難的面試謎題吧:
這里省略N字...... 這里有很多謎題:http://www.cartalk.com/content/puzzlers/2011
換句話說,我討厭謎題!(但愿那些謎題狂熱者們都能解答出來……)意料之中,我沒有通過那次面試。我當時很失望,因為那份工作還是挺酷的!
倒不是說我在“與程序員面談”一節里給出的建議會更受歡迎,但我確實認為那要好得多!
在前一節,我給大家介紹了一種我自創的方法,那也是面試程序員最理想的方式:讓候選人在你的團隊面前就他們做過的某樣東西做10分鐘閑聊式的演講。 你當然還可以用一些實際的需要動手的編程測試來作為補充,以確保那位候選人不是在招搖撞騙——盡管我堅信,如果你不是真的理解你正在談論的東西的話,你是 不可能在一個技術性演講里糊弄一群同仁的。(如果你真能這么糊弄,你現在應該已經成為一家創業公司的CEO了!)
我在這里要強調的是溝通能力。對于大部分程序員來說,在他們通過了“Fizz-Buzz”級別的能力測試之后,他們看起來已經相當不錯了。但只會寫代碼還不夠。如果想從優秀發展到卓越,你必須培養起有效溝通的能力:與你的同事溝通,與你的老板溝通,與用戶溝通,最終與全世界溝通。
因為我們第一個小孩的出生,我和我的妻子在一家醫院里待了5天。在住院期間,我們受到了很多名護士的協助——每天至少兩名不同的護士,有時還會更 多,因為我們要去不同的科室就診,而且護士每天還有換班。這家醫院的護理質量總體來說是相當高的,但我們也為從最差的護士那里和最好的護士那里分別得到的 護理之間的差距倍感困惑。幾天之后,我終于發現了一個共性——最差護士的溝通能力必定最差的!這些護士無法跟我們進行有效的溝通,比如:
- 為什么她們需要做某事
- 可選方案有哪些
- 提供建議
- 排解我們的問題 </ul>
這讓我們覺得,她們都是些死板的、只知道照章辦事的人,她們不會照顧人,或者她們沒有主見(必須不斷地請示上級)。當然,事實不是這樣的。我相信, 她們都是完全合格的專業護士。但在必要的溝通缺失的時候,她們確實看起來很糟糕!我還得說句公道話,這些護士常常(也不總是)不是本地人(她們的母語不是 英語)。
即使在最佳的條件下,招聘也不是件易事!但如果讓面試流程太過依賴于謎題就太冒險了。當然,程序員們最終可能把你扔給他們的蹩腳謎題解決了(我猜他 們也許只是記住了答案)。但是,把那些解決方案有效地解釋給團隊中的其他人聽,難道這不同樣重要嗎?對于很多程序員來說,那是謎題中最難的部分。
來自:http://blog.csdn.net/happydeer/article/details/8448943