今天看了篇文章:
http://blogoscoped.com/archive/2005-08-24-n14.html
這篇文章是講為什么好的程序員是既懶有笨的!哈哈!
我記得在看UNIX編程藝術(shù)時,里面也有這么段話,說不會偷懶的程序員不是好程序員!
為什么呢!我們可以舉些簡單的例子:
1.只有懶惰的程序員才會去編寫那些可以最終代替自己工作的自動化工具,好的程序員都會有一套自己的代碼自動生成工具,有的是用模板語言,有的是用shell.在開發(fā)一個新的系統(tǒng)時,系統(tǒng)基礎(chǔ)框架設(shè)計好后,很多業(yè)務(wù)層代碼基本上都是一個模子出來的,要想讓這些代碼都是從一個模子里出來,那么就需要在底層下很大的功夫才能做到.所以,每個程序員夠應(yīng)該有,或者會寫代碼自動生成工具,當(dāng)然,這個工具并不是一個成功工具!它的前提是你必須在底層有足夠的抽象.
2.只有懶惰的程序員才不會去去寫大段的冗余重復(fù)的代碼,他們會想出各種方法來避免這種冗余代碼的情況,做的好的,就是在系統(tǒng)的基礎(chǔ)架構(gòu)層來解決大部分這樣的問題,通過精致的設(shè)計模式,高度抽象的模塊,易用的接口,高度可配置的基礎(chǔ)平臺等等來實現(xiàn),做的一般的會利用各種開源工具來代替自己想要的代碼,做的差些的就是不斷利用refactor重構(gòu)出那些重復(fù)代碼.
3.好程序員怎么可能"笨"呢!哈哈!俺們可都是天之驕子啊!小心我扔你雞蛋啊!
很聰明的程序員一般比較自信,難以聽進別人的意見,在一個團隊中,最怕的并不是怕沒有技術(shù)好的人,而是怕那些很聰明的人不跟你團隊保持一致,舉個例子,可能團隊里有一套通用的數(shù)據(jù)存取方法,但聰明的程序員會堅持己見,自己發(fā)明出一套新的方法來!聰明的程序員會認為自己更懂客戶的需求,而不顧市場人員提出的需求.這也是為什么很多人會說"要對團隊中聽話的人委以重任",我當(dāng)然不同意這種看法,但是,既聰明團隊意識又好的人,就比較少見了.團隊不行的話,一個人再聰明又有什么用?
4.聰明的程序員喜歡自己重新發(fā)明輪子!笨的程序員喜歡利用聰明的程序員寫出的代碼!
5.聰明的程序員一般有自己思維的定勢,笨的程序員因為什么都不懂,所以他的眼里什么都是可能,什么都是不可能!查找代碼問題的時候,聰明的程序員首先會說:這是系統(tǒng)的bug,笨的程序員會看看自己的代碼是不是有拼寫錯誤!笨的程序員跟容易換位思考,下面有個例子:
一段關(guān)于web開發(fā)問題的程序員和客服人員的對話:
“從昨天開始我們的用戶就看不到我們站點上的Logo了。”
“他試過重啟瀏覽器么?”
“是的。”
“他試過重啟電腦么?”
“是的。”
“他清空過瀏覽器Cache么?”
“是的。”
“他的瀏覽器版本是IE6么?”
“是的。”
“他確信是真的看不到Logo了么?”
“是的。”
“他是在電腦顯示器屏幕上看我們的站點么?”
“什么?”
“比如說,它可能是打印出來看不到?”
“不。他是在顯示器上看的。”
“除了站點Logo之外,他是不是其他的圖片都看不到?”
“什么?哦。我再問問他。”
也許,聰明的程序員遇到這個問題的時候,甚至可能去找個圖形算法分析下這個圖片是否有問題!
最后,以http://blogoscoped.com/archive/2005-08-24-n14.html中的故事結(jié)尾,,以博列為看官一笑^_^
It’s like the story of the centipede(蜈蚣). The centipede was very good at walking with its hundred legs. It never spent a thought on just how it could walk. Until one day, when a big black bug(臭蟲) asked the centipede “How can you manage to walk with all those feet? Don’t you find it hard to coordinate their rhythm?” The black bug already left, when the centipede was still sitting down, pondering how it could walk, wondering, and (for the first time in his life) even worrying a little bit. From that day on, the centipede couldn’t walk anymore.
So you better not think too much if you want to achieve something. And of course this is only half the truth, too...