C++后端开发路线——愿我踩过的坑,你可以绕着走

C语言与CPP编程 2022-04-11 08:39


阶段0

书籍推荐

在这个从零起步的阶段我还是建议先从C语言开始学起,不建议直接从C++开始学起,这里我推荐几本我看过的书。

《C Primer Plus 第六版》

个人非常推荐这本书入门,我入门的时候就是看这本书的第五版,前前后后看了三遍,这三遍不仅仅是读完一遍再读一遍,而是有技巧性的。

  1. 第一遍可以粗略的读,大概把语法都了解,一些不理解的地方可以自己手动实现一下。
  2. 第二遍就要精读,课后题不需要全都做,但是看到没有思路的题还是尽量可以自己实现一下试试。
  3. 紧接着你对C语言比较熟悉了,此时我希望你可以自己做一个小项目,比如贪吃蛇、图书管理系统这种,但是我更推荐以小游戏来入门,因为会更加的具有成就感,也会大大激发你的学习兴趣和动力。
  4. 第三遍就是查漏补缺,可以在做小项目的同时进行查阅,不必从头到尾地读。

竟翻出高三用C语言写的贪吃蛇,分析一波!

这是我学完之后自己做的贪吃蛇,我觉得言传身教才是最好的给他人建议的方式!

视频推荐

当然,也有很多小伙伴并不喜欢看书从头开始学,这里我推荐一下课程

翁恺C语言程序编程全系列    

https://www.bilibili.com/video/BV1sJ411E7St?from=search&seid=11942064383065862111

黑马程序员C语言基础教程

https://www.bilibili.com/video/BV1vs411n7TH?from=search&seid=4782990751136134693&spm_id_from=333.337.0.0

这两个都是我觉得讲的挺好的,想使用视频进行学习的小伙伴可以看看。

我这里不是说视频和书籍二选一的关系,你可以搭配着来,都是以学会为主要目的。

选学书籍

这里我再推荐一些选学书籍,可以供大家根据需要进行学习

《C专家编程》

《C陷阱与缺陷》

《C和指针》

这三本书我并没有都看完,只是粗略的读过,当你按照我给的路线学完后,如果学有余力可以读一读,还是可以。

阶段1

书籍推荐

《C++ Primer Plus 第六版》

在这里我推荐使用这本书入门C++,我当时也使用的是这本书,前后看了两遍。这本书写的和C Primer Plus 风格类似,因此在你使用那本书入门后,学这本书不会感觉到不适,反而觉得很舒服,行云流水般的衔接。

  1. 当你第一次读的时候你会发现,在这本书中C语言语法只占很小的一部分,但是不要害怕,学下去你会有很大的收获,因为此时的你越读发现越顺畅,越来兴趣越浓厚,因为我就是过来人,相信我
  2. 第二遍你要带着思考去读,不必面面俱到,而是要思考的去学习,课后习题要不要做在与你(反正说实话我没有做,懒了~)

《C++ Primer 第五版》

你会发现这本书和上面那本书长得很像,甚至觉得这本应该比上面那本先读,然而恰恰相反。网上有很多人会推荐用这本书入门C++,当然不乏有一些人能力和天赋出众可以直接使用这本书进行入门(反正我是不行),但是大多数人我觉得还是可以按照我给出的路线,看完上面的那本书再读这本,虽然知识会有一部分重复,但是你依然会感觉到有的地方有难度,这本书可以细品,细细的咀嚼,非常的有深度。这本书我读了两遍并且做了部分习题和笔记,收获很大。

这本书第一遍读完后也许后几章并不是很明白,不要慌你可以先放下,去踏实做个小项目,比如把之前的贪吃蛇项目以C++代码形式修改,或者做个其他的小项目练练手

每个阶段都要多写代码,多动手是C++开发工程师的一贯宗旨!

视频推荐

按照惯例我推荐一些C++的视频教程供大家学习,这里推荐几个我看过的,没有看过的我可不敢乱推荐。

侯捷老师的视频【C++面向对象高级开发】

cherno老师的C++    https://www.bilibili.com/video/BV1gk4y1r7UH?from=search&seid=4000921041170226357&spm_id_from=333.337.0.0

