C語言怎麼系統化的高效學習?

2022-01-13 C語言與C++編程

今天給大家分享一個學習路線,也算是給這段時間C語言系列的一個總結,大家按圖索驥,能夠飛快的掌握C語言。

C語言指針很難學?給你最直接的解決思路!

首先我想說下,C語言是非常重要的語言。為什麼這麼說呢?原因在於C語言是連接了硬體和軟體的橋梁。

如果你學習Java,會發現自己是在Java虛擬機上,你要是用硬體功能,除了依賴系統API之外,就沒招了。

這也是為什麼我說:你不會C語言,基本上就如同無根之草一樣,因為沒根基,上層建築就是搖搖欲墜。

而在C語言這裡,最為重要的一個環節是,作業系統,這個龐然大物,直接支撐了各種開發需求,調度,快速的實現功能。

而C語言的學習,基本上保持一個路線,就是沒問題的:

1 基礎語法

2 練習,做筆記

3 數據結構與算法

項目,模仿

5 作業系統

6 反編譯逆向

7 設計原理

那麼具體該如何學習呢?

1 基礎語法

推薦書籍:(更多書籍文末免費獲取)

C primer plus

小甲魚C語言

C與指針

自學編程C語言不迷路,我私藏的書單分享給你!

推薦網站:

https://www.runoob.com/cprogramming/c-tutorial.html

視頻教程:

https://www.bilibili.com/video/BV1TT4y1F7Z9

https://www.bilibili.com/video/BV17s411N78s/

學編程一定要記住一點:

語法永遠只是基礎,不是能力。如果你聽見誰說它學會了哪個語法,卻不會做項目,那麼基本上等於白瞎,沒啥用,只是剛入門而已。

程式設計師之間的薪資差距,主要來自於一些抽象的能力,比如創造力,溝通力,解決問題的能力。

2 練習,做筆記

練習,第一個是所謂的課後題,多練習,把語法熟練的掌握,再一個就是去做筆記,把學到的知識進行歸類,總結。

很多人會有一個困惑,自己學了就忘了,等於沒學。這個解決方式就是做筆記,加深印象。

只看不做,基本白瞎的。一定要去動手,去調試,用VS開發或者codeblocks,都是沒問題的,如果你喜歡Linux,可以裝個虛擬機,或者cygwin去編程。

一些練習題:

https://www.runoob.com/cprogramming/c-100-examples.html

視頻講解:

https://www.bilibili.com/video/BV1ur4y1c7d2?from=search&seid=13029503385076204138

C語言# ##看的頭蒙?以實際應用場景剖析它!

3 數據結構與算法

當你學習完語法,或者是在學習的過程中,會遇到比較困惑的內容,就是不知道如何描述物體,如何設計,這個原因是語法掌握了之後,這些東西都是零散的,不成系統,你不會用。

當你用的時候,繞不過去的一個知識,就是數據結構與算法,因為這兩個合起來就是寫程序了。

一個物體描述出來,就是一個結構體,或者聯合體,然後通過一些函數調用,操作,影響數據,最終提通過界面顯示,或者終端輸出,完成整個過程。

於是C語言學習語法完後,就是學數據結構與算法,一定要記得這個學完,才是入門了,才能真正的做項目了。

這裡主要學習哪些知識呢?

書籍文末可以找到,視頻這裡分享幾個:

https://www.bilibili.com/video/BV1Ut411g76f

https://www.bilibili.com/video/BV1xK4y1U7Dc?p=4

項目,模仿

上面的這些學習完後,就要開始做項目了。而做項目的技巧是什麼?先去找案例,教程學習,項目實戰。

當我們看完一個後,學會了如何去分析,開發一個新的項目。比如,如何描述一架飛機,它有哪些參數,哪些方法。

是否可以飛,可以發子彈,是否碰撞,寬高。

這個在理解起來就是,內部的結構,以及外部的關聯。對內屬性,對外方法調用。

