長期以來,我對因而否要在博客上寫非技術類的東西取決不下。同是從0開頭學習技術,必定會遇到不少相似的問題,我把它們記下來,還會給人以幫助。但是非技術類的東西,寫了也是給本身看的,在沒有從「對小個人思考」轉變爲「對大個人思考」以前(看了劉未鵬的博客後的感觸),我不需要別人的理解和同情。再者,即便面對面交流,也不能保證使一我的全然理解還有一我的,更況且活的思考變成死的文字。然而今天,我僅僅是想把憋在內心的話寫出來。人的層次並不一樣樣,譬如不少計算機專業的學生在進入大學以前已能熟練編程,而我其時還連光驅和光盤都弄不清楚。我僅僅是也想在這裏說說本身一直放在內心沒有說的話,來我博客的朋友請略過這一篇。算法
事情源於一次對照。近期學習網絡流算法,啃了國內一本知名的算法教材好幾天,經過不斷反覆卻是熟記了很是多基本概念,但是記住的概念越多,內心的問號越多。對於算法學習來講,死記硬背算法是很是低效的。我因而翻開《算法導論》,交叉學習。看了《算法導論》幾頁,發現兩本書解說方式上有很是大的不一樣,簡單對照方下:《算法導論》中,第26章講網絡流算法,總共用了35頁(翻譯過來的中文版),使用了10組演示圖片,總共使用了64行僞代碼;國內的那本知名教材,解說相同內容的網絡流算法,用了40頁,4張圖片,沒有一張圖片是用來演示算法運行流程的,最讓我驚訝的是,在40頁的算法解說中,C++代碼超過了20頁!編程
64行僞代碼和超過20頁的C++代碼,這巨大的反差,使我對國內那本教材很失望和可惜。這讓我想到霍金引用過的一句話,大意是書中每一條物理公式會使讀者的數量下降一半,相同,對於解說算法的書,代碼的行數是與書的可讀性成反比的。代碼是頗有我的特點的,看到與本身風格不一樣的代碼,不自覺就會產生一種排斥的心理。更不用說咱們國內教材中的代碼:風格混亂,字體難看,紙張低劣,印刷錯誤。最讓我痛苦的是,完整的代碼被分割得很碎,配合着解說算法的需要,這裏撒一小塊,那裏撒一小塊,我經常爲了一個莫名其妙的變量和函數調用處處在前面的書頁中找它的意義,或者依據上下文去猜它的意義。代碼中不可避免地要用到如棧、隊列、鏈表等這些基本數據結構,爲了能集中精力講算法,這些數據結構的實現代碼是不該該貼上來的,因此僅僅好杜撰一些名稱,用慣了STL,我對這些不遵照STL中的約定的代碼很反感。一邊看書我一邊提醒本身,知道這些代碼表示什麼意思便可了,不是必需對這些代碼這麼認真。我想,做者的初衷是爲了有用,我細緻讀了些代碼,感受做者對算法的實現是很精簡的,代碼的細節也處理的很好,但是很惋惜,代碼中有太多的細節了,一門生僻的僞代碼又會加劇讀者的負擔,兩難的選擇。網絡
假設說這本教材讓我感到可惜,那麼其餘的教材,書店裏鋪天蓋地的基礎教程、新手教程,就讓人憤慨了。雖然電子工業出版社和機械工業出版社不斷推出讓人一看就想買下來的書,這卻對教材沒有產生不論什麼的影響。回憶我大學時候的教材,C、C++、數據結構、算法,當中充斥着大量風格糟糕的代碼:沒有縮進,沒有凝視、變量名一概abcd或者漢語拼音。我當時痛苦地寫着這種代碼,在我上C++課時看到老師在黑板上寫下int anIntVar;這種語句時,我爲這個變量名興奮了很久。隨着寫的代碼多了起來,與非教材類的經典技術書籍的接觸多了起來,我對大學的教材和課堂的失望和反感也與日俱增。大學裏那些理論性強的專業課的教材,很是多地方明明幾句話就可以點透的東西,卻囉哩囉嗦晦澀難懂的講上一大堆,在需要細緻解說的時候,卻每每又一句話帶過,彷佛惟恐不能炫耀其高超的水平。那些艱澀的文字,讀完很是多遍才發現也只是就是那麼回事,真讓人認爲,採用這種方式解說的目的,就是因爲對真正的難題一籌莫展,才專門在這些小問題上大作文章。既沒有數學的簡潔直接,又不通俗,一句話:入的貌似很是深,出的絕對不淺。數據結構
這些爛教材和爛書致使了一個更嚴重的後果:真正好的教材被忽視了。而今,一提起「教材」這個詞語,咱們的印象就是一堆內容陳腐、解說死板、形式僵化、專門用來應付考試的垃圾紙。這使得那些教材中十分珍貴的精華被一塊兒當成了垃圾,考完試就隨手拋掉。這對不論什麼一方,都是巨大的浪費。函數
其實,大學的專業課教材有些並不比那些經典著做省錢。爲何咱們在課堂上就僅僅能看到那些紙張低劣的教材,既然本身沒有好的,爲何不「拿來」更好的?學習
上面這些僅僅是個人牢騷,我剛上大學時對計算機是個白癡,經常被一大堆名詞弄的暈頭轉向,上很是多課,我看不到這和計算機有什麼聯繫,老師也從不講開的這些課都有什麼用,因此經常逃課,等到知道逃的課很是實用的時候,那門課已經考完試了,因此積累了很多牢騷。但我也在網上看到很是多的對我極有啓示的博客,看到很是多文筆很是優秀的技術做家,牢騷歸牢騷,我仍是充滿了但願的。僅僅是感受,需要時間。字體