• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            coreBugZJ

            此 blog 已棄。

            程序員真的很懶 (轉)

              可能除了哲學家以外,我認為程序員是最懶的一群人。他們的職業看起來又似乎有一定的勞動強度。


              想想看,生物學家要親自做所有的實驗…給數百只小白鼠注射藥物不可能自動完成。醫生必須給病人進行身體檢查;教授每年都要教授同樣的課程;建筑師從各個角度制定方案,并手工地將方案一筆一劃繪制出來。


              讓我們再來看看更為辛苦的一些職業,情況更糟。營銷人員要不斷重復地進行同樣的產品宣傳;理發師日復一日地做著同樣的事情;收營員每天都以相同的方式對貨物進行結算…工廠工人…


              你面前呈現出了一幅圖片,世界上有很多這樣的人,他們每一小時,每一天,每一年,有些甚至一輩子都在重復做著幾乎相同的事情。


              來看看程序員


              每當我們想連續兩次做同樣的事情時—我們會嘗試想一個方法來自動完成此過程。每當你寫的代碼是完成同樣的一件事時,你會開始尋找一個庫;每當你啟動一個類似的項目時,你會去尋找一個模板。


              將瑣碎地任務從我們的工作流程中剔除,這能讓每個人生活得更輕松。這里有一個經典的笑話,說一個程序員情愿用一周的時間來寫一個拷貝腳本,也不愿意將相同的文件復制粘貼兩次,盡管復制粘貼可能只需要兩分鐘。


              該死的,我們要遵循 DRY(Don’t Repeat Yourself 不要重復自己)的原則。這個原則的基本內容是寧愿創建一個令人費解的抽象類,也不要將不相同但非常相似的代碼寫兩次。


              這當然會導致很多問題。


              一般的軟件項目充滿了在頂層抽象類上構建的抽象類,你慢慢地會不清楚這些頂層抽象類將如何工作。甚至你完全不知道其代碼在做什么。”Dizzying but invisible depth“,涉及到這個問題時,你真的應該讀讀這篇短文。


              另一方面,懶惰本身已經證明了歷史上許多科學和工程發展所帶來的背后推動力。用有輪子的拖車運東西比人工搬運要輕松;用船在水中前行比游泳來得容易;甚至如果你他媽的想炸掉一座城市,你投擲一顆原子彈也比投擲幾千個小炸彈來的容易。


              所以這也許并不是說程序員是懶惰的。也許真正懶惰地是工程師們。只是恰巧在這樣一個歷史時刻,程序員作為工程師中最鮮明的一類,總是將世界向更好更光明的未來推動。而其它大多數領域已經在某種程度上穩定下來,或者需要更長的時間去適應新的工具。


              這里有一個重要的問題要問:程序員天生就懶嗎?聰明懶惰的人容易被編程工作吸引嗎,或者這是一種社會效應?懶惰源于最好的編程實踐?還是最好的編程實踐源于懶惰呢?


              一個比較


              最近,我有機會將一個建筑專業學生的一天與一個計算機科學專業的學生(就像我自己)的一天進行比較。


              大多數的建筑系學生的生活充滿了這樣或那樣勞動密集的任務,這些任務是她工作的一部分。在任何時候,她都有可能要對一些模型進行拼湊粘合,在 AutoCAD 中從 50 個不同的角度對同一個物體進行繪圖,或者在其它 3D 建模軟件中重復相同的事情…然后將這些圖片導入到 Photoshop 中成為真正好看的圖。


              這種事會接連不斷的發生。我估計她花費在課程作業上的時間比她實際上課的時間多一倍還不止(事實上她說花了 5 倍還多)。更糟糕的是,更好的完成這些任務并不能真正加快完成任務的進程,這只是意味著你多知道了幾個鍵盤快捷鍵,意味著下次畫圖時你可能會少犯幾個錯誤。


              熟練和精通完全無法優化關鍵的部分。


              相比之下,當我不上課時,我通常都在做自己的項目。因為我可以,因為我有充足的時間。當有作業布置下來時,一般情況下,我都可以在幾個小時內完成…即使是最關鍵最重要的項目,老師也很少給我們超過一周的時間來集中完成作業,最多兩周。


              精通編碼并不意味著你打字更快(與建筑專業中等同的能力不同)。它意味著想出的解決方案更容易實現,利用工具來達到事倍功半的效果,諸如此類。最終,通過互聯網進行測試評判,而實現過程是最無關緊要的部分,因為每個人都會。如果你有一天的時間,你可以實現某些東西。如果你有更多的時間,你可以使這些東西實現得更漂亮,模塊化更高,可重用性更強,等等。


              基本上你能夠快速地實現眼前的任務,你工作中大部分時間都在致力于使你的任務完成得更加漂亮。但這對于你手頭的任務來說其實并不重要,你這樣做是因為你可以。


              甚至于當程序員對自己的優化工作都產生厭倦時,他們會立馬轉而去創建工具來完成優化工作。


              事情就這樣周而復始地重復著。


              接下來的家伙會使用他創建的新工具,使實現過程變得更快,接著優化它直到他最終厭倦,然后創建了一個新的更好的工具。


              所以…是辛苦的工作?


              但回到我最初的觀點,辛苦工作對程序員的生產效率存在多大的影響?對于那些每天辛苦工作 13 小時以上,以取得競爭優勢的創業者來說,這又意味著什么?這是值得考慮的一種優勢嗎?


              辛苦的工作可能對程序員工作效率產生負面的影響。它掩蓋了背后所做的優化工作“哦,我可以手動把它完成,這將只需要 10 分鐘時間”(其實這需要 20 分鐘)。下一次,一個相似的任務到來時,你可能需要再次手動把它完成,長此以往…


              最重要的是,辛勤地工作會使你變得很笨。許多研究表明,持續疲勞的狀態會使你做出錯誤的決策,甚至過多的決策也會讓你會出錯誤的決定(稱為決策疲勞)。事情上,這可能是我們喜歡創建抽象類并使用它們的原因——讓其它人做大多數的決策,這樣我就可以只專注于關鍵的部分。


              但是,我仍然沒弄懂,到底是懶惰的人更喜歡編程,還是編程使他們變得懶惰…

            posted on 2012-04-12 09:35 coreBugZJ 閱讀(368) 評論(0)  編輯 收藏 引用 所屬分類: 技術視野娛樂

            国产99久久久国产精免费| 国产精品久久久久9999高清| 欧美激情精品久久久久久久九九九| 91性高湖久久久久| 久久精品?ⅴ无码中文字幕| 久久久久久久综合日本| 久久福利资源国产精品999| 久久er99热精品一区二区| 久久线看观看精品香蕉国产| 久久91这里精品国产2020| 国产精品久久久香蕉| 久久精品www人人爽人人| 国产免费久久精品丫丫| 国产毛片欧美毛片久久久| 99精品国产在热久久| 青青青青久久精品国产h久久精品五福影院1421 | 亚洲中文精品久久久久久不卡| 久久亚洲精品无码AV红樱桃| 日韩亚洲欧美久久久www综合网| 亚洲国产成人久久精品99 | 亚洲国产成人久久综合碰碰动漫3d| 久久天天日天天操综合伊人av| 午夜精品久久久久久99热| 狠狠精品干练久久久无码中文字幕| 亚洲国产精品无码久久久久久曰| 国产精品久久久久9999| 亚洲AV无码久久精品色欲| 精品国产一区二区三区久久蜜臀| 欧美一区二区三区久久综| 久久久久久国产a免费观看不卡| 久久99热只有频精品8| 青青热久久国产久精品 | 久久精品桃花综合| 99久久国产主播综合精品| 色综合久久久久久久久五月| 免费一级做a爰片久久毛片潮| 99久久精品国产麻豆| 亚洲精品美女久久久久99| 久久99这里只有精品国产| 久久精品国产亚洲Aⅴ蜜臀色欲| 72种姿势欧美久久久久大黄蕉|