這個如果你理解了,那麼算是學成精了,進入開悟階段。

這塊教你一個方法,直接百度搜索 C語言 項目 源碼 下載 。或者去github去搜索。

更多內容,記得關注公號 :程式設計師入門進階。

5 作業系統

當這個階段完成後,後面就進入所謂的作業系統階段,這個邁過去了,就是開悟之坡的封神階段,會進入真正的輝煌階段。

而關於作業系統,要學習哪些知識呢?

作業系統的概念

進程,線程的存在

通信機制

互斥鎖,消息

死鎖,如何避免競爭

虛擬內存,進程間不可直接訪問

分頁,分段,緩存的意義

文件系統

驅動加載

這邊推薦幾本書,《現代作業系統》《自己動手寫一個作業系統》,我自己當時是看著一本叫做《作業系統》的書,看了很久。

這塊建議看下《linux作業系統設計》,然後就去看下小型作業系統,代碼少,好學習,這塊可以使ucos2,freertos,去學習中斷上下文,所謂的現場保護。

如果這塊學的不錯了,在進階一下,進入微指令,計算機組成原理,深入到計算機硬體這塊,會給你帶來質的飛躍。

自學編程C語言不迷路,我私藏的書單分享給你!

程式設計師碼農IT工程師自學編程計算機入門進階學習網站大全

《計算機網絡》《作業系統》《 組成原理》計算機知識該怎麼個學習順序?

6 反編譯逆向

完成了作業系統,就結束了?非也。下來會進入到世界顛倒的地方。反編譯。有誰會寫完代碼後,進行反編譯看看的?如果你這麼做了,你一定是高手了。

因為你進入了自我探索階段,在開悟之後,就變成了所向披靡,而反編譯就是最好的切口。

這裡推薦幾本書:《C++反編譯》《加密與解密》,加密與解密解決所謂的PE結構這些,說到這裡又想起來了,《程式設計師的自我修養》《連結器與加載器》,一定要去讀,太經典了。

這塊我當時使用的是OD破解器,現在IDa,做一些分析學習(現在不輸出這類內容了,自己探索樂趣無窮,不想被煩擾)

當你看到代碼,能夠看到的是它的流動,就像俠客行裡面,最後石中玉看到蝌蚪文的那個感覺,各個經絡活躍起來,感受到代碼在流淌,而不是靜態的,這時候你才是真的熱愛編程。

這也是我喜歡的一個狀態,一個在代碼世界的屠龍少年。

當完成了這些,會到所謂的大神階段,就是會遊刃有餘的解決問題,但是還處在孫悟空的階段,沒有大徹大悟。

最後一個,我們來說下終極思維。

7 設計原理

虛實結合,創造系統,這個才是最終跳出束縛,完成所謂的天眼過程。所謂你永遠看不到真相,因為你一直在真相裡面。

要想真正打通,最終完成的是所謂的設計,比如作業系統架構設計,模型,物聯網模型,協議,這些是在制定規則。

制定規則,是在創造過程。制定規則,是具有了主導的權力,一切皆在股掌之中。

好了,今天就聊這麼多,更多內容,敬請期待!

--- EOF ---

