![]() |
| 網站首頁 | 睡前故事 | 童話故事 | 校園故事 | 勵志故事 | 民間故事 | 成語故事 | 笑話故事 | 經典故事 | | ||
![]() |
||
|
||
|
|||||
《黑客與畫家》讀后感3000字 | |||||
作者:佚名 童話故事來源:本站原創 點擊數: 更新時間:2023/4/27 ![]() |
|||||
《黑客與畫家》讀后感3000字: 大家,好,今天是假期最后一天,五四青年節。我歷來的習慣是小長假結束前一天隨便拿起一本書來讀,讀完更好,隨便翻翻也行的,這樣第二天工作便無生雜念,當然能寫下一篇讀后感就更好了,調整一下準備明天的工作吧! 這本書是一個散文集,一共15篇,每篇文章之間沒有關聯,大家可以跳躍著來讀。"黑客與畫家"是其中一篇,書名也取了這篇文章的名字,大家現在看的這篇文字也是重點在理解"黑客與畫家"這篇文章的基礎之上的讀后感。黑客與畫家有什么聯系呢,我在《架構修煉之道》一書的最后一章也寫過類似的文章,題目叫做"程序與健身",只要思考,聯想,兩種事物之間是有聯系的,實際上按照哲學的思維萬物之間皆有聯系,當然我思考的水平還遠遠沒有達到《黑客與畫家》這本書乃至這篇文章的高度,更不敢妄異曲同工。 當提到黑客,在一些大眾的眼里面,黑客就是入侵計算機的人,和計算機犯罪聯系在了一起。那么黑客一詞最早的時候是定義為那些專門解決計算機中出現疑難問題的人,是一流能力的象征,自由軟件基金會的創始人理查德.斯托爾曼說:"出于興趣而解決某個難題,不管它有沒有用,這就是黑客。"可見,從精神層面看,黑客追求著一種愉悅或者是享受,是有精神追求的人。黑客在這本書中也傾向于代表著優秀的程序員或者軟件設計師,但是對"軟件工程師"這個稱謂,作者是不太贊成的。作者認為優秀的軟件設計師如其說是工程師,還不如說是建筑師,建筑師表現在"做什么",而工程師表現在"怎么做",有意思的一點是,在英語中"建筑師"和"架構師"是同一個詞architect,那么優秀的程序員不僅負責建造,還負責架構。當然作者也提到,"做什么"和"怎么做"不應該分得太開,比如一名軟件架構師或者設計師,決定做一件事,知道做什么,卻不知道怎么做,那是一件自找麻煩的事情。 黑客與畫家都是創作者: 根據以上敘述,可以看出黑客是跟計算機有關系的了,那么書中先對"計算機科學"描述了一番,書中的觀點將計算機科學分成了"三段",兩端和中間。中間的這部分是由計算機博物學家研究的方向組成,比如網絡數據路由。兩端中的一端是數學家,比如二進制,十六進制換算等等,另外一端則是我們說的黑客,按照書中的描述,黑客們只想寫出有趣的軟件,"對于他們來說,計算機只是一種表達的媒介,就像建筑師手里的混凝土,或者畫家手里的顏料",此時文章第一次將黑客與畫家聯系在了一起。為什么要把畫家跟黑客放在一起,此時我GET到第一個主要原因之一就是畫家是屬于創作者,黑客也是創作者。除非黑客僅僅是按照產品的需求或者說是產品規格說明書一字不漏的編寫代碼將產品實現出來,那么此時黑客就不是在從事創作的工作,正如書中所描述的那樣"那么他其實與一個挖水溝的工人是一樣的,從這頭挖到那頭,僅此而已"。此時的程序員是被當做技工,職責就是將產品經理的"構想"翻譯成了代碼而已,這樣的程序員距離創作者實際相差十萬八千里。 黑客與畫家的學習途徑: 黑客和畫家都屬于創作者,創作者們學習的途徑是相似的。畫家學習繪畫主要是動手去畫,黑客學習編程也是一樣需要動手去寫代碼。我們常說"三思而后行"實際上對于黑客等創作者更應該是"先行而后思",三分想七分做然后再三分想,充分做到十以上。創作者們的另外一個學習途徑是通過范例,畫家去觀摩別人的畫作,書中提到"對于畫家來說,博物館是美術技巧的圖書館",而黑客的學習范例,就是閱讀別人優秀的源代碼,"開源最鮮為人知的優點之一,就是使得學習編程變得更容易了"。 黑客與畫家的學習方法: 創作者們創作的過程也是相似的。一幅畫是逐步完成的,起初只是一張草圖,然后再慢慢的雕琢細節。書中提到,很多的名人古畫如果放在X光下檢查,都能看出修改的痕跡,有的四肢被移動過,有的臉部表情被調整過。也有的時候繪畫,原先的構想就是錯的,這個時候必須接受修改。讀后感這點跟黑客編寫代碼也是極其相像,而且繪畫的過程應該值得黑客去學習,因為我們不能盼望著有一個完美的設計,然后再去動手編程,這樣想是不現實的,實際上經驗也告訴我們這個確實是不現實的。我們在學習軟件的時候很多設計的書籍,比如《架構整潔之道》中都會提醒,不要過早優化。動態的修改,這個特性也驅使黑客們更喜歡動態的編程語言比如ruby,Python,而不喜歡靜態的編程語言比如c++,java等,因為動態的編程語言不必提前就設置好各種變量的數據類型。注:書的作者更認為編程語言的靈活性最關鍵的地方應該在于"語言應該非常抽象,最容易修改的語言就是簡短的語言"。 黑客與畫家的細節之美: "堅持一絲不茍,就能取得優秀的成果。因為那些看不見的細節累加起來,就變得可見了",既然一直拿黑客和畫家做關聯,那就不得不提達芬奇,書中以達芬奇的《女性的肖像》為例,這幅畫是人物畫,背景是一片樹枝,既然是背景那么大家都認為是次要的襯托物,但是達芬奇不這樣想。他把這片作為背景的樹枝處理的非常細致。許多觀眾走到這幅畫的前面,當還沒有看到標簽上達芬奇的署名的時候,已經被它深深的吸引住了,甚至大家都沒有意識到這是達芬奇的畫作。當那些看不見的細節疊加在一起,就這樣產生了驚人的效果,"仿佛上千個細微的聲音都以同一個音調在歌唱"。優秀的軟件同樣也要對細節的美有狂熱的追求,當看到有些代碼連格式的縮進都亂七八糟的時候或者看到丑陋的變量名的時候,對于閱讀軟件的人的心里都會造成不可言述的描繪。繪畫和軟件都是為用戶服務的,"程序寫出來是給人看的,附帶能在機器上運行。" 黑客與畫家的工作心里周期: 黑客與畫家都屬于創作型工作,都需要熱情或者靈感。專業的說法是工作起來都有心里周期。想一想,是不是有時候我們會為了實現一個新的想法,去著迷的連續工作寫代碼好幾個小時。對于此,我想直接引用書中有一段描述是這樣的。"對于編程,實際上意味著你可以把bug留在以后解決。消滅bug對我來說屬于輕松的工作,只有在這個時候,編程才變得直接和機械,接近社會大眾想象中的編程的樣子",這才是真正的黑客啊,反觀我們是在解決bug,而黑客認為解決bug是機械的工作。繼續書中的描述,"你的程序應該能產生x結果,但是卻產生了y結果。哪里出錯了?你知道自己最后能解決這個問題,所以做起來就很輕松,就好像刷墻一樣,接近于休閑了。",在書的作者來看編程永遠是創作性的工作。 黑客與畫家都需要合作: 書中介紹歷史上很多偉大的藝術創作都是多人合作一起完成的杰作,當多個畫家共同創作一幅畫的時候,每個人的所畫的步伐都是不一樣的。這里面有分工,仔細讀來跟軟件工程相似,比如大師負責畫主要人物,助手畫家負責畫次要人物和背景。但也絕對找不到某一個部分是兩個人一起畫的。跟我們一個團隊去編寫軟件系統是不是類似,不過作者強調了一點,"需要合作,但是不要合的過頭",書中寫到如果一個代碼有三四個人共同開發,就沒有人真正"擁有"這塊代碼。這種情況一旦發生,就像"一個公用雜物間,沒人管理,又臟又亂,到處堆滿了冗余代碼"。因此我們實際軟件系統開發中,每個模塊都有一個人明確負責。作者:王新棟 |
|||||
童話故事錄入:admin 責任編輯:admin | |||||
| 設為首頁 | 加入收藏 | 聯系站長 | 友情鏈接 | 版權申明 | 網站公告 | 管理登錄 | | |||
|