侯捷老师的经典视频这里就不多说了,一贯的经典。老师的其他视频就不在这个阶段放出来了,后面的阶段会提到。侯捷老师的视频在B站存不住,公众号回复“侯捷”获取

cherno老师是我从 Yuotuebe 上发现的宝藏老师,他游戏引擎开发视频讲的非常棒,我是冲着这个关注的博主,偶然发现他也讲C++而且也讲的非常棒,我从B站也找到了他的视频,分享给大家学习!

阶段2

在这个阶段数据结构和算法也应该同步进行了,刷题网站有很多,这里面向就业我推荐刷力扣和牛客网,大多数人会推荐力扣,我这里也推荐牛客网是因为很多企业会在牛客网上直接进行笔试,从这里也可以提前适应编码和调试的平台。

书籍推荐

《深入应用C++11 代码优化与工程级应用》

C++11我推荐使用这本书进行学习,我自己也读过,写的很棒,并且我正在读第二遍,感觉再读的时候仍然能有巨大的收获。

C++11这个系列我也在写,有兴趣的同学也可以看一看:

C++11系列文章之一 | 类型推导神功修炼

C++11系列文章之二 | 列表初始化技巧

C++11系列文章之三 | 可调用对象包装器和绑定器

C++11系列文章之四|lambda表达式

《Effective C++》

这本书是侯捷老师翻译的作品,有人说它过时了,这本书我读了两遍也做了笔记,确实有的地方有些过时,但是大多数还是用得上,就算用法过时但是思想依然不过时,有必要读一读,你会更加的理解C++,并且可以有效的避免踩一些C++的坑,少走一些弯路。

这个是我写的笔记,有兴趣的同学可以看一看:

怎么提高编程的基本功?这才是硬实力

《深度探索C++对象模型》

这本书是详细的讲解了C++在内存中的分布规则,也涉及到了编译器的部分优化规则,读了这本书你会倍感通透,真心推荐!

我读了两遍并且也做了笔记,赠与有缘人:

C++对象的底层原理都在这儿了,还敢说学不会?


这里有个分界线是因为这个阶段开始请不要只涉及C++的知识,你应该发散式学习,多管齐下,同时推进。下面推荐的这些不必要在这个阶段都学完,而是可以和以下多个阶段结合。

算法和数据结构

《大话数据结构》

大话系列适合那种喜欢故事,从故事开始引导你学习的同学,仁者见仁,智者见智,不过我还是非常推荐这本书的。

《算法4》

相比于大话系列,这个就比较正式多了,也许有人这个时候要题《算法导论》之类的想要试图杠我,我个人认为如果以工业方向为目标的话,不必研究到那个程度,包括竞赛类的书,如刘汝佳的《算法竞赛入门经典2》,不得不说的确写的非常好,但是我仍然是那句话,目的不同,努力的方向不同。《算法4》这本书是Java语言编写的,介不介意取决于你自己。

《代码随想录》

这本书写的也非常棒,刷题技巧看这个是可以的,可以让你快速提高对算法题的应对能力,我和Carl也沟通过,作者本人热心温和。

Linux

《鸟哥的Linux私房菜》

这本书我读过,但是没有读完,没有读完并不是因为这本书写的不好,而是因为我的时间没有那么的充裕了,我选择看一些常用的命令和知识。这本书写的很详细也很有深度,但是缺点就是大头部,书挺厚的,甚至可以当作字典来查,有时间有精力的伙伴可以全看,比较多学一点知识是没有坏处的。

视频推荐

我这里推荐我看过的 一些视频,毕竟我看过才有勇气推荐给大家:

侯捷老师的视频【C++新标准-C++11/14】

阶段3

《STL源码刨析》

这本书也是侯捷老师翻译的,这本书非常硬核,不过到这个阶段确实应该看一些硬核点的知识了,必须得有深度。这个有侯捷老师的配套视频,后面会提到。

《More Effective C++》

这本书可以接着《Effective C++》这本书之后看,可惜我只读了一遍,有机会我一定再次拜读并做一份好的笔记。

《程序员的自我修养—链接、装载与库》

这本书可谓相当硬核,许多人听完题目可能会觉得这可能是软实力,但是读完你就发现了这碗饭有点硬,需要慢慢地去啃。


