C++ 最大的缺点就是语法复杂,而且难学难精。
学习 C 语言也许一本 K&R 的《C程序设计语言》就够了,但是在 C++ 世界里,找不到这样一本书。在这个爱速成的年代,大家可能耐不住寂寞花很长时间去学习一门语言,所以可以看看《21天学通C++》。但是想要学好C++的话,还是需要很长时间的。在学精学好过程中,离不开读大量的书籍和标准库文档。
对于0基础的学员,可以看看网上的 C++ 入门教程,匠心之作|C++教程从0到1入门编程,https://www.bilibili.com/video/BV1et411b73Z/?spm_id_from=333.999.0.0
(1)了解并且掌握所有编程语言中共同的、最基本的那些概念:变量、常量、类型、循环、判断、数组、字符串、对象、输入输出等
(2)了解C++中一些特有的东西,如:命名空间 namespace、引用、模板等。
(3)知道如何使用一些 STL 中的类库,如:string、vector、find 等。
另外学C++, 向你推荐一些书(当然能够结合课内项目实践更好)
1️⃣ The C++ Programming Language(Bjarne Stroustrup)
2️⃣ Inside The C++ Object Model (Stanley B. Lippman)
(这本书介绍一些C++的内部实现)
3️⃣ Advanced C++ Programming Styles And Idioms (James O. Coplien)
(这本书介绍一些C++编程的习惯用法)
4️⃣ STL Tutorial and Reference Guide (David R. Musser) (Professor Musser
是我母校的教授,STL的创始人之一。这本书介绍Generic Programming
的思想和标准)。
5️⃣ Design Patterns (Erich Gamma) (很精典的面向对象设计的组件和实例)
当然,看任何一本书的时候都要动手(试例程或做习题)。然后尝试着在课堂项目中把书中的方法试验一下,以加深印象。"
C++ 练手项目
interview
地址:GitHub - huihut/interview: 📚 C/C++ 技术面试基础知识总结,包括语言、程序库、数据结构、算法、系统、网络、链接装载库等知识及面试经验、招聘、内推等信息。This repository is a summary of the basic knowledge of recruiting job seekers and beginners in the direction of C/C++ technology, including language, program library, data structure, algorithm, system, network, link loading library, interview experience, recruitment, recommendation, etc.
Star:24.4k
C/C++ 技术面试基础知识总结,包括语言、程序库、数据结构、算法、系统、网络、链接装载库等知识。
这是一个比较适合初学者的C++项目,沉淀了面试过程中C++相关的一些问题和解答,这些知识相对于书本上的内容,更加贴合项目实战,往往都是实际项目中会遇到的一些问题。
因此,这个项目可以让我们脱离书籍和教程,学到很多有实战价值的C++知识和技巧。
tinytetris
地址:https://github.com/taylorconor/tinytetris
Star:1.7k
这是一个利用C++实现的俄罗斯方块的小项目,相对于那些大型项目,这个项目对初学者比较轻松,而且把C++和耳熟能详的游戏开发有机的结合到一起,这会让学习者有更加直观的感受,也有更加强烈的代入感,能够把学习者的注意力吸引到程序的设计过程中。例如,如何实现方块图像?如何实现方块的移动和选择?如何实现消除和积分功能?
这些抛出的问题在这个小项目中都可以找到解答。