C/C++后台研发需要点亮哪些技能树?学习路线规划

1350 篇文章 5 订阅 ¥99.90 ¥299.90
本文介绍了C/C++后台研发所需掌握的技能,包括C++语言基础、计算机基础、Linux、数据库、设计模式、中间件、分布式、高并发等。强调了C++学习的重要性,并提供了相关书籍推荐。同时,文章涵盖了后台开发的各个方面,从操作系统到数据库,再到微服务和大数据,为C/C++后台开发者规划了一条完整的学习路径。
摘要由CSDN通过智能技术生成

微信搜「 后端技术学堂 」程序员学习课堂,回复「1024」获取 50 本计算机编程学习电子书,回复「路线」获取最全面技术学习路线思维导图
在这里插入图片描述
和题主一样,我也在BAT当后台研发码农,主力语言就是C/C++用了很多年了(目前团队在转Go方向),对于C/C++后台开发这块的经验,有一些可以与大家分享。

虽然是C/C++后台研发开发,但按我的经验,后台开发中更多的是C++,至少接触到的后台开发都是如此,既然是C/C++后台开发,那要点的技能树其实从名字就能看出来,概况起来主要就是两个方面:

  1. C/C++语言

  2. 后台开发技术

C/C++ 编程语言的学习,在 C++ 后台研发中只占了很小一的部分比例,编程语言只是一个工具,开发人员会使用工具是最低的要求,以我从事后台开发的经验来看,当前符合大部分公司后台岗位要求的技能树,大致是下面这个样子,我画了一张图,你看看:

在这里插入图片描述
图中的技能点看起来挺多(确实挺多的),不要慌,我一个个来讲下需要点哪些技能树。

C++学习
开始之前先来看下,C++需要学习的内容包含:

  • 基础:const 限定符号、声明与定义、类型、遍历
  • 标准库和算法:string、vector、bitset、map
  • 派生类中的构造函数与析构函数,析构函数、构造函数
  • 动态数组、多维数组、数组、指针和引用
  • 重载 Overloading 和覆盖Overriding
  • 表达式、循环、条件判断语句
  • 堆和栈的区别,mallocl和 new 的区别
  • 面向对象的特性,封装、继承、多态
  • 虚函数、虚函数表、派生类虚表,对象内存布局
  • 模板与泛型编程:模板定义、实例化、模板编译、模板特化
  • 继承:单继承、多继承、菱形继承、虚继承
  • 强制类型转换:static_cast, const_cast, reinterpret_cast,dynamic_cast,
  • 异常处理、命名空间
  • 现代C++:C++1X、C++20 新特性

C++编程语言这块的技能树,是必须要点满的,当然最高效的学习方式是阅读经典书籍。经典书籍我推荐一波,总共 7 本书,基础 3 本,进阶 3 本,现代C++ 1本,带封面,方便你找。

初在学习C++的时候,不是所有的坑都需要亲自踩一遍,阅读经典,前人的经验能让我们少走弯路。

C++基础 3 本

  1. 《C++ Primer 》豆瓣9.4

    在这里插入图片描述

  2. 《Effective C++》豆瓣9.5
    在这里插入图片描述

  3. 《More Effective C++》 豆瓣9.2
    在这里插入图片描述

C++进阶 3 本

  1. 《Inside the C++ Object Model》 这本书中文版《深度探索C++对象模型》翻译质量也很高, 豆瓣9.1
    在这里插入图片描述
    在这里插入图片描述

  2. 《STL源码剖析》 豆瓣 8.7
    在这里插入图片描述

  3. 《C++编程思想》
    在这里插入图片描述
    现代C++ 1本
    什么是现代C++?C++这门语言也一直在发展当中,C++1X 甚至 C++20 引入了很多带来重大改变的新特性,让C++更加现代化。如何快速上手现代 C++ 特性,如果我推荐开源电子书:

    《现代C++教程:高速上手C++11/14/17/20》
    在这里插入图片描述
    这本书已在Github开源,离线版下载

至此,C++语言这颗技能树差不多点满了,下面我们来说说「后台开发」技术。

