【总结】C++工程师学习路线|推荐视频|推荐书籍

2023-05-16

前言

由于博主秋招拿到的offer有限,经过对比,决定转到C++开发技术栈,此篇文章用于规划自己今后的成长路线并分享给大家。

学习路线

  • C++语言本身:我们可以将这个部分分为基础和进阶两个阶段,在看书之前可以先学习一遍视频教程大概了解C++的基本样貌

  • 基础阶段

  • 熟悉C++的基本语法,重点理解指针和内存管理

  • 重点理解面向对象设计思想以及相关知识点

  • 推荐书籍:《C++Primer中文版第五版》、《深入探索C++对象模型》、《Effective C++》

  • 学习C++语法,首推C++ Primer 第5版,C++语法学习的最权威书籍,以C++11来讲解,非常全面地讲解了C++的语法以及C++11的各种新特性,看完帮助很大,如果有时间建议至少看两遍,时间有限的话,建议至少通读一遍,把握这本书的大体框架,然后结合个人情况选择性地去看一些重点章节。

  • 深度探索C++对象模型这本书讲解了C++面向对象特性的底层实现机制,由于是翻译版本,读起来内容会相对晦涩一些,但是内容非常重要,尤其是虚函数底层的实现机制,建议多看几遍加深理解,这个基本是C++必问的知识点。看完这本书,对C++面向对象的理解帮助极大,建议必读。

  • Effective C++这本书主要讲解了编写C++程序的过程中需要注意的一些条款,有助于梳理在编写C++程序时的一些常见错误和注意事项,也是面试常考的。如果认真读过了C++Primer,这本书看起来会非常快,其中的很多内容都包含在C++ Primer中了。

  • 进阶阶段

  • 掌握STL和模板

  • 推荐书籍:《STL源码剖析》【必读】

  • STL 源码剖析这本书讲解了C++底层实现,内容包括C++底层内存管理、各种容器的数据结构实现、常见算法的实现等,建议列为必读,可以帮助深入理解C++底层,同时也是对数据结构的复习和巩固。其中也有很多面试常考的知识点,如内存池的机制、traits技法、一些常用容器的底层数据结构等。

  • 总之,C++由于它自身的特点,学习起来不会很轻松,需要一定的时间成本,但是如果你认真的学习了以上4本书,你会对C++有一个新的认识!相信我,等你学好C++,再学习其他高级语言会觉得轻松许多!

  • 数据结构与算法

  • 力扣:重点HOT100反复

  • 剑指offer:最起码两遍

  • 代码随想录刷透

  • 计算机网络

  • 推荐中科大郑铨老师的教学视频

  • 推荐书籍:《计算机网络 第7版》【必读】、《TCP/IP详解卷Ⅰ》【必读】、《图解HTTP》

  • 学习网络,可以先看计算机网络这本书,讲解通俗易懂,前面的物理层和链路层可以快速看,了解基本原理即可,重点学习网络层、传输层和应用层,其中传输层的TCP和UDP是面试最常考的,非常重要。网络的知识比较容易理解,但是知识点比较繁杂,一段时间不看就很容易忘记,建议学习之后将各个知识点整理成文档或者笔记,有助于找工作前复习。

  • 学完计算机网络,可以基本建立计算机网络的知识体系,但是这本书深度不够,建议继续学习TCP/IP详解 卷1,作为对TCP/IP协议的深入,这本书讲解非常细致,看的过程中很容易陷入细节,对整本书系统学习的话比较花时间,如果时间有限的话,可以先选择性地学习一些章节,建议先将传输层的内容看完,有助于对TCP和UDP的深入理解,其他层的内容可以根据个人情况选择性的学习。

  • 网络编程【实践】

  • 推荐书籍:《Unix网络编程》、《TCP/IP网络编程》

  • 学习完前面计算机网络必读的两本书的基础知识,就基本掌握了计算机网络的理论知识,建议将这两本书列为必读。另外,如果想要对网络编程进行实践,可以继续学习UNIX网络编程 卷1。

  • 操作系统

  • 推荐哈工大李治军老师的教学视频,学习操作系统的通用知识

  • 推荐书籍:《现代操作系统》、《深入理解计算机系统 第3版》、《程序员的自我修养》

  • Linux

  • 《鸟哥的Linux私房菜 第4版》(用于了解Linux基本命令)

  • 《UNIX环境高级编程 第3版》(APUE)

  • 《Linux/UNIX系统编程手册》(上下册)

  • 内核

  • 《Linux内核设计与实现》(LKD)

  • 《深入理解Linux内核》

  • 数据库

  • 主要是MySQL和Redis

  • 视频推荐看sgg的康师傅的MySQL、Redis的话视频自己找找,书里更全面

  • 推荐书籍:《高性能MySQL》、《Redis设计与实现》

  • 项目

  • 项目这块我是准备入职后,跟着mentor慢慢学

  • C++开发方向

  • 服务器后台开发

  • 客户端开发

  • C++游戏开发

  • C++驱动开发、逆向工程、网络安全

  • 嵌软开发

  • 音视频方向

  • 图像处理(医学、机器视觉,偏算法)

