本節書摘來自異步社群出版社《程式員的修煉——從優秀到卓越》一書中的第1章,第1.6節,作者:【美】jeff atwood,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。
程式員的修煉——從優秀到卓越
對于權威,我心存芥蒂。我在“strong opinions, weakly held”(觀點鮮明,但不固執己見)一文中曾經說過下面的話。
當我了解到别人把我視為專家或者權威,而不是像夥伴一樣的志趣相投者時,就會覺得局促不安。
如果非要我說在迄今為止的職業生涯中學到的一點東西的話,那一定是:當你用專家或者自以為洞悉一切的眼光去面對軟體開發時,必将面臨失敗。
如果真的有所謂的專家的話,他們一定要比普通人更加不可信,因為他們不夠客觀。各位讀者應該像懷疑身邊所有的東西那樣懷疑我寫的内容。自己調查研究得來的資料應該勝過你從别人那裡得來的資訊,無論那些人被你、我、谷歌乃至大型社群認為有多麼權威。
你和那些自以為是專家的程式員共事過嗎?應該感覺很痛苦吧?我就有過這樣的經曆。你或許會說我已經對專家有了偏見。那麼,維基百科(wikipedia)和我一樣——在維基百科上有一段标題為“給予專家編輯者的警告”的文字做了如下解釋。
1.專家們會通過對經驗和證書的展示來證明自己與衆不同。如果總是默不作聲,是沒有辦法向人證明自己的專業的。但事實上,通過這種方式來證明自己的專業是毫無意義的。
2.專家們沒有解決編輯沖突的特權:如果一個專家和一個普通人對于某段内容存有争議,專家不允許擺架子宣判自己勝出。總之,在維基百科,不管你是不是專家,像“因為是我說的”這樣的話是不會被接受的。同樣,專家貢獻的内容是不會被保護的,普通人可以在後面的版本對其進行修改。理論上來講,編輯的品質才是決定性因素。
3.在維基百科,有一股強大的反專家思潮。如果你是專家,那麼對你的要求會比對常人的更高。
在這裡,我們可以體會一下這個由整個社群的人來維護的、自由的、開放的百科全書對于專家貢獻的懷疑論。但是,這樣做可行嗎?
我想說,不去考慮這些内容的來源,而隻靠對内容的嚴格稽核,這恐怕是唯一可行的方法了。這是對于權威的一種激烈挑戰。但是,這種挑戰恰恰是必要的。這個世界上隻有少數的專家,卻有大量的普通人。當你想要建立一個包含各種資訊的網站時,這些普通人的貢獻是最最重要的。這是一個不規則的世界,裡面裝滿了無窮無盡的細節。對于這一點的認識,恐怕沒人能超過程式員了。每天與各種細節做着鬥争的程式員,他們對目前的問題擁有最多的認識;對于這些細節,并沒有多少專家能夠了解。
于是,當人們普遍認為專家意見(往好了說)是不切實際,或者(往壞了說)是累贅的時候,成為專家還有什麼意義呢?在最近的一次谷歌訪談中,james bach描述了一個後現代專家的典型形象——他就是《摩天大樓失火記》1中的steve mcqueen。
(轉向消防局局長)“kappy,我們現在的情況怎麼樣?”
“火是從81層的儲藏間開始的,煙非常大,我們目前無從得知煙已經蔓延到哪裡了。”
“那排氣系統呢?”
“應該會自動打開的,可能是引擎燒壞了。”
“那灑水器呢?”
“81層的灑水器沒發揮作用。”
“為什麼?”
“我不知道。”

(轉向設計師)“jim,給我快速介紹一下這裡的救火供水管系統。”
“每層都有3英寸和1.5英寸的出水口。”
“每分鐘加侖數是多少?”
“從底層到68層是1500,從68層到100層是1000,100層以上是500。”
“這些電梯有應急程式嗎?”
“有的。”
“那你打算從哪一層開始?”
“79層。那裡是我的辦公室。”
“也就是火災下面的兩層。那将會是我們的前方指揮部。大家帶上工具。另外我想看看從81層到85層各層的規劃。”
“好的。”
(轉向安保總監)“給我一份你這裡的住戶清單。”
“不用擔心,我們正在把他們轉移出來。”
“不是那些住在裡面的人,而是那些在這裡的商戶。”
“我們很幸運,絕大多數人還沒有搬進來呢,其餘的晚上都下班了。”
“我想知道他們都是些什麼人,不是他們現在在哪兒。”
“他們是什麼人?這有什麼關系嗎?”
“有羊毛或者絲綢的生産商嗎?這些材料燃燒之後會釋放出氰化物氣體。或者有體育用品的生産廠商嗎,比如乒乓球?這些東西燃燒之後會釋放出有毒氣體。還要我繼續往下說嗎?”
“好吧,我去給你準備一份住戶清單。”
(轉向救火隊長)“都準備了些什麼?”
“升降機組,中央控制。貨梯在這裡。空調的輸送管,6英寸的。”
“管道都在這裡嗎?”
“1個,2個,3個,4個,5個。”
“81層有沒有施工的地方?有沒有易爆物,比如汽油、清洗劑?”
“我想沒有。”
這段對話除了告訴我們steve mcqueen脾氣不太好之外,還有什麼呢?作為一位專家,重要的不是告訴别人你知道什麼,而是要清楚你應該問什麼樣的問題,并且靈活運用你所掌握的知識去解決眼下的具體問題。作為專家,你的作用是提供明智的、可執行的方向。
我喜歡james bach的演講的原因是,他把演講的整個前半部分時間都用在質疑和颠覆所有的一切上了,包括他的領域、專業知識,甚至他自己的名聲和信譽。在那之後,他才通過一個持續學習的過程,慢慢地、小心翼翼地進行重塑。
第0階段:我克服了漫不經心。
我現在明白了,我需要學點東西。
第1階段:我克服了恐懼。
我覺得我可以學會這個科目或者技能。我會對它變得很了解,而不會懼怕比我懂得多的人。
第2階段:我變得有條理。
我不再覺得自己不懂裝懂或者不學無術。我覺得我有能力參與讨論或實踐。我對自己說的話很有信心。
第3階段:我超越了自身能力。
現在我覺得對自己有了更高的要求,不再停留在“過得去”而沾沾自喜。我想冒一點風險,富有創造力,不斷學習,不斷推動自己進步。我想要與那些充滿熱情的人共事。
james bach先生太有洞察力了,他就是我最喜歡的那種“海盜學者2”。他給新近成為專家的那些人提了一些建議:
實踐,實踐,再實踐!
不要把經驗和專業知識混淆。
不要相信口口相傳,但可以了解一下。
不要單憑信仰,要有自己的方法論。
擁有自己獨特的學習方式——這點沒人能幫你。
請愛惜羽毛。建立并維護自己的聲譽。
孜孜不倦地收集資源、資料和工具。
建立自己的标準和道德規範。
避免那些庸俗的技能認證。
與那些自我要求高的同僚一起工作。
多寫,多說,保持誠實。
當然,bach先生在這裡談論的是測試,但我相信這些建議一樣可以被用于程式開發,或者其他會用到你的專業能力的領域。從懷疑一切開始,而且一開始的懷疑對象更多的是自己。
如果你想成為一個真正的專家,而不是徒有虛名,那就效仿一下steve mcqueen吧——不要隻是告訴别人該做什麼,而要做一個善于問問題的人。