你這輩子可能都不需要看《電腦程式設計藝術》了!

2021-02-15 碼農翻身

我在大學的時候並不知道《電腦程式設計藝術》(簡稱TAOCP)有多牛,他的作者有多牛,人家計劃寫七卷,寫了三卷以後,圖靈獎的評委們就「迫不及待」地把圖靈獎版給他了。 

我只是看到了比爾蓋茨的一句話:

「如果你完完整整讀完了《電腦程式設計藝術》,請立刻給我發一份簡歷。」  

我立刻就跑到圖書館去,翻出了那本泛黃的,破舊的《電腦程式設計藝術》,準備看完後給蓋茨發簡歷。

這本書一開始就是數學準備,講歸納法,冪,對數,排序和階乘,幾乎全是數學公式,我一看到數學就頭大,特別是覺得這些東西高中應該掌握了,於是果斷跳過。 

然後的章節就把我鎮住了,這是什麼算法書啊!一開頭居然自定義一個了虛擬的計算機,附帶了一套自定義的彙編語言,然後書中的算法都用自己的彙編語言來寫, 截個圖大家感受下:

用彙編寫算法,這不是自虐嗎? 為啥不用C語言? C語言也很貼近硬體啊!

哦,這本書出版的時候(1968年)C語言還沒誕生(1972年)呢!  

Kunth 老爺子選擇自創彙編,除了迫不得已,還有可能是語言會隨著時代潮起潮落衰落,而彙編將會永恆。

我釋然了,放棄了, 決定不再給比爾蓋茨發信了。 

我很清楚自己有幾斤幾兩,這本充滿著數學和彙編的書並不是為我等凡夫俗子縮寫,我還是老老實實地去看我的數據結構和算法的教科書把。 

Knuth說過: 「要是看不懂 TAOCP,就別當程式設計師。」  

顯然Knuth是錯的, 我還是成了一個程式設計師。

工作以後,我還買了一本,放到書架上來裝點門面,顯得自己非常高深的樣子。  

有一次被同學看到了,調侃似地問我:「你真的把這本書看完了? 給比爾蓋茨發簡歷沒有?」 

我無言以對,默默地把它從書架上抽出來,放到了箱子的最底部,然後換上了一本《算法導論》 。

後來這個「可惡」的同學又來了,驚訝問我:「你把《算法導論》看完了? 厲害啊!」

於是我默默地把《算法導論》 也抽了出來,換上了一本《算法》。沒錯,這就是我一直推薦的一本算法書,適合我等凡夫俗子閱讀。 

如果你不是做算法分析的,我不建議你去碰《電腦程式設計藝術》這個聖經了。有啃這本書的時間,我覺得還不如自己去折騰個作業系統出來,要有意思得多。