这又是个分界线,接下来的不是C++知识,这些可以在阶段2就开始看,这属于2、3阶段的知识,但是都放到阶段2会显得太冗杂了。

计算机网络

计算机网络自顶向下方法

这本书是我觉得计算机方面这一本经典书籍就够了,理论方面够用了。当然你可以接着看《Unix高级编程》、《TCP/IP协议1,2、3卷》。但是我个人认为在2、3阶段内并没有必要,理论方面这本书足矣。

在此我仍然鼓励多动手,利用抓包工具自己体会一下这个过程,tcpdump之类的常用工具应该自己试着学习一下。

TCP/IP网络编程

这本书非常适合你在学完理论之后进行练习,可以跟着里面的小例子进行学习和演练,结合tcpdump进行抓包学习,相信你很快就会学会。

操作系统

《深入理解计算机系统》

这本书会涉及到汇编知识,其实如果没有这方面的知识可以看看王爽的《汇编语言》这本书,学习这本书的时候可以配合配套的课后实验,这样可以更加深入的理解相关的知识。

配套实验   http://csapp.cs.cmu.edu/3e/home.html

设计模式

《大话设计模式》

这本书我看过一遍,一直想着把里面的模式都使用C++自己实现一遍,可惜还在处于想的阶段,但是确实写的通俗易懂,值得推荐阅读。

数据库

《MySQL 必知必会》

这本书我前后读过两遍,也做了相关的笔记,对于入门来说这本书非常的适合,对新手还是十分友好的。

《MySQL技术内幕 : InnoDB存储引擎 第2版》

《高性能MySQL(第3版)》

这两本书各有优缺点,但是如果时间不说很充裕的情况下挑一些重点章节,如索引底层存储等相关内容阅读即可,充裕的话还是建议都读一读。

《Redis实战》

这本书重点在于教你如何去使用Redis,基于小问题、小项目的角度带你思考,我读起来感觉对纯小白不是特别的友好,但是还是不错的。

《Redis设计与实现》

这本也是我超级喜欢的一本书,虽然只读过一遍,但是我期待再次拜读它,因为实在是写的太好啦,等我读完一定把我的读书笔记分享给的大家!

服务器开发

《Linux高性能服务器编程》

这本书是我最喜欢的书籍之一,我从头至尾已经读了四遍了,这本书面面俱到,系统的阐述了开发一个Linux高性能服务器的模型,让我从这里认识到了一个高性能服务器程序的结构,非常受用!

我的笔记在下方:

系统的学习网络编程,这篇就够了!(来收藏夹里吃灰)

视频推荐

我推荐几个我看过觉得比较好的:

侯捷老师的视频【C++ STL标准库和 C++ 泛型编程】

侯捷老师的视频【C++程序的生前和死后】

操作系统(哈工大李治军老师)  https://www.bilibili.com/video/BV1d4411v7u7/

清华大学操作系统原理   

https://www.bilibili.com/video/BV1wW41117GS?from=search&seid=10081509319615575102&spm_id_from=333.337.0.0

强推李治军老师的操作系统,简直爱了,我超级喜欢!

阶段4

还有几本我也读过,但是并没有分享出来,因为我觉得学习应该把握住一条主线,好书是读不完的,把需要的学会了,其他的书籍在其余的时间自己看,用来增加和完善自己的知识体系就好了,计算机本来就是一个不断学习的行业,学无止境,不学习的话就是在倒退!


这个阶段我觉得主要还是不断地跟上时代,学会“模仿”,不是谁天生就会,都是学习得来的,学会了消化了就是你自己的,尤其是在工业界,很多知识都是不断演进和变化来的,历经时间的洗礼和磨练,所以更多的是看一些优秀的项目和源码,从实战中学习,然后可以自己从理解到模仿再到最后地创造,这才是该有的正确的一个过程!

这里我推荐一些优秀的源码:

libevent    https://libevent.org/

libevent是一个跨平台的、高效的异步事件通知库,采用C语言编写,值得拜读。

muduo   https://github.com/chenshuo/muduo.git

