谁能拒绝这本封神的C++入门书籍

以C++的学习难度来说,没有任何一本书能做到平滑切入,在一片欢声笑语中学会C++,那是很难做到的,即使是像候捷这样优秀的老师,也很难让人无痛接受C++的洗礼。归根到底,不是书的问题,而是C++这门语言本身对于解决普通问题来说过于复杂了,大而全的设计思想囊括了几乎所有编程语言都能见到的特性。

我在很多回答中说过, 我看的第一本 C++ 教材就是这本《C++ Primer》,10年前的 C++ 学习环境来说,那会在网上搜了一遍,加上学长推荐,这本书是比较适合那时候的我入门的,大概是在这之前我已经熟练使用C语言开发了很长一段时间,所以从C语言到C++,看这本书我并没有觉得很痛苦。

现在让我来推荐C++入门,我首先想到的依然是这本书,不过,我会建议你最好有C语言基础,再来看这本书,基本能实现平滑过渡,无不适体验。

就我的经验来说,第一遍大体把整本书都过一遍,不求甚解。关键是以后在工作和学习中,不断的去查找一些记忆中模糊的知识点,一遍遍的往回翻书的过程,就是学会C++的过程。

工作的前几年这本书一直在我手头放着,现在这本书还在手头,只是翻的次数变少了,封面已被我翻烂了

这本书如果有 C 语言基础的话,一个寒假看完应该是可以的,我当初看的时候是有 C 语言基础的,所以看的比较快,大概花了一个月时间看完。

初学者看的时候有很多不太理解的地方,很正常,跳过去没关系。先快速过一遍,第一遍的目的就是熟悉概念,不求甚解

虽然我花了半个月看完这本书,但是这本书一直放在我书桌上,每次遇到问题就会去翻阅来找答案,这样翻了将近 3 年,每次看都有不一样的体会,有时以前不理解的内容,在一次次遇到问题来查找的时候豁然开朗!

我当初买的 《C++ Primer》 是第四版,现在你可以直接用第五版,本书所有示例均全部采用 C++11 标准改写,包含了最新 C++11 的语法特性说明,这些新特性现在很多开源项目、公司都有成熟的项目在使用了,初学的时候就一起学了没坏处。

豆瓣评分:9.5

在国际上,本书所引起的反响,波及整个计算机技术的出版领域,余音至今未绝。几乎在所有C++书籍的推荐名单上,这本书都会位于前三名。

非常经典的C++书籍,基本上学C++的人没有不知道这本书的。书中介绍了55个准则,每一条准则描述一个编写出更好的C++的方式。

作者高超的技术把握力、独特的视角、诙谐轻松的写作风格、独具匠心的内容组织,都受到极大的推崇和仿效。这本书不是读完一遍就可以束之高阁的快餐读物,也不是用以解决手边问题的参考手册,而是需要你去反复阅读体会的,C++ 是真正程序员的语言,背后有着精深的思想与无以伦比的表达能力,这使得它具有类似宗教般的魅力。

豆瓣评分: 9.2

本书是Scott Meyers大师Effective三部曲之一。继Effective C++之后,Scott Meyers于1996推出这本书。虽然出版年代稍嫌久远,但《More Effective C++》并没有第2版,原因是当其出版之时(1996),C++ Standard已经几乎定案,本书即依当时的标准草案而写,其与现今的C++标准规范几乎相同。而且可能变化的几个弹性之处,Meyers也都有所说明与提示。

两者相比,《Effectiv C++》应该算是基础篇,《More Effectiv C++》这本则更注重工程实践方面,介绍C++的高级技术。里面提到的Reference Count,Virtual Construstor, Smart Pointer 这些技术在大型的C++项目都很常见。

豆瓣评分:9.1

这本书中文版《深度探索C++对象模型》翻译质量也很高,我是直接看的中文版深度探索C++对象模型。对于C++底层机制感兴趣的读者,这必然是一本让你大呼过瘾的绝妙好书。

本书专注于C++面向对象程序设计的底层机制,包括结构式语意、临时性对象的生成、封装、继承,以及虚拟——虚拟函数和虚拟继承。这本书让你知道:一旦你能够了解底层实现模型,你的程序代码将获得多么大的效率。

作者澄清了那些关于 C++ 额外负荷与复杂度的各种错误信息和迷思,但也指出其中某些成本和利益交换确实存在。他阐述了各式各样的实现模型,指出它们的进化之道及其本质因素。书中涵盖了C++对象模型的语意暗示,并指出这个模型是如何影响你的程序的。

侯捷 C++ 视频课程一直都被看过的同学广为推荐,最近发现 B 站关于侯捷老师的 C++ 视频课程几乎全部被下架了。

所以在网上找了下资源,找到了一套还算比较齐全的。包含了 :

  • 侯捷C++ 标准 11 -14
  • 侯捷STL 和 泛型编程
  • 侯捷C++ 内存管理
  • 侯捷C++面向对象高级开发
  • 侯捷STL与泛型编程
  • C++ 程序的生前和死后
  • ….

侯捷C++全套视频和下载方式,欢迎私聊我获取

