為什麼優秀的程式設計師既懶又笨

2021-07-04 17:55:52 字數 2177 閱讀 5759

摘要: 我認識到乙個非常有悖常理的現象,優秀的程式設計師都是即懶又傻的。因為懶,他才會寫出各種各樣的工具來替自己幹活。因為懶,他才會想辦法避免去寫無聊重複的**——因此避免的**的冗餘,消減了維護的成本,使重構變 ...

我認識到乙個非常有悖常理的現象,優秀的程式設計師都是即懶又傻的。

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

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

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

a)停止學習b)對自己的工作不再高標準、高要求

第一點將會導致他不再努力的去發現新的技術,讓自己工作的更快捷。第二點將導致他的**變得難以debug,難以重構。在程式設計師和編譯器無休止的戰爭中,程式設計師最好一開始就投降並承認是自己的錯,而不是編譯器的錯(除非是關於字元編碼問題,有些編譯器確實有問題)。

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

相反的思維模式就不是那麼具有創見性,會認為對現狀瞭如指掌,會接受現狀。可是又有誰知道多少你認為的不可能是真正的不可能?知道的越少你就會越激進。你開發的工具越好,你的產品就會因為它們變得質量更高。

我從工作中總結出,乙個優秀的程式設計師,在從經理那裡確認乙個需求時,他需要以乙個笨人的思維模式;他會從最簡單的,孩子般的問題問起。他不會想當然的接受這個問題提供者提供的資訊。在web開發中乙個典型的交談會是這樣:

「他重啟瀏覽器了嗎?」

「是的。」

「他重啟計算機了嗎?」

「是的。」

「他清空快取了嗎?」

「是的。」

「他用的是ie6嗎?」

「是的。」

「他確信是沒看見嗎?」

「是的。」

「他是在電腦螢幕上看我們的**嗎?」

「什麼?」

「是這樣,他也許把它列印了出來。」

「不,看是盯著螢幕看的。」

「什麼?哦,我問問。」

為了說明我們的主題(這個故事完全是虛構的),我們假設客戶真的關閉了瀏覽器的顯示。也許是他兒子幹的。不管怎樣,如果你用「聰明」的模式思考,你很難找出這樣的答案。所以這個程式設計師問的問題都不需要任何的程式設計知識。因為這是乙個很傻的問題,所以只有傻辦法才能解決。

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

相似的,當同事問我:「這為什麼不好用?」大多數時候是因為他們修改錯了問題(例如,他想鏈結lib1,但他實際鏈結的是lib2,或事實上他根本沒有鏈結 任何lib)。當你向乙個同事求助,尤其是程式設計問題,你一般不會告訴他更多關於專案的事情。當他問一些很傻的問題時,你潛意識裡就會抵制回答,因為你認為 你知道的很清楚,但事實上你並不是這樣。

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

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

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

推薦閱讀:程式設計師應該知道的11句話

新手程式設計師必讀:推進程式設計工作的七條箴言

為什麼優秀的程式設計師既懶又笨

摘要 我認識到乙個非常有悖常理的現象,優秀的程式設計師都是即懶又傻的。因為懶,他才會寫出各種各樣的工具來替自己幹活。因為懶,他才會想辦法避免去寫無聊重複的 因此避免的 的冗餘,消減了維護的成本,使重構變 我認識到乙個非常有悖常理的現象,優秀的程式設計師都是即懶又傻的。因為懶,他才會寫出各種各樣的工具...

程式人生 為什麼優秀的程式設計師又懶又笨!

我認識到乙個非常有悖常理的現象,優秀的程式設計師大都是即懶又傻的。因為懶,他才會寫出各種各樣的開發工具來替自己幹活。因為懶,他才會想辦法避免去寫無聊重複的 因此避免的 的冗餘,消減了維護的成本,使重構變得容易。最終,這些由於懶惰激發出的動力而開發出的工具和最佳程式設計實踐方法提公升了產品的質量。懶惰...

懶 笨 優秀的程式設計師

這兩個詞和優秀聯絡起來,似乎有些不可思議。但從辯證的角度來看,這兩項要素確實是成為一名好的程式設計師所應該具備的。philipp lenssen的原文 懶只有懶惰的程式設計師才會去編寫那些可以最終代替自己工作的自動化工具,才不會成天為了實現相似的功能去編寫大段大段冗餘重複的 這種 往往是軟體後期維護...