C語言
有人說:「C生萬物,編程之本」,這一點都沒有錯!前端
C語言是最接近計算機的語言,不少時間,咱們都會發現,C語言是很是有必要學習的。linux
剛開始就是泡書,而後就是抄代碼,上機調試,模仿修改,看 n 遍,量變引發質變就會培養出編程思惟!!!android
- 數據類型、變量、內存佈局、指針基礎;
- 字符串、一維數組、二維數組;
- 一級指針,二級指針,三級指針,N級指針概念,指針數組和數組指針;
- 結構體、文件的使用;
- 動態庫的封裝和設計;
- 函數指針回調函數;
- .....
看完這個刷題筆記與代碼規範,距大廠又近了一步!值得收藏!
60個適合練手的C語言/C++項目,值得收藏!
書
第一本書《C程序設計語言》,機械工業出版社,做者Brian W. Kernighan / (美)Dennis M. Ritchie。C 語言之父寫的,入門經典書籍,建議你們做爲 C語言入門的第一本書。ios
《C Primer Plus》 ,人民郵電出版社,做者 Stephen Prata。 能夠做爲 C 語言工具書,也能夠做爲入門,內容按部就班,可以鍛鍊編程思想。c++
《C和指針》 深刻了解指針,看完之後對指針再也不懼怕。git
《C陷阱與缺陷》 正如書上所說,「本書所揭示的知識,至少可以幫助你減小 C 代碼和初級 C++ 代碼中 90% 的 Bug」,看完後能夠避免 C 語言開發的一些坑。github
C語言入門視頻:
-
《郝斌C語言自學教程》面試
https://www.bilibili.com/video/BV1os411h77o?from=search&seid=15026475169248378667算法
-
《程序設計入門——C語言》(浙大翁愷)數據庫
https://www.bilibili.com/video/BV1ME411h75N?p=45
C++
C語言->C with class -> C++;
由C++的演變能夠看出來,C++ 剛開始就是帶類的 C 語言,C 語言和 C++ 的關係究竟是什麼呢?
看過侯捷老師的視頻或者《Effective C++》這本書就知道,現現在咱們提到 C++,都應該視其爲一個龐大的「語言聯邦」,最起碼包含以下幾個重要的組成部分:
-
面向過程編程
-
面向對象編程
-
泛型編程
-
元編程
-
函數式編程
-
STL標準庫
其中「面向過程編程」,正是 C++ 提供的向後兼容 C語言的部分。
C++演化(C++ 98 ->C++ 03 -> C++ 11 -> C++ 14 -> C++20 -> ..... )
C++ 由 C++ 語言和標準庫構成,隨着演變,C++ 語言愈來愈複雜,標準庫就尤爲重要,由於使用標準庫才更有生產力!
面向對象編程思想:
- 類的封裝,構造和析構、靜態成員、對象管理;
- 類的構造(有參構造函數、無參構造、拷貝構造、默認構造函數)和析構;
- 對象動態管理、友元函數、友元類、操做符重載;
- C++編譯器對象管理模型分析;
- 類對象的動態管理(new/delete);
- 友元函數和友元類;
- 運算符重載(一元運算符、二元運算符、運算符重載難點、項目開發中的運算符重載);
- 類的繼承、多繼承及其二義性、虛繼承;
- 多態(概念、意義、原理剖析、多態案例);
- 虛函數、純虛函數、抽象類(面向抽象類編程思想案例);
- 函數模板、類模板,模板的繼承;
- C++類型轉換;
- C++輸入輸出流(標準I/O 文件I/O 字符流I/O);
- C++異常處理(異常機制、異常類型、異常變量、異常層次結構、標準異常庫);
- C++核心編程_打造你的核心編程技能
C/C++開發進階
這一階段的目標纔是達到C/C++軟件工程師開發行業的基本要求,這個階段是咱們走向C/C++開發的進階之路,更是一個讓本身找份薪水比較體面的工做的籌碼。
若是在此部分遇到不懂的或者沒有見過的知識點和名詞,可先將本文收藏,供之後細細研讀。
那麼這個階段,咱們又應該掌握什麼呢,繼續往下看:
1.C++進階之STL
STL = Standard Template Library,即標準模板庫。這是提升開發效率的極品工具。經過學習此階段,應掌握泛型編程技巧,理解容器類在C++語言中的應用模式,以及熟練掌握所有STL類的使用方法。
2.C++進階之設計模式
決定一個項目成敗最重要的因素是項目整體的設計,經過本階段的學習,可掌握面向對象編程中重要的一環,是編碼前建模的技巧所在。單例模式;工廠模式;代理模式;迭代模式等,這些都是你要掌握的哦。
3.C++進階之數據結構基礎
- 這是全部編程語言中最應該學習的部分,程序組成的基礎之一。
- 順序存儲、鏈式存儲、循環鏈表;
- 雙向鏈表、棧(順序和鏈式)、隊列(順序和鏈式);
- 棧的應用、樹基本概念及遍歷、二叉樹;
- 排序算法、並歸算法、選擇、插入、快速、希爾。
4.C++進階之UI界面開發
- 掌握QT類庫構架,圖形界面開發模型;
- 掌握QT開發技巧,消息機制,圖形處理;
- 掌握QT網絡編程,UDP,TCP使用方式;
- 掌握QT文件處理方式,序列化;
- 掌握QT在windows,linux,ios,android不一樣平臺下的移植技術。
5.C++進階之Unix/Linux網絡服務器
- 掌握Unix/Linux平臺開發方式;
- 熟練使用系統調用;
- 熟練Unix/Linux內存管理,進程,線程調度;
- 熟悉網絡服務器開發方式,熟練編寫TCP,UCP網絡服務程序;
- 掌握同步/異步IO模型在網絡編程中的使用方式。
6.C++進階之數據庫開發
掌握SQL語言的實用技巧。Oracle,MySQL數據庫的使用方式。
若是你能熟練掌握以上列出的技能,具有解決複雜問題和技術難點的能力,並且你能獨立開發一些比較複雜的功能模塊,那麼很榮幸地告訴你,你已經達到中級水平,薪資過萬對你來講簡直是小菜一碟。
C++開發高級
讀到此處的你,相信你有更高的目標。便是當下煊赫一時的全棧開發工程師,既曉前端,又通後臺。快速定位問題,解決問題對他們來講已經是小菜一碟,就是人們常說的神祕大牛,只在公司技術攻關的時候纔會纔看到他們的身影。
- 此階段軟件開發工做所需的知識和技能相對較難,高級軟件工程師編碼熟練度和規範性須要達到必定要求;
- 具有必定的項目能力(包括調試能力、文檔編寫能力、測試能力等)和綜合技術素質(包括對軟件生命週期的理解、對設計模式的理解、必備的行業知識和經驗等);.
- 瞭解主流的後臺技術和先後端協做方式,能從全局角度理解項目的整個生命週期。
若是你能熟練掌握以上三個階段的知識技能,那麼你就能夠知足C++開發行業的高級需求。
書
《C++ Primer中文版》本書面向 C++ 語言的初學者,是一本很友好的自學教材。做者把 C 語言的基礎概念和須要注意的編程細節說得很清楚,而且例程和習題豐富,相信認真讀過以後,能夠完成 C 語言入門這個目標。
《高質量程序設計指南》,牆裂推薦,這本書看得比較過癮,書裏面有一些編程規範的東西,對於寫程序的人來講,仍是不錯的,能夠培養好的編碼習慣,加深了一些知識的鞏固。比較實用,也適合面試前看看。
《Essential C++中文版》是一本內容很少但很實用的 C++ 入門書籍,強調快速上手與理解 C++ 編程。本書主要圍繞一系列逐漸複雜的程序問題,以及用以解決這些問題的語言特性展開講解。你不僅學到 C++ 的函數和結構,也會學習到它們的設計目的和基本原理。
《More Effective C++(中文版)》,該書圍繞55條準則,每一條都介紹了一個可以讓你寫出更好的C++程序代碼的方法,並以特別設計過的例子詳加討論。
《提升C++性能的編程技術》,本書認爲 20% 的性能缺陷將會佔用咱們 80% 的時間。所以咱們把精力集中在最有價值的地方。本書詳細討論了臨時對象、內存管理、繼承、虛函數、內聯、引用計數以及 STL 等一切有可能提高 C++ 效率的細節內容。不管你是相關領域的從業人員,仍是 C++ 程序設計愛好者,或者是渴望突破編程瓶頸、大幅提高自我修爲的程序設計愛好者,本書都必將使你獲益良多。
《從缺陷中學習C/C++》從本質上來講,這就是一個 C/C++ 的錯題集。全書中包括 63 個問題引起的錯誤,即書名中的缺陷。也是避坑指南。
《C++ Templates中文版》,深刻了解現代 c++ 模板的實用書籍。本書不只是對 C++ 模板的權威解釋,並且本書還深刻地介紹了其餘通常的 C++ 思想。
《STL源碼剖析》詳細地瞭解 STL 的底層實現機制,同時也能夠對經常使用數據結構,C++ 內存管理擁有更深的理解。
其實還有《C++標準庫(第2版)》、《C++併發編程實戰》、《C++編程思想(兩卷合訂本)》等,介紹的這些書我都買了,不過說實話,後面的幾本都是泛泛的看了下,看成工具書。
視頻
-
清華大學-鄭莉-C++語言程序設計(基礎篇)
https://www.bilibili.com/video/BV1PA411b75a?p=92
-
侯捷老師的八部曲:
侯捷老師的八部曲:
https://github.com/tangtangcoding/C-C-
-
QT視頻教程:
QT視頻教程
https://www.bilibili.com/video/BV1jK4y1m7d4
最後
「超全!」谷歌大神 LeetCode 刷題筆記 PDF 分享
須要學習的東西還多,該收心學習和上班了,願每一個努力奮鬥的小夥伴都會被時光溫柔以待!
歡迎點贊+評論+轉發。