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