C++后台研发

图中的技能树比较多,下面我来一个个说明:

计算机基础
计算机科学技术 CS(Computer Science),大学计算机专业课,计算机基础是软件开发的基本功,当然也是C++开发的基本功,下面是一份中中科大的计算机技术本科主要课程结构安排。
在这里插入图片描述

计算机基础这块的学习包括

计算机组成原理 操作系统 数据结构与算法 计算机网络

Linux

Linux系统使用 Linux 高级编程 Unix网络编程

数据库

后台开发离不开数据存储,而数据存储就涉及到数据库学习,主要是 2 大类数据库:

关系型数据库,采用了关系模型来组织数据的数据库,代表是MySQL。 非关系型数据库,一般指的是 key-value 形式存储数据的
NoSQL 数据库,代表是Redis

设计模式

设计模式是经历了很长一段时间的发展,代表着软件开发的一种最佳实践。提供了软件开发过程中面临的一般问题的最佳解决方案。

学习以下常见设计模式,并尝试用C++来实现一遍。

单例模式 建造者模式 享元模式 工厂模式 代理模式 责任链模式 解释器模式 迭代器模式 观察者模式 适配器模式 桥接模式 过滤器模式
装饰器模式 外观模式 …

中间件

中间件就是把分布式系统中一些通用功能,抽象出来提供服务的一类软件统称。由于中间件是介于操作系统和应用软件之间,所以称为中间件。

web server 中间件,Nginx、OpenResty、Tomcat… 缓存中间件,服务端缓存包括 Redis、Memcached
日志系统中间件, Elasticsearch、Logstash 、 Kibana、Beats 数据库中间件,Sharding jdbc
API网关,开源项目有 Tyk、kong、zuul RPC框架,Tars、Dubbo、gRPC、Thrift
配置中心中间件,Apollo、zookeeper统一配置管理 消息队列中间件,ActiveMQ、Kafka、RabbitMQ…

分布式

扩展性设计,设计可扩展的软件架构 微服务架构设计,服务注册、服务发现、服务路由 分布式文件系统:FastDFS、HDFS
分布式事务:2PC、3PC、TCC 分布式一致性算法:PAXOS、Raft、Zab 分布式唯一 ID 生成:雪花算法、UUID、美团
Leaf、淘宝 TDDL SEQUENCE方案 一致性HASH算法

高并发、高性能、高可用(统称后台开发三高)

多线程、多进程、协程模型 异步回调、同步阻塞 池化技术、集群技术、缓存技术、CDN内容分发 负载均衡、限流熔断、异地多活

搜索引擎

倒排索引搜索引擎原理技术 Lucene、Apache Lucene全文搜索引擎工具包 Elasticsearch 简称ES 的原理与使用
Solr 原理与使用

测试技术

单元测试 全链路测试 压力测试 灰度发布,A/B 测试,蓝绿部署

监控运营

日志(Logging)对系统和各个服务的运行状态进行监控,记录程序的调试信息或错误信息,
量度(Metrics)比如累加量,对系统和各个服务的性能进行监控 分布式追踪(Tracing )追踪服务请求是如何在各个分布的组件中进行处理

虚拟化

常见的虚拟化技术:KVM、Xen、OpenVZ、Docker Kubernetes 简称 K8s ,管理 container 容器
OpenStack 管理 VM(Virtual Machine)虚拟机

安全技术

web安全:CSRF、SQL注入、XSS 加解密算法:对称加密、哈希算法、非对称加密 DDos防范
授权认证算法:OAuth2.0、单点登录SSO、OIDC、2FA 网络隔离:内外网分离、跳板机

大数据

主要包含以下的技术点需要学习:数据存储、离线分析、流式计算。

大数据存储:Hadoop 框架,HBase、HDFS 离线分析:Hive、MapReduce、Spark
流式计算:Flink、Storm、Spark Streaming、Kafka Stream

版本控制

集中式版本控制系统SVN; 分布式版本控制系统Git
以上,差不多是整个C/C++后台研发体系需要点的技能树,先写这么些吧,有人看再来详细补充。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值