程式設計師買過最沒有用的東西是什麼?

作為程式設計師你買過的最沒有用的東西是什麼?

前幾天查資料時偶然看到國外一很實誠的程式設計師小哥吐槽,自己買過的最沒有用的東西就是:

程式設計師買過最沒有用的東西是什麼?

你沒有看錯,就是大名鼎鼎的《計算機程式設計與藝術》,The Art of Computer Programming,簡寫TAOCP,這本書常年位列於各個程式設計師必備書單中。

小哥聲稱他也是看到了某些網站推薦的程式必備書籍,然後花了200美刀(國外的書的確夠貴)買下了4冊,然後其中的3冊買了後就從來沒有開啟過,他總結道,如果你具備以下技能那麼這本書可能會比較適合你:

具備計算機科學與數學雙重背景

你覺得C語言其實依然不夠高效(換句話說是你熟練掌握了組合語言,因為這本書是用匯編語言寫的)

你願意不計報酬的在最難的問題上花大量時間。。

最後小哥聲淚俱下道,如果你和我一樣只是一般聰明的話,那麼聽我的一定要遠離這本書,有太多更適合你的演算法書,而且也用不了200美刀。。。

看完後我也被小哥的誠實打動了,哈哈,好像很少有人在公開場合說自己看不懂某本書,勇氣可嘉。

話說小風哥還是在讀書時曾在圖書館裡慕名找到這本書後翻看了下,然後又很恭敬的放了回去。。

在隨後的若干年裡我對這本書有了更多的瞭解(更多的屬於花邊而不是這本書的內容哈),一般的演算法書在講解程式碼時會使用像C/C++、Java、Python等高階語言,再不濟像《演算法導論》使用類虛擬碼,但TAOCP這本書使用的是一種被稱之為MIX的組合語言,原因之一就在於組合語言永不過時;而且作者 Knuth為了更好寫書開發了TeX排版系統,等等。

程式設計師買過最沒有用的東西是什麼?

1974年,為表彰Knuth老爺子在演算法分析領域的卓越貢獻以及《計算機程式設計與藝術》系列著作而被授予了圖靈獎,足可見這本書在計算機科學領域舉足輕重的地位,也因此這本書註定是嚴謹的、學術的,也不可能是一本入門書籍,不太可能做到通俗易懂。

這本書對讀者是有一定要求的,至少具備程式設計基礎,並且如果你能讀的下去《演算法導論》這本書的話那麼也許可以去看看TAOCP這本,並且很多人建議先去看看Knuth的另一本書《具體數學》,Concrete Mathematics,這本書總結了TAOCP裡用到的數學知識,而《具體數學》這本書又需要用到離散數學和微積分的知識。。

這也許就是為什麼本文開頭小哥吐槽的原因。

正因為這本書比較難,比爾蓋茨曾說過,“如果你認為自己是一個很棒的程式設計師,讀讀TAOCP這本書吧,如果你能全都讀下來別忘了給我份簡歷”。

程式設計師買過最沒有用的東西是什麼?

好啦,本文就到這裡,

作為程式設計師你買過的最沒有用的東西是什

麼?

歡迎大家留言討論

,祝大家週末愉快。

開啟App看更多精彩內容