為什麼老師不推薦用《C++ Primer》作為教材?

國內末流985,C++課上,老師指著前排同學的《C++ Primer》說,「看著這個就讓人頭大,裡面有很多亂七八糟的東西,要想考好就得用我的教材。不要看那個。」

為什麼老師不推薦用C++ Primer呢?

我到底應該用哪本教材呢?


以我理解,一般大學的 C++ 課程,其主要目標並不是教 C++ 語言,而是以 C++ 作為例子教基本編程。在此情況下,不需要教太多 C++ 的內容,學生便足以學到編程的一些概念,完成一些簡單的編程練習。

然而,將來要理解一些真實項目中的 C++ 代碼,並寫出同樣品質的代碼,必須更詳細地全面地了解這個語言。以此目的去學習,《C++ Primer》是一本很適合的 C++ 語言入門書籍。


  1. 「想要考好就得用我的教材」 我覺得是有可能的,畢竟出題的人跟編書的人是同一個。
  2. 《C++Primer》適合比較聰明的人,或者學過其他編程語言的人學習,這當然不是適合所有大一學生的。
  3. 只要你能看懂的話,那當然還是《C++Primer》。但是你要保證你學的足夠快,以致於到時候考試了,該懂的東西都懂。

這些當然都是可以做到的。當時我在華南皇家理工大學的時候,隔壁計算機學院的C++教材不知道編得有多爛(聽說現在更爛了)。但是自從初三看過VC++5.0的MSDN裡面的語法手冊之後就幾乎沒摸過C++了,於是再把那本書拿起來看,練習了一年,拿了99分。我還專門跑去問老師我這1分是扣在哪,他說他從來不給100分,不想讓學生驕傲自滿(逃,暑假前還弄出來了一個屬於自己的腳本語言,模板的支持方法跟Java一摸一樣,然後用他寫了幾個小遊戲。


用這本書你還聽什麼課 ,老師偶爾想拓展的機會都被書給剝奪了

我是覺得,計算機編程語言的學習找本好書自學遠比上課按部就班來的穩妥。

然而讀研之後有門語言始終不過關,有人聽過aadl么 誰來教教我


個人建議退課之後換一個老師的 cpp 或者 Java;

如果他說 primer 不好推薦 Bj 的 A tour of CPP 或者 CPP Programming Language 我還能理解一點...


什麼為了考試不讓學,他們回答的不對。看懂primer後那些大學考試跟寫個1 + 1 = 3一樣簡單。只不過剛開始接觸的話,用老師的教材容易入門,畢竟primer太厚了,不能快速消化,老師的書知識點少,入門的,容易學。老師的本意不是不讓看,是怕現在看,打擊的你放棄c++。


C++ Primer的定位是程序員的C++教材,而不是計算機系新生的編程入門書


我看的時候為什麼那麼順暢...還真應了當年我和同學們吹牛那句話:就他那水平,我也能教(逃


對編程語言的課來說,考試愛考的東西一般都是以後不怎麼用的邊角料。很明顯老師寫的那本書充當題庫的性質,你見過平時上課直接看題庫的??

還是推薦平時看Primer、考前刷題庫,就算你把考試過了,之後的課要拿C++寫個東西,你又得回來翻Primer。


哈哈哈,我們就是用primer啊 。當時作為什麼也不懂的小白覺得好貴。買下來也沒看。上課也就倒騰倒騰生成斐波那契數列什麼的,用不到書。

後來假期我自己老老實實看了一遍,果然甩了我們老師幾條街。。。


雖然《C++ Primer》更適合別的語言轉學C++——或者說到底,C++壓根就不適合沒有基礎的新手入門——但它也99.85%地更可能比你們老師自己寫的書好。


我覺得他已經告訴你為什麼了啊。看了頭大和裡面有很多亂七八糟的東西,都是出於他的主觀感受。所以,原因就在於,他自己都沒看懂。沒看懂怎麼推薦。


大學課程緊,以本科一個學期的時間來說,C++的複雜性也是覆蓋不到的,更何況這只是其中一門課,搞搞入門也就可以了,大學並不是讓你學通C++的,而是通過C/C++來對計算機下層有一些認識,給後面某些變態課程打個基礎

當然每個學校情況不同,的確有那些不怎麼懂亂寫教程亂出題的老師吧,幸好我那時候的導師基本都算靠譜,記得畢業論文的導師是離散數學和計算理論方向的,帶了不少出國的研究生,如果認真講理論可以給你講整個學期,然而你還不一定能聽懂,他對本科生也就是讓我們混畢業就行了,至於有沒有發展,看個人的意願能力和造化

有人問Primer為啥不當教材,那會不會有人問為啥不用ISO的C++標準當教材呢?(逃


C++ Primer是本好書,一點問題沒有,但是並不適合用作教材,另外我個人感覺計算機圖書中處於殿堂級的那幾本都不適合直接用作教材(例如演算法導論、龍書、UNP/APUE等等)。

我想輪子哥上大學時候primer應該只有第三版吧,這一版的內容編排十分混亂,光是STL的知識點就在全書起碼五六章凌亂出現過,第三章講string的時候就引入了一堆STL的概念,大哥,我一個初學者剛學完int double你就直接給我上template,指針我都還弄得不明不白的你就來一個「迭代器」,我好歹也是來自你隔壁學校的學生,自問畢業時編程水平除了保送生外基本算頂尖的,在大一的時候也完全hold不住primer。

如果硬要說C++ Primer適合初學者,我覺得應該是按第四版的內容編排,加上老師個人的提煉所成的ppt才對,尤其是對書中best practice條目和大部分概念類課後習題的總結非常重要。

如果說真要挑一本教材來給老師照本宣科的話,&才是最符合編程初學者水準的,如果之前課程已經教授過其他語言的話,那麼用&對照裡面豐富的實例來講解就非常不錯。

ps. 懇請各位大神回答這類問題的時候從普通百姓出發,不是人人剛上大學時就已經有編程基礎知識了,絕大部分人學語言前開個ide都不知道往哪兒點吧


你看我們老師就好多了,推薦我們要看《C++ primer plus》。

然後指著前排的我的《C++ primer》:

「是C++ primer 還有 噗拉絲!!!」

嗯,C++ primer 沒有PLUS

------2016 11 15更新

最近測試完畢。

先讀的有plus,很快,比較適合我這種習慣看代碼不喜歡看字的人。

沒plus的,內容太多了,,,花的時間是有plus的將近三倍。。。


先下結論,《C++ Primer》是本好書,但不適合給初學者使用。

在我校,C++課程一共分兩個學期上。第一個學期課程名為《高級程序設計語言》,第二學期為《面向對象》。課如其名,第一學期主要講的的C++的一些基礎知識,其實跟C沒有什麼很大的區別;第二學期主要講類的封裝,繼承和多態。我個人覺得,第一學期完全可以找一本薄一些的C語言教程來入門,第二學期可以使用《C++ Primer》來學習,上面的知識點講的很明白,比我用的教材不知好到哪裡去(後來我把那教材扔了)。

私以為,C++作為一門課,只上一個學期或者一年肯定只能粗略地過一遍,很多細節的顧及不到。而作為一門語言,要想學好是要花很多時間和精力的,而經典的書籍能能起到事半功倍的效果。如果只是想課堂上水水過,什麼教材都無所謂。如果想對這門語言有深入的理解,那經典的C++書還是要看一看的。

總結一下:

作為初學者,不建議看《C++ Primer》,建議找本靠譜的C語言書入門,等能力夠了再去看《C++ Primer》。要想學好C++,《C++ Primer》這樣的經典書籍還是要看一看的。

PS: 除了《C++ Primer》,本人還推薦一本C++之父(不是譚浩強!)寫的《C++程序設計語言》,英文名是《The C++ Programming Language》。


因為他們做不出上面的習題…


  1. C++的內容比較多,課程時間又不能跨學期。

  2. 考試不能讓太多人掛,不然就會被認為是老師的水平問題。

大學的課程都很重要,但考試變成了只是完成教師的教學任務。

最終的結果就變成負責任的老師,講的很多,考試的內容很少。不負責的講的少,考的內容一樣少。


如果你學C++是為了自己今後的發展而不是拿學分,那就選《C++ Primer》。


你看見過老師有拿字典上課的么。


譚浩強那種沒括弧到處++++要你搞順序的寫法方便考試嘛

我記得我們老師說寫代碼用+=和+++是高手的標誌。。。那老師我一開始還挺喜歡,覺得挺厲害,現在回頭看,簡直誤人子弟

然後譚浩強書我就扔去墊宿舍桌子了。。。

後來上課我就帶一筆記本去,寫寫小說啥的,書就不用了,偶爾帶c++primerplus去裝逼(不是輪子哥那本),還有一本盜版的program c(全名叫啥來著。。。)

最終考試當然是過了,可惜績點不高,前面一大堆填空填概念,大家都懂譚老的計算機概念是什麼水準,都被吐槽爛了。。。我又不愛背題庫(這個習慣間接導致大學期間幾次掛科)

大學老師的編程水準基本不可靠,多數不可靠,學校要是不咋地,整個學院都不一定能找到會寫代碼的,比如我那坑爹的大學,居然有老師期末考Linux下的c代碼解釋,要學生一個個解釋給他聽,我解釋了fork的原理,他居然說不對。。。他不知道從哪裡學來的fork居然是內存加減法。。。大哥你會百度嗎。。。不自己編瞎話能死嗎。。。

所以這個事情糊弄過去就完了,上課是上課,編程是編程。尤其坑爹學校的老師,誤人子弟的多數,除了高數課的推導過程,一個標點符號都不能信,誰信誰傻。


推薦閱讀:

C++ 在哪些設計原則的指導下,變得越來越複雜?
C++ 程序員怎麼寫簡歷?
C++ 的 sizeof 是怎麼實現的?
C++20 有哪些值得注意的新特性?
剛學完c++primer的前18章,為了準備春招,現在是刷leetcode 更好,還是做些小項目?

TAG:C | 計算機專業 | CPrimer | CPrimer書籍 |