相關焦點

  • 最偉大的程式設計師高德納:談電腦程式設計藝術
    對於所謂的「某種標準」,可能Grady跟我的意見是不一樣的,那就如沒有任何兩個人能對哪種音樂是最好的問題達成完全一致的意見。但是,音樂家無疑是清楚自己喜歡和不喜歡什麼音樂的,也很清楚自己什麼時候創造出好音樂。這就很類似我看待程序的方式了。我想最終都是個人喜好的問題?的確如此。沒有一個算法你會在輸入以後問自己:這到底夠不夠漂亮呢?
  • 最偉大的程式設計師高德納: 談電腦程式設計藝術
    Knuth)教授是備受尊崇的系列巨著《電腦程式設計藝術》(The Art of Computer Programming)和數十篇受到高度讚譽的計算機科學論文的作者。2011年6月,結束了在英國的書籍研討和系列演講的高德納教授,跟BCS編輯Justin Richards暢談了自己的人生和工作。您最廣為人知的成就應該是《電腦程式設計藝術》系列著作了。
  • ...80 歲算法大師高德納要在 105 歲完結《電腦程式設計藝術》
    【CSDN 編者按】號稱計算機領域經典必讀的著作你都讀過哪些,例如《電腦程式設計藝術》系列?近日,這套書的作者高德納(Donald Knuth)在接受紐約時報採訪時,談到了自己對於這部已投入五十載心血作品的反思。
  • 工業設計和藝術設計都需要美術基礎嗎
    一提起工業設計專業,很多人下意識會想這應該是藝術生考得吧,需要很好的美術基礎,其實這是個誤會,把工業設計和藝術設計混淆了,等同了,工業設計是個工科專業(起碼大部分學校授予工學學位),而且面向文理科招生(以理科生為主),是非藝術類考生能學的為數不多和「藝術」「設計」有點關聯的專業。為什麼工業設計不要求美術基礎呢?
  • 宇宙是被設計好的,和電腦程式100%相似,這些對比看宇宙的運行
    如果說我們的宇宙是被設計好的,那麼很多人都會認同,因為有太多的巧合。一、電腦程式和宇宙的基本展現形式都是像素首先來看展現形式,比如你正在看的手機或者電腦屏幕,就是計算機世界的一種展現形式。你看到的所有複雜畫面,不管是文字、圖片還是視頻,都是由一個個像素點組成的。像素點也就是我們平常所說的解析度。
  • 電腦程式設計的一般方法
    2、設計算法即設計出解題的方法和具體步驟,可用流程圖等方法描述算法,為編寫程序代碼做好準備工作。3、編寫代碼即依據算法和流程圖,用程序設計語言,將整個數據、數據之間的關係和算法表述出來,形成程序代碼,要注意代碼的風格、進行注釋。
  • 改變程序設計、圖靈獎得主、美國第一位計算機科學女博士,程序媛進擊史
    圖靈獎得主,她一生致力於程序設計的研究,研究成果給計算機編程領域帶來了巨大的變革,極大地推動了計算機行業的發展。但是goto語句沒有邏輯章法,難以閱讀,程序錯誤的話可能會有嚴重的後果。曾經有一臺被程序控制的放射治療機,因為使用了過時的程序設計方法,導致6名患者受到了嚴重超劑量的輻射而不幸身亡。在這種困境下,計算機行業亟需一個更加規範的程序設計基本架構。
  • 黑客入門不得不知的電腦程式設計語言的發展歷程
    開門見山,廢話不多說。想要做一個黑客首先要了解計算機和電腦程式設計語言,不然別的都免談,這是最最基礎的。電腦程式設計語言,也就是常說的程式語言,經歷了從機器語言、彙編語言到高級語言的歷程。由於計算機不認識這些符號,這就需要一個專門的程序,專門負責將這些符號翻譯成機器語言,這種翻譯程序被稱為彙編程序。
  • 馬來貘:彩色照片是不可能的,這輩子都不可能了
    後來由於氣候從溼熱逐漸變得乾冷,貘、犀、象這類喜歡熱帶氣候的大型動物分布逐漸南移,從大家的視野裡消失了。食夢神獸,走紅日本《說文解字》中曾記載:「貘,似熊而黃黑色,出蜀中」。這說明在漢代,四川地區還有不少野生貘存在。不過這個黃黑色卻讓人百思不得其解,馬來貘的配色應該是黑白色,這裡為什麼寫成了黃黑呢?
  • 原創甜寵百合:溫柔是不可能溫柔的,這輩子都不可能溫柔的!
    一隻小精靈抱著一摞文件夾飛到她身邊,小心翼翼地瞅了眼她的神色,然後將文件夾遞給了她: 「姐姐,這是這周的出差任務....」仙女收斂了些情緒,向小精靈道了聲謝。然後深吸了一口氣,確保自己不會被氣得暴斃之後,翻開了上司發來的出差任務表。仙女飛速掃了一眼,有的沒的,重要的不重要的,祈願五花八門。
  • 程序猿必看:程序設計語言發展史
    作為程序猿,你在機械地寫代碼時,是否了解過:你所寫的那些代碼,經歷了哪些演變歷史呢?今天,我們就來談一談程序設計語言的發展史。,勿需經過翻譯,每一操作碼在計算機內部都有相應的電路來完成它,或指不經翻譯即可為機器直接理解和接受的程序語言或指令代碼。
  • 馮長革痴迷造海缸,聲稱這輩子都不「上岸」了
    原標題:馮長革痴迷造海缸,聲稱這輩子都不「上岸」了 海水缸由於具有較高的觀賞性近年來成為水族愛好者的新寵,由於造一個海水缸的成本和維護精力都比較大,因此很多人把開始玩海缸叫做「下海」,固水堡鄉的馮長革就是這樣一位痴迷海缸的愛好者,並且宣稱這輩子都不會放棄愛好「上岸」了
  • 這輩子可能都去不了這些地方!最後一處藏著全世界的機密
    但人生來都有好奇心,越是神秘的地方越想去探索一二。同時人們需要通過兩周的航行才能到達此島嶼,因此赫德島成為世界上最危險、最難以到達的地方之一。所以可能我們這輩子是領略不到了!除了極少數整理檔案的工作人員,嚴格限制選擇高教育和研究機構的學者訪問,都必須接受嚴格訪問應用程式才能批准入境。
  • 胡偉武:不離開中國科學院,這輩子不會給外國資本家打工
    胡偉武:我們都管她叫夏先生,夏老師是引導我的人生的,我記得我博士畢業的時候是很困難的,當時我說過一句話,只要夏老師還在科學院我就不離開科學院。第二句話我這輩子絕對不會給外國資本家打工。為什麼我會有這種話呢?夏老師真的是在我身上花了很多心血來培養我的,比如說我的博士論文,她改了八個月,26稿,手把手的,我想我自己也是導師,我是真的做不到。
  • 是誰發明了計算機病毒程序?
    1988 年11月3日,美國國防部電腦網路和各大學的6000臺計算機,因感染一位計算機系學生編制的病毒程序而關機,直接損失達9600萬元。造成這一嚴重後果的罪魁就是小莫裡斯。此人的成長環境得天獨厚,父親莫裡斯上校是軍方著名的電腦專家,家裡有一套高檔計算機,小莫裡斯的課餘時間基本上都是在螢光屏旁度過的
  • 學計算機編程需要什麼基礎_一文了解
    下面我們一起看看,學習計算機編程需要哪些基礎:1、英語基礎計算機英語與傳統的英語知識不同,需要了解的大部分是計算機的專業單詞或者詞彙,普遍較為簡單。但是在高級編程中,會出現比較生澀的詞彙,對於想要參與計算機語言設計以及在職業發展上有更多追求的同學可以自學一下大學英語。畢竟現在在學習IT技術上晉升的道路上,專業文檔的閱讀能力也是非常重要的。
  • 來自量子世界的強烈暗示:宇宙很可能是一套電腦程式
    ,人類的大腦是無法區分這些生物電信號到底是真實的還是虛擬的,這就意味著,假如某個精妙的系統能夠利用電腦程式完美地給人類的大腦模擬出各種生物電信號,就可以創造出一個虛擬的世界,而身在其中的人類也會認為自己所處的世界是真實的。
  • ...是不可能打工的是什麼梗-竊格瓦拉這輩子不可能打工的是什麼意思
    竊格瓦拉人稱周某,大家都叫他「阿三」,因外形酷似切·格瓦拉,故網友取名為:竊·格瓦拉。周某隻有小學文化,進入社會後結實不良少年,平時生活並沒有生活來源,靠偷電瓶車為生。
  • 為何說現實世界有可能是外星人設計的電腦程式?
    這是一個問題。因此虛擬世界有可能是無限多個的,但真實的世界肯定只有一個(不考慮平行世界),我們處於真實世界的可能性無限趨近於0,而處於一個多層嵌套的虛擬世界的可能性無限趨近於百分之百。;人類世界與其說是自然進化的結果,還不如是超級文明設計的結果。
  • 計算機專業都需要重視哪些專業課的學習
    首先,計算機相關專業的知識量是非常大的,專業課也相對比較多,學生需要具體學習哪些專業課還與自身的主攻方向有比較密切的關係,比如大數據方向往往需要學習數據分析相關課程,而人工智慧方向往往需要學習機器學習相關課程等等。