muduo是一个基于C++11中多线程Linux服务器的事件驱动网络库,通过这个可以学习和巩固C++11的使用,而且还使用了C++11式的回调函数,更加体现了C++11的魅力。

nginx    https://github.com/nginx/nginx

nginx源码分析   https://static.kancloud.cn/digest/understandingnginx/202599

nginx的鼎鼎大名应该不用过多介绍了吧,采用多进程的开发方式,上面的是我觉得源码分析讲的比较好的,分享给大家。

Ratel

Ratel是我自己开发的一个网络框架,目前还在开发和完善阶段,感兴趣的小伙伴也可以看一看。

在看源码学习的过程中,也要更多的掌握一个工程的设计思想和思路,学习一些书中没有的知识,比如Git的使用、CMake的使用、Make的使用、Gdb的 使用、工程的构建、行业默许的一些开发规则、一个高性能的框架到底该如何设计、分布式系统的搭建等等,最重要的就是Bug的调试思路,因此更多的东西不应该只是从课本上获取,而是从代码中吸收,从编码中学习,错误中反思得来的!

顿悟

相信如果把这些都学到了,那么你自然就知道接下来该如何去学习了,阶段也就不用接着分了。

C语言与CPP编程 C语言/C++开发,C语言/C++基础知识,C语言/C++学习路线,C语言/C++进阶,数据结构;算法;python;计算机基础等
评论
  • 随着智慧科技的快速发展,智能显示器的生态圈应用变得越来越丰富多元,智能显示器不仅仅是传统的显示设备,透过结合人工智能(AI)和语音助理,它还可以成为家庭、办公室和商业环境中的核心互动接口。提供多元且个性化的服务,如智能家居控制、影音串流拨放、实时信息显示等,极大提升了使用体验。此外,智能家居系统的整合能力也不容小觑,透过智能装置之间的无缝连接,形成了强大的多元应用生态圈。企业也利用智能显示器进行会议展示和多方远程合作,大大提高效率和互动性。Smart Display Ecosystem示意图,作
    百佳泰测试实验室 2025-01-16 15:37 138浏览
  • 实用性高值得收藏!! (时源芯微)时源专注于EMC整改与服务,配备完整器件 TVS全称Transient Voltage Suppre,亦称TVS管、瞬态抑制二极管等,有单向和双向之分。单向TVS 一般应用于直流供电电路,双向TVS 应用于电压交变的电路。在直流电路的应用中,TVS被并联接入电路中。在电路处于正常运行状态时,TVS会保持截止状态,从而不对电路的正常工作产生任何影响。然而,一旦电路中出现异常的过电压,并且这个电压达到TVS的击穿阈值时,TVS的状态就会
    时源芯微 2025-01-16 14:23 128浏览
  • 随着消费者对汽车驾乘体验的要求不断攀升,汽车照明系统作为确保道路安全、提升驾驶体验以及实现车辆与环境交互的重要组成,日益受到业界的高度重视。近日,2024 DVN(上海)国际汽车照明研讨会圆满落幕。作为照明与传感创新的全球领导者,艾迈斯欧司朗受邀参与主题演讲,并现场展示了其多项前沿技术。本届研讨会汇聚来自全球各地400余名汽车、照明、光源及Tier 2供应商的专业人士及专家共聚一堂。在研讨会第一环节中,艾迈斯欧司朗系统解决方案工程副总裁 Joachim Reill以深厚的专业素养,主持该环节多位
    艾迈斯欧司朗 2025-01-16 20:51 84浏览
  • 电竞鼠标应用环境与客户需求电竞行业近年来发展迅速,「鼠标延迟」已成为决定游戏体验与比赛结果的关键因素。从技术角度来看,传统鼠标的延迟大约为20毫秒,入门级电竞鼠标通常为5毫秒,而高阶电竞鼠标的延迟可降低至仅2毫秒。这些差异看似微小,但在竞技激烈的游戏中,尤其在对反应和速度要求极高的场景中,每一毫秒的优化都可能带来致胜的优势。电竞比赛的普及促使玩家更加渴望降低鼠标延迟以提升竞技表现。他们希望通过精确的测试,了解不同操作系统与设定对延迟的具体影响,并寻求最佳配置方案来获得竞技优势。这样的需求推动市场
    百佳泰测试实验室 2025-01-16 15:45 185浏览
  • 一个易用且轻量化的UI可以大大提高用户的使用效率和满意度——通过快速启动、直观操作和及时反馈,帮助用户快速上手并高效完成任务;轻量化设计则可以减少资源占用,提升启动和运行速度,增强产品竞争力。LVGL(Light and Versatile Graphics Library)是一个免费开源的图形库,专为嵌入式系统设计。它以轻量级、高效和易于使用而著称,支持多种屏幕分辨率和硬件配置,并提供了丰富的GUI组件,能够帮助开发者轻松构建出美观且功能强大的用户界面。近期,飞凌嵌入式为基于NXP i.MX9
    飞凌嵌入式 2025-01-16 13:15 137浏览
  • 百佳泰特为您整理2025年1月各大Logo的最新规格信息,本月有更新信息的logo有HDMI、Wi-Fi、Bluetooth、DisplayHDR、ClearMR、Intel EVO。HDMI®▶ 2025年1月6日,HDMI Forum, Inc. 宣布即将发布HDMI规范2.2版本。新规范将支持更高的分辨率和刷新率,并提供更多高质量选项。更快的96Gbps 带宽可满足数据密集型沉浸式和虚拟应用对传输的要求,如 AR/VR/MR、空间现实和光场显示,以及各种商业应用,如大型数字标牌、医疗成像和
    百佳泰测试实验室 2025-01-16 15:41 134浏览
  • 晶台光耦KL817和KL3053在小家电产品(如微波炉等)辅助电源中的广泛应用。具备小功率、高性能、高度集成以及低待机功耗的特点,同时支持宽输入电压范围。▲光耦在实物应用中的产品图其一次侧集成了交流电压过零检测与信号输出功能,该功能产生的过零信号可用于精确控制继电器、可控硅等器件的过零开关动作,从而有效减小开关应力,显著提升器件的使用寿命。通过高度的集成化和先进的控制技术,该电源大幅减少了所需的外围器件数量,不仅降低了系统成本和体积,还进一步增强了整体的可靠性。▲电路示意图该电路的过零检测信号由
    晶台光耦 2025-01-16 10:12 84浏览
  • 近期,智能家居领域Matter标准的制定者,全球最具影响力的科技联盟之一,连接标准联盟(Connectivity Standards Alliance,简称CSA)“利好”频出,不仅为智能家居领域的设备制造商们提供了更为快速便捷的Matter认证流程,而且苹果、三星与谷歌等智能家居平台厂商都表示会接纳CSA的Matter认证体系,并计划将其整合至各自的“Works with”项目中。那么,在本轮“利好”背景下,智能家居的设备制造商们该如何捉住机会,“掘金”万亿市场呢?重认证快通道计划,为家居设备
    华普微HOPERF 2025-01-16 10:22 148浏览
  • 80,000人到访的国际大展上,艾迈斯欧司朗有哪些亮点?感未来,光无限。近日,在慕尼黑electronica 2024现场,ams OSRAM通过多款创新DEMO展示,以及数场前瞻洞察分享,全面展示自身融合传感器、发射器及集成电路技术,精准捕捉并呈现环境信息的卓越能力。同时,ams OSRAM通过展会期间与客户、用户等行业人士,以及媒体朋友的深度交流,向业界传达其以光电技术为笔、以创新为墨,书写智能未来的深度思考。electronica 2024electronica 2024构建了一个高度国际
    艾迈斯欧司朗 2025-01-16 20:45 91浏览
  • 日前,商务部等部门办公厅印发《手机、平板、智能手表(手环)购新补贴实施方案》明确,个人消费者购买手机、平板、智能手表(手环)3类数码产品(单件销售价格不超过6000元),可享受购新补贴。每人每类可补贴1件,每件补贴比例为减去生产、流通环节及移动运营商所有优惠后最终销售价格的15%,每件最高不超过500元。目前,京东已经做好了承接手机、平板等数码产品国补优惠的落地准备工作,未来随着各省市关于手机、平板等品类的国补开启,京东将第一时间率先上线,满足消费者的换新升级需求。为保障国补的真实有效发放,基于
    华尔街科技眼 2025-01-17 10:44 87浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