Posted on 2011-08-03 23:49
laogao 閱讀(2093)
評論(1) 編輯 收藏 所屬分類:
Programming in General
可能很多人不以為然,寫作和編程能有什么關(guān)系。
首先,寫作促進我們思考。程序員每天的工作,不論是學習新知識新技術(shù)、理解軟件需求、閱讀代碼/文檔、設(shè)計框架、還是實現(xiàn)業(yè)務(wù)邏輯,都離不開思考。相信很多人都有過這樣的體驗: 對于某個設(shè)計或知識點,你以為自己想清楚了,但真要讓你解釋給別人聽,你又會覺得無從下手,幾輪過后回想當初,之前所看到和相信的不過是錯覺,當你完整的向其他人轉(zhuǎn)述一遍之后,你才算是真正想明白了。其實這個道理和書桌上放一只橡皮鴨/填充玩偶(然后向它講述你的想法)的做法是相通的,只不過寫作本身不光整理了思路,還留下了文檔,同時,寫作的過程也是不斷加深印象、提升信心的過程,可謂一舉多得。
其次,和寫作一樣,編程的主要目的是與世界交流,不論這個世界是指的機器的世界還是人的世界。要有效地與機器世界交流,你編寫的代碼必須符合一定的語法和范式,必須邏輯上講得通,這樣才有意義。而基本的寫作訓練可以讓我們養(yǎng)成主動留意錯別字、格式、拼寫錯誤、邏輯錯誤的習慣。如C. A. R. Haore所說,我們寧要明顯無錯誤的代碼,不要無明顯錯誤的代碼。這點潔癖是好程序員必須具備的修養(yǎng)。這也是為什么我看到有明顯拼寫錯誤的程序員簡歷時,會直接把他/她們拉黑。同樣地,我一直堅持認為,如果程序員寫不出結(jié)構(gòu)優(yōu)良的純文本文檔,那么我們也不必指望他/她能夠?qū)懗鰞?yōu)雅的代碼。除此之外,我們還可以再稍微發(fā)散一下: 開源項目那么多,滿足類似需要的往往不止一個,為什么有的很成功,有的卻無人問津? 主創(chuàng)/靈魂人物的寫作能力,不論是代碼、文檔、郵件還是PPT,是很重要的分野。我相信,改變世界、影響更多的人,是很多程序員夢寐以求的,而要做到這一點,離不開寫作。
最后,寫作通常是程序員的短板,亦即最容易低成本高產(chǎn)出的地方。我一直很不喜歡人為地給不同專業(yè)背景的人貼上文科和理科的標簽,仿佛他們之間沒有交集似的。這樣做的最大問題在我看來是一方天然地覺得另一方的知識對自己沒價值,以至于形成了類似"寫作是文科生的菜"、"編程是理科才要學的東西"等謬誤。就我的觀察,計算機科班出身的同學,往往文字表達能力不夠強,可能多少和這種心理暗示有關(guān)。如此明顯的短板,如果能夠引起廣大程序員群體的重視,肯在寫作上持續(xù)投入,效果一定是驚人的。