青年時期曾擔任清華大學學生會主席、北京市學聯(lián)副主席、北京市人大代表、全國文教戰(zhàn)線先進分子。
他是我國計算機普及和高校計算機基礎教育的開拓者之一。
現(xiàn)任全國高等院校計算機基礎教育研究會榮譽會長、教育部全國計算機應用技術證書考試委員會主任委員,享受國務院政府特殊津貼。
曾獲國家科技進步獎、國家級教學成果獎,被原國家科學技術委員會和中國科學技術協(xié)會表彰為“全國先進科普工作者”,被北京市人民政府評為“北京市有突出貢獻的專家”。
他在CCTV講了BASIC,F(xiàn)ORTRAN,COBOL,Pascal,QBASIC,C,Visual Basic七種計算機語言,觀眾超過500萬人。
譚浩強教授善于用讀者容易理解的方法和語言說明復雜的概念。
許多人認為他開創(chuàng)了計算機書籍貼近大眾的新風,為我國的計算機普及事業(yè)作出重要的貢獻。
21世紀初,被《計算機世界》報組織的“世紀評選”評為“我國20世紀最有影響的十個IT人物”,被《電腦報》評為“我國十大IT人物”,他的功績是把千百萬群眾帶入計算機的大門。
然而,從很久以前開始,他所著的《C程序設計》就一直被吐槽不斷。
這本書幾乎是每個程序員必經(jīng)的“童年”。
1、
這本書本身存在很多語法錯誤,主要是理解或者版本更迭沒有及時更新造成,中國大學里面很多教材更迭相對偏慢。
隨著計算機軟件領域的飛速發(fā)展,現(xiàn)在這本書因為內容比較老,可能已經(jīng)不太適宜做教材。
另外,這本書還是翻譯過來的,語言差異加上翻譯上理解的偏差,造成書中部分語法和概念確實有一定的問題。
甚至在網(wǎng)上,你還可以看到諸如《譚浩強<C程序設計>錯誤不完全匯集》的整整50頁的糾正文檔。(基于第四版的糾錯,第五版已修復大部分)
2、
內容過于老舊,甚至有些程序內容都無法運行,當然這是編譯器支持不同的C標準造成的。
這本書甚至大學許多教師的編譯環(huán)境還是turbo C,這個老古董已經(jīng)非常過時了,顯得這本書非常的low,欠缺與時俱進。
但是此書確實更新速度比較慢,在2000年以后出的版本仍然支持的是C89標準。
3、
后期高質量的書非常多,排版也非常清晰,比如說《C Primer Plus》幾乎可以取代這本書,但譚老這本書仍然還是作為大學的教材主力。
4、
有的人表示這本書難度太高了,主要是內容設計有關。開篇的內容對于剛接觸C語言的人來說確實具有一定的難度,讓不少人望而生畏。
其實最令我印象深刻的是:i+=(++i)+(i++)這種類型的代碼。我相信你肯定見過且做過,直到現(xiàn)在仍有不少人為之苦惱,其實此類代碼的來源就是這里。我們講理論目的是指導實踐,但是這種堆疊式地靠運算符優(yōu)先級的寫法真的意義不大,實際工程中代碼的目標是簡單易懂且有效,難道僅僅是為了考察運算優(yōu)先級?
其實不僅是計算機教材,還有更多的比如線性代數(shù)教材、專業(yè)課教材、教學用到的軟件,全都缺乏更新。
一位網(wǎng)友表示,有一位好心學長將譚先生的《C++程序設計》借給了我,這幾乎直接導致了我現(xiàn)在還不會編程。
孫濤表示,我是物理專業(yè)的,當初啟蒙就是這本書。說的嚴重點,這本書配合一個半吊子老師幾乎毀了物理系所有人對編程的信心。造成的心理陰影直到畢業(yè)才逐漸消除。當初學c語言,大家感覺奇難無比,毫無頭緒,要花大量時間研究特sb的知識點,比如i++++i。那個老師是教物理實驗的,對c語言沒什么理解,照本宣科而已。每節(jié)c語言課我要先預習兩個小時,然后再復習兩個小時,勉強能把書上奇奇怪怪的“知識點”搞清楚。當時剛上大一,不知道怎么自學,也不知道有什么好教材。越不懂越去研究譚浩強的書,然后就更蒙圈,惡性循環(huán)。
曾一度懷疑自己智商有問題,后來覺得不應該啊??傊敃r覺得這門課是難到天上去了,考完之后再不想碰。其實c語言比大多數(shù)物理課都簡單不少。我的很多同學也是對這門課很厭惡,逃避。后來即使在物理實驗中遇到需要編程處理數(shù)據(jù)的,也是能逃就逃。整個轉行系(物理系)畢業(yè)后鮮有人從事編程相關,絕對和這次打擊有關。到現(xiàn)在大家才慢慢緩過來,開始學習其他編程的東西
敖廠長有一期節(jié)目說的是雅達利出品的《外星人ET》游戲直接毀滅了美國的游戲機產(chǎn)業(yè),直到微軟xbox才復興。
譚浩強c語言教材對我的打擊不亞于這個。譚浩強也算是中國計算機教育的先行者了,教材錯誤多,過時了,也不能怪他頭上。但是他在書里吹牛逼就不對了,成天發(fā)行量破幾千萬!各個大學也是不思進取,直到現(xiàn)在還在用他的教材。vc++6.0,二級考試,譚書,都可以稱得上是毒瘤了
假藥郎中表示,應該說有兩個原因:
1. 這是本爛書。
2. 作為一本爛書,卻借著譚的所謂權威名頭,年復一年地禍害一代又一代的學生——這才是最令人憤怒的!
譚書中的錯誤已有無數(shù)人吐槽過了。我自己的一個栗子:當年跟著這本書學的#include "xxxx.c"。
說穿了就是:譚根本沒有C的實際開發(fā)經(jīng)驗,只知鉆語法的牛角尖。而C恰恰是—門存在著很多“語法上不算錯,但實際不能這么寫”的語言。譚的書給初學者很多這樣的誤導。
譚的成名是因為當年在電視上講的BASIC課程,在那個資料匱乏的年代,應該說譚的課程在計算機教育的啟蒙普及上起到了作用。但實事求是的講,譚當年的這些課程,也就好比一個閉塞山區(qū)里的鄉(xiāng)村教師自己編的土教材,在沒有更好的選擇下聊勝于無。但隨著社會的巨大進步,后來已經(jīng)有更多更好的教材可用,他早該退出歷史舞臺。那樣的話,也許他的歷史形象更令人尊敬。而多年以來,他的書依然憑借行政權力倚老賣老地霸占著全國那么多的學校,大言不慚的標榜“銷量千萬”,這就很無恥了,讓人鄙視也不為怪了。
邢志鵬表示,國內大學生的普遍思想,大學課本教材都是廢物,凡是大學的教材,都是應付考試的。在這種提前下,老譚的書就不能幸免了。
其實很多人噴老譚的書都是以訛傳訛,看到很多高手都噴譚浩強的書,然后自己也要鄙視一下譚浩強的書,來顯得自己也是高手一樣。這種人看到誰在看老譚的書就會說一句,這種垃圾書也看,哥看的都是國外的經(jīng)典。下次遇到這種人,你就讓他不查資料,自己直接找老譚的書上的錯誤,能找出多少。找不出就別噴好嗎。
老譚書上類似i++++i這種代碼,確實實際代碼這么寫不合適,但是作為初學者,這是通過這種方式教你在理解優(yōu)先級,通過這種拗口的方式可以理解的更加徹底,我覺得沒問題。就像小學數(shù)學課的應用題。舉個例子,池子一邊裝水,一邊放水,求水多久能裝滿池子。難道也要噴一下什么鬼題目,浪費水。這明明就是考的對題目的理解,又不是真讓你去做個實驗。一個道理。
我上大學的時候就是看這本書自學的,思想很單純,認準了這本書,就好好學。我感覺譚浩強的書絕對適合入門,學東西最重要的難道不是入門嗎,老外很多書確實經(jīng)典,但是不適合入門,那就不能推薦給初學者,那樣只會害了他們。很多人都是看了老譚的書,對C已經(jīng)有了一個概念以后,再去看那些書顯得很從容,但是如果沒有一個基礎直接看那些書,未必看得懂。
我相信很多噴老譚的程序員是通過譚浩強的C入了門,那就請你不要噴老譚了。更加鄙視那些通過抨擊老譚抬高自己的人。在譚浩強那個年代學計算機的,都是聰明人,別的不說,想學計算機身邊連本書都找不到,哪像現(xiàn)在各種書泛濫,網(wǎng)上各種教學視頻。那個年代學好計算機除了要聰明,也一定要有毅力?,F(xiàn)在的學生以為自己會寫幾句代碼一個個都上天了,以為自己比譚浩強這種老古董要聰明不知多少,可笑!
郭靖的故事大家都知道。他的啟蒙老師江南七怪,教他學會了功夫。但是真正讓他成為大俠的是洪七公,后來他的功夫已經(jīng)遠遠超過了江南七怪,但是他還是那么的尊敬他們,而沒有半點瞧不起他們,因為沒有江南七怪,郭靖也許就不會有后面的故事。我這個比喻也許非常不恰當,沒有譚浩強一定有別的書代替。不過我依然認為初學者可以看看老譚的書,至少他適合入門,如果你覺得他的入太抽象難懂了,我只能說要么你沒用心,要么就不適合編程。
Hanson表示,現(xiàn)在黑譚浩強的簡直是比比皆是。我覺得對于他的教材應該客觀的評價。(吐槽一句,現(xiàn)在跟風的實在太多了,別人說什么他們立馬附和,黑譚浩強書的人里面也有不少這樣的人,估計好多黑他的人還不知道為什么黑他。。。)
不可否認,他的C語言教材在國內用的最廣。既然有那么多人用,那么它就一定有他自己的優(yōu)點。
我覺得,譚浩強書最大的優(yōu)點就是特別容易懂(剛看有的答主和我的看法完全相反啊。。。),我指的易懂是指看他的書能很容易的自己寫出正確的程序(至于代碼風格不好,至少不是錯誤)。我開始接觸C語言是在大概初二的時候,當時我第一本書買的就是第五版譚浩強。對于我們西北的這些信息弱省來說,初中那會大部分學生還不知道編程是什么。以此為背景,他的書能讓我在完全沒有基礎的情況下幾個月里學會C語言,易懂性是值得肯定的()。
首先(也是我覺得最主要的問題)就是不講原理。他能很快教會你怎么去寫程序,但不告訴你為什么要這么寫(和他前言說的不一樣啊。。。)。這種寫法更適合那些非計算機專業(yè)的學生(當然主要指學渣,學霸們請忽略這條),但對于真正學C語言的同學來說,就顯得不足,對后續(xù)的學習應用也可能會埋下不小的麻煩。
其次是大家吐槽較多的代碼風格和小錯誤(個人覺得第五版里錯誤已經(jīng)不怎么常見了,至于風格,好吧,的確不怎么樣)。
(具體例子大家可以參考一下其他答案,有的列出不少,我就不重復列出了。不過說一點,有的錯誤是在特定版本的書里才出現(xiàn)的,看了一下其他答主找的大部分來自第四版,這些錯誤有的已經(jīng)改正,但很多也還在,尤其是有些地方?jīng)]講清的問題,大部分在第五版仍存在)
Zhu xiangping表示,我覺得很好,我當時學C++就是用的他的書??此臅屛腋杏X最舒服的是每當我看到一處知識產(chǎn)生了疑問然后我再往下看就看到他提出了相同的問題并作出了解答。有很多次這樣的體驗,我覺得這只能是一個教學經(jīng)驗豐富的老師才能做到。
通過學習他的書,我編程的能力對付一般問題應該沒有問題。當時C++考試成績應該在專業(yè)里前三,C++項目實習是第一(實現(xiàn)了很多項目沒有要求的功能老師還給附加了分)。后來做通信實驗,嫌手動采集處理數(shù)據(jù)麻煩,我還寫了個小軟件來實現(xiàn)數(shù)據(jù)采集處理的自動化。當然這對于那些代碼大牛來說應該是小菜一碟,但是當時我就在學校開C++時學過程序語言,其余時間基本沒有寫過代碼。后來接觸了幾種其他計算機語言,我能很快上手。我想這要歸功于當時C++的學習。
對于噴,我想這是不可避免的,知名度越高,噴的人越多。噴與不噴,那是個人的自由。適合自己最好。
以前在計算機領域可以借鑒的東西很少,可以說正是這樣的書籍,以詳細的講解和通俗易懂的風格,培養(yǎng)了一大批的基礎扎實的人才,才有了之后的網(wǎng)頁和動畫,有了眾多的可參考的資料,這些貢獻都是不可磨滅的。
譚浩強生于1934年,58年從清華畢業(yè),那時候C語言還沒有問世。在久遠的過去條件下,寫出這么一本編程入門教材實屬不易。
而值得注意的是,是多年來大學教材質量并沒有明顯改進所以,現(xiàn)在就是很矛盾。批評教材的主要意見其實是對的,但是在細節(jié)部分很容易受到反駁。
造成這種矛盾的主要原因,因為批評搞錯了對象,結果是意見不能集中,越說越亂?,F(xiàn)在的主要矛盾,是教材的編寫方式陳舊、脫離實際,且長期得不到更新。
這個問題不僅僅發(fā)生在計算機課程領域,也不必把這個黑鍋背在“譚浩強”身上。一本小說寫的好,看的人就多,寫的爛,看的人就少,這是顯而易見的。某作者寫的教材好,就采用;寫的爛,就不用。
為什么寫的不好還要強制統(tǒng)一使用呢?教材的選用還未得到足夠重視中國的“211高?!庇?00多所,培養(yǎng)的老師數(shù)不勝數(shù),其中應該有相當數(shù)量的老師有寫出好書的實力。就算老師不會寫,市面上也已經(jīng)有好多本優(yōu)秀的國外教材,提供了較新的編寫思路可供參考。但是目前已經(jīng)普遍反映出,大學教材停止了迭代,更沒有有效的、與時俱進的質量把控。強烈希望各個大學從教材出發(fā),做好教書育人的本職工作。
無論怎么吐槽,一個人編程水平的高低和所在大學,使用的什么教材都沒有太直接的關系,很多人在網(wǎng)上買編程教材一定想著買個最新版本的,其實完全沒有必要,這些都是客觀因素,主觀因素才是關鍵,真要想學的好,什么教材都玩的轉,取決于內在的意識形態(tài),驅動力不夠有再好的教材也是浪費資源,無論怎么說老譚對于中國計算機行業(yè)的貢獻還是非常突出的,感激的心情更多點。
現(xiàn)在還有很多的論調包含的大致意思就是C語言現(xiàn)在已經(jīng)不行了,完全沒有必要再去學習了,看看招聘職位關于C語言的真是少的可憐,現(xiàn)在明顯的都在向高級語言進發(fā)了,大趨勢是向集成化程度高的語言前進,但是集成化語言本身很多都是C語言完成的,未來可能C語言學習的會變少,但是職位要求以及薪資水平會高的讓普通程序員都只有羨慕的份,物以稀為貴,這也是市場規(guī)模。踏踏實實學好正在學習的編程語言,把精力放在語言本身,而不是去爭論誰好誰壞,即使分出個高低了對于個人又有什么直接好處,認準一種編程語言一直學到最后,然后想辦法過度到別的語言,觸類旁通。
老譚作為早期的布道者已經(jīng)做出了不可磨滅的貢獻,僅此一點就值得致敬。
【參考資料】
1、知乎 . 《為什么說譚浩強的書是坑?》
2、佚名 . 《怎樣評價譚浩強版<C程序設計>?》
3、佚名 . 《為什么這么多人不喜歡譚浩強的C語言程序設計?》
-END-
免責聲明:整理文章為傳播相關技術,版權歸原作者所有,如有侵權,請聯(lián)系刪除
免責聲明:本文內容由21ic獲得授權后發(fā)布,版權歸原作者所有,本平臺僅提供信息存儲服務。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!