面试知识点总结

面试知识点总结,侧重于C/C++,包括操作系统、Linux系统编程、计算机网络、设计模式等。

目录:

01.数据结构与算法
02.C/C++语言
03.操作系统
04.Linux系统编程
05.计算机网络
06.系统设计
07.Linux内核
08.设计模式
09.分布式系统
10.数据库
附录一:常用数学公式
附录二:硅谷之路
附录三:技术博客
附录四:学习计划

数据结构与算法

1、数据结构之排序算法
2、数据结构之字符串函数
2、数据结构之链表
3、数据结构之树遍历
4、数据结构之高级树
5、数据结构之图算法
6、Hash函数以及冲突
7、海量数据处理算法
8、刷题总结
9、算法题目分类与总结


C/C++语言

编程基础

1、C++编程基础部分常见问题梳理
2、C++之静态详解
3、C++之类型转换详解
4、C/C++内存对齐策略
5、C/C++内存布局策略详解


面向对象基础

1、C++面向对象基础
2、C++之操作符重载
3、C++之继承
4、C++之多态
5、C++之友元
6、C++之模板与泛型编程
7、C++之动态内存
8、C++之异常处理
9、C++11/14新特性


标准模板类

1、C++之STL用法
2、C++之STL源码剖析


操作系统

1、操作系统基础知识
2、服务器高并发设计模式


Linux系统编程

1、计算机系统
2、文件与IO
3、进程
4、信号
5、管道
6、进程间通信
7、System V 消息队列
8、System V 共享内存
9、System V 信号量
10、POSIX 消息队列
11、POSIX 共享内存
12、Linux 线程的概念和使用
13、POSIX 信号量与互斥锁
14、POSIX 条件变量


计算机网络

1、计算机网络基础知识
2、网络编程之socket编程基础
3、网络编程之socket实战
4、网络编程之TCP粘包问题
5、网络编程之TCP状态
6、网络编程之IO模型
7、网络编程之shutdown函数与超时设置
8、网络编程之UDP与实战
9、网络编程之UNIX域协议


系统设计

1、系统设计的原则-4SE原则
2、如何设计Twitter?


Linux内核

1、内核准备
2、进程管理
3、进程调度
4、系统调用


设计模式

1、什么是设计模式?
2、模板方法模式
3、策略模式
4、观察者模式
5、装饰模式
6、桥模式
7、工厂模式
8、抽象工厂模式
9、原型模式
10、构建器
11、单件模式
12、享元模式
13、门面模式
14、代理模式
15、适配器
16、中介者
17、状态模式
18、备忘模式
19、组合模式
20、迭代器
21、职责链
22、命令模式
23、访问器
24、解析器


分布式系统

1、分布式锁以及三种实现方式
2、分布式一致性算法综述


数据库

1、MySQL基础
2、深入理解MySQL底层实现


附录一:常用数学公式

1、等差数列求和公式:S=(a1+an)*n/2
2、数学归纳法:

  • 证明当n=1时命题成立
  • 证明如果n=m时命题成立,那么可以推导出n=m+1时命题也成立。
    3、排列公式:C(n, m) = A(n ,m)/m! = n!/((n-m)!m!)
    4、组合公式:A(n, m) = n!/(n-m)!
    5、前n项平方和:1^2+2^2+…+n^2 = 2\
    (n+1)*(2n+1)/6
    6、log xy = log x + log y
    7、log x/y = log x - log y

附录二:硅谷之路

001、进阶之路是什么?
002、生长学习法
003、创业公司的闪电式扩张
004、Docker才是盗梦空间
005、NoSQL
006、Microservices是自由贸易


附录三:技术博客

1、百亿级微信红包的高并发资金交易系统设计方案
2、从无到有:微信后台系统的演进之路
3、一个可供参考的搜索引擎排序架构实践案例

附录三:学习计划

这里主要是制定一个学习计划,然后每天把自己学习到的内容做一个总结输出,记录下来,方便以后进行复习。


学习计划


2018.3.22以前完成的任务:

  • C++之STL详解
  • C++之运算符重载详解
  • C++之静态详解
  • Unix环境高级编程 第8章 进程控制

2018.3.23计划:

  • 数据结构之排序 √
  • C++编程基础部分常见问题梳理 √
  • Unix环境高级编程 第9章 进程关系 √

2018.3.24计划:

  • 数据结构之树遍历 √
  • C++之类型转换详解 √
  • Unix环境高级编程 第10章 信号(一)√

2018.3.25计划(早上口语课):

  • 数据结构之链表 √
  • C++之友元 √
  • Unix环境高级编程 第10章 信号(二)
  • 额外工作:数据结构之字符串函数 √

2018.3.26计划:

  • 数据结构之特殊树(一)√
  • C++之继承 √
  • Unix环境高级编程 第12章 线程 √

2018.3.27计划:

  • 数据结构之特殊树(二)
  • C++之多态(一)
  • Unix环境高级编程 第13章 线程控制
    3.27计划未完成,发现自己做题是薄弱项,开始刷题,备战4月份实习生笔试

2018.3.28计划

  • 算法编程 10 √
  • 操作系统 50 √
  • 计算机网络 50 1/5

2018.3.29计划(最近定的计划开始慢慢不能完成了,要重新调整状态)

  • 算法编程 3 √
  • 复习大数据架构 √
  • Unix环境高级编程 第13章 线程控制

停更三天,深圳腾讯二面


