為什么優秀的程序員既懶又笨!

  我認識到一個非常有悖常理的現象,優秀的程序員大都是即懶又傻的。

  

  因為懶,他才會寫出各種各樣的開發工具來替自己干活。因為懶,他才會想辦法避免去寫無聊重復的代碼——因此避免的代碼的冗余,消減了維護的成本,使重構變得容易。最終,這些由于懶惰激發出的動力而開發出的工具和最佳編程實踐方法提升了產品的質量。

  

  懶惰的程序員也因此變成了優秀的程序員。當然,這只是事情的一部分;從一個懶惰的程序員變成一個優秀的程序員,他/她會在學習如何能夠永遠保持懶惰時表現出驚人的不懶惰——也就是,什么樣的軟件工具能讓自己干活更輕松,什么方法能避免繁冗,如何能讓工作更容易的維護和重構。

  

  其次,(我將用多一點篇幅來說明這一點,因為我發現這個觀點比第一個更難接受。)優秀的程序員都是傻的。為什么?因為如果他很聰明,或他知道自己很聰明,他就會:

  

  ?a)停止學習

  

  ?b)對自己的工作不再高標準、高要求

  

  第一點將會導致他不再努力的去發現新的技術或者工具(PS:可能他就會不會發現像WeX5這么棒的APP開發工具),讓自己工作的更快捷。第二點將導致他的代碼變得難以debug,難以重構。在程序員和編譯器無休止的戰爭中,程序員最好一開始就投降并承認是自己的錯,而不是編譯器的錯(除非是關于字符編碼問題,有些編譯器確實有問題)。

  

  但是,還有一個優秀的程序員必須笨的更重要的理由。為了尋找到更好的問題解決方案,他必須保持一個謙虛的心態,他必須跳出模式想問題。某種程度上,這會讓他們回到小孩的思維模式;因從未經歷“no”的打擊而極具創造力。

  

  相反的思維模式就不是那么具有創見性,會認為對現狀了如指掌,會接受現狀??墑怯鐘興藍嗌倌閎銜牟豢贍蓯欽嬲牟豢贍??知道的越少你就會越激進。你的開發工具越好(PS:就像H5 APP開發工具——WeX5),你的產品就會因為它們變得質量更高。

  

  我從工作中總結出,一個優秀的程序員,在從經理那里確認一個需求時,他需要以一個笨人的思維模式;他會從最簡單的,孩子般的問題問起。他不會想當然的接受這個問題提供者提供的信息。在H5 APP開發中一個典型的交談會是這樣:

  

  “昨天,一個客戶說我們H5 APP上的logo圖片無法顯示?!?/p>

  

  “他連接網絡了嗎?”

  

  “是的?!?/p>

  

  “他重新啟動APP了嗎?”

  

  “是的?!?/p>

  

  “他的是最新版本的APP嗎?”

  

  “是的?!?/p>

  

  “他確信是沒看見嗎?”

  

  “是的?!?/p>

  

  “他是在手機屏幕上看我們的APP嗎?”

  

  “什么?”

  

  “是這樣,他也許在電腦上看的?!?/p>

  

  “不,看是盯著手機屏幕看的?!?/p>

  

  “除了logo,他能看到APP上的其它圖片嗎?”

  

  “什么?哦,我問問?!?/p>

  

  為了說明我們的主題(這個故事完全是虛構的),我們假設客戶真的關閉了網絡。也許是他的手機網絡故障。不管怎樣,如果你用“聰明”的模式思考,你很難找出這樣的答案。所以這個程序員問的問題都不需要任何的編程知識。因為這是一個很傻的問題,所以只有傻辦法才能解決。

  

  數年前,我曾就因為我的一次更新而弄壞整個網站的事情進行了一此很長的電話討論….事實證明是因為那個家伙把他的瀏覽器的CSS給禁掉了。從那時起,我就開始懷疑一切,而不是因為這樣一個簡單的事情而聆聽一個半小時什么是代碼質量的抱怨。最終,猜測是我的更新出了問題….只是一個猜測。如果你想解決問題,最好的方法是只聽事實部分,不要聽他們認為的可能的原因。

  

  相似的,當同事問我:“這為什么不好用?”大多數時候是因為他們修改錯了問題(例如,他想鏈接lib1,但他實際鏈接的是lib5,或事實上他根本沒有鏈接任何lib)。當你向一個同事求助,尤其是編程問題,你一般不會告訴他更多關于項目的事情。當他問一些很傻的問題時,你潛意識里就會抵制回答,因為你認為你知道的很清楚,但事實上你并不是這樣。

  

  事情當然有另外一面。太笨也就想不出任何辦法,做錯事,解決不了任何問題。而太聰明的喜歡坐著計劃好問題,但卻很少行動。實用主義的程序員取其中。他知道,10次決策一次錯誤比起只有五次正確決定而另五次什么都不做要好的多。

  

  這有點像一個關于蜈蚣的故事。蜈蚣很擅長使用它的100條腿一起走路。它從來沒有想過它是如何能做到這些的。直到有一天,一個臭蟲問他,“你是如何控制這么多腿走路的?你不覺得讓它們按一定的節奏配合走路很難嗎?”臭蟲說完就走了,蜈蚣卻仍然坐在那里思考,思考如何走路的,不解,甚至(此生中的第一次)有些擔心了。從那天起,這個蜈蚣再也沒能走一步。

  

  所以,如果你想實現某個事情,不要想太多。當然,這也只是事情的一半….

來源:螞蟻HTML5

上一篇: jQuery插件開發

下一篇: HTML5取代原生APP?Google的智,騰訊的謀,阿里外星人!

分享到: 更多
足球直播360 北京快3人工计划软件 新时时彩一星稳赚方案 pk10计划软件免费手机版 下载安装幸运飞艇精准计划 体彩7码遗漏 功夫时时彩计划软件下载 11选5背后是不是有人在控制 捕鱼app作弊 七星彩2019100期预测码 三星后三组选包胆如何选胆 街机动物狂欢怎么赢钱 必中一位 pk10四码二期必中方法 新彊福彩时时彩走势图 北京pk10定位胆技巧