下面能点击的链接都是我收藏夹里的宝贝,我拿出来整理和分享。
C++:
- C++基础语法(包括不限于const,static,inline,指针,数组,引用,new,malloc,宏定义,define)
- C与C++的区别和联系
- STL各自容器的使用及内部的实现
- C++11特性
- C++的特性,继承、封装和多态,多态又有静态多态和动态多态
- 虚函数,虚函数指针,纯虚函数
- 四种强制转换
- 四种智能指针
- 成员函数的重载、覆盖和隐藏
- 浅拷贝,深拷贝
- 字符串处理函数strlen,strcpy,memcpy,memset
- C++右值:网址一,网址二,右值引用:网址一,网址二
- struct,class,union,枚举
网络:
- 七层/五层/四层结构,各结构的作用和各层有什么协议
- TCP/UDP,可靠性
- TCP的三次握手四次挥手,TIME_WAIT的2msl
- 网络编程:①基础的socket,udp和tcp的一些函数 ②select,poll,epoll的区别和底层数据结构
- HTTP报文,get和post,状态码
- HTTP Session和Cookie
操作系统:
数据结构:
- 数组,链表,堆,栈,队列
- 各种排序算法,时间复杂度,稳定性,以及一些排序算法的实现
- 各种查找算法(折半查找,布隆过滤器,位图)
- 图(深度优先遍历,广度优先遍历,最小生成树,最短路径,拓扑排序)
- 树(二叉排序树,平衡二叉树,哈夫曼编码,并查集,字典树,红黑树)
- hash(一致性hash,hash冲突)
- 动态规划和贪心算法
数据库:
- MySQL(聚簇索引,联合索引)
- MySQL的索引数据结构,为什么用B+树
- MySQL的四种隔离级别
- MySQL的ACID
- Redis 的数据类型
- Redis的持久化存储
其他:
- 设计模式
- QT信号槽
- Linux常用命令,查看进程的,网络的,磁盘的,解压的,CPU的,vim,gdb,Makefile,shell
- 数学(排列、组合、概率、方程)
- 学习方法:看书,看C++经典著作,看视频学习,看网课,看别人的源码学习(如github),看博客,向有经验的前辈请教,最好是系统的学习,不要零散学习