前言
Linux C/C++ 從零基礎(chǔ)到大神的學習路線蝠检,真實學習路線,干貨很多挚瘟,建議收藏叹谁,認真閱讀饲梭。
在校期間,一直走的都是 Linux C/C++ 學習路線焰檩,從接觸 C++ 到正式工作憔涉,大概有 2 年多的時間,對于這個方向的學習路線析苫、以及學習編程的方法摸索出來了一些兜叨,看完本文,希望對于正在走 Linux C/C++ 路上的同學能有所幫助衩侥。
Linux C/C++ 方向的一些思考
對于方向的抉擇国旷,很多人都選擇了 Java 或者 Python 方向,Java 或者 Python 方向確實學的人多茫死,崗位需求很多跪但,入門能比 Linux C/C++ 方向容易一些,但是往深了學峦萎,各有各的難度屡久,先敲定了方向,再深入學習爱榔。
Linux C/C++ 方向被环,國內(nèi)真正掌握的人,其實是很少數(shù)详幽,這個方向的學習人數(shù)也是相對比較少的筛欢,入門一般首選 C 語言或者 Python,C唇聘、C++ 在編程排行榜也是經(jīng)久不衰的版姑,排名靠前,如果喜歡雳灾,有興趣漠酿,走這個方向是可以的冯凹。
C++ 方向沒有那么多有趣的東西可以做谎亩,在很長的一段時間內(nèi),要靠自己的興趣去堅持學習宇姚。
Linux C/C++ 方向匈庭,入門稍微難一點,一旦選擇了要走 C++ 方向的浑劳,在心態(tài)上面阱持,要做好準備,一定不能有畏難心里魔熏,做好接觸底層衷咽、復雜邏輯的分析鸽扁、以及具備面向過程 + 面向?qū)ο蟮乃枷搿?/p>
對于對底層沒有興趣,對 C 語言沒有興趣的人镶骗,不建議走這個方向桶现。
推薦一下小編的C/C++學習交流群:836880131, 群里有不錯的學習教程鼎姊,從入門到項目實戰(zhàn)骡和。學習開發(fā)用到的開發(fā)工具,完整項目源碼免費分享等以及解答學習問題相寇。大家在學習過程中有不懂的可以加入一起交流慰于,對你學習C/C++語言會有很大幫助!
計算機基礎(chǔ)知識的梳理
計算機基礎(chǔ):C 語言唤衫、數(shù)據(jù)結(jié)構(gòu) + 算法婆赠、操作系統(tǒng) + 計算機網(wǎng)絡(luò)、數(shù)據(jù)庫 + Linux战授、
工作必備工具:Linux + Git + Sql
不管你是學習什么方向页藻,這些基礎(chǔ)都不能忽視,有時間的話植兰,一定要打扎實了份帐,有了扎實的功底,在這行才能走的更遠更快楣导!
C 語言: C 語言是小編學習編程的第一門語言废境,是面向過程的語言,對于 C 語言中的數(shù)組筒繁、函數(shù)噩凹、指針、內(nèi)存對其模式毡咏、大小端問題驮宴、野指針、內(nèi)存泄露呕缭、static堵泽、register、define恢总、typedef迎罗、struct、union 等一些關(guān)鍵字的考察片仿。
推薦書籍:
<C 程序設(shè)計語言> 適合入門學習纹安;
<C 缺陷與陷阱>、<C 專家編程>、<C 和指針> 適合進階提升
數(shù)據(jù)結(jié)構(gòu): 對于常用的數(shù)據(jù)結(jié)構(gòu)厢岂,鏈表光督、棧、隊列塔粒、矩陣可帽、樹(BinTree、BST窗怒、AVL映跟、RBtree、B+扬虚、B-)努隙、跳表、圖等辜昵,學習從定義--->原理--->實現(xiàn)--->應(yīng)用荸镊,都要有不同程度的掌握。
推薦書籍:
<大話數(shù)據(jù)結(jié)構(gòu)>堪置,適合入門學習躬存;
<數(shù)據(jù)結(jié)構(gòu)>,清華大學嚴蔚敏寫的舀锨,作為進階和深入岭洲。
算法: 一定要保證掌握基礎(chǔ)算法 + 常見算法,十大排序算法(冒泡坎匿、插入盾剩、選擇、快排替蔬、希爾告私、堆排、歸并承桥、桶排驻粟、基數(shù)、計數(shù))是最簡單的凶异,也是一定一定要熟練掌握的蜀撑,另外還有字符串常見算法、數(shù)組常見算法唠帝、遞歸算法等等屯掖。
在算法方面的要求上玄柏,C++ 方向?qū)τ谒惴ǖ囊竺黠@更高襟衰,算法功底一定要扎實!
推薦書籍:
<啊哈算法>粪摘,適合入門學習瀑晒;
<編程之美>绍坝、<算法導論>,進階提升必看苔悦;
<劍指 offer>轩褐、leetcode 找實習/工作前,刷題就好
操作系統(tǒng): 很常問的一些技術(shù)點玖详,堆和棧把介、內(nèi)存分區(qū)、虛擬內(nèi)存 + 物理內(nèi)存蟋座、進程 + 線程 + 協(xié)程拗踢、死鎖、分片機制向臀、五大組件巢墅、中斷和系統(tǒng)調(diào)用 、同步和異步等等問題券膀。
推薦書籍:
<現(xiàn)代操作系統(tǒng)>君纫、<深入理解計算機系統(tǒng)> 是比較全面,寫的比較好的書
計算機網(wǎng)絡(luò): OSI 七層模型和 TCP/IP 四層體系結(jié)構(gòu)芹彬,TCP 三次握手與四次揮手蓄髓、常見的網(wǎng)絡(luò)協(xié)議(網(wǎng)橋、ARP舒帮、IP双吆、ICMP、TCP会前、UDP好乐、DNS、DHCP)瓦宜、TCP 粘包蔚万、流量控制 + 擁塞控制、數(shù)字簽名原理临庇、http + https反璃,http 的狀態(tài)碼,https 的安全機制假夺,網(wǎng)絡(luò)安全淮蜈、等等問題。
推薦書籍:
<計算機網(wǎng)絡(luò)>(謝希仁第 7 版)已卷;
<TCP/IP>(卷一)
Linux: Linux 的目錄結(jié)構(gòu)梧田、文件系統(tǒng)、啟動過程、用戶環(huán)境裁眯,Linux 下常用命令(find鹉梨、grep、awk穿稳、xargs)存皂、正則表達式、軟/硬鏈接逢艘、重定向旦袋、日志信息、網(wǎng)絡(luò)配置(top它改、ps猜憎、ifconfig、ping 等)搔课、簡單的 shell 腳本會寫(常見的腳本寫一些自動化工具或者定時任務(wù))
推薦書籍:
<鳥哥私房菜>
C++ 方向的深入學習路線
C++ 基礎(chǔ): C++ 是面向?qū)ο蟮恼Z言胰柑,一定要理解清楚面向?qū)ο蟮乃枷耄劝?C++ 的基礎(chǔ)知識點打牢爬泥,剛從面向過程中轉(zhuǎn)變過來柬讨,一定一定要適應(yīng)面向?qū)ο蟮膶懛ā?/p>
對于 C++ 的基礎(chǔ)知識,小編簡單羅列如下:
- const的用法
- 引用的用法
- define用法
- 構(gòu)造函數(shù)
- 析構(gòu)函數(shù)
- 拷貝構(gòu)造
- new袍啡、delete 和 malloc踩官、free 的區(qū)別
- 訪問限定符 public、private境输、protected
- 深拷貝和淺拷貝
- 友元函數(shù)
- static
- 內(nèi)聯(lián)函數(shù)
- 繼承蔗牡、虛繼承
- 鉆石繼承問題
- 同名覆蓋問題
- 虛函數(shù)表
- 虛指針
- 虛函數(shù)、純虛函數(shù)
- 接口
- 多態(tài)
- 重寫
- 重載
- 函數(shù)重載
- 運算符重載
- 流類庫和文件
推薦書籍:
<C++ Primer> 第 5 版先全面的了解清楚 C++ 的基礎(chǔ)嗅剖。
C++ 進階: 函數(shù)模板辩越、類模板,C++ 中對于異常的處理信粮,對于繼承和多態(tài)底層的理解黔攒,對于 virtual 底層的理解等,理解清楚智能指針的本質(zhì)是强缘,內(nèi)存的申請與釋放全部交給了對象管理督惰,以避免人為疏忽,造成內(nèi)存泄露旅掂。
推薦書籍:
<Effective C++>
<more Effectice C++>
<深度探索 C++ 對象模型>
<C++ 沉思錄>
STL 源碼: 對于 STL 中的容器剖析赏胚,常見容器有 list、vector商虐、stack觉阅、queue崖疤、map 等,考察自動擴容的原理留拾、map 的底層實現(xiàn)(RBtree),源碼是必須手動至少剖析一遍的鲫尊。
推薦書籍:
<STL 源碼剖析>
<泛型編程與STL>
Linux 網(wǎng)絡(luò)編程:
1痴柔、Linux 進程環(huán)境:僵尸進程、孤兒進程疫向、守護進程咳蔚、進程組、會話搔驼、前臺進程組谈火、后臺進程組
2、Linux 進程七大通信方式:signal舌涨、file糯耍、pipe、shm囊嘉、sem温技、msg、socket
3扭粱、Linux 線程:互斥量舵鳞、鎖機制、條件變量琢蛤、信號量蜓堕、讀寫鎖
4、Linux 下并發(fā)模型:多進程博其、多線程套才、線程池
5、Linux 下 I/O 復用:select慕淡、poll霜旧、epoll 高并發(fā)
6、Linux 網(wǎng)絡(luò)編程
7儡率、靜態(tài)庫和動態(tài)庫
推薦書籍:
<Linux高性能服務(wù)器編程>
<UNIX網(wǎng)絡(luò)編程卷一>
<UNIX網(wǎng)絡(luò)編程卷二>
<UNIX 環(huán)境高級編程>
總結(jié)
對于想走 Linux C/C++ 方向的同學挂据,基本上按照上面的路線走,相應(yīng)的書籍以及視頻都有推薦儿普,多實戰(zhàn)操作崎逃。
為了幫助大家,輕松眉孩,高效學習C語言/C++,給大家分享小編收集的資源个绍,從最零基礎(chǔ)開始的,幫助大家在學習C語言的道路上披荊斬棘勒葱!加入小編的C/C++技術(shù)交流群:836880131免費領(lǐng)取。 還有老司機解答問題巴柿,期待你的加入凛虽!
PS:如果覺得對您有所幫助,歡迎關(guān)注广恢、點贊凯旋! 轉(zhuǎn)發(fā)一下 分享出去