私信发送 1024 打包下载10个G编程资源学习资料

私信发送 001 获取阿里大神LeetCode 刷题笔记

私信发送 002 获取获取谷歌公司编程代码规范

私信发送 003 获取10个精美简历模板PDF和Word版

私信发送 004 获取100道精选 C++ 面试题和答案word版

私信发送 005 获取获取谷歌LeetCode算法笔记

私信发送 006 获取侯捷C++全套视频和下载方式

C/C++入门经典书籍

作为一名c++开发从业者,也希望成为大家学习c++道路上的引路人。

万事开头难,想要顺利的踏入c++开发行业,其难度单单就语言来说,学习成本就足以遥遥领先其他语言了!根据数据显示,2023年的c++岗位相对于Java来说,明显要多一些!但今年的形势貌似Java要好一点。所以,已经选择了c++并坚持下来了就不要轻易放弃,还没开始选择语言的也要按照自己内心的想法去走自己的路,千万不要勉强自己;毕竟谁也不知道明年c++和java哪个就业形势要好一些?纯纯盲盒抽奖,但只要你技术水平足够硬,外界因素也阻拦不了你拿心仪的offer!

接下来,我就来分享一些不错C/C++入门书籍:

本书是一部介绍标准C语言及其程序设计方法的权威经典书籍,讲述深入浅出,通俗易懂,实用性强,非常适合计算机专业小白学习。

C++是在C语言基础上开发的一种面向对象编程,是C语言的超集,在C语言的基础上讲述了封装、继承、多态、虚函数、友元、异常处理、STL;也是面向c++语言入门学习的经典书籍。

本书是C++模板编程的完全指南,旨在通过基本概念、常用技巧和应用实例3方面的有用资料,为读者打下C++模板知识的坚实基础。属于c++学习的一大重难点,在实际开发过程中用得不多,建议适量阅读,别强求!

讲述了一些经过验证的用来改善程序效率的方法,包括检验C++语言特性所带来的时间和空间上的成本。全面地描述了C++专家所使用的高级技术,包括placement new、virtual constructors、smart pointers、reference counting、proxy classes和double-dispatching,同时也介绍新的语言特性,包括bool、mutable、explicit、namespaces、成员模板、标准模板库等。

本书专注于C++面向对象程序设计的底层机制,包括结构式语意、临时性对象的生成、封装、继承,以及虚拟——虚拟函数和虚拟继承。阐述了各式各样的实现模型,指出它们的进化之道及其本质因素。这本书让你知道:一旦你能够了解底层实现模型,你的程序代码将获得多么大的效率。

如需要以上书籍,欢迎私聊我!

C语言入门书籍推荐

05年上大一的时候开始学C语言,当时用的教材是谭浩强版的《C语言程序设计》,[狗头],这本书真是应试教育的典范,填鸭式的内容,夹杂着各种错误,本该重点描述的地方浅尝辄止,各种吐槽点……

工作这么多年,到目前为止读了不少C相关的书籍。在走了很多弯路以后,个人认为一个正确的C语言的学习的路径应该为,

  • 在学习编程语言之前,建议先了解什么是计算机,可以观看《Crash Course Computer Science》;
  • 安装一个linux系统,现在已经越来越方便了,比如,可以在win11上安装wsl2和ubuntu,学习一些linux的基础命令;
  • 了解操作系统的基本原理,什么是进程、线程,编译、链接的基本原理,应用程序是如何运行的;
  • 学习gcc,gdb的基本使用命令(初期最好不要使用集成开发环境,例如visual studio,clion等强大的IDE去编写程序,建议直接命令行),结合预编译、编译、汇编、链接等指令去更深入的了解程序运行的原理,利用gdb去调试代码;
  • 学习一门基础语言,如果是第一门编程语言,那肯定是C,它应用广泛,操作系统(系统编程)、驱动、编译器开发、网络编程(socket)、音视频、游戏、GUI(部分组件)、嵌入式等等都是它的擅长领域,在编程语言中一直排名前3。它足够经典及精炼,执行效率高,占用内存少,可以“直接”和计算机硬件打交道,能更深一步的了解计算机的软硬件运行原理;
  • 学习cmake的基础语法及命令,因为目前大部分的开源C/C++代码都支持cmake编译;
  • 在掌握了一门基础语言后,学习对应的数据结构、算法、设计模式等。在这个阶段多去读一些开源的优秀源码,从小项目到大项目,学以致用,去学习优秀的大牛们是如何设计软件,如何利用简单的c语言去编写出优雅的代码;
  • 最后,在自己感兴趣的特定领域,例如网络编程,去学习一些已有的广泛使用的第三方库的使用。然后,去写一些现实中实际可以用的程序;

下面是我认为比较好的一些C语言书籍的推荐:

该书由计算机科学家Brian Kernighan和C语言之父Dennis Ritchie合著,是第一部介绍C语言编程方法的书籍。它因作者名字的缩写被简称为K&R;或是因封面颜色,也被称为白皮书。在C语言的发展和普及过程中起到了非常重要的作用,被视为是C语言的业界标准规范,而且至今仍然广泛使用。它被公认为计算机技术著作的典范,以清晰简洁的文字讲述而著称。书中用\”hello world\”为实例开始讲解程序设计,成为程序设计语言图书的传统。

