前言
这是一篇迟到了很久的全职面经总结。
腾讯
关键词:最莫名其妙的面试体验
TEG一面
- 自我介绍
- 高性能服务器需要考虑些什么问题
- 服务器为什么要设计内存池
- 服务器端与客户端已建立连接,客户端断开后,服务器端会怎样
- 服务器多进程与多线程间的取舍
- Master-worker架构,连接由谁建立,nginx是由worker建立的,为什么
- 服务器项目在网络方面可以有哪些考虑
- 设计一个k-v存储,只set不读,且有过期时间,过期后删除,怎么设计
- 数据库的索引原理,为啥不用红黑树而用B+树
- MySQL数据库如何高可用
- Consul用来做什么,具体实现原理
- 对raft协议的了解
- Linux下read操作的具体流程
- 进程通信方法
- 共享内存,若其中一个进程挂掉,共享内存中数据是否会丢失(不会);如果相关进程都挂掉,是否会丢失
- select、poll与epoll原理与比较
TEG二面
- 实习 学到了什么,怎么学习,怎么计划 身边有没有非常值得你尊敬的同事,为什么
- 代码设计,面向对象编程,设计模式,开闭原则
- 接口,虚函数多态,虚函数表创建时机,虚函数表位置
- c++类为什么要内存对齐
- 守护进程有什么特别的地方
- 管控只是运维吗
微软
关键词:被偏爱的都有持无恐?
SCCM一面
- 实习情况
- suika项目面面俱到
- 英文面:介绍南京
- 手撕:邮箱地址合法性检测,测试样例设计
- 如何写测试
- 手撕:字符串去空格,O(n)时间O(1)空间
SCCM二面
- 英文面:介绍自己
- 实习情况
- suika项目从浅入深
- 手撕:两个日期的差
- 手撕:字符串中子字符串的出现次数:overlap,non-overlap
- 手撕:链表反转
SCCM三面
- 英文面:介绍实习经历
- 企业文化
- 系统设计:高可用分布式系统设计,commit or probe(push or pull),问题定位,平时如何学习
- 在字符矩阵中寻找指定字符串路径,测试样例设计
摩根士丹利
关键词:有群面的技术面试
笔试
- IKM测试
电面
- Brief self introduction
- Why Morgan Stanley
- Binary Search Tree, inorder traverse
- Database index, why
- Redis index
- Stored Procedures
- SQL injection, ways to defend
- Process vs Thread
- Stack Overflow
- Use stack to implement a Queue
- When have difficulties communicating with others? how to solve it?
AC面笔试
- 变种全排列问题
AC面一面
- 深挖简历
- 最有成就感的一个项目/实习经历
- 笔试,交换两个变量,const &
- Differences between list and array
- Sort algorithms,time and space complexity
- Differences between Vi and Vim
- Function call stack
- Linux commands
- Git commands
- System call
AC面二面
- Self introduction
- TCP Handshake
- TCP UDP
- HTTP新旧版本区别
- HTTPS,TLS
- DNS
- SQL injection
- Epoll,Select,Poll
- suika架构,thread number的确定,Reactor和Proactor
- 协程,go-routine
- 为什么用go,认为有潜力吗
AC面三面:
- Any other Company’s offer? How to choose?
- Things bend your principle, how to face?
- Conflicts with others, how to solve?
- Have you ever had conflicts with PM? How to solve them?
- Which aspects you think you should improve, any plans?
AC面群面
- 讨论如何创新Graduate Connection
Autodesk
关键词:莫名其妙的Senior社招面
电面一面
- Hr面,询问一些情况
电面二面
- 实习情况
- suika项目:优化,配置项如何确定
- 对C++11、14、17的了解
- 虚函数底层实现
- 对windows下开发的了解
- C++与Golang对比
- STL,unordered_map与map的区别,map若key与object,value为int,key如何排序
- 对图形学了解如何
Onsite一面
- 手撕:链表定义,寻找最中间的节点
- 手撕:虚函数
- 手撕:单例模式
Onsite二面
- 系统设计:命令管理系统设计
- 手撕:一个三维空间有无数条线,寻找成环的线的集合
Onsite三面
- 英文面:介绍实习经历
- 英文面:实习中学到的最重要的东西
- 英文面:在主管已交付有ddl的任务的情况下,其他相关部门提出新的需求,怎么处理
Onsite四面
- Hr瞎聊
Onsite五面
- 大BOSS谈人生
旷视
关键词:AI四小龙
一面
- 自我介绍
- 实习情况
- C++ static变量、static函数
- C++虚函数、纯虚函数、抽象类、接口类
- C++ STL map与unordred_map如何选择
- C++ list,dequeue,queue
- C++ vector实现,当capacity满时如何处理
- 排序算法有哪些,堆排序复杂度,完全二叉树
- 对开发与算法如何选择
- 如何阅读源码
二面
- extern C是什么
- Union可以用来做什么
- C++与C对函数重名的支持是怎样的,若支持是怎么做到的
- 手撕:求两个矩形的IoU,优化代码
- 手撕:求数组中最大连续子序列和,设计思路
- 手撕:从整数1到n中连续取个数,每个数前可加+/-符号,问有没有一个数k是这样子计算不到的,O(2 * k)算法,更高效算法
结语
对比18年与19年的校招体验,可以明显感觉到经济下滑的寒意。