本節書摘來異步社群《高效能程式員的修煉》一書中的第1章,作者: 【美】jeff atwood 譯者: 陸其明 , 張健 責編: 陳冀康, 更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。
高效能程式員的修煉
我得忏悔一下:程式員同胞們,從某種程度上來說,我創辦的stack overflow網站“耍”了大家。
在你找來棍棒準備揍我之前,請允許我先解釋一下。
在過去的6年時間裡,我越來越堅定地有了這樣一個想法,那就是:成為一名傑出的程式員其實跟寫代碼沒有太大的關系。做程式員确實需要一些技能,當然,還要有堅韌不拔的精神。但除此之外,更重要的還是要有良好的溝通技巧。
傑出的程式員跟勉強過得去的程式員之間的差别,不在于他們掌握了多少種程式設計語言,也不在于他們誰更擅長python或java。真正的關鍵是,他們能不能把他們的想法表達清楚。傑出的程式員通過說服别人來達成協作。通過清晰的注釋和技術文檔,他們讓其他程式員能夠讀懂他們的代碼,這也意味着其他程式員能夠重用他們的代碼,而不必重新去寫。要不然,他們所寫的代碼的價值就大打折扣了。
以上是我的合夥人joel spolsky說過的一段話。我對他的這個觀點非常贊賞!
程式員們可能會争辯道:與人溝通本來就不是我們的長項;我們并不是因為熱愛跟别人聊天才做軟體開發這一行的。然而,溝通從來就是個問題,書面溝通尤其困難。既然我們選擇了這個行業,還是想想如何在這方面有所提高吧!我覺得寫部落格是個好方法:
人們需要花一生的時間去學習如何有效地寫作。這事沒有捷徑。這東西你也買不來。你必須自己去提高。
這也正是那些擔心自己寫作不行的人應該開始寫部落格的原因。
這是一種鍛煉。不管現在的你多麼不靠譜,隻要你每周練習幾次,就一定會有所提高。部落格不用太長,堅持每周寫幾個,你一定能越寫越好。但如果你因為寫作恐懼症而不這麼做,那麼,你很可能永遠就這樣了(别想成為傑出的程式員)!
大家都知道我抱有極大的善意,但隻是單純地對一個人說“你應該寫部落格”,他是不會理你的。對此我有切身體會。并不是所有的人都适合寫部落格。對于一個普通程式員來說,要他寫一篇哪怕是很短的文章,都是一項不可能完成的任務,就像要他的命一樣。那麼,我該怎樣讓廣大程式員自覺地寫部落格、培養起寫作習慣呢?
連哄帶騙呗,别無他法!
大家來看看我曾經收到過的這封信吧:
我不知道你有沒有意識到stack overflow的邊際效應,不過,這個網站确确實實教會了我很多有效寫作的方法,比我從以前聽過的任何課程、讀過的任何書,或參加過的任何其他活動中學到的都要多。
我想不出還有什麼其他工具,可以用來檢測我寫的東西,并且如此迅速地對它的品質給出回報。當我在stack overflow上回答問題的時候,特别是做一些高品質的技術糾錯時,我能看到其他人也在努力,所有的回複放在一起,差别自現。大家的投票是不會騙人的。他們給了我信心,讓我确信将來我發給同僚的電子郵件會在多大程度上被接受,也有助于我把商業企劃做得更好。
在過去的5個月時間裡,我可以察覺到自己寫的回複在品質上的穩步提升。如果我的回複沒被選為最佳答案,我會去看别人的回複,然後去研究原因。我會想:也許我寫得太啰唆了?也許太簡練了?也許我沒有抓住問題的關鍵,或者沒有一針見血?
我記得你曾經說過,這麼多年來你一直在coding horror發表博文,這極大地提升了你的寫作能力。我想告訴你,stack overflow對于我來說起到了相同的作用,是以我要由衷地感謝你。我決定效仿你,開設一個我自己的關于程式設計的部落格。今天我剛剛完成了域名注冊。我希望它能像stack overflow一樣出色。沒有哪個評論家會像程式員那樣,對每個細節都刨根問底,拼命地想從你說的話中或者文法結構中找出纰漏。如果你寫的東西能夠被廣大程式員接受,那麼你将能經得起任何讀者的考驗。
joel和我一直把stack overflow以及其他所有的stack exchange問答網站定位為輕量級的、專注的、不失趣味的寫作型網站。
沒錯,憑良心說,我們是在“誘導”你成為一個更棒的寫手。事實證明,這很奏效!stack overflow擁有很多非常明顯的像遊戲一樣的元素,能為你的進步助力,也能使網際網路變得更加美好。更重要的是,它使你變得更為出色!看着廣大程式員跟他們的同伴們聚集在一起,在專設的專家問答社群裡自然而然地提高了他們的書面溝通能力,我真是無比自豪!
還有其他的一些兄弟社群,它們同樣對程式設計以外的寫作推崇備至。在那裡,你可以自由地鍛煉你的文筆。我們也有這樣的網站。

如果你是一名作家、編輯、評論員、部落客、撰稿人,或者有志于任何方面寫作的人,職業的或非職業的,都可以去看看writers.stackexchange.com。不管你是做什麼的,有效寫作都是推進你的職業生涯發展的一種基礎性技能,必須加以重視!
再說一遍,你應該寫作!我覺得jon skeet總結得非常好:
每個人都應該大量地寫作,不管是撰寫部落格、寫書、回複stack overflow上的問題、寫電子郵件,還是寫其他的什麼東西。寫下來,然後回過頭去斟酌一下。依我的經驗,這種書面溝通有助于理清我們的思路。當你要向其他人詳細解釋某樣東西的時候,你會驚訝地發現你自己有多無知。于是,你不得不開始一個全新的探索過程。
寫作的過程真的就是一次探索之旅,而且它會貫穿人的一生。至于你是在寫一篇小說、寫印刷評論、回複stack overflow上的問題、創作漫畫故事、寫部落格、寫一段注釋、寫技術白皮書、寫旅遊日志或者是寫關于寫作本身的文章,這些真的都無關緊要。動手吧,開始寫起來!