去年12月冬日的某一天午后的,我像往常一样,习惯吃完饭去实验室外面的操场上闲步,刷刷微博,或者是和家里人打个电话,阳光比较温热,想着自己的小论文实验做的还比较顺利,就开始准备春招了,于是计划从1月初开始,一边进行论文投稿,一边开始重新刷leetcode,期间一直到开学后,开始整理项目,写简历,以及背八股文,再到3月17日开始面试,一直到4月25日,算是结束了这个阶段的任务,整个春招下来,渐渐明白了很多东西,也觉得对于面试,不仅需要扎实的专业基础知识,坚持,机遇与选择都是共存的,同时要相信运气,由于我春招准备的时间很晚,到真正面试的时候,其实一些大厂都已经没有hc了,这些也是我事后才明白的,以下纪录了我春招面试的整个过程,希望对在看的同学有些帮助
杭州字节跳动(本地生活)
3月18日 一面60min
0.自我介绍,聊简历项目
1.说一下TCP和UDP的区别
2.TCP如何保障可靠传输
3.项目中用了多进程,那就聊下多进程和多线程,理解有多深
4.进程的状态,创建的整个过程
5.进程的调度算法
6.分析下抢占式调度和非抢占式调度
7.聊mysql的索引
8.口述快排,进行复杂度分析
9.场景题,给4亿个整型数字,和2G物理内存,找出其中不重复的数字
10.算法题 有序数组中的单一元素
阿里巴巴 国际贸易事业部(互动技术)
3月14日 笔试
一个半小时,6道单选,6道多选,3道算法题
3月17日 一面30min
1.自我介绍,聊简历项目
2.聊聊http(从http1.0聊到http3.0)
3.聊下tcp和udp
4.redis底层的数据结构(例如sds,ziplist,skiplist)
5.redis备份数据(AOF和RDB)
6.聊下对Mysql中的数据结构的理解(聊了索引部分的数据结构,B+Tree和hash索引)
7.对websocket的理解
8.websocket的长连接和http1.1之后的长连接,之间区别
9.tcp如何保障可靠传输
10.反问环节
3月18日 二面50min
0.自我介绍,聊简历项目
1.觉得自己笔试题做怎么样,之前没有模拟过吗
2.为什么想从算法转到搞后端
3.想考虑做开源吗
4.了解哪些阿里开源中间件(我说了RocketMQ,Dubbo,EasyExcel),然后面试官让我挑一个讲讲对这个产品认识,解决了什么问题,看过源码没
5.浏览器访问一个域名的全过程
6.说下http和https的区别
7.https如何保证安全传输,怎么加密的,底层机制
8.聊下ca证书
9.聊下TCP/IP的三层网络协议(网络层-传输层-应用层),每一层都详细说下
10.应用层你说到了DNS,聊下对DNS协议设计的看法,DNS域名解析过程
11.说下根域名服务器在哪里
12.除了websocket可以推消息给客户端,还了解哪些?
13.TCP如何保障可靠传输
14.你对Web安全的理解(聊了下对SQL注入,XSS,DDOS的看法)
15.项目中用到的多进程技术体现在哪里,如何实现
16.项目上线情况
17.遇到过什么线上问题,怎么排查
18.项目中你认为的难点
19.后面如果还接触这个项目,你怎么去做
20.平时怎么学习的,后面有什么规划
21.反问环节
4月2日 三面70min
1.自我介绍
2.面试官:聊下你 简历上的实习经历
3.OS,计网,数据库,缓存,挑一个板块和面试官聊(选了缓存)
4.缓存解决了什么问题,不要局限于自己的项目,展开聊聊
5.缓存保存的是什么的一致性(我说了主存变量和工作线程变量的一致性,想往JVM线程模型这方面靠靠,面试官觉得不满意)
6.聊下CPU里的L1-L3缓存,L1缓存里头的是什么
7.聊缓存穿透和缓存雪崩以及对应的结局方案(布容过滤器,分隔key的过期时间)
8.数据库一致性,写缓存成功,写DB失败回滚了,如何保障数据一致性?
9.项目是不是分布式的,(不是)
10.假如一个redis结点内存打满了,这个时候系统是阻塞的,怎么复制到其他节点上(内存淘汰策略)
11.TCP的拥塞控制算法
12.TCP报文大小,头部参数
13.那你给我说下http3.0吧
13.你说到了http2.0的IO多路复用,那就说下对IO多路复用的认识(Reactor线程模型)
14.面试官: 给我讲下你科研中用到的算法
15.训练集中如果数据来源不一样,会影响模型效果吗
16.你的时序预测模型怎么评价模型好坏
17.你迄今为止有没有一直在坚持做的事情,坚持了多久,会一直坚持下去吗
18.平时上什么网站,关注什么行业前沿趋势(掘金,机器之心)
19.阿里巴巴过往的一些“事情”你怎么看
20.平时休息的时候干什么,爱好是什么
21.自我评价,个人优缺点
4月4日 HR面40min
1.面试官让我开钉钉共享简历,边看简历边做自我介绍
2.介绍自己的实习经历
3.深挖做过的项目,介绍团队中每个人的职责,项目的职责,面临的挑战,最后的收获
4.讲下本科到研究生阶段的所有重大项目经历
5.本科到研究生阶段,在计算机专业上的学习过程
6.为什么选择读研,你的毕业时间是多少
7.为什么选择阿里巴巴,未来职业发展规划
8.阿里巴巴最吸引了你哪一点
9.何时到岗
10.其他offer有拿没
杭州华为研究所
笔试
免笔试
4月7日 一面50min
1.自我介绍
2.介绍研究生期间的项目
3.项目中遇到的最大的难点,项目用户量
4.项目中如何处理并发场景下,数据不一致的问题
5.怎么理解线程同步
6.未来的职业发展规划,平时看什么技术网站
7.算法题,输入一个数组的长度n和一个数x,循环输入直到达到n次,最少需要用多少步才能确定x是数组的中位数,数组是奇数长度,类似leetcode里面的数据流的中位数,为了不让彼此等太久尴尬,我直接来了个暴力复杂度n * nlog(n),面试官说需要优化,之后用了大小堆复杂度nlog(n),说了下思路
8.leetcode刷了多少
4月7日 二面50min
1.自我介绍
2.聊项目,项目规模,项目难点
3.聊主管所在的部门情况
北京360集团(商业广告技术)
4月12日 一面
1.自我介绍
2.写一个数据库SQL
3.了解哪些排序算法(聊了快排,堆排,归并排序)
4.进程,线程,golang的协程模型
5.计算机网络的七层模型,TCP/IP在哪一层
6.项目中MQ的作用
7.redis的数据类型,动态字符串底层
8.nginx的访问权限配置
9.用过的Linux的命令
10.用过的docker命令
11.如果你是root,需要注意哪些linux命令(chmod,chown)
4月15日 二面
1.看我用过go, 就聊了下自己写在简历上的一个用gin写的项目
2.了解TiDB吗
3.未来职业发展规划
4.对360了解
巴比特(区块链,矩池云服务开发)
4月20日 一面
1.OS死锁问题
2.排序算法(堆排序,快排)
3.TCP/IP七层模型 OSI五层模型
4.怎么理解事务
5.怎么理解MVCC多版本并发控制(快照读,当前读,版本号机制,undo log)
6.对互斥锁和乐观锁的认识(我的理解是 互斥锁调用了os底层原语,开销较大,内核需要在程序计数器上纪录执行体的执行位置,所以要进行线程上下文切换的过程,在大并发场景下比较耗时,乐观锁是基于CAS的写时复制的,AQS维护一个双端链表,保证线程以FIFO的形式,每次通过自旋互斥进行写操作,读操作无需加锁,但是乐观锁会消耗cpu片且容易出现ABA问题,需要结合业务架构场景,对流量进行合理的负载均衡与Web服务升降级控制,并且在服务细节方面同时考虑适当对锁进行降级,转移等过程(比如动态的根据负载情况将锁在自旋与监视器锁之前切换),我认为好的方式是合理使用用户态执行体去并发访问资源,因为用户态执行体阻塞,相比于内核态执行体,只需要进行cpu切换,私有的栈与操作数无需切换,大并发抢锁过程场景下,可以减少过多的syscall消耗成本)
7.数据库的索引数据结构 B+ 树
8.算法题 有序链表合并 用递归和非递归两种方式实现
4月22日 HR面
1.职业规划
2.行业见解
3.家庭情况
4.面其他公司没
5.简历上的数学建模比赛,团队分工
6.期望实习薪资
最后情况
1.字节一面(挂)
八股文自我感觉回答的很好,但是算法题没有用最优解做出来,挂,。。,这个真看部门和缘分,有的人算法没写出来也能过,,,
2.阿里(所有面试都过了,排序被挂,无了hc)
这个我很无奈,本来联系好内推人,要投蚂蚁金服的,但是看到阿里集团这边流程比较快,就没有换部门,最后全部面完等了很久,就去问了后面三面面试官(部门boss)和我说了没了hc,也解释了,估计最后比较,学历不行被刷了,无奈的一匹啊…,总结来说,阿里面试对项目要求很高,细节深入骨髓
3.华为(oc)
4.360(二面后再无消息)
两轮面试官经验都很足,二面面试官貌似是boss,和我详细耐心讲了部门业务,部门做的是,内部孵化的业务,做ToB的,买通站主网页流量访问权限,根据网站流量去溯源用户属性,建立用户画像,进行广告投放,商品推广, 部门主要做日志采集这一块,技术栈golang+es+tiDB,其他业务诸如算法层面由其他团队支持,团队业务难点就是要读取ES集群上的日志,大概8千万条,按照条件排序,要优化排序时间以及提升整体服务IO的性能,但是要去北京总部,看北京现在这疫情,估计是G了或者回池子里
5.巴比特(oc) 面试体验是最好的,但是后面HR和我说公司要求实习6个月,我坦诚说了自己只能最多3个月,最后只能友好选择拒掉了
总结
1.算法题>计算机基础>项目准备=竞赛经历
2.早做准备(因为论文原因,我是2月份开始正式准备的,已经很晚了,这个时候已经没有多少hc了,加上今年疫情与裁员波的重锤出击,要早点准备,好在前几天论文已经通知accept了,算是也值得)
3.简历要认真写,多去实战面试,不要吊在一家公司上,失败了也不要紧
4.找战友,多沟通,尽量找靠谱的内推
5.学会坚持,也要学会休息
|