• Linux C/C++后台服务器架构开发成长体系的天花板-学完就好了~


    c/c++Linux服务器端开发岗位分析

    经常被问到的问题:

    Q: 这个岗位市场需求量大吗?

    A:程序员能不能应聘到岗位,只由两部分组成,一个是技术能力,另一个是年龄。

    Q:能进大厂吗?

    A:Linux下的服务器端开发,一般都是进大厂,小厂很难有这样的招聘岗位。

    Q: 岗位对学历有要求吗?

    A:对学历有要求的是企业,不是岗位。

    c/c++Linux服务器开发技术学习路径

    一、精进基石

    1.数据结构与算法

    • 随处可见的红黑树
    • 磁盘存储链式的B树与B+树
    • 海量数据去重的Hash与BloomFilter,bitmap

    2.设计模式

    • 创建型设计模式
    • 结构型设计模式

    3.c++新特性

    • stl容器,智能指针,正则表达式
    • 新特性的线程,协程,原子操作,lamda表达式

    4.Linux工程管理

    • Makefile/cmake/configure
    • 分布式版本控制git
    • Linux系统运行时参数命令

    二、高性能网络设计

    1.网络编程

    • 网络IO与select,poll,epoll
    • reactor的原理与实现
    • http/https服务器的实现
    • websocket协议与服务器实现

    2.网络原理

    • 服务器百万并发实现
    • redis,memcached,nginx网络组件
    • Posix API与网络协议栈
    • UDP的可靠传输协议QUIC

    3.协程框架NtyCo的实现

    • 协程设计原理与汇编实现
    • 协程调度器实现与性能测试

    4.用户态协议栈NtyTcp的实现

    • 用户态协议栈设计实现
    • tcp/ip定时器与滑动窗口
    • 手把手设计实现epoll

    5.高性能异步io机制io_uring

    • 与epoll媲美的io_uring
    • io_uring的使用场景

    三、基础组件设计

    1.池式组件

    • 手写线程池与性能分析
    • 内存池的实现与场景分析
    • 异步请求池的实现
    • mysql连接池的实现

    2.高性能组件

    • 原子操作CAS与锁实现
    • 无锁消息队列实现RingBuffer
    • 定时器方案红黑树,时间轮,最小堆
    • 手写死锁检测组件
    • 手写内存泄漏检测组件
    • 手把手实现分布式锁

    3.开源组件

    • Libevent/Libev框架实战的那些坑
    • 异步日志方案log4cpp
    • 应用层协议设计ProtoBuf/Thrift

    四、中间件开发

    1.redis

    • redis相关命令详解及其原理
    • redis协议与异步方式
    • 存储原理与数据模型
    • 主从同步与对象模型

    2.MySQL

    • SQL语句,索引,视图,存储过程,触发器
    • MySQL索引原理以及SQL优化
    • MySQL事务原理分析
    • MySQL缓存策略

    3.Kafka

    • Kafka使用场景与设计原理
    • Kafka存储机制

    4.gRPC

    • gRPC的内部组件关联
    • 基于http2的gRPC通信协议

    5.nginx

    • nginx反向代理与系统参数配置conf原理
    • nginx过滤器模块实现
    • nginx Handler模块实现

    五、开源框架

    1.skynet

    • skynet设计原理
    • sky net网络层封装以及lua/c接口编程
    • sky net重要组件以及手撕游戏项目

    2.分布式API网关

    • 高性能web网关Openresty
    • Kong动态负载均衡与服务发现

    3.DPDK

    • DPDK环境与testpmd/I3fwd/skeletion
    • DPDK的用户态协议栈
    • 千万级流量并发的dns处理
    • 高性能数据处理框架vpp
    • DPDK的虚拟交换机框架OVS

    4.高性能计算CUDA

    • gpu并行计算cuda的开发流程
    • 音视频编解码中的并行计算

    六、云原生

    1.Docker

    • Docker风光下的内核功能
    • Docker容器管理与镜像操作
    • Docker网络管理
    • Docker云与容器编排

    2.Kubernetes

    • K8S环境搭建
    • Pod与Service的用法
    • K8S集群管理
    • K8S二次开发与K8S API

    七、性能分析

    1.性能与测试工具

    • 测试框架gtest以及内存泄漏检测
    • 性能工具与性能分析
    • 火焰图的生成原理与构建方式

    2.观测技术bpf与ebpf

    • 内核bpf的实现原理
    • bpf对内核功能的观测

    3.内核源码机制

    • 进程调度机制
    • 内核内存管理运行机制
    • 网卡nic与网络协议栈的关系
    • 文件系统组件

    八、分布式架构

    1.RocksDB

    • 不一样的kv存储RocksDB的使用场景
    • RocksDB的特殊操作

    2.云原生分布式数据库TiDB

    • TiDB存储引擎的原理
    • TiDB集群方案与Replication的原理

    3.分布式服务

    • 内核级支持的分布式存储Ceph
    • 注册服务中心Etcd

    九、项目实战

    1.图床共享云存储

    • fastdfs架构分析和配置
    • fastdfs存储原理
    • 分布式fastdfs存储集群部署
    • 高负载nginx/fastcgi
    • 文件传输和接口设计
    • 产品上云公网发布/测试用例

    2.微服务即时通讯

    • IM即时通讯项目框架分析和部署
    • IM消息服务器/文件传输服务器
    • 消息服务器/路由服务器
    • 数据库代理服务器设计
    • 文件服务器和docker部署
    • 产品上云公网发布/公网测试上线

     

  • 相关阅读:
    【汇编语言-王爽】第二章:寄存器
    SpringBoot电商进阶开发Day3
    Linux进程(三)--进程切换&命令行参数
    git stash详解
    Error: EPERM: operation not permitted, renameXXX
    6.2 List和Set接口
    故障分析 | MySQL Router:服务器后端那么闲,为什么不让访问?
    Springboot开启Quartz集群
    laravel 子查询
    Java基础进阶线程的生命周期
  • 原文地址:https://blog.csdn.net/qq_28581269/article/details/126044599