我个人应该是属于数据库开发工程师(C++方向),这个岗位推荐可能是由于博主简历中大数据相关技术栈决定的,具体岗位内容可能要进去了才知道,先把C++掌握牢固才能应付自如。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【总结】C++工程师学习路线|推荐视频|推荐书籍 的相关文章

  • 跨域 php处理代码

    放到public index php中 header 39 Content Type text html charset 61 utf 8 39 header 39 Access Control Allow Origin 39 代表允许任何
  • 全日制和非全日制;定向和非定向区别联系

    全日制和非全日制 xff08 在职 xff09 是相对的 定向和非定向是相对的 xff0c 委托培养是定向的一种 一般情况下 xff1a 全日制绝大部分都是非定向的 xff0c 非全日制 xff08 在职 xff09 绝大部分都是定向的 定
  • 马云推出的“天猫精灵”到底有多牛? 细思极恐怖

    这个时代的变化有多莫测 xff1f 开网店 改变银行的马云 xff0c 搞起了机器人 xff01 搞搜索 做地图的百度 xff0c 完成了无人驾驶 xff01 马云又打响一枪 马云大动作不断 三个重磅后 xff0c 今天又打了对手一个措手不
  • Ardupilot -- APM源码笔记四(重制)~ 线程机制

    认识Ardupilot线程 在了解过Ardupilot的链接库之后 xff0c 是时候来认识一下Ardupilot是怎么处理线程了 xff0c 对于从arduino继承过来的setup xff08 xff09 loop xff08 xff0
  • 最简单的python 人脸检测

    本篇文章是最基本的人脸检测 xff0c 没有复杂的算法 xff0c 只是简单的运用了这三个库opencv xff0c numpy xff0c pillow 一 开发环境搭建 我们使用Python自带的IDLE进行编程 xff0c 我使用的电
  • FreeRtos 任务优先级和中断优先级

    首先打出这个标题是为了便于搜索 在这里赘述一下 这两者没有关系 只需要明白的是中断优先级高于任务的优先级 在单片机运行的过程中 中断来了就执行中断服务程序 在free rtos中 任务优先级设置的数值越大 任务的优先级越高 Unix任务优先
  • 嵌入式工程师的经典面试题目

    嵌入式工程师的经典面试题目 预处理器 xff08 Preprocessor xff09 1 用预处理指令 define 声明一个常数 xff0c 用以表明1年中有多少秒 xff08 忽略闰年问题 xff09 define SECONDS P
  • rabbitmq版本升级

    目录 一 背景 二 部署新的mq 三 元数据备份和还原 四 消息数据备份和还原 五 注意 一 背景 因原来rabbitmq版本存在漏洞需升级至最新版本 原来是使用软件包部署 xff0c 升级我采用使用docker compose部署 xff
  • __attribute__

    前言 本文介绍 attribute 的使用方法 attribute 介绍 要了解Linux Kernel代码的分段信息 xff0c 需要了解一下gcc的 attribute 的编绎属性 xff0c attribute 主要用于改变所声明或定
  • 卡尔曼滤波(2):一个简单的例子

    为了说明离散性卡尔曼滤波器的用法 xff0c 我将用一个最简单的例子来进行说明 假设我们现在对一个房间内的温度进行测试 xff0c 房间内温度初值为25 c xff0c 每过一个时间周期 xff0c 温度x都将在上一个周期温度的基础上变动
  • 使用websocket连接Activemq,让前端接收MQTT消息

    使用websocket连接Activemq xff0c 让前端接收MQTT消息 Activemq简介准备工作简单示例 Activemq简介 Apache ActiveMQ is the most popular open source mu
  • Unix时间戳,GPS时间戳 ,UTC时间 , 本地时间

    本地时间 xff1a 计算机显示的时间 本地时间 61 UTC 时间 43 时区 xff08 北京时间是东八区 xff0c 也就是 43 8小时 xff09 unix 时间戳 xff1a UTC时间都是从 xff08 1970年01月01日
  • 详解PID控制算法 位置式和增量式区别 附代码详解

    1PID控制算法 什么是PID PID 控制器以各种形式使用超过了 1 世纪 xff0c 广泛应用在机械设备 气动设备 和电子设备 在工业应用中PID及其衍生算法是应用最广泛的算法之一 xff0c 是当之无愧的万能算法 PID 实指 比例
  • 虚拟机中打开Gazebo闪退的解决办法

    问题 xff1a 在vmware虚拟机中打开Gazebo闪退 原因 xff1a 开启了3D加速 xff0c 但分配的显存太小 xff0c 不足1G无法满足Gazebo的最低要求 解决办法如下 xff1a 1 关闭虚拟机 xff0c 在虚拟机
  • mysql插入千万条随机数据

    因为想测试sql在千万级数据下的优化 xff0c 准备在自己的阿里云数据库插入一千万条数据 xff0c 在网上搜了全是些乱七八糟的 xff0c 于是就自己动手 xff0c 同时也希望和大家分享 xff0c 不足之处还请各位指教 一 建表 1
  • linux C/C++ socket编程

    文章目录 前言linux socket api介绍简单客户端例子简单的服务端上述程序的问题epoll 前言 我们都知道socket编程实际上是使用tcp或者udp协议进行消息传输 xff0c 所以我们要更为的了解tcp udp协议 tcp三
  • 实现loading加载效果带百分比进度

    html lt div class 61 34 d loading 34 id 61 34 loading 34 gt lt div class 61 34 d loadVpic 34 gt lt div class 61 34 d opc
  • 什么是事件流?

    一 事件流的定义 页面触发一个事件时 xff0c 会按照一定的顺序来响应事件 xff0c 事件的响应过程为事件流 就我个人理解就是网页对点击事件的排序顺序就是事件流 二 事件流的分类 1 冒泡型的事件流 xff08 任何一款浏览器都支持 x
  • prometheus 学习(1)

    prometheus 配置文档 github地址 https github com prometheus prometheus blob master docs configuration configuration md 标签学习 glo
  • ROS订阅最新的消息及queue_size和buff_size的理解

    机器人应用中难免会遇到运算起来很费时间的操作 xff0c 比如图像的特征提取 点云的匹配等等 有时候 xff0c 不可避免地 xff0c 我们需要在ROS的Subscriber的Callback回调函数中进行这些费时的操作 Subscrib