2018.4.2计划(不管结果如何,还是调整心态好好奋斗吧)

  • 算法编程 3 √
  • 数据结构之高级树 √
  • Unix环境高级编程 第14章 守护进程 √

2018.4.3计划

  • 算法编程 3 √
  • 数据结构之图算法 √
  • Unix环境高编程 第15章 高级IO(一)

2018.4.4计划

  • 算法编程 3 √
  • 操作系统之存储管理 √
  • 腾讯笔试原题(一) √
  • Unix环境高编程 第15章 高级IO(二) √

2018.4.5计划

  • 腾讯笔试原题(二) √
  • 内存对齐策略 √
  • Unix环境高编程 第16章 进程间通信(一)√
  • 额外工作:模板方法设计模式 √

2018.4.6计划

  • 科研任务 √
  • Unix环境高级编程 第16章 进程间通信(二)3/4
  • 策略模式 √

2018.4.7计划

  • 算法编程 3道 √
  • socket编程(一)√
  • Unix环境高级编程 第17章 网络IPC:套接字(一)√
  • 观察者模式

2018.4.8计划

  • socket编程(二)√
  • Unix环境高级编程 第17章 网络IPC:套接字(二)√

2018.4.9计划

  • socket编程(三)√
  • Unix环境高级编程 第18章 高级IPC通信 √

2018.4.10 出差一天


2018.4.11计划

  • socket编程(四)√

2018.4.12计划

  • socket编程(五)√

2018.4.13计划

  • Hash函数以及冲突 √
  • C++之多态 √

2018.4.14计划

  • 服务器高并发设计模式 √
  • 分布式锁以及三种实现方式 √
  • 分布式一致性算法综述 √

2018.4.15计划

  • 复习

2018.4.16计划

  • 复习

2018.4.17计划

  • 复习


2018.4.18计划

  • 复习


2018.4.19计划

  • 复习

2018.4.20计划

  • 计算机组成原理(一)√

2018.4.21计划

  • 算法:线性结构(一) √
  • 计算机组成原理(二)
  • C\C++内存布局策略详解 √

2018.4.22计划

  • 算法:线性结构(二)√
  • 计算机组成原理(三)√
  • C++之模板与泛型编程 √

2018.4.23计划

  • 算法:线性结构(三)- 二分查找 √
  • 计算机组成原理(四)√
  • C++之动态内存 √
    2018.4.24计划

  • 算法:线性结构(四)- 链表、栈 √
  • 计算机组成原理(五)√
  • C++之异常处理 √
    额外:C++11/14新特性 √

2018.4.25计划

  • 算法:线性结构(五)- 队列、字符串(一)√
  • 计算机组成原理(六)
  • C++面向对象基础 √
    2018.4.26计划
  • 算法:线性结构(五)- 字符串(二)、数组(一)√
  • 计算机组成原理(七)√
  • 观察者模式、装饰模式、桥模式 √

2018.4.27计划

  • 算法:线性结构(六)- 数组(二)√
  • 计算机组成原理(八)√
  • 工厂模式、抽象工厂模式、原型模式、构建器 √

2018.4.28计划

  • 计算机组成原理(九)√
  • 单件模式、享元模式、门面模式 √

2018.4.30计划

  • 算法:树形结构(一)√
  • 计算机体系结构(一)√
  • 代理模式、适配器、中介者、状态模式 √

2018.5.1计划

  • 算法:树形结构(二)√
  • 计算机体系结构(二)√
  • 备忘录、组合模式、迭代器、职责链 √

2018.5.2计划

  • 算法:树形结构(三)√
  • 计算机体系结构(三)
  • 命令模式、访问器、解析器 √

2018.5.3计划

  • 计算机体系结构(四)√

2018.5.4计划

  • 算法:树形结构(四)√
  • 计算机体系结构(五)√

2018.5.5计划

  • 算法:树形结构(五)√
  • 计算机体系结构(六)√
  • 网络编程 √

2018.5.8计划

  • 算法:树形结构(六)√
  • 计算机体系结构(七)√
  • 网络编程 & 进程间通信 √

2018.5.9计划

  • 算法:图结构(一)√
  • 计算机体系结构(八)√
  • 网络编程 & 进程间通信 √

2018.5.10计划

  • 算法:图结构(二)√
  • 计算机体系结构(九)√
  • 网络编程 & 进程间通信 √

2018.5.11计划

  • 算法:图结构(三)√
  • 计算机体系结构(十)√
  • 网络编程 & 进程间通信 √

2018.5.14计划

  • 算法:图结构(四)√
  • 计算机体系结构(十一)√

2018.5.15计划 √

  • 算法:图结构(五)√
  • 计算机体系结构(十二)√
  • STL源码剖析(一)√

2018.5.16计划

  • 算法:图结构(六)√
  • STL源码剖析(二)√
  • Linux内核(一)√

2018.5.17计划

  • 算法:图结构(七)√
  • STL源码剖析(三)√
  • Linux内核(二)√

2018.5.18计划

  • STL源码剖析(四)√
  • Linux内核(三)√

2018.5.19计划

  • STL源码剖析(五)√
  • Linux内核(四)√

2018.5.20计划

  • STL源码剖析(六)√
  • Linux内核(五)√

2018.5.21计划

  • STL源码剖析(七)√
  • Linux内核(六)√

2018.5.22计划

  • 算法:图结构(八)√
  • STL源码剖析(八)√
  • Linux内核(七)√

2018.5.23计划

  • 算法:图结构(九)√

2018.5.24~20.18.7.21

  • 科研项目工作