高生產力路線,直接現代C++。C++自身完備,C++的書也完備,覆蓋從最基礎開始的部分,直接學沒有任何問題。現代C++我認為可以理解為C++11以及更新的C++,儘可能使用STL完成事情,學習面向物件,好處是出活兒快,出錯機會少,省時間,並且你的課設應該比同學寫的更好看。如果不確定以後是否做C++,那麼轉換成本較低。這裡的挑戰是國內很多學校的C++教材、資源可能很挫,可能是“古代C++”,還要學不太需要的東西造成干擾,增加心智負擔。《C++ Primer Plus》對於新手比較平緩,不知道看啥可以看這個,《C++ Primer》大家認為是神作,而依我看有點像字典,仔細閱讀可以大幅度提高水平,但其編排,閱讀真的難以形成心流,很痛苦。日後若有需要,再重新學習C與Unix程式設計未嘗不可。硬核路線,從C入手,把C當作一門完整的課程來對待,接著你可能需要結合一些作業系統、組成原理等課程(一般計算機大二大三陸續開課)結合,瞭解一點稍稍底層的東西,會用一點Linux。接著你可以選擇開始學習Unix程式設計,或者學習C++。若學習C++,需要你以一種學習全新的程式語言的態度來對待它,暫時忘掉C,積極使用C++ Style的部分,之後回過來會自然體會到它們的不同。這堆東西剛下來你底氣會非常足,但耗時耗力,和學校課程安排不契合。
如果看了這些還不知道該怎麼辦,那麼對自己要求不高的話就跟著課程走就好,想比別人更好的話可以從《C++ Primer Plus》開始。如果這本書還是難,可以去網易雲課堂C++程式設計(面向物件進階)_北京郵電大學_中國大學MOOC(慕課)聽老師講,我曾受益於這個老師舊版本的C++課程,課程安排比較靠譜,新版應該也不錯。
均可,依據自己的情況而定,只是初期一個我認為比較重要的是“雖然能,但初期儘可能不要混用”。
C與C++的根本區別不是面向過程還是物件,它們都是歷史上不同階段為了解決不同問題的產物。
C最初設計是為了解決Unix(可以粗暴理解為和今天的Linux是一樣的)上的問題,身上充滿了歷史,早期C與Unix極高度相關,在其他領域的應用是後來的事情。
C++是期望相容C的前提下,提出一種儘可能不偏袒平臺的,特性強大的通用程式語言。
所以其實有些輕微矛盾,同一件事情在C與C++的習慣用法很可能不同。C與C++本身設計不太人性化,難度不低,心智負擔較重,哪怕只是為了課程設計,也見過有太多人初學時會盡可能找自己會的部分拼上去,混用其中的內容,反而寫的更亂,存在潛在問題等等。區分C與C++的區別也是一種心智負擔,若程式設計功底淺薄,我覺得一開始不要給自己太大的心智負擔比較好。
依據自己的情況,兩條路線均可。
高生產力路線,直接現代C++。C++自身完備,C++的書也完備,覆蓋從最基礎開始的部分,直接學沒有任何問題。現代C++我認為可以理解為C++11以及更新的C++,儘可能使用STL完成事情,學習面向物件,好處是出活兒快,出錯機會少,省時間,並且你的課設應該比同學寫的更好看。如果不確定以後是否做C++,那麼轉換成本較低。這裡的挑戰是國內很多學校的C++教材、資源可能很挫,可能是“古代C++”,還要學不太需要的東西造成干擾,增加心智負擔。《C++ Primer Plus》對於新手比較平緩,不知道看啥可以看這個,《C++ Primer》大家認為是神作,而依我看有點像字典,仔細閱讀可以大幅度提高水平,但其編排,閱讀真的難以形成心流,很痛苦。日後若有需要,再重新學習C與Unix程式設計未嘗不可。硬核路線,從C入手,把C當作一門完整的課程來對待,接著你可能需要結合一些作業系統、組成原理等課程(一般計算機大二大三陸續開課)結合,瞭解一點稍稍底層的東西,會用一點Linux。接著你可以選擇開始學習Unix程式設計,或者學習C++。若學習C++,需要你以一種學習全新的程式語言的態度來對待它,暫時忘掉C,積極使用C++ Style的部分,之後回過來會自然體會到它們的不同。這堆東西剛下來你底氣會非常足,但耗時耗力,和學校課程安排不契合。如果看了這些還不知道該怎麼辦,那麼對自己要求不高的話就跟著課程走就好,想比別人更好的話可以從《C++ Primer Plus》開始。如果這本書還是難,可以去網易雲課堂C++程式設計(面向物件進階)_北京郵電大學_中國大學MOOC(慕課)聽老師講,我曾受益於這個老師舊版本的C++課程,課程安排比較靠譜,新版應該也不錯。