C/C++学习路线
1 C/C++学习概述
1.1 C语言的基础知识
- 关键字
- 数据类型
- 输入/输出/格式化
- 运算符
- 表达式
- 语句
- 判断
- 循环
- 数组
- 结构体/共同体/枚举/位操作
- 指针
- 函数
- 内存管理
1.2 C++的基础知识
除C语言的部分外,C++还有如下知识点:
- 面向对象的特性:抽象、类、封装、继承、多态
- 容器
- 模板
- 泛型
- STL
- RTTI
- 元编程
C/C++基础学相关书籍:《C Primer Plus》《C和指针》《C专家编程》
2 C/C++编程学习四大件
2.1 数据结构和算法
常见数据结构:
- 字符串
- 数组
- 链表
- 堆
- 栈
- 队列
- 树
- 哈希
- 图
常见算法: - 排序算法
- 查找算法
相关学习书籍:《大话数据结构》《剑指offer》
2.2 操作系统
- 内存管理和调度
- 多任务:多线程/并发/锁
- I/O管理
- 文件管理
相关学习书籍:《深入理解操作系统》
2.3 计算机网络
2.3.1 计算机网络分层
ISO七层模型:将计算机网络从上至下划分为应用层(Application Layer)、表示层(Presentation Layer)、会话层(Session Layer)、运输层(Transport Layer)、网络层(Network Layer)、数据链路层(Data Link Layer)、物理层(Physical Layer)。
TCP/IP四层模型:将计算机网络从上至下划分为应用层、运输层、网际层、网络接口层。
五层模型:将计算机网络从上至下划分为应用层、运输层、网际层、数据链路层、物理层。

2.3.2 典型协议(以TCP/IP四层模型举例)
- 应用层:DNS协议、HTTP/HTTPS协议
- 传输层:TCP协议、UDP协议
- 网络层:IP协议、ICMP协议
- 网络接口层:ARP协议
相关学习书籍:《TCP/IP详解》
2.4 设计模式
相关学习书籍:《大话设计模式》
3 应用与编程实践
3.1 Linux操作系统学习
推荐学习书籍:《Linux就该这么学》
3.2 Linux平台的编译和调试
编译:GCC编译
调试:GDB调试
推荐学习书籍:GNU官网英文文档、《Debugging with gdb 》中文版、《跟我一起写makefile》(陈皓著)
3.3 Linux环境编程
推荐学习书籍:《Unix环境高级编程》、《Linux高性能服务器编程》、《Posix多线程程序设计》
C/C++学习路线
http://example.com/2021/07/25/C学习路线/