【后台 】BBAT等7大公司秋招总结。
投递的公司:腾讯,百度提前批,阿里,字节提前批,虾皮,华为,网易。
面试过的公司:腾讯,百度,阿里,字节,虾皮,华为。
语言:Golang,python,vue/vuex。
岗位:后台开发。
基本都是投的深圳广州这边的,先说下大概进度和结果,后面会总结所有被问过的问题。文末附上我自己常看的资料。
------------------------------------------------按面试顺序说吧-----------------------------------------
字节提前批(大概七月下旬):字节我是提前批结束前几天才投的,三面一直在撸题,撸了2道算法,还有4-5道Golang的各种操作,问了比较多Golang的边角问题,然后挂了。原因可能是我在中途问了大小周这个情况(加班情况),第二可能是面试官觉得我对Golang掌握的不够深。实习投字节的时候面试体验挺好的,这次体验非常差,每个面试官都要迟到半个小时。从面试的过程来看,字节是唯一一个非常在意语言熟练度的,连边边角角都不放过,一般大厂是不会对语言有特别高的熟练度的(后来又被捞起来了,这一次很顺利就过了)。
百度深圳提前批:这个也是7月投的,到了8月才开始面试吧,1-2面非常顺畅,面试官觉得我对Golang非常熟悉也非常熟练(跟字节产生鲜明对比),1面面试官结束后夸了我一会儿,2面面试官跟我说有空可以过去看看。然后就挂了。。。。。。这个原因后面再说。 体验的话,比字节好很多,面试官看起来对技术也比较有热情,面试过程中的反馈做的很到位,就是流程有点慢,投递到一面间隔一个月,1面到2面间隔十天。
虾皮:虾皮是我今年碰到效率最高的公司,两个星期内结束了所有流程,技术面,HR面,衔接的非常紧,响应也非常快。 意向书已经拿到。 体验,问题深度不如百度,流程快。(已拿offer)
腾讯:实习转正。已拿意向书,大概率是个sp(据leader反馈)?这就是百度为什么挂我的原因,面试前后百度都有人打电话问我,腾讯如果给offer我会不会选百度,因为深圳HC只有5个(我投的这个部门),希望我给出明确的答复,我的回答是谁先给就选谁,本来是想先骗到手,后来才知道百度的流程是比较慢的,不可能先给。。。然后挂了。腾讯这个没啥体验,水到渠成。
阿里:本来投了一个有广州深圳的岗,结果捞我的是杭州,一面完了我问能不能把我转到广州,然后就没有然后了,估计是广州这边没什么HC。
华为:面试全部通过,目前等待公司审批。 体验,1面的时候算是非常难的,不管是撸的代码还是问题,然后1-2面隔了1个月,因为1面的面试官是没有经过培训的,然后中间一个月华为在搞面试官培训,所以1面才这么难,下手没轻重吧。二面非常简单。主管面的时候告诉我测评挂了,,,于是面试完之后又让我补做了一次。。。谁知道测评会挂人阿。。。我之前就瞎78做的。。希望大家不要像我一样轻视测评。。(已拿offer)
网易:笔试过去了一个月,官网看状态一点动静都没有,不知道是不是因为简历的原因,当时简历还没填完就锁定了(投递后一个星期锁定简历不能修改)。 体验:投的是云服务(语言要求是Golang),结果进入笔试页面发现限制Java/C++,虽然A了3道,但是这个操作有一说一挺rz的。
自己的秋招就告一段落了吧,也没有各种斩offer的想法了,主要是自我介绍说太多次都不想说了,瑞了。不过也算比较幸运的,8月就基本结束了秋招。省了很多精力。
面试技巧是非常重要的,除了技术,你说的话千万不要踩雷区(像我这种直接问加班情况),能舔就舔,一定要表现得有想去的欲望而不是单纯的面着玩一玩,感觉个人因为面试情商的原因也错失了两个有机会拿到手的offer。。
-----------------------------------------------------被问到的问题-------------------------------------------------(这个得慢慢回忆,有一些全忘了。)
主要还是问项目,以下的问题都是面试官拿来凑时间的。
Linux:
1.vim怎么查询一个单词,怎么做匹配。
2.说几个你常用的Linux命令。
3.怎么判断一个进程的状态,用什么命令。
4.vim怎么跳到最前面,怎么跳到最后面。
5.一个文件太大应该怎么打开。
6.怎么查看cpu,磁盘io,网络io。
7.怎么查看一个文件的大小。
8.怎么看端口占用情况。
9.grep怎么用。
10.怎么看一个进程主要是哪个函数在消耗性能?
11.怎么定位一个300万次中出现一次的错误。
12.怎么杀死一个进程。
计算机网络:
1.三次握手,四次挥手。
2.Time_wait,Close_wait分别出现在哪个阶段,会造成什么影响?
3.主动断开的会产生Close_wait还是被动断开的会产生?(哪一方会有
4.状态码。
5.http和tcp的区别,什么时候用http,什么时候用tcp(不是问udp和tcp噢~)
6.http头部字段说一下。
7.http 1,2,3
操作系统:
1.进程,线程,协程的区别。
2.协程为什么比线程轻量级。
3.协程怎么绑定线程的。
4.协程怎么调度。
5.虚拟内存和物理内存的关系。
6.内核态和用户态,你一直在说,那你说说具体差别在哪,为什么切换会消耗性能。
7.协程如果像你说的这么牛逼,为什么只有Go支持呢,其他语言为什么这一两年才开始有协程库?协程这个概念好多年前就有了不是吗?(从cpu的角度回答,这个问题当时确实问得我有点懵,腾讯总监问的,应该从多核发展的角度去考虑,另外结合线程/协程的调度特点)。
Mysql:
都是一些非常基础的问题,其他面经都有。
Golang:
1.len(),cap()
2.
const ( i=7 j k ) // i j k分别等于多少
3.defer,panic
defer("1") defer("2") //请问以上输出顺序 defer("1") defer("2") panic("3") //请问输出结果
5.如果一个协程panic了,整个程序会怎么样?
6.Golang垃圾回收。
7.Channel怎么实现的?
8.怎么控制多个协程:定时开始,定时退出,条件开始,条件退出。(现场写)
9.Golang调度机制。
10.磁盘IO的时候怎么调度?
11.网络IO的时候会出现什么情况?
12.内存分配。
13.Mutex
14.任务队列怎么实现
15.怎么控制并发量
16.怎么阻塞一个协程。
17.select怎么用。
18.什么时候会触发GC。
19.GC怎么调优,有哪些调优方法。
其他:
1.用过哪些消息队列,说一下你知道的消息队列。
2.redis基本数据结构知道吗。
3.常用的git操作说一下。
4.merge和rebase的区别。
5.说一下k8s有哪些模块。
6.k8s模块之间怎么通信。
7.怎么让你的服务跑在集群上?用过多集群管理吗?
8.微服务之间怎么通信。
9.RPC用过吗,讲讲 。
10.集群服务怎么做负载均衡。
---------------------还有一些问题想到了再补吧,时间过的有点长了不大记得了。
---------------------关于怎么准备----------------------------------------
现在应该处于秋招的高峰期,拿offer最好的一段时间就是10月之前了,到了10月秋招基本降温了。
关于项目:
实习可以没有,项目一定要有。项目不在于多牛逼,但是一定要内容充足,Web开发最好能涉及到 静态语言的后端(Go/Java)+数据库+中间件,,但是像存储/分布式/游戏引擎开发这类项目,需要更具体的内容了,这种没条件自己很难折腾,一般是实习或者在实验室有相关内容才能做的比较成功,如果是Web开发的话,前端其实无所谓的,我实习期间基本全栈,从前端到后端到redis到nginx再到存储的项目都涉及到,但是面试官基本不关注前端,连nginx都没几个人关心。。。我还觉得nginx这方面知识面试官应该挺感兴趣的吧,实际证明这么好的东西也不是所有人都知道用。
像什么秒杀项目这种,不要瞧不起,里面内容其实很多的,有的人觉得没用的原因就是做完项目对原理一点都不理解。
所以项目这一块,不在多,在精。用了什么轮子,就彻底学透这个轮子。
关于实习:
有就有,没有就拉倒,实习也是为了做项目。
关于刷题:
我个人lc应该刷了有个500-600题,所以算法题基本不是什么问题。建议题目一定要经常刷,现在所有公司基本上都加上了现场撸题,哪怕是华为我都撸了好几道。
---------------------------博客&其他资料-----------------------------------------
Golang :
https://draveness.me/golang/docs/part1-prerequisite/ch02-compile/golang-compile-intro/ (这个博主还有很多其他的优质文章)
还有一些Golang的PDF书籍,有兴趣的可以留个邮箱我发你们。
-----------来来来看过来--------
2022届秋招内推开始啦~欢迎私信~