面试经验

171 阅读2分钟

一、系统复习

1. 语言:

类对象、模板、运算符重载、继承多态、STL六大组件(容器、迭代器、函数对象、泛型算法)、空间配置器allocator、智能指针、设计模式、编译原理

2. 数据结构

数组、链表、栈、队列、八大排序、五大算法、二叉树、B树、B+树、BST树、AVL树、红黑树、倒排索引、字典数。

3. 操作系统

  • 操作系统的理论知识 Linux的进程和线程模型、进程间的五种通信方式、线程之间的通信方式、线程同步和互斥该怎么做、Linux常用命令。
  • 操作系统的编程(linux) 能够高效的利用CPU多核多CPU服务器这种硬件资源;

进程(fork)和线程(pthread)怎么编;

多进程、多线程和高并发网络编程;

协议(TCP、UDP、IP),为什么TCP是流式协议,UDP是数据报协议,TCP三次握手,TCP的超时中转和滑动窗口机制是什么、流控怎么做、拥塞机制是什么、什么是慢启动、什么是拥塞控制算法,如何编程客户端和服务器端,HTTP协议和HTTPS协议;

IO复用,select、poll和epoll各自是什么意思,怎么用这些去编程,分别和多线程结合该如何使用。

4. 项目

涉及网络高并发、集群、分布式、微服务、服务器中间件(缓存、消息队列),数据库

一般大厂直接上来就聊项目,项目的架构,项目的设计点,项目用了哪些基础知识,通过具体技术点再去问相关的操作系统、数据结构和语言方面知识。

5. 开源

网络库muduo、libevent,缓存redis、memcached,nginx等

6. 收集面经

复习一定程度后,可以根据面经问题来决定下一阶段的复习,将知识融会贯通。

二、准备简历,投递简历

简历内容:个人简介、IT技能、项目经验、自我评价、在校经历

有侧重点

三、面试过程

  • 笔试
  • 电话面试
  • 现场面试
  • 技术面最后的问题 请您对我今天的面试做一下点评,对我目前薄弱的地方给一些建议
  • HR面的问题 多表达积极向上的情绪,对将来的工作有什么计划,可以从自己岗位出发说一些计划,比如说技能上的提升,称为项目组的核心,带新人等等。 期望的薪资

四、面试总结

  1. 输出面经
  2. 问题分类

五、面试感受

image.png