C++服务器开发学习路线

C++服务器开发学习路线

注意: 本文不全,边学边补充

基础

熟练掌握C/C++

  • 基础语法、类及模板、C++2.0新特性、STL;
  • STL源码及底层实现(多态的实现等)
  • 宽字符
  • 位域
  • 开发-编译-调试,熟练掌握一个IDE,linux下的cmake/makefile

Linux shell 命令

  • 后台开发常用命令

Linux/windows系统编程

  • 文件IO
  • 线程
  • 进程
  • 线程同步
  • 时间函数
  • ……

socket网络编程

  • socket/listen/send/bind/accept/connect/select/close/shutdown/recv

  • 网络通信模型

    学习方法

    • 学习以上API
    • 看开源项目的网络通信部分(redis、memcached)

数据库基本原理

  • 数据库操作命令:增删改查
  • 索引用法
  • SQL优化
  • 事务及锁
  • explain
  • 分表分库分区分块
  • 负载均衡(读写分离、主从复制)

进阶

  • 算法及数据结构
  • 操作系统原理(PE/ELF 进程地址空间的内存 函数调用 等)
  • 编码风格及代码优化

书籍

《提高C++性能的编程技术》

《现代操作系统》

《深入理解计算机系统》

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

《Linux多线程服务端编程》

《Linux高性能服务器编程》

《TCP/IP网络编程》

《计算机网络:自顶向下方法》

《程序员的自我修养》

《编程之美》

《高性能MySQL》

《Redis实战》

《Linux系统编程》

《TCP/IP卷一》

《Linux内核设计与实现》

《UNIX 网络编程:卷一/卷二》

《UNIX环境高级编程》

源码阅读

  • Filezilla
  • Redis
  • Nginx
  • moduo