随机推荐

  • NUC980第一篇:开发环境的搭建以及官方源码编译

    序言 之前参加了一个rtthread举办的活动 xff0c 拿到了一个新塘的NK IOT的板子 于是 xff0c 打算研究一下 xff0c 跑一跑linux 官方buildroot编译 下载地址 xff1a https gitee com
  • Linux系统安装Anaconda

    本文软件信息 xff1a 系统 xff1a RHEL8软件 xff1a Anaconda3 2022 10 Linux x86 64 sh Linux安装Anaconda的步骤都一样 xff0c 没啥差别 下载Anaconda的安装包 在官
  • apt-get vs aptitude

    apt get T 软件包管理工具 参数 h 帮助文件 q 输出到日志 无进展指示 qq 不输出信息 xff0c 错误除外 d 仅下载 不安装或解压归档文件 s 不实际安装 模拟执行命令 y 在需要确认的场景中回应 yes f 尝试修正系统
  • SPIN、VIBE 等 3D Human Pose Estimation 方法中的弱透视投影 (Weak Perspective Projection)

    弱透视投影 Weak Perspective Projection 弱透视投影假设焦距与物距足够大 xff0c 此时物体在 z z z 轴 光轴 上的变化可以忽略 SPIN VIBE 等 3D Human Pose Estimation 方
  • Nvidia Jetson Xavier NX系统从emmc到内存卡

    1 一块EMMC版本的JETSON XAVIER NX xff0c 搭配冬虫电子NCB00载板 由于板载的emmc只有16G xff0c 载板上支持SD卡 xff0c 在载板上插一个128G的内存卡来扩充以下容量 2 使用NVIDIA的SD
  • C#与STM32自定义通信协议

    功能 可通过C 上位机与STM32下位机之间进行通信可以保证接收的数据的正确性 一 C 作为上位机实现代码 using System using System Collections Generic using System IO Port
  • UCOSIII的基础知识讲解

    功能 帮助初学者初识UCOSIII掌握UCOSIII的基本知识 xff0c 具体包括任务的创建与删除 任务的挂起与恢复 软件定时器 信号量和互斥信号量 消息的传递等 一 简介 C OS II由Micrium公司提供 xff0c 是一个可移植
  • J-001 Jetson硬件电路设计概论--NANO & XAVIER NX

    Jetson硬件设计概论 1 Jetson板卡简介2 Jetson产品组合3 模组对比4 电路分析4 1 电源设计4 1 1 原理图设计4 1 2 引脚描述4 1 3 电源框图4 1 4 上电时序 4 2 USB设计4 2 1 USB 2
  • J-002 Jetson电路设计之电源设计--NANO && XAVIER NX

    Jetson电源设计 1 电源说明1 1 电源和系统引脚描述1 2 电源控制框图详情 2 上电的时许2 1 框图分析2 2 上电时序 3 GND引脚 1 电源说明 Jetson NANO和XAVIER NX核心板的电源为DC 5V 1 1
  • J-004 Jetson电路设计之HDMI设计--NANO && XAVIER NX

    HDMI电路设计 1 简介2 框图介绍3 原理图介绍 1 简介 NANO amp XAVIER NX提供一路HDMI接口 xff0c DP接口与HDMI是兼容的 xff0c 可用于扩展一路HDMI 其中引脚说明 PIN名称描述方向类型63H
  • 树莓派入坑第一天——系统烧录以及SSH登录问题

    1 首先下载镜像https www raspberrypi org downloads xff0c Raspbian系统是树莓派官方推荐的系统 xff0c 解压出img镜像文件 注意树莓派3B可能不支持老版本镜像 2 下载一个格式化SD卡的
  • c++学习之路

    3 19 内存分区模型 内存四区意义 不同区域存放的数据 xff0c 赋予不同的生命周期 给我们更大的灵活编程 程序exe 运行前分为 代码区和全局区 xff1b 运行后分为 栈区和堆区 1 代码区 存放CPU执行的机器指令 存放函数体的二
  • 写程序的步骤

    xff08 1 xff09 xff1a 一 要把实际问题提取为数学问题 相当于数学中的建模 抽象问题具体化 二 把其分解为若干个小的函数 并明白每个小函数怎样实现其功能 同时注意功能函数与主函数间的数据交互问题 三 作出 流程图 xff0c
  • Conda_安装库失败:Collecting package metadata (current_repodata.json): failed

    具体原因 xff1a update repo信息时网络有问题 于是就出现了污染 解决方法 xff1a conda clean i 然后重新随便install一个库 会重新下载repo信息 xff0c 问题解决
  • scrapy爬虫实战——抓取NBA吧的内容

    scrapy爬虫 步骤1 进入虚拟环境2 测试爬取页面3 进入开发者模式4 剥离页面中的数据5 在pycharm中码代码scrapy框架的目录 xff08 之前创建虚拟环境自动搭建 xff09 nba py源码详解 6 Debug第一步 点
  • ubuntu系统版本查询命令方法

    目录 一 使用命令 xff1a cat proc version 查看 二 使用命令 xff1a uname a 查看 三 使用命令 xff1a lsb release a 查看 四 使用命令 xff1a hostnamectl 查看 五
  • python解析xml文件(解析、更新、写入)

    Overview 这篇博客内容将包括对XML文件的解析 追加新元素后写入到XML xff0c 以及更新原XML文件中某结点的值 使用的是python的xml dom minidom包 xff0c 详情可见其官方文档 xff1a xml do
  • 一阶微分方程

    传送门https jingyan baidu com article 8065f87fb7f0652331249822 html 1 可分离变量的微分方程解法 一般形式 g y dy 61 f x dx 直接解得 g y dy 61 f x
  • C#多线程--信号量(Semaphore)

    Semaphore 是负责协调各个线程 以保证它们能够正确 合理的使用公共资源 也是操作系统中用于控制进程同步互斥的量 Semaphore常用的方法有两个WaitOne 和Release xff0c Release 的作用是退出信号量并返回
  • 【总结】C++工程师学习路线|推荐视频|推荐书籍

    前言 由于博主秋招拿到的offer有限 xff0c 经过对比 xff0c 决定转到C 43 43 开发技术栈 xff0c 此篇文章用于规划自己今后的成长路线并分享给大家 学习路线 C 43 43 语言本身 xff1a 我们可以将这个部分分为