相關焦點

  • 高效準備C語言
    有的22考生在複試的時候可能要準備C語言,這裡給大家提供點準備思路。C語言是自動化學習的唯二的高級語言,另一門是C++。
  • 學習c語言筆記——C庫函數printf()
    c語言中的printf是什麼來的?」。我答:「它是一個函數,主要用來輸出運算結果。」 ,下面就給大家介紹C庫函數printf()使用方法。下面我們通過一個調用c庫函數的c語言案例來說明printf()函數的使用方法,如c語言1。
  • 新手如何學習C語言
    如果想要學習C語言,首先應該學好計算機基礎。裡面的很多概念以及基本的常識對於C程式設計師都是非常重要的。如果在著手學習C語言之前,或者已經開始學習C語言,但是碰到了很多問題,應該再把計算機基礎的書拿來好好看看。    條件允許應該在學習C語言之前學學彙編,這會對許多比較細膩的概念有清醒的認識。
  • 學習C語言必看的最經典書籍
    、提高、開發、拓展全攻略》  這本比較好的c語言學習書籍從實際應用入手,以實驗過程和實驗現象為主導,循序漸進地講述51單片機c語言編程方法以及51單片機的硬體結構和功能應用。本學習c語言必看的最經典書籍內容豐富,實用性強,書中大部分內容均來自科研工作及教學實踐,許多c語言代碼可以直接應用到工程項目中。本書配套光碟提供13講近30學時的教學視頻和本書實例代碼,可使讀者更快更好地掌握單片機知識和應用技能。這本比較好的c語言學習書籍作者還可提供與本書配套的單片機實驗板。
  • 書籍分享|零基礎學習C語言(附電子書)
    它能為你系統學習c提供一個良好的平臺。作者:普拉達《The C programming language》拿到這本薄薄的書,很多人開始懷疑,C語言是這麼幾百頁能講清楚的麼。看完這本書,我想答案已經很明了,卻真的讓人感到震憾。什麼是好書?無法刪減的書才是真正的好書。
  • Linux、C/C++學習路線圖、C語言學習路線
    《5天20篇CSDN精選博文帶你掌握系統化學習方法》專欄將挑選有關「系統化學習方法」的20篇優質文章,幫助大家掌握更加科學的學習方法~在這裡,你將收穫:快速掌握系統化學習的理論基礎,探究本質和原理學會將已有知識體系化,形成自己的知識圖譜,離學霸更近一步系統化學習必備工具推薦與使用方法教學,實現高效學習嘗試將系統化學習思維運用於工作
  • 高效使用C語言
    對於函數而言,表示該函數的作用域僅在該文件中,其他文件不可訪問,這樣有一個好處,就是當該文件僅僅只被本文件中的函數調用時,此時使用static關鍵字修飾可以避免其他函數因函數名相同而報錯,也就是當使用該關鍵字修飾時,即使兩個文件中的函數名完全相同,也不會報編譯錯誤,例如下面有兩個.c文件,分別是fun1.c和fun2.c。這兩個文件中有函數swap,函數名完全相同。
  • 大一上c語言學習總結
    作者:李易峰來源:https://www.cnblogs.com/lxzlyf2022/p/10369669.html一: 近期C語言知識點易錯點整理(1)main()----在c語言中稱之為「主函數」,一個c程序有且僅有一個main函數,任何一個c程序總是從main函數開始執行,main函數後面的一對圓括號不能省略。
  • 知識分享:值得學習的C語言經典開源項目!
    盤點一些值得學習的C語言開源項目,大多是曾經比較經典的案例,感興趣的朋友可以了解一下!
  • 大佬分享C語言學習經驗?
    最大化利用網絡資源是學習的最大助手!!!相比早些年學習c語言,學習編程的人,我們是幸運的,相比他們來說我們擁有無限的學習資源和學習工具。既然擁有資源不去利用那不就浪費嘛!!!現在給家人們提供一些學習C語言的好資源(可能大家都知道哈):一.PTA程序設計類實驗輔助教學平臺:這個也是我們平常上C語言實驗課時,大家常用的一個學習平臺,但是是否家人們跟小編一樣,只有上課的時候打開這個平臺,下課可能由於各種因素,根本就不會打開看看自己上課到底哪些問題沒有做出來;是否家人們遇到問題會一直卡在那裡,都快下課了,你根本沒有做出幾道題,其實有時候問老師
  • C語言學習推薦書籍
    擅長嵌入式程式設計師培訓,軟體架構設計和技術寫作圖書目錄:第0章 背景知識第1章 從雙向鍊表學習設計第2章 寫得又快又好的秘訣第3章 從動態數組學習設計第4章 並發與同步第5章 組合的威力第6章 算法與容器第7章 工程管理第8章 內存管理第9章 從計算機的角度思考問題
  • 學習c語言用什麼軟體?
    c語言編程軟體適於編寫系統軟體,是學習編程的同學們的必備軟體。c語言一種非常強大的計算機語言,應用非常廣泛,不僅僅是在軟體開發上,而且各類科研都會用到c語言。今天小編給大家匯總下C語言的編程工具。手機軟體1.
  • 學習C語言的辛酸淚(四)
    20醫信劉嶸澂    誒.所謂「求而不得」、「心有餘而力不足」,有點那味了.對於我來說,c語言算是門新的學科了
  • C語言和Java語言學習哪個更好呢?
    如果你想學習開發語言作為零基礎新手是學習c語言還是學習java語言呢?這兩種語言中哪一種更適合初學者,哪一種更適合在學習後找到工作?下面給大家介紹一下新手學習C語言還是學習java語言好?C語言是一種抽象的,面向對象的通用程式語言,廣泛應用於底層開發。Java是一種面向對象的程式語言, 既吸收了C語言的優點,又摒棄了C語言中難以理解的多重繼承和指針概念,具有功能強大,使用方便,適合於Internet應用的開發。所以Java語言比C語言應用程式更廣泛,比C語言更容易學習。
  • 【C語言】02.第一個C語言程序
    三、連結程序四、運行程序五、總結六、學習建議七、clang指令匯總前言前面已經嘮叨了這麼多理論知識,從這講開始,就要通過接觸代碼來學習C語言的語法。學習任何一門語言,首先要掌握的肯定是語法。學習C語言語法的目的:就是能夠利用C語言編寫程序,然後運行程序跟硬體(計算機、手機等硬體設備)進行交互。由於我們的最終目的是學習iOS開發,學習iOS開發的話必須在Mac系統下,因此我就在Mac系統環境下開發C語言程序,而不是在Windows環境下。
  • 【教程資源】c語言編程開發視頻教程程序設計教學自學c語言自學課程資料學習新
    c語言編程開發視頻教程程序設計教學自學c語言自學課程資料學習新《需要的可以找我,你就可以擁有這個課程》微信:nhy336
  • 學習c語言,知道這三個資源就行了
    c語言作為目前最熱門的程式語言之一,一直是學生、程式設計師必須學習的課程之一,但目前許多學校的課程太過老舊,教材和教程也參差不齊,這裡就給大家推薦幾個比較好的學習c語言的資源。第一個推薦的就是《C Primer Plus》,作為一本廣受大家認可的工具書,書中詳細地講解了C語言的基本概念和編程技巧,並且包含了許多習題和例子,可以有效的幫助初學者建立對於C語言的知識體系,是一本對小白比較友好,且內容全面的入門教材。
  • 一個資深C語言工程師說如何學習C語言
    今天本人就與大家一起談談如何學習C語言或者說學習C語言應從哪幾方面著手。了解一些基本知識一.C語言的背景就個人感觸,無論學習哪門語言首先應該了解一下自己所學語言的背景,也可以說它的發展史。C語言屬於高級程序語言的一種,它的前身是「ALGOL」。其創始人是布朗·W·卡尼漢和丹尼斯·M·利奇。
  • 七月程式語言榜:C語言,YYDS!
    當然,現在大多數人可能都不會再學習彙編了,這玩意吃力不討好,但是我還是建議有時間的話可以學一下彙編。倒不是說彙編多底層多多牛逼,主要是彙編其實是離計算機最近的一種語言,學彙編有助於讓我們理解計算機執行的方式,比如各種指令其實就是對應計算機在存儲、計算的特徵。
  • C語言?c+?到底先學哪個才能更好的理解編程,這些你造嗎
    最近大一新生們剛剛結束第一個學期的學習,接踵而來的問題也越來越多,不同的學校有不同的學習節奏,但是基本上都是從C語言或者c++開始學起。現在越來越多的人對於「學習C語言還有必要嗎?」這件事比較糾結。