我是大一新生,今年上學期剛接觸C語言,看了學校的教材![圖片說明](

),和上了慕課網學習了C語言入門,但是感覺學到的東西不多,也不常用,最近放假了,想學好C語言,之前也上網查過怎麼學進階C語言,知道了要買C和指針,C專家編程,C陷阱.....但是我想知道,我看完前面說的學校教材後,真的可以進階了么?同時再次求各位大神推薦C語言的學習書籍,進階書籍,C語言的刷題網址,和大神們學C的經驗方法,急求!


謝邀~!

工具書:

1基本書籍:

C Primer Plus【作為工具書吧,像字典一樣,但是零基礎或者想進行編程的快速實戰不推薦】

2拓展和強化:

C陷阱與缺陷,C專家編程、 C和指針

建議是在學完基礎的C之後,再寫了一段時間的代碼後,再去翻著看這些書才容易理解


學習:

經驗1:

非常不推薦抱著一本大部頭來看,我承認存在那種可以啃得下來的人,但絕大多數人的精力和耐力是有限的。就好比一本書或者筆記本,往往是最開始的幾頁寫滿了筆記,但後面大多數卻和新的一樣。

但這並不意味著我們學不好C語言(注意:其實學其他東西也一樣的理念哦!),用迂迴的戰術攻克是一個不錯的方法。

這裡推薦郝斌老師的C語言教程,或者一些別的輔導機構的教程,這些前輩都是寫了很多年代碼的大牛,課程里不光光有一些知識的傳授,還有許多寫代碼的經驗,而且他們的講義很精簡也很實用的覆蓋了一門語言的精髓。強烈推薦!!!

站在巨人的肩膀上學習,進步很快,收穫很大,學習的積極性日益見長。

經驗2:

學習一門語言最好的方法就是實踐,其實,漢語是挺難的一門語言,而且我們也沒有把所有的漢字都學完,仍然可以表達出我們的意思。C語言不也是一門語言么?

Similarly,C語言想學好,也是要不斷地實踐,正如我們說出的話是為了讓別人能理解一樣,程序也是為了讓編譯器IDE更好的理解,你看這和學漢語不是一樣的么?

除此之外,就像我們表達一個事物可以有多種方式一樣,寫代碼也是一樣,例如表達一個學生的信息,有姓名,年齡,身高。

我們可以很基礎的這樣:

char Name[100];
int age;
float height;

也可以略顯高級的這樣:

typedef struct student STU;

struct student {
char Name[100];
int age;
float height;
};

STU s1, s2;

其實,前面的就好比在說 1 2 3 4 5 6 7,後面就在說1到7,只是表達方式的不一樣而已

啰嗦了這麼多,其實是想說一定要靈活多變,不要囿於定論。


強化:

如果要去接觸項目,可以在項目中在具體學習和補充,不同方向的不同項目對代碼的要求是不一樣的。

  • 若做嵌入式,將來能熟練使用函數指針,結構體等就已經很優秀了。
  • 若做計算機純軟編程,建議刷一些OJ,剛開始會比較扎心和慢,但後面慢慢就好了。

基礎差的可以先刷一下浙大的PAT乙級,基礎好的可以刷一下ACM or LeetCode

基本刷完這些不僅基礎打得很紮實,而且也對演算法的提高有很大幫助。


寫在最後:

C語言只是一個基礎,後面還有JAVA,C++等等不同的方向,但不論如何,C語言都是最基礎的一個,要扎紮實實的學好,多多練習才是王道!

這是我在一個C++問題下的回答,也寫了一些對C語言的理解。

小龍人:如何理解C++的類和對象?

如何理解C++的類和對象??

www.zhihu.com圖標

挺喜歡研究編程的,有任何學習過程中的疑問的童鞋也歡迎向我私信。

提問前請把問題描述清楚,並把需要調試的代碼貼在這個地方,然後發給我鏈接我就看到了

Ubuntu Pastebin

Ubuntu Pastebin?

paste.ubuntu.com


