C++后端学习路线

在这里插入图片描述
在这里插入图片描述

按顺序看这几本书《C++ Primer 第5版》/ 基础不好的话建议看 《C++ primer plus》-> 《Effective C++》 ->《Effective stl》 -> 《STL源码剖析》-> 《深度探索C++对象模型》(选看)

学习网站 推荐 www.learncpp.com ,可以说是非常全面系统的介绍了C++相关知识,从编译器使用到如何运行第一行代码都介绍的非常细致。
平时看一看语法,某些函数的使用,推荐: www.cplusplus.com

如果有时间,可以自己实现一套简单的STL,既能熟悉STL,也可以作为自己的一个小项目,传到github,把链接放在在简历上是个加分项。

以上推荐书籍,如果在时间紧张的情况下,可以这样看:primer 大概扫一遍就行, effective C++ 和 effective stl 重点看。 然后就多收集C++面经,对着面经复习就好。

视频推荐
这里还是推荐侯捷C++的视频
侯捷C++新标准-C++11/14系列
一共31集,看完之后可以对 C++11,有一个全新的了解,不要以为C++11 都多新的特性,现在已经C++20了,但C++11才慢慢在企业中广泛应用,面试的时候C++11也是重要考点。

侯捷-C++ STL标准库和 C++ 泛型编程
STL 标准库是C++里的利器,也是面试中的考点,至于泛型编程,模板是泛型编程的一种重要思想,STL就是采用模板实现的一个实例,所以一起学习再适合不过。

视频顺序: 1. C++面向对象高级开发,2. STL和泛型编程,3. C++标准11-14,4. 内存管理

算法
突击方法
如果时间紧张,就把《代码随想录》刷一遍,练一练排序就可以了。
详细学习路线如下:
书籍推荐
入门《大话数据结构》《图解算法》
进阶《代码随想录》《算法第四版》
《算法四》没有讲动态规划,但详细讲了排序和图论和 《代码随想录》算是一个很好的补充
《代码随想录》以外可以在做一做力扣top100。

对于面试来说,排序系列,单调栈,简单的图论(深搜,广搜,最小生成树,最短路径),高级数据结构:并查集,字典树(了解一下),之后就差不多了。然后就随便在leetcode找一些题目保持手感。

计算机基础
视频推荐

操作系统:
王道操作系统 入门
哈工大李志军的操作系统课程 深入学习 (汇编内容不考)
深入理解计算机系统B站(中文字幕) (选看)
深入理解计算机系统讲解视频 (选看)
清华大学操作系统视频B站 这个相对粗糙一点

计算机网络 :
哈工大的计算机网络
计算机网络微课堂-B站 PPT做的特别好

数据库 :
哈工大的数据库
【尚硅谷】Redis B站视频

书籍推荐

操作系统 :

《操作系统导论》概念讲的蛮清晰,然后还有配套作业可以写代码,之后拿《深入理解操作系统》按照目录看,这本书把计算机组成原理也包含了。
《操作系统:精髓与设计原理》 这本书也不错。

计算机网络:

推荐《网络是怎样连接的》,当故事来看,了解更多细节。
零基础入门可以先看《图解 HTTP》 《图解 TCP/IP》。
然后可以看《计算机网络自顶向下》,这本看三遍,就很稳。
进阶,再看《TCP/IP详解》(选看)

数据库

关系型数据库,基础命令看《MySQL必知必会》
然后看《从根儿上理解mysql》,大量数据结构图表说明及案例分析,而且语言诙谐,浅显易懂,同时不缺乏深度。看完之后 就会理解之前很多看八股文的疑惑,然后应付面试也足够
Mysql实战45讲 强烈推荐,基本覆盖面试问题了。
进阶在看《MySQL技术内幕:InnoDB存储引擎》 (选看)
非关系型数据库:《Redis设计与实现》(选看)

linux (后端需要学习linux)

了解linux系统:《鸟哥私房菜》(有点啰嗦,其实直接查一查博客也够用了)
Linux网络编程(C++技术栈):如果是小白的话,先看《Linux高性能服务器编程》,之后再看《UNIX环境高级编程》(选看)和《Unix网络编程》(选看),这两本书都比较难啃,如果只看一本就看《Unix网络编程》,把服务器设计这块搞懂了。

设计模式

推荐《大话设计模式》 ,设计模式(其实设计模式很少考察,一般就考一考单例或者工厂)
这些书你第一次看的时候粗略看一遍就行,千万别沉迷进去,因为大多数细节很难,也不是面试考点,你粗略看一遍之后,就开始刷面经,看面经哪里不会回去在翻书,这样效率比较高。

项目

自己写一套STL
对于应届生的话,在学习stl的同时,可以实现一套自己的mini STL,即熟悉了stl的原理,也锻炼的编码能力,代码传到github上 可以作为自己的一个项目。

web server
如果对网络编程不太了解,建议写一个web server,虽然这个项目已经烂大街,但依然有很多可以优化的地方,代码传到github上,链接贴在简历里,面试官一定会看,只要代码写的不错,一定是加分项。

视频推荐:
可以看牛客的C++求职项目 ,可以看这位录友做本项目的心得

kv 存储引擎

分布式
mit 6.824 分布式系统

如何看开源项目
看github上的项目,首先要学会用,要把这个项目用起来,跑起来,然后再去看代码,很多录友都反过来了,项目都没运行都没跑起来,然后就开始专研代码,那是绝对看不懂的。

所以看开源项目可以分这么几步:

  1. 运行,跑起来,用起来,知道这个项目有什么功能,满足什么需求
  2. 找到项目入口 main函数
  3. 拆解项目模块,都有哪些功能,哪些模块
  4. 一个模块一个模块去看代码,而不是 囫囵吞枣
  5. 修改部分代码,重新跑项目,看看有哪些变动
  6. 完成这个项目代码的阅读

很多同学 是看视频做项目,但有担心项目重复率太高,其实这样的项目重复率一定是高的,但跟着视频学完,绝对不能 代码和视频里一样一样的,而是要有自己的理解,然后找一些可以优化的地方,不断优化,这就体现出和别人的差别了。

例如都选了web服务器的项目,但是你可以在网上项目的基础上增加自己的新意,例如对线程池,定时器,数据库,还有日志系统等等都可以自己好好设计设计。

然后把代码传到github上,简历把github地址贴出来,面试官看代码不错,都是加分项。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值