国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
優(yōu)秀程序員的兩大要素:懶 + 笨 | 澤歐里

優(yōu)秀程序員的兩大要素:懶 + 笨

 
ZealLi 2005-08-30 15:29 于 綜合開發(fā) , 2818 字, 4 圖 |  + 0 - 0   English
轉(zhuǎn)載請保留本文原始鏈接:http://www.zeali.net/blog/entry.php?id=157
關(guān)鍵字: , , ,
這兩個詞和優(yōu)秀聯(lián)系起來,似乎有些不可思議。但從辯證的角度來看,這兩項要素確實是成為一名好的程序員所應(yīng)該具備的。Philipp Lenssen的原文請看這里。本文并非完全原文直譯,但對于作者的觀點,本人基本贊同。

   只有懶惰的程序員才會去編寫那些可以最終代替自己工作的自動化工具,才不會成天為了實現(xiàn)相似的功能去編寫大段大段冗余重復(fù)的代碼 - 這種代碼往往是軟件后期維護和重構(gòu)的天敵。通常來說,由于惰性的驅(qū)使所產(chǎn)生出來的工具和程序?qū)⒆罱K極大的提高生產(chǎn)開發(fā)的速度。

  當(dāng)然,對于一個程序員來說,光光具備懶惰這個要素還是不夠的。在享受懶惰之前,他必須以最大的熱情和最高的效率去研究解放自己的途徑,比如:找到最有助于開發(fā)的工具,最能體現(xiàn)“一次編寫,多次復(fù)用”精神的代碼架構(gòu)的設(shè)計。只有在這些必要的工作之后,才可能真正享受輕松編程的樂趣。

  所以“懶”的精髓用一句老話來描述,那就是磨刀不誤砍柴功。如果你不想辦法磨亮手中的柴刀,就算一天二十四小時都在砍柴,效果也不如拿把鋒利的斧頭一天只砍一小時。

  從這個角度來說,Google給員工的20%自由時間是完全發(fā)揮了“懶”的能動力。為了更好的享受偷懶的樂趣,員工會更加具有創(chuàng)造力的去高效完成自己的任務(wù)。

  夸張一點來說,懶惰才是人類進步的原動力。

   這一點似乎比懶更讓人不能接受。在解釋這里所說的笨的具體含義之前,我們先看看一個聰明人(或者說認為自己足夠聰明)會做什么:

1) 停止學(xué)習(xí)新的東西
2) 不愿意用批判的眼光去審視自己的工作

  第1點將使我們很難去接受或者主動的去研究一項新的技術(shù) - 即使新技術(shù)能帶給他更多工作上的便利。第2點會使我們無法清晰的分析自身工作的問題所在,要對其進行改進或者重構(gòu)就更加困難。

  從這兩點來考慮,作為一個程序員太自以為是不見得是件好事情。由于對自身的過于自信,往往無法客觀的看待自己和自己的工作。相反的,笨一點(確切的說,謙遜一點)有時候倒有助于開發(fā)的順利進行。舉例來說,當(dāng)程序出現(xiàn)bug的時候,最好盡早承認問題是出在自己編寫的代碼上面而不是在于編譯器(當(dāng)然除非是字節(jié)高低位編碼方式之類的問題,這種問題編譯器會是錯誤的根源之一)。如果你太自負的認為自己的程序沒有問題而去猜測可能是編譯器或者其他的什么外部因素出問題的話,那么十有八九你會在調(diào)試過程中走上一長段的彎路。

  程序員應(yīng)該笨一些的更為關(guān)鍵的原因在于,當(dāng)需要思考問題的最佳解決方案的時候,往往要求我們首先要跳出思維定式。你對系統(tǒng)了解的越多,積累了越多的經(jīng)驗,就越難走出已有的局限,可以嘗試的范圍就越小。相反的,對于一個什么也不懂的門外漢來說,因為沒有任何失敗的記憶和潛規(guī)則的約束,也就沒有什么是“不可能”的,這樣的大腦所能迸發(fā)出來的在專業(yè)人士看起來愚不可及的想法往往正是解決問題所需要的關(guān)鍵點所在。

  可能很多程序員都會有類似的經(jīng)歷,在面對別人(尤其是其他部門)對于一個bug的描述的時候,必須把自己擺在一個普通用戶而不是程序開發(fā)者的角度來分析問題,否則的話可能你永遠都想象不到這種錯誤也會發(fā)生。越能讓自己變得“笨”起來,越能很快的定位到問題所在。我們先看看這么一段關(guān)于web開發(fā)問題的程序員和客服人員的對話:

