一 基本语法的学习(这部分的学习,不要拖太久,一鼓作气,拿下)
- C语言最重要的是,指针和内存管理。
- 推荐书籍:《C和指针》《C专家编程》
- C++面向对象的特性,封装,继承,多态,泛型,模板,STL库,Boost库,函数式编程
- 推荐书籍:《Essential C++》《C++Primer》《Effective C++》《More Effective C++》《C++标准程序库》《深度探索C++对象模型》
二 基础四大件(重视,比编程语言本身更重要)
- 数据结构和算法,字符串,链表,二叉树,堆,栈,队列,哈希,查找,排序,动态规划,刷LeetCode题目
- 推荐书籍:《大话数据结构》《算法》《剑指offer》
- 计算机网络,TCP/IP协议栈(原理),ARP协议,IP协议,ICMP协议,TCP,UDP协议,DNS协议,HTTP协议,HTTPS协议
- 推荐书籍:《TCP/IP详解》
- 操作系统,进程,线程,原子性,并发,锁,内存,内存分布,内存调度算法
- 推荐书籍:《深入理解操作系统》
- 设计模式,单例,工厂,代理,策略模式,模板方法
- 推荐书籍:《大话设计模式》
三 应用与编程实践(偏代码)
- Linux操作系统,常用命令,基本的shell编程(生产力工具,批处理,自动化脚本)
- 推荐书籍:《Linux就该这么学》
- 编译/调试工具,GCC,makefile自己会写,GDB调试代码
- 推荐书籍:《debugging with gdb》中文版 《跟我一起写makefile》
- Linux环境编程:
- Linux系统编程(Linux系统上的API的使用),
- 多线程编程(多线程编程实践,线程,资源,信号,同步,互斥,锁等具体问题的编程实践),
- 网络编程(Linux系统上的一些网络编程API,还有一些IO函数的具体的代码编程)
- 推荐书籍:《Unix环境高级编程》(必看) 《Linux高性能服务器编程》《POSIX多线程程序设计》