C/C++学习路线

356 阅读7分钟
原文链接: zhuanlan.zhihu.com

【小宅按】随着互联网及互联网+深入蓬勃的发展,经过40余年的时间洗礼,C/C++俨然已成为一门贵族语言,出色的性能使之成为高级语言中的性能王者。而在今天,它又扮演着什么样重要的角色呢?请往下看:

后端服务器,移动互联网后端,经典Windows界面开发,移动互联网端界面开发,跨平台界面开发,图形分析,系统架构,应用设计,还有现在最为流行的分布架构等一些新的技术领域。

很多人在学习的过程中都会感觉C/C++永远只有一个黑乎乎的界面,在编程界中做上层没有java,python之间快,而且学习难度大,体验性比其他语言性来得差,入门难。那我们应该怎么学习呢?

下面是给你们一张C/C++工程师必备知识的思维导图(图片来源于网络):

如果您觉得看视频很累的话,喜欢看书,推荐一份书籍类C/C++的进阶学习路线,以及书籍推荐,包括标准文档,入门阅读,进阶阅读,深入理解3个步骤,里面都是经典的书。

C语言入门:

《C Primer plus》

这是目前市场上,最适合自学的C语言书籍。你可以在书中找到所有C语言编程概念的详细解释。这本书为每一个单独的概念提供了简短的例子,帮助读者更好理解。比如,指针这一章节就体现了这个特点。指针章节是本书编写最出色的章节之一。指针用来标识内存中的具体位置并且存放相应内存地址。书中参照了最新的ANSI标准C99。对于初级程序员来说,本书对学习基本概念大有帮助。这些概念在其他语言(比如:PHP和JAVA中)也有所应用。

C语言进阶之路:

《C专家编程》

你是准备进一步提高编程技巧的C语言专家吗?《C专家编程》就是为你准备的,它可以帮助程序员理解高级的C语言概念,强调程序员常用的一些最佳C语言技巧。这本书写得十分有趣,展现了作者在SUN系统(SUN SYSTEM)中的丰富经验。还定义了一些传统的编程方式,比如使用不同的声明方式。同时,还提供了很多实用的编程实践提示,比如,指针和数组之间的差别。


《C和指针》

本书通过对指针的基础知识和高级特性的探讨,帮助程序员把指针的强大功能融入到自己的程序中去。全书共18章,覆盖了数据、语句、操作符和表达式、指针、函数、数组、字符串、结构和联合等几乎所有重要的C编程话题。 适合C语言初学者和初级c程序员阅读,也可作为计算机专业学生学习C语言的参考。   


《你必须知道的495个C语言问题》

本书以问答的形式组织内容,讨论了学习或使用C语言的过程中经常遇到的一些问题。书中列出了C用户经常问的400多个经典问题,涵盖了初始化、数组、指针、字符串、内存分配、库函数、C预处理器等各个方面的主题,并分别给出了解答,而且结合代码示例阐明要点。

本书结构清晰,讲解透彻,是各高校相关专业C语言课程很好的教学参考书,也是各层次C程序员的优秀实践指南。

C++入门:

《Essential C++》
这是一本内容不多但很实用的C++入门书籍,强调快速上手与理解C++编程。本书主要围绕一系列逐渐复杂的程序问题,以及用以解决这些问题的语言特性展开讲解。你不只学到C++的函数和结构,也会学习到它们的设计目的和基本原理。


《C++ Primer》
本书对C++基本概念、技术、以及现代C++编程风格进行了全面而且权威的阐述,是C++初学者的最佳指南;本书可以帮助你编写实用的程序,而无需首先精通每个语言细节。对于中高级程序员,本书也是不可或缺的参考书。

C++进阶:

《Effective C++》和《More effective C++》

作者Scott Meyers。你应该熟读它们,并清楚地理解每个项目。该书围绕55条准则,每一条都介绍了一个可让你写出更好的C++程序代码的方法,并以特别设计过的例子详加讨论。


《Exceptional C++(C++编程剖析)》和《More exceptional C++》

这两本书中都包含了40个C++编程问题,这些问题会让你磨练自己的技能,最终成为优秀的C++程序员。这些问题是Herb Sutter精心挑选,与ISO/ANSI C++官方标准相一致,帮助程序员在设计、架构和编码过程中保持良好的风格,从而使编写的C++软件更健壮、更高效。

《The C++ standard library(C++标准程序库)》

这是标准模板库字典,你可以在本书中找到STL相关的一切知识。本书焦点放在标准模板库、检查容器、迭代器、函数对象和STL算法上。每一个元素都有深刻的呈现,包括其介绍、设计、运用实例、细节解说、陷阱、意想不到的危险,以及相关类别和函数等。


《Effective STL》

这是Scott Meyers的第三本C++专著,也是学习STL最权威的书籍。作者对书中的50个指导方针都作了详尽的分析,并配以示例。通过这些规则,C++开发者可以最大限度地使用STL。


《Generic programming and the STL(泛型编程与STL)》

本书阐述了泛型程序设计的核心理念:concepts(概念)、modeling(模型)和refinement(改善),并为你展示这些观念如何导出STL的基础概念:iterators(迭代器)、containers(容器)和function objects(函数对象)。按照本书所述,你可以把STL想象成一个由concepts组成的library,你将学习到STL正式结构并理解其强大的优势。

深入C++:

《Modern C++ design(现代C++设计)》

作者Andrei Alexandrescu为C++程序员打开了一个新的局面。本书提供了一些针对软件设计的前沿方法,如联合设计模式、泛型编程,使程序员可以编写有表现力的、灵活的、高度可重用的代码。


《Inside the C++ object model(深度探索C++对象模型)》

本书专注于C++面向对象程序设计的底层机制,包括结构式语意、临时性对象的生成、封装、继承,以及虚拟——虚拟函数和虚拟继承,帮助你理解程序的底层实现,以便写出更高效的代码。

最后,一开始借助书本学习C、C++语言可能有些困难。但是,这些书用最好的方式介绍了C语言中的基本概念。借助这些书,你可以从学习基本的C语言开始,一直深入到学习C、C++语言编程中的高级技巧。完成书中的练习很重要。在实现这些习题的过程中,你可以高效理解和学习有关概念。这些书,也为你继续学习其他高级语言,比如C++、JAVA,提供了基础。


更多精彩内容,请滑至顶部点击右上角关注小宅哦~


来源: 叁研良语