“從昨天開始我們的用戶就看不到我們站點上的Logo了。”
“他試過重啟瀏覽器么?”
“是的。”
“他試過重啟電腦么?”
“是的。”
“他清空過瀏覽器Cache么?”
“是的。”
“他的瀏覽器版本是IE6么?”
“是的。”
“他確信是真的看不到Logo了么?”
“是的。”
“他是在電腦顯示器屏幕上看我們的站點么?”
“什么?”
“比如說,它可能是打印出來看不到?”
“不。他是在顯示器上看的。”
“除了站點Logo之外,他是不是其他的圖片都看不到?”
“什么?哦。我再問問他。”

  從這段對話來說,估計用戶實際上是禁止了瀏覽器顯示圖片的功能(或者他兒子干的)。不管怎么樣,如果你不是用這種傻瓜式的思維方式去尋找答案的話,可能怎么也找不到問題的根源。

  很多時候,問題發(fā)現(xiàn)者對于問題的描述往往是非常片面的,并且加上了主觀推測的成分在里面。如果你不能透過這些主觀的描述去發(fā)現(xiàn)問題的實際表象,或者說根本就是你自己根據(jù)程序員的經(jīng)驗邏輯來判斷問題所在的話,十有八九會在歧途上越走越遠。

  對于白癡級的問題,只有用白癡的行為方式才能得到答案。

  即便同樣是程序員,但對于你的程序并不熟悉,也會經(jīng)常有這樣的疑問:“為什么我調(diào)用你的代碼出錯了?”這種問題的答案,很多時候是因為他們的調(diào)用方式不對,或者調(diào)用了錯誤的庫文件,或者庫文件的版本使用不當(dāng),或者根本就沒有聯(lián)接到庫文件上。當(dāng)你想讓同事幫你檢查一下程序中的一個莫名其妙的bug的時候,一般來說希望他對你的系統(tǒng)了解的越少越好,只有這樣他才會問一些你自己認為絕對不可能出問題的“笨”問題。

  所以“笨”的精髓在于你如何去思考問題:不要假設(shè)些什么,把自己假設(shè)的太完美或者把別人假設(shè)的很聰明都會使你忽視一些很淺顯的事實。思考的前提必須是完整的事實表象,思考的過程必須是拋棄成見的問題跟蹤。在發(fā)現(xiàn)事實之前作太多的主觀思考和臆斷,倒不如把自己當(dāng)作白癡一樣來行動更好。

  當(dāng)然,不思考的一個極端是不分情況都直接去做,另一個極端是完全脫離事實,用思想辦事。一個優(yōu)秀的程序員應(yīng)該做好權(quán)衡。10次決定里面的1次錯誤決定不是致命的;只做5次正確的決定而另外5次沒有任何決定才更糟糕。

  最后是一個的故事。蜈蚣本來用自己的幾百只腳走路走的很快很好,但他從來沒有花時間去想過為什么。直到有一天,一只臭蟲問他:“你是怎么管理好你的幾百只腳的?你不覺得這是件很困難的事情嗎?”臭蟲問完之后就走了。只剩下蜈蚣坐在地上,不停的思考這個問題,卻一直想不出個究竟。從此以后,這只蜈蚣再也沒辦法好好的走路了。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
優(yōu)秀程序員的兩大要素:懶 + 笨
程序員十大誡律:如何進入編程的“無我之境”?
程序員哪種工作態(tài)度決定其“上層建筑”?
程序員在工作中常說的話有哪些?
TuGus--途加網(wǎng)--為什么說設(shè)計說明書很重要
勸一個程序員35歲就放棄寫代碼是極其不負責(zé)任的,甚至?xí)`導(dǎo)他們
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服