為什麼這麼多人噴譚浩強的C語言程序設計?

譚書講的不深,錯誤很多,這是公認的缺點。
為什麼這麼多人噴譚浩強的C語言程序設計?
10 個回答
一杯羊白开


很大一部分同學學不好C語言,把罪責歸於“譚浩強寫的書錯誤很多”這實在是很搞笑。譚浩強老先生 1934 年生,現在已經 80 歲了。他 1958 年從清華大學自動控制系畢業,那年 24 歲。要知道 C 語言是1972年推出的,計算機都是大型機,原始又笨重,當時譚浩強學自動化控制這一專業可以說是比較尖端的。光從這一點上,就可以說,他是同時代人裡非常非常聰明的那一類人。

為什麼這麼多人噴譚浩強的C語言程序設計?

現在許多人批評譚浩強的《C 程序設計》的一個重要理由是“不符合C99標準”。但我們要知道 Dennis M. Ritchie 在 1972 年才推出 C 語言的第一個版本(當時譚浩強 38 歲),那時的 C 語言並不成熟。事實上 C 語言的第一次標準化一直到 1989 年才完成(俗稱C89),請注意那時候譚浩強已經 55 歲了!55 歲,你退休了沒?而更重要的是,1989 年那個時候,互聯網的發展即使是在全球來看,也是非常非常初級的,更別說國內。因此信息獲取的渠道極其狹窄。舉個例子大家就能明白,我們現在瀏覽網頁所用的萬維網協議,就是在 1989 年那一年,由當時在歐洲粒子物理實驗室的Tim Berners-Lee和他的同事一起發明的。也就是說,一直到譚浩強 55 歲退休的時候,C 語言才剛剛完成了第一版本的標準化,而整個世界的互聯網甚至還不支持通過瀏覽器來瀏覽!時間再往後十年,到了 1999 年的時候,C99 標準終於問世。但因為這一標準比較新,大部分編譯器還不能支持其中的許多特性。因此大部分沿用的還是 C89 的特性。

在這樣的背景下,第二年,譚浩強的《C 程序設計》出版了,而這一年,譚浩強已經 66 歲了。 拋開譚浩強 66 歲依然寫作這一點不談,若是站在當時的背景下來看待,事實上這本書也還是可讀,可學,有價值的。但軟件行業發展飛快,現在高校若繼續沿用這一教材,就不合時宜了。譚浩強的《C 程序設計》這本教材好不好?現在的觀點來看當然不好。現在想學習 C 語言的人,不推薦採用他的書。但這主要是因為軟件行業發展快速,他的書籍內容較老導致的。我們可以就書論書,但有些不明就裡的同學從書出發指責譚浩強“不懂編程,水平低”等等,就是不對的了。為什麼這麼多人噴譚浩強的C語言程序設計?

爱科技爱编程爱生活
2017-02-16

我記得我們上c語言課時我們老師就推薦了,譚浩強先生的c語言程序設計,那麼私下的我看了一個教程是郝斌老師的c語言程序設計的教程,郝斌老師也推薦了譚浩強先生的c語言程序設計,也沒有什麼不好的,關鍵是現在比如說,php是世界上最好的語言windows是世界上最爛的系統,進入卡吧什麼筆記本吧,筆記本吧加錢升加到三萬八,用linux的vi的就是大神,這已經是一些大家公認的坑一些調侃的話語我覺得不能算是真正的回答。

水中石40222433
2017-02-16

我當初學C語言,用的就本書,而且我當時是自學的,完全沒人教,時間是1997年前後。當時,我找了三、四本教材,當然都是國內的教材。唯一看的懂的就譚浩強的這本,概念講的很清楚,是可以自學的教材。為什麼很多人認為它很多錯誤呢?關鍵在於它成書很早,最早應該是90年代初的,但是呢,後來雖然出了幾版,可是內容沒什麼改變,這就有問題了,他寫這本書時用的是turbo c 2.0,而turbo c 2.0是1989年出來,連C89標準也沒來得及實現。所以,這本書很落伍了,關鍵在於沒有與時具進的修改自己的書,這是譚的問題。所以,不建議再用這本書學C語言,但它其中的一些內容可以參考,尤其是指針的部分,從原理上講的很清楚,至於其中不符合現代標準的,自己排除掉。

另外要說一點,譚浩強當時出了好幾本程序語言的書,除了C語言,還有basic、pascal、fortran等語言,在這些書中除了語言本身,還著重介紹了一些算法,可以讓讀者建立基本的算法思想,這一點就是現在來看,都是很有意義的作法。但在C語言這本書中,因為C語本身比其它那些語言複雜,內容也多,所以對算法的介紹不如其它書詳細,譚浩強當時也是建議,先看任意一本其它語言書,瞭解了基本算法後,再學C語言這本書。

