色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          "); //-->

          博客專欄

          EEPW首頁 > 博客 > C語言怎么系統(tǒng)化的高效學(xué)習(xí)?

          C語言怎么系統(tǒng)化的高效學(xué)習(xí)?

          發(fā)布人:編碼之外 時(shí)間:2021-05-07 來源:工程師 發(fā)布文章

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


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


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


          如果你學(xué)習(xí)Java,會(huì)發(fā)現(xiàn)自己是在Java虛擬機(jī)上,你要是用硬件功能,除了依賴系統(tǒng)API之外,就沒招了。



          這也是為什么我說:你不會(huì)C語言,基本上就如同無根之草一樣,因?yàn)闆]根基,上層建筑就是搖搖欲墜。



          而在C語言這里,最為重要的一個(gè)環(huán)節(jié)是,操作系統(tǒng),這個(gè)龐然大物,直接支撐了各種開發(fā)需求,調(diào)度,快速的實(shí)現(xiàn)功能。


          而C語言的學(xué)習(xí),基本上保持一個(gè)路線,就是沒問題的:


          1 基礎(chǔ)語法

          2 練習(xí),做筆記

          3 數(shù)據(jù)結(jié)構(gòu)與算法

          項(xiàng)目,模仿

          5 操作系統(tǒng)

          6 反編譯逆向

          7 設(shè)計(jì)原理


          那么具體該如何學(xué)習(xí)呢?


          1 基礎(chǔ)語法


          • 學(xué)習(xí)簡單的語法,if switch while ,各種變量聲明,函數(shù)定義

          • 簡單數(shù)據(jù)結(jié)構(gòu),鏈表指針操作

          • 內(nèi)存管理,申請(qǐng)釋放

          • 結(jié)構(gòu)體使用,typedef ,#define 使用

          • 常見的庫,函數(shù)

          • 文件操作

          • 字符串操作

          • 作用域

          • 指針,回調(diào)函數(shù)


          推薦書籍:(更多書籍文末免費(fèi)獲?。?/span>


          • C primer plus

          • 小甲魚C語言

          • C與指針




          推薦網(wǎng)站:



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


          視頻教程:



          https://www.bilibili.com/video/BV1TT4y1F7Z9?from=search&seid=17613620503982455285


          https://www.bilibili.com/video/BV17s411N78s/?spm_id_from=333.788.recommend_more_video.0


          全部視頻清單,關(guān)注公眾號(hào) 程序員入門進(jìn)階 后臺(tái)回復(fù) C語言視頻我最棒  獲取全部鏈接。


          學(xué)編程一定要記住一點(diǎn):


          語法永遠(yuǎn)只是基礎(chǔ),不是能力。如果你聽見誰說它學(xué)會(huì)了哪個(gè)語法,卻不會(huì)做項(xiàng)目,那么基本上等于白瞎,沒啥用,只是剛?cè)腴T而已。


          程序員之間的薪資差距,主要來自于一些抽象的能力,比如創(chuàng)造力,溝通力,解決問題的能力。


          2 練習(xí),做筆記


          練習(xí),第一個(gè)是所謂的課后題,多練習(xí),把語法熟練的掌握,再一個(gè)就是去做筆記,把學(xué)到的知識(shí)進(jìn)行歸類,總結(jié)。


          很多人會(huì)有一個(gè)困惑,自己學(xué)了就忘了,等于沒學(xué)。這個(gè)解決方式就是做筆記,加深印象。


          只看不做,基本白瞎的。一定要去動(dòng)手,去調(diào)試,用VS開發(fā)或者codeblocks,都是沒問題的,如果你喜歡Linux,可以裝個(gè)虛擬機(jī),或者cygwin去編程。


          一些練習(xí)題:

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


          視頻講解:


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


          C語言# ##看的頭蒙?以實(shí)際應(yīng)用場景剖析它!


          3 數(shù)據(jù)結(jié)構(gòu)與算法


          當(dāng)你學(xué)習(xí)完語法,或者是在學(xué)習(xí)的過程中,會(huì)遇到比較困惑的內(nèi)容,就是不知道如何描述物體,如何設(shè)計(jì),這個(gè)原因是語法掌握了之后,這些東西都是零散的,不成系統(tǒng),你不會(huì)用。


          當(dāng)你用的時(shí)候,繞不過去的一個(gè)知識(shí),就是數(shù)據(jù)結(jié)構(gòu)與算法,因?yàn)檫@兩個(gè)合起來就是寫程序了。


          一個(gè)物體描述出來,就是一個(gè)結(jié)構(gòu)體,或者聯(lián)合體,然后通過一些函數(shù)調(diào)用,操作,影響數(shù)據(jù),最終提通過界面顯示,或者終端輸出,完成整個(gè)過程。


          于是C語言學(xué)習(xí)語法完后,就是學(xué)數(shù)據(jù)結(jié)構(gòu)與算法,一定要記得這個(gè)學(xué)完,才是入門了,才能真正的做項(xiàng)目了。


          這里主要學(xué)習(xí)哪些知識(shí)呢?


          • 線性表


          • 隊(duì)列

          • 數(shù)組

          • 廣義表

          • 樹和二叉樹


          • 查找

          • 排序


          書籍文末可以找到,視頻這里分享幾個(gè):



          https://www.bilibili.com/video/BV1Ut411g76f?from=search&seid=4659630938965125971



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


          項(xiàng)目,模仿


          上面的這些學(xué)習(xí)完后,就要開始做項(xiàng)目了。而做項(xiàng)目的技巧是什么?先去找案例,教程學(xué)習(xí),項(xiàng)目實(shí)戰(zhàn)。


          當(dāng)我們看完一個(gè)后,學(xué)會(huì)了如何去分析,開發(fā)一個(gè)新的項(xiàng)目。比如,如何描述一架飛機(jī),它有哪些參數(shù),哪些方法。


          是否可以飛,可以發(fā)子彈,是否碰撞,寬高。


          這個(gè)在理解起來就是,內(nèi)部的結(jié)構(gòu),以及外部的關(guān)聯(lián)。對(duì)內(nèi)屬性,對(duì)外方法調(diào)用。


          這個(gè)如果你理解了,那么算是學(xué)成精了,進(jìn)入開悟階段。


          這塊教你一個(gè)方法,直接百度搜索 C語言 項(xiàng)目 源碼 下載 ?;蛘呷ithub去搜索。


          更多內(nèi)容,記得關(guān)注公號(hào) :程序員入門進(jìn)階。



          5 操作系統(tǒng)


          當(dāng)這個(gè)階段完成后,后面就進(jìn)入所謂的操作系統(tǒng)階段,這個(gè)邁過去了,就是開悟之坡的封神階段,會(huì)進(jìn)入真正的輝煌階段。


          而關(guān)于操作系統(tǒng),要學(xué)習(xí)哪些知識(shí)呢?


          • 操作系統(tǒng)的概念

          • 進(jìn)程,線程的存在

          • 通信機(jī)制

          • 互斥鎖,消息

          • 死鎖,如何避免競爭

          • 虛擬內(nèi)存,進(jìn)程間不可直接訪問

          • 分頁,分段,緩存的意義

          • 文件系統(tǒng)

          • 驅(qū)動(dòng)加載


          這邊推薦幾本書,《現(xiàn)代操作系統(tǒng)》《自己動(dòng)手寫一個(gè)操作系統(tǒng)》,我自己當(dāng)時(shí)是看著一本叫做《操作系統(tǒng)》的書,看了很久。


          這塊建議看下《linux操作系統(tǒng)設(shè)計(jì)》,然后就去看下小型操作系統(tǒng),代碼少,好學(xué)習(xí),這塊可以使ucos2,freertos,去學(xué)習(xí)中斷上下文,所謂的現(xiàn)場保護(hù)。


          如果這塊學(xué)的不錯(cuò)了,在進(jìn)階一下,進(jìn)入微指令,計(jì)算機(jī)組成原理,深入到計(jì)算機(jī)硬件這塊,會(huì)給你帶來質(zhì)的飛躍。




          6 反編譯逆向


          完成了操作系統(tǒng),就結(jié)束了?非也。下來會(huì)進(jìn)入到世界顛倒的地方。反編譯。有誰會(huì)寫完代碼后,進(jìn)行反編譯看看的?如果你這么做了,你一定是高手了。


          因?yàn)槟氵M(jìn)入了自我探索階段,在開悟之后,就變成了所向披靡,而反編譯就是最好的切口。


          這里推薦幾本書:《C++反編譯》《加密與解密》,加密與解密解決所謂的PE結(jié)構(gòu)這些,說到這里又想起來了,《程序員的自我修養(yǎng)》《鏈接器與加載器》,一定要去讀,太經(jīng)典了。


          這塊我當(dāng)時(shí)使用的是OD破解器,現(xiàn)在IDa,做一些分析學(xué)習(xí)(現(xiàn)在不輸出這類內(nèi)容了,自己探索樂趣無窮,不想被煩擾)


          當(dāng)你看到代碼,能夠看到的是它的流動(dòng),就像俠客行里面,最后石中玉看到蝌蚪文的那個(gè)感覺,各個(gè)經(jīng)絡(luò)活躍起來,感受到代碼在流淌,而不是靜態(tài)的,這時(shí)候你才是真的熱愛編程。


          這也是我喜歡的一個(gè)狀態(tài),一個(gè)在代碼世界的屠龍少年。


          當(dāng)完成了這些,會(huì)到所謂的大神階段,就是會(huì)游刃有余的解決問題,但是還處在孫悟空的階段,沒有大徹大悟。


          最后一個(gè),我們來說下終極思維。


          7 設(shè)計(jì)原理


          虛實(shí)結(jié)合,創(chuàng)造系統(tǒng),這個(gè)才是最終跳出束縛,完成所謂的天眼過程。所謂你永遠(yuǎn)看不到真相,因?yàn)槟阋恢痹谡嫦嗬锩妗?/span>


          要想真正打通,最終完成的是所謂的設(shè)計(jì),比如操作系統(tǒng)架構(gòu)設(shè)計(jì),模型,物聯(lián)網(wǎng)模型,協(xié)議,這些是在制定規(guī)則。


          制定規(guī)則,是在創(chuàng)造過程。制定規(guī)則,是具有了主導(dǎo)的權(quán)力,一切皆在股掌之中。


          好了,今天就聊這么多,更多內(nèi)容,敬請(qǐng)期待!


          幫發(fā)轉(zhuǎn)發(fā)文章,便是最大的支持!


          *博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。



          關(guān)鍵詞: C語言

          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