C語言是一門語言,是一個工具,一直單純地學習C語法,看各種大磚頭書籍,枯燥無味不說,時間久了還會消磨你學習的激情。

學習英語的目的是什麼?是為了看英文資料、跟別人交流。如果讓你整天去研究英語語法、各種結構,早晚你會學厭。學習C語言也是一樣,掌握基本的語法,然後練習編寫一個小軟體、小程序。遇到不會的知識再去學習,這樣不僅有意思,而且在實際編程中遇到問題,更能加深你對C語言的理解。比如,你學完C語言後,能不能自己寫一個小項目,一個多文件的C語言軟體工程:C語言實戰 之 學生成績管理系統視頻課程

從零開始,自己能夠獨立開展一個C語言軟體工程,接下來,就要根據你的興趣繼續基於C語言進行高階學習了,此時,你應該明白的是,C語言就是32個關鍵字+40來個運算符,你要學習的是基於C語言的其它技術,比如多線程、界面編程、嵌入式開發等。

假如,你想從事嵌入式開發,嵌入式開發對C語言的要求還是蠻高的,你還需要C語言進階學習,不僅僅是學習C語言,還要學習嵌入式知識、計算機原理與系統架構的知識:C語言嵌入式Linux高級編程

打下牢固的C語言基礎和計算機體系架構理論基礎,你就可以比較輕鬆的學習嵌入式了。

C陷阱與缺陷,C專家編程、和《C和指針》,都是比較專業、有深度的書籍。如果你沒有項目經驗,光看這個的話,可能效果不是太好。這幾本書應該一直放到你的床頭,是不是翻下。而不是作為一個新手,一上來就看這個,先用C語言編幾個小項目,再看,可能效果很好,裡面的一些講解可能更感同身受。


不一定要採用一本一本的看書來學習C語言,看完沒有實踐一樣會忘,你現在這個階段也不建議實踐就用C來一個什麼什麼程序。

我覺得你可以找一本數據結構的書,先學習數據結構,然後再把裡面相關的內容用C語言實現,這樣既達到學習了C語言的目的,又達到了預習數據結構的目的。

數據結構完了,我建議可以開始來點計算機組成與原理了,現在不一定要求多深入,但是對於一些基本的概念一定要理解。

學完了計算機組成與原理之後,是不是又想接觸點新的東西,好吧,可以開始linux了,網上linux相關書籍太多太多,linux操作和linux內核,這些學完,好吧,你的C語言應該可以算熟練了。

接下來就可以根據自己的興趣愛好來分流了,什麼C++、JAVA、js、python、web編程等等等,喜歡啥弄啥,如果前面的基礎掌握的很好,你會發現,這些方面理解起來也很容易。

最重要的友情提示,作為剛入門的學生,千萬不要把心思陷入某種編程語言,讀書期間一定要把心思花在計算機組成原理、操作系統、數據結構這上面,這是重中之重,完了之後再學習下網路原理,至於編程語言什麼的,你精通了C語言之後,其他編程語言真的很好上手。

操作系統內核這些相當於內功,編程語言相當於外功,豐厚的內力才能讓你的外功更加厲害


謝邀。請參考我以前的回答。鏈接如下:https://www.zhihu.com/question/39115307/answer/114702451
C primer plus c和指針c語言專家編程c和陷阱?[忘啥名兒了好像是這個]
資源不是重點,現在也都好找,重點是動手吧
何不看一看翁愷的慕課
瀉藥。心得談不上,c就多看視頻多敲代碼。書籍我覺得可以看《C primer plus》。
譚浩強的書是早期在我國學c的重要基礎的書,學的話還是推薦譚浩強的基礎書,但不推薦深入的(深入的缺陷多),我是學郝斌c語言的,而且感覺還值得推薦的。
C 我當初學的是譚浩強的 感覺教材寫的還可以。 前面基礎後面有點鏈表的 然後結合數據結構,實現數據結構里的演算法。題主發的那本書我也有 沒怎麼看 因為現在用不到了
推薦閱讀:
查看原文 >>
相关文章