索马里海盗盗首79431492
2017-02-17

程序猿,學c出道的。工作好幾年了。暫且以個人眼光來看譚浩強出的書,不代表大眾觀點。

他的書看過,以考試為目的,那這本書應該比c語言的發明人寫的the c program language這本書好。因為考試都是考一些細節技巧的寫法。就跟中國考英語語法一樣。學了10年英語語法,每次都能考100多的人,結果還是不會說英語。茴香豆的茴字有幾種寫法?這本書就專門介紹這個的。

但是真正以學以致用為目的,這本書就是渣。因為裡面的很多寫法是錯的,還從來沒聽過誰按照上面的寫法來碓代碼。

寫代碼跟寫信一樣,是寫給電腦的信,也是寫給你同事的信。白話文不用,你非用甲骨文寫,電腦不好開腔,但是維護你寫的代碼的同事估計得抽你。所以考試,看譚浩強的書足夠了

這裡再囉嗦幾句,不是貶低國內的大學教授水平。因為工作原因,會看很多國內外的教學視頻自學。大多國外教授,講知識,都是從原理,以及這麼做的能達到什麼目的著手。中國得教授講課,就差點,很多是照本宣科,不看課件就說不出來。

中國的大學教育,還有待進步

larker2000
2017-02-16

作為一個老c程序員我說說感受,譚的書其實挺經典,但是難以學習,為什麼?首先知識點很全面,但非常散,有些重要的知識點只有幾句話,並沒有例子。其次,書的指針和內存管理沒有混合成一章,造成知識點斷裂,對於內存管理和指針使用有非常大的困難,往往讀了n遍也不能理解。第三,例子少,可供實驗的例子少,不利於動手理解。

趣IT科技
2017-02-17
在他的書裡說到,很多人明明寫的是C但源文件卻是CPP,這樣一來有的時候他們寫的代碼在C語法里根本是錯的,但卻能通過編譯,因為C++里正巧允許這麼寫。而譚浩強的書裡就出現了這種想法,甚至告訴人*.c編譯不過時就改成*.cpp試試。這是什麼鬼?另外譚浩強的書號稱符合C99標準,但稍有常識就會明白,這是個笑話。VC++ 6.0跟Windows 98同年發佈,怎麼可能支持C99?更可怕的是書裡很早就出現說編譯器報warning可以無視,這個想法太危險了。會明顯給人一種很敷衍的感覺,就是這本書根本不像是在教人學C語言,而像是教人怎麼應付考試。
亦凡143994776

不同的人有不同的看法,我是自學C語言的,我覺得很好,因為我只是為了入門,教材淺顯易懂,很適合入門,就是遇到錯誤,可以去百度,實話說我沒遇到錯誤,因為我只是看懂,為了去做嵌入式開發,不是專業程序員。

總之評價這本書很適合非專業人員入門!要是有人自學,我堅持推薦譚浩強的這本書!

略懂一点49334972
2017-02-16

譚書我也看過,同時手頭另一本書便是機械工業出版社的c程序設計,相比之下譚書的問題有三。

一,譚書中用大量篇章介紹計算機基礎知識,這些對零基礎的人有好處,但並不應該出現在c語言的書籍裡,在書前建議下學習c之前先學習計算機導論即可。

二,譚書中文字的內容佔比太多,代碼實例的內容佔比太少,且書中的實例不具有代表性,很多時候大量篇章的講解效果並不如一個合適的例子。

三,譚書中內容太老,都是上個世紀c語言的標準了,眼下人們普遍使用c11,譚書自然過時。

葉葉葉華
2017-02-25

本人專業電子信息工程,大學裡學的譚浩強的教程,應該理工科生基本都是用譚浩強的《C語言程序設計》入門C語言的吧,現在轉了程序員做C++開發也是自學譚浩強的教程課件入門的,我覺得作為入門很適合,語法講的很好。給真正想學習的人一句忠告:不要糾結書好不好,何況這本書是大學普遍使用的教材。

泉林本色-甘泉直营店
2017-02-16

譚浩強的c程序設計確實不推薦給入門者,比較亂,尤其是指針那塊。雖然20年前我就是從譚的c開始學的,雖然這書我研讀過N遍!

還有經典的k&r即the c programing language,c入門後想深入理解c就該看看k&r啦!

c入門我推薦霍頓的c入門經典,即horton的beginning c,循循善誘,循序漸進教你寫c程序,絕對是入門者的福音!我通常會把本書推薦給那些想初學編程的學生們。

本人不是專家也不是c程序員,只是基層中學電腦教師一枚,略通電腦而已。

相關推薦

推薦中...