C++学习路线
语⾔本身的学习
C语⾔:
- 除了最最基础的语法:变量、条件、循环、字符串、数组、函数、结构体等之外
- C语⾔最最最最最重要的那就是:指针、内存管理,以后企业⾥开发就靠它俩吃饭,这也是检验
C语⾔掌握情况的两⼤标准
参考书籍:《C Primer Plus》、《C和指针》、《C专家编程》、《C陷阱和缺陷》等
C++:
- C++和C语⾔确实是不同的语⾔,但是C++确实是对C语⾔的延伸,可以理解为在C语⾔⾥加⼊了⾯向对象的特性。因为只有⾯向对象特性的加持,代码才能更好的复⽤、 扩展和⼯程化,这是⼤型项⽬的必备要素
- 除了C语⾔所有的底⼦之外,还需要学习C++的⾯向对象(封装、继承与多态)特性、泛型、模板、 STL等等
参考书籍(有先后顺序) :《C++ Primer》、《Effective C++》、《C++ 标准程序库》、《STL源码剖析》《深度探索C++对象模型》等
编程基础四⼤件
基础四⼤件包括: 数据结构和算法、 计算机⽹络、 操作系统、 设计模式
这跟学什么编程语⾔、后续从事什么编程⽅向均⽆关,只要做编程开发,这四个计算机基础就⽆法避开。可以这么说,这基础四⼤件真的⽐编程语⾔重要!!!
1、数据结构和算法
可以说这个直接决定了⾯试的成败!⼏种基础数据结构类型得烂熟于⼼,⽐如:字符串、链表、⼆叉树、堆、栈、队列、哈希等;基本的⼏⼤算法也要了如指掌,⽐如查找、排序、动态规划、分治等等。建议LeetCode多刷题。
参考资料: 《⼤话数据结构》、《算法》、《剑指offer》、《LeetCode刷题》等
2、计算机⽹络
此处的计算机⽹络指的就是TCP/IP协议栈,可以说它是当下互联⽹通信的基⽯,⽆论如何⼀定要对TCP/IP的协议栈了如指掌,主要就是学习和掌握原理,包括: ARP协议、 IP协议、 ICMP协议、 TCP和UDP协议、 DNS协议、 HTTP协议、 HTTPS协议。
参考书籍: 《TCP/IP详解》等
3、操作系统
该部分重点包括:进程和线程的相关原理(原⼦性、并发、锁)、内存相关原理(内存分布、内存调度)
参考书籍: 《深⼊理解计算机系统》等
4、设计模式
倒不需要23种设计模式全部记住,常⻅的⼏个如: 单例模式、⼯⼚模式、代理模式、策略模式、模板⽅法模式建议熟练于⼼。
参考书籍: 《⼤话设计模式》、《设计模式之禅》等