C++从入门到进阶的系列书籍推荐

Posted link-初扬

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++从入门到进阶的系列书籍推荐相关的知识,希望对你有一定的参考价值。

目录

1、C++入门书籍

1.1、C语言程序设计(谭浩强)

1.2、C++ Primer中文版(第5版)

2、VC++/MFC书籍

2.1、VC++深入详解(孙鑫)

2.2、深入浅出MFC(侯捷)

3、C++进阶书籍

3.1、Effective C++:改善程序与设计的55个具体做法(第3版)(Scott Meyers著)

3.2、More Effective C++:35个改善编程与设计的有效方法(Scott Meyers著)

3.3、STL源码剖析(侯捷 )

4、Windows编程书籍

4.1、Win32多线程程序设计(Jim Beveridge / Robert Wiener)

4.2、Windows核心编程(Jeffrey Richter / Christophe Nasarre)

5、Linux书籍

5.1、鸟哥的Linux私房菜

5.2、Linux内核源代码情景分析

6、汇编与软件调试书籍

6.1、汇编语言(王爽)

6.2、IDA Pro权威指南(Chris Eagle)

6.3、软件调试(张银奎)

6.4、格蠹汇编:软件调试案例集锦(张银奎)

7、网络及TCPIP协议

7.1、计算机网络(谢希仁)

7.2、TCP/IP详解(卷1/卷2/卷3)

8、设计模式、数据结构与算法

8.1、Boost程序库完全开发指南(罗剑锋)

8.2、大话设计模式(程杰)

8.3、设计模式:可复用面向对象软件的基础(Erich Gamma / Richard Helm / Ralph Johnson)

8.4、数据结构与算法分析(Mark Allen Weiss)

8.5、算法导论(Thomas H.Cormen)


       要多读书,读好书!很多时候,一本书要多读几遍才好,每次都可能有新的收获!特别在是有一定的工作年限和工作经验之后!读书百遍,其义自见!下面就给大家推荐一下C++从入门到进阶需要读的一些经典书籍。

1、C++入门书籍

       C++是在C语言的基础上发展而来的,要学习C++之前需要先学习C语言。有了C语言基础之后再去学习C++。

1.1、C语言程序设计(谭浩强)

       该书被公认为学习C语言程序设计的优秀教材,被全国大多数高校选用,是学习C语言的主流用书。本书比较通俗易懂,是初入者必备的书籍。

1.2、C++ Primer中文版(第5版)

        本书是学习C++语言的最经典的入门教材,书中详细讲解了C++语言中最基础的语法和概念。最新第5版均全部采用 C++11 标准改写,充分体现了 C++ 语言的重大进展及其全面实践。书中丰富的教学辅助内容、醒目的知识点提示,以及精心组织的编程示范,让这本书在 C++ 领域的权威地位更加不可动摇。无论是初学者入门,或是中、高级程序员提升,本书均为不容置疑的首选。

2、VC++/MFC书籍

        有了C++基础之后,可以先从简单的Windows编程学起,在学习的过程中逐步熟悉Visual Studio开发工具的使用。微软MFC UI框架虽然没有多少大型商用项目在用了,但它是经典的UI框架,其可视化的开发框架,也是我们编写很多小型工具软件的首选。

2.1、VC++深入详解(孙鑫)

       本书是学习Windows编程的入门经典教材,从实际应用入手,由浅入深、循序渐进地讲述Windows程序内部运行机制、MFC框架、文本、菜单、对话框、文件操作、网络编程、进程间通信、ActiveX控件、动态链接库、HOOK编程等多个主题。

2.2、深入浅出MFC(侯捷)

       本书是深入学习MFC编程的经典教材,分为四大篇。第一篇提出学习MFC程序设计之前的必要基础,包括Widnows程序的基本观念以及C++的高阶议题。第二篇介绍Visual C++整合环境开发工具,此篇足以帮助掌握Visual C++整合环境。第三篇介绍application framework的观念,以及MFC骨干程序。第四篇以微软公司附于Visual C++光碟片上的一个范例程序Scribble为主轴,一步一步加上新的功能;并在其间深入介绍Runtime Type Information(RTTI)、Dynamic Creation、Persistence(Serialization)、Message Mapping、Command Routing等核心技术。这些技术正是其他专著最缺乏的部分。

3、C++进阶书籍

        在有一定的C++开发经验之后,我们需要更深入地区了解C++特性,进一步提高我们编写C++代码的效率和稳定性。

3.1、Effective C++:改善程序与设计的55个具体做法(第3版)(Scott Meyers著)

       有人说C++程序员可以分为两类,读过Effective C++的和没读过的。世界项级C++大师scott Meyers成名之作的确当得起这样的评价。当您读过这本书之后,就获得了迅速提升自己C++功力的一个契机。

3.2、More Effective C++:35个改善编程与设计的有效方法(Scott Meyers著)

       本书是梅耶尔大师Effective三部曲之一。继Effective C++之后,推出的“续集”相当于进阶版本。只有深入了解C++编译器如何解释代码,才有可能用C++语言写出健壮的软件。C++的难学,不仅在其广博的语法,语法背后的语义,语义背后的深层思维,深层思维背后的对象模型。

3.3、STL源码剖析(侯捷 )

        STL已经广泛地应用于各种C++项目中,通过本书可以详细了解到STL列表的内部实现。本书详细讲解了vector的实现、list的实现、heap的实现、deque的实现、Red Black tree的实现、hash table的实现、set/map的实现;看到各种算法(排序、查找、排列组合、数据移动与复制技术)的实现;甚至还能够看到底层的memory pool和高阶抽象的traits机制的实现。

4、Windows编程书籍

       对于从事Windows应用程序开发的人,下面的两本书是经典的Windows编程教材,是深入了解Windows系统特性的必备用书。

4.1、Win32多线程程序设计(Jim Beveridge / Robert Wiener)

       全书详细讲解了Windows系统中的多线程编程技术,共分三篇。第一篇包括线程的启动和结束、核心对象、激发和未激发状态的意义、同步机制及其用途;第二篇介绍C runtime函数库和MFC对线程的支持、如何在USER和GDI的限制之下施行对线程等内容;第三篇谈论如何组织一个程序,使它有效支持多线程。

4.2、Windows核心编程(Jeffrey Richter / Christophe Nasarre)

        本书是经典的Windows核心编程指南,是Windows开发人员的必备参考用书,就是为深入理解Windows特性打造的。从第1版到第5版,引领着数十万程序员走入Windows开发阵营,培养了大批精英。Windows核心编程(第5版)针对WindowsXP,WindowsVista和WindowsServer2008全面修订。主题广泛,内容丰富,讲解深入而精辟。透过这本Windows编程经典,我们可以在专家的悉心指导下,洞悉Windows编程精华,深入了解高级编程技巧,编写出高性能的Windows应用程序。

5、Linux书籍

       Linux系统已经被广泛地应用于各种系统的后台服务器中,大部分后台服务器使用的操作系统都是Linux系统,无论是web服务器还是各种业务服务器。所以作为C++开发人员,有必要去学习Linux相关知识与技能。作为后台服务器的开发及维护人员,掌握Linux系统的常用命令及系统特性、掌握shell编程技术,是必不可少的技能。

5.1、鸟哥的Linux私房菜

        本书是网络上知名度较高的Linux入门级的书籍,从Linux系统的起源、文件系统、Linux命令、shell脚本、系统安全、系统特性等多方面内容进行了详细而全面的介绍。本书基本概念的讲解非常细致,深入浅出。各种功能和命令的介绍,都配以大量的实例操作和详尽的解析。本书是初学者学习Linux不可多得的一本入门好书。

5.2、Linux内核源代码情景分析

       这本书采取类似于英语教学中行之有效的情景会话的教学方法,全面深入地剖析了Linux最新版本核心源代码,并对Linux核心的独特优点和需要进一步改进的问题作了精辟的评述。上册的内容包括预备知识、存储管理、中断和系统调用、进程和进程调度、文件系统以及传统的Unix进程通讯六章;下册的内容包括设备驱动、多处理器SMP系统结构以及系统引导和初始化。

6、汇编与软件调试书籍

       汇编语言最能反映程序运行的本质,在分析和解决C++程序问题时我们经常需要查看C++程序对应的汇编代码去辅助问题的排查,所以掌握一定的汇编语言基础是很有必要的。此外,汇编是逆向工程中必备的语言。

       此外,作为C++软件开发人员,需要熟练掌握各种软件调试的技能,掌握排查各类软件问题的工具和方法。

6.1、汇编语言(王爽)

       

       本书是汇编语言学习者的必备宝典。采用了全新的结构对课程的内容进行组织,对知识进行最小化分割,为读者构造了循序渐进的学习线索;在深入本质的层面上对汇编语言进行讲解;对关键环节进行深入的剖析。

6.2、IDA Pro权威指南(Chris Eagle)

       IDA Pro(交互式反汇编器专业版)是应用最广泛的静态反汇编工具,我们经常使用IDA反汇编工具去查看二进制文件的汇编代码。IDA在IT领域有着举足轻重的地位,但其文档资料一直都不够完善,在IDA Pro创建者Ilfak的协助下问世的这本书,完美地终结了这一缺憾。Chris的理论被业界公认为是权威且令人信服的,而他的模拟器也是公开发布的IDA插件中最棒的一款。

6.3、软件调试(张银奎)

       本书是对软件调试技术在过去50年中所取得成就的全面展示,也是对作者本人在软件设计和系统开发第一线奋战10多年的经验总结。本书理论与实践紧密结合,选取了大量具有代表性和普遍意义的技术细节进行讨论,是学习软件调试技术的宝贵资料,适合每一位希望深刻理解软件和自由驾驭软件的人阅读,特别是从事软件开发、测试、支持的技术人员和有关的研究人员。

6.4、格蠹汇编:软件调试案例集锦(张银奎)

       本书重在实践,通过一个个有代表性的真实问题“现身说法”,在软件大背景下介绍调试,通过调试技术解剖软件。本书适合广大程序员、软件测试工程师、软件架构师以及相关专业的高年级学生阅读,也可供信息安全领域的工程师或者研究者参考。

7、网络及TCPIP协议

        作为C++程序开发人员,我们开发的软件基本都是基于网络的,所以我们有必要去学习一些基本的网络知识,掌握一些排查网络问题的方法。

7.1、计算机网络(谢希仁)

         本书按照网络协议模型(物理层、数据链路层、介质访问控制子层、网络层、传输层和应用层),自下而上系统地介绍了计算机网络的基本原理,并给出了大量实例。在讲述各网络层的同时,还融合进了近年来迅速发展起来的各种网络技术,如Internet、SONET、A DSL、CDMA、WLAN和蓝牙等。另外,针对当前计算机网络的发展现状以及计算机安全的重要性,本书用了一整章的篇幅对计算机安全进行了深入讨论。

7.2、TCP/IP详解(卷1/卷2/卷3)

       卷1:协议,详细描述了属于每一层的各个协议以及它们如何在不同操作系统中运行。

       卷2:实现,详细地介绍了TCP/IP协议是如何实现的。书中给出了约500个图例,15000行实际操作的C代码,采用举例教学的方法帮助你掌握TCP/IP实现。

       卷3:TCP事务协议、HTTP、NNTP和UNIX域协议,是“TCP/IP详解系列”的延续。主要内容包括:TCP事务协议,即T/TCP,这是对TCP的扩展,使客户-服务器事务更快、更高效和更可靠;TCP/IP应用,主要是HTTP和NNTP;UNIX域协议,这些协议提供了进程之间通信的一种手段。当客户与服务器进程在同一台主机上时,UNIX域协议通常要比TCP/IP快一倍。

8、设计模式、数据结构与算法

8.1、Boost程序库完全开发指南(罗剑锋)

       Boost库是一个可移植、提供源代码的C++库,其中的网络库被很多软件厂商广泛地采用。本书作为Boost库的详细介绍用书,介绍了其中的所有117个库,并且结合C++11标准详细、深入地讲解了其中数十个库,同时实现了若干颇具实用价值的工具类和函数,可帮助读者迅速地理解、掌握Boost的用法及其在实际开发工作中的应用。

8.2、大话设计模式(程杰)

       本书是学习设计模式的经典书籍。它的特色是通过小菜与大鸟的趣味问答,在讲解程序的不断重构和演变过程中,把设计模式的学习门槛降低,让初学者可以更加容易地理解——为什么这样设计才是好的?是怎样想到这样设计的?以达到不但授之以“鱼”,还授之以“渔”的目的。引导读者体会设计演变过程中蕴藏的了、智慧。 本书适合编程初学者或希望在面向对象编程上有所提高的开发人员阅读。

8.3、设计模式:可复用面向对象软件的基础(Erich Gamma / Richard Helm / Ralph Johnson)

       这本书结合设计实作例从面向对象的设计中精选出23个设计模式,总结了面向对象设计中最有价值的经验,并且用简洁可复用的形式表达出来。书中分类描述了一组设计良好、表达清楚的软件设计模式,这些模式在实用环境下特别有用。此书适合大学计算机专业的学生、研究生及相关人员参考。

8.4、数据结构与算法分析(Mark Allen Weiss)

       本书曾被评为20世纪顶尖的30部计算机著作之一,作者Mark Allen Weiss在数据结构和算法分析方面卓有建树,他的数据结构和算法分析的著作尤其畅销,并受到广泛好评.已被世界500余所大学用作教材。在本书中,作者更加精炼并强化了他对算法和数据结构方面创新的处理方法。通过C程序的实现,着重阐述了抽象数据类型的概念,并对算法的效率、性能和运行时间进行了分析。

8.5、算法导论(Thomas H.Cormen)

       有别于一般算法类的书籍,本书将严谨性和全面性融为一体,深入讨论各类算法,并着力使这些算法的设计和分析能为各个层次的读者接受。全书各章自成体系,可以作为独立的学习单元;算法以英语和伪代码的形式描述,具备初步程序设计经验的人就能看懂;说明和解释力求浅显易懂,不失深度和数学严谨性。全书选材经典、内容丰富、结构合理、逻辑清晰,对本科生的数据结构课程和研究生的算法课程都是非常实用的教材,在IT专业人员的职业生涯中,本书也是一本案头必备的参考书或工程实践手册。

以上是关于C++从入门到进阶的系列书籍推荐的主要内容,如果未能解决你的问题,请参考以下文章

C++从入门到精通书籍大全推荐

C++从入门到精通书籍大全推荐

「算法与数据结构」从入门到进阶整理推荐书单

史上最全Python从入门到资深书籍资料分享!

python书单121本从入门到进阶推荐书籍最全整理

图书推荐:Kotlin从入门到进阶实战