序 完成
第0章 背景知识
第1章 从双向链表学习设计 完成
1.1 走近专业程序员(上) (下)
1.2 谁动了你的隐私(上)(下)
1.3 Write once, run anywhere(WORA)(上)(下)
1.4 拥抱变化(上)(下)
1.5 Don’t Repeat Yourself(DRY) (上)(下)
1.6 你的数据放在哪里(上)(下)
第2章 写得又快又好的秘诀 完成
2.1 好与快的关系(上)(下)
2.2 代码阅读法
2.3 避免常见错误
2.4 自动测试
2.5 Save your work
第3章 从动态数组学习设计 完成
3.1 动态数组(上)(下)
3.2 排序算法 (上)(下)
3.3 有序数组的应用
第4章 并发与同步 完成
4.1 多线程编程(上)(下)
4.2 同步(上)(下)
4.3 嵌套锁(上)(下)
4.4 读写锁(上)(下)
4.5 无锁(lock-free)数据结构
第5章 组合的威力 两周
5.1 栈
5.2 队列
5.3 哈希表
第6章 算法与容器 两周
6.1 容器(上)(下)
6.2 迭代器(上)(下)
6.3 动态绑定(上)(下)
第7章 工程管理(automake) 一周
7.1 autotool
7.2 hello world
7.3 函数库
7.4 可执行文件
第8章 内存管理 三周
8.1 共享内存
8.2 线程局部存储
8.3 内存管理
8.4 惯用手法
第9章 像机器一样思考 两周
9.1 变参函数
9.2 谁是调用者
9.3 hello world的秘密
第10章 文本处理 四周
10.1 状态机(一)(二)(三)(四)
10.2 Builder模式
10.3 管道过滤器(Pipe-And-Filter)模式
第11章 分离界面与实现 四周
11.1 分层设计
11.2 MVC模型
11.3 外壳(shell)模式
第12章 设计文档