相比于K&R,这本书更贴近于实际的应用,也更“现代”,适合进阶使用,所讲述的知识点都是干货,几乎没有废话。本书主要目的就是通过一种“现代方法”来介绍C语言,书中强调标准C,强调软件工程。第2版修订版中不仅有C99中的新特性,还与时俱进地增加了C11和C18中的内容。本书分为C语言的基础特性、C语言的高级特性、C语言标准库和参考资料4个部分。每章末尾的“问与答”部分给出一系列与该章内容相关的问题及答案,带着读者去思考,作者的水平真的是很高。

当你有一定的编程基础后,建议开始读《深入理解计算机系统》这本书,多读几遍,这本书“很硬”,每次读完的感受应该都不同。本书从程序员的视角详细阐述计算机系统的本质概念,并展示这些概念如何实实在在地影响应用程序的正确性、性能和实用性。全书共12章,主要内容包括信息的表示和处理、程序的机器级表示、处理器体系结构、优化程序性能、存储器层次结构、链接、异常控制流、虚拟存储器、系统级I/O、网络编程、并发编程等。书中提供大量的例子和练习,并给出部分答案,有助于读者加深对正文所述概念和知识的理解。

本书的最大优点是为程序员描述计算机系统的实现细节,帮助其在大脑中构造一个层次型的计算机系统,从最底层的数据在内存中的表示到流水线指令的构成,到虚拟存储器,到编译系统,到动态加载库,到最后的用户态应用。通过掌握程序是如何映射到系统上,以及程序是如何执行的,读者能够更好地理解程序的行为为什么是这样的,以及效率低下是如何造成的。

如下是kitware官网的介绍,cmake现在确实已经成为了c/c++软件系统的常用构建工具,

CMake: A Powerful Software Build System CMake is the de-facto standard for building C++ code, with over 2 million downloads a month. It’s a powerful, comprehensive solution for managing the software build process. Get everything you need to successfully leverage CMake by visiting our resources section.

cmake经过多年的发展,已经变得非常复杂。如果光读官网的文档,应该很少有人能读的下去。目前关于cmake的书籍很少,下面这本书是新出的,对cmake的方方面面都做了介绍,非常适合cmake的新人,如果你想深入了解cmake的构建系统,建议阅读本书,github有本书的翻译版本,地址为https://github.com/xiaoweiChen/Modern-CMake-for-Cpp,但是还是建议大家读英文原版。

当掌握了C语言本身后,如果你是从事linux/unix相关领域软件的开发,我建议你一定要读下面的两本书(应该是3本,因为第一本是上下两册),虽然都很厚,但是如果认真读完,融会贯通,收获会非常大。建议先读第一本《Linux/UNIX系统编程手册》,如果有精力可以再精读《UNIX环境高级编程》,两本书可以互补。

本书是介绍linux与unix编程接口的权威著作,主要讲解了高效读写文件,对信号、时钟和定时器的运用,创建进程、执行程序,编写安全的应用程序,运用posix线程技术编写多线程程序,创建和使用共享库,运用管道、消息队列、共享内存和信号量技术来进行进程间通信,以及运用套接字api编写网络应用等内容。 在汇聚大批 linux专有特性(epoll、inotify、/proc)的同时,还特意强化了对unix标准(posix、sus)的论述,彻底达到了“鱼与熊掌,二者得兼”的效果,这也堪称本书的最大亮点。

很多人都知道APUE这本书,在本书第1版出版后的十几年中,UNIX行业已经有了巨大的变化,特别是影响UNIX编程接口的有关标准变化很大。本书在保持了前一版风格的基础上,根据最新的标准对内容进行了修订和增补,反映了最新的技术发展。书中除了介绍UNIX文件和目录、标准I/O库、系统数据文件和信息、进程环境、进程控制、进程关系、信号、线程、线程控制、守护进程、各种I/O、进程间通信、网络IPC、伪终端等方面的内容,还在此基础上介绍了多个应用示例,包括如何创建数据库函数库以及如何与网络打印机通信等。

如果是从事网络编程的相关领域,建议先读《TCP/IP详解 卷1:协议》,

本书是一本完整而详细的TCP/IP协议指南。描述了属于每一层的各个协议以及它们如何在不同操作系统中运行。作者W.Richard Stevens是大牛,书中对各层协议进行了详解,同时结合tcpdump的抓包结果对协议进行了深入的分析。

本书主要结合TCP/IP协议介绍unix socket 相关api,本书第1、2版由Richard Stevens编写,第3版,由世界著名网络专家Bill Fenner和Andrew M. Rudoff执笔,根据近几年网络技术的发展,对上一版进行全面修订,增添了IPv6的更新过的信息、SCTP协议和密钥管理套接口的内容,删除了X/Open传输接口的内容。

本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com

点赞 0
收藏 0

文章为作者独立观点不代本网立场,未经允许不得转载。