秋招总结(面经)

一、前言

笔者是2021届毕业的本科生,计算机科学与技术(网络空间安全)相关方向,学校还可以,面试过程中从没有因为学校被挂简历或者审批不通过,没过的都是技术不到家。

本文将从心态、项目、基础知识、手撕代码、面试经验等方面介绍,以期给读者一点帮助。

二、经历

笔者是打算两手准备的,也就是2020年前期找工作,后期准备考研,这样做风险很大,如果没有找到合适的工作势必会耽误考研。因此大家最好能在最早的时候有一个清晰的规划,或者大二就开始投递实习,或者大二就准备考研留出大三实习。笔者见到的很多超级offer都是这样诞生的。

面试主要考察项目、基础知识、手撕代码。

另外还有心态、职业规划、是否吃苦耐劳等,一般比较好准备。

1、投实习(无果)

笔者开始的很晚了,打算投递实习的时候各大公司已经录取到了尾声,报录比从4:1到了7:1。没有办法,不能先拿小一点的公司汲取一点经验,硬着头皮报大公司。实习的时候报了美团、华为、字节,纷纷挂在了1、2面。后面联系学长投递的网易和腾讯直接没敢去。

每次失败都应该有反思,或者叫复盘,笔者发现自己的主要不足在于手撕代码写不出来。现在想想也是,一共做过30道力扣怎么秒题?接下来的很长时间都在刷题,集中在leetcode热题100道、剑指offer原题、牛客在线编程中的热题等。前后刷了300多道,面试的时候就好多了,基本力扣简单和中等的题目都能秒。至于困难级别的题我基本没遇见过,遇见我就认栽了,没什么好说的。

2、提前批

后来提前批来了,投递了很多公司,很多没过,有的因为已经有了更好的没去,
这里介绍一下笔者心中各大公司面试的题目和面试风格,以及题目,至于项目和基础知识放在后面介绍。
(1)vivo。(挂)
性格测试挂,笔者自认性格还行,搞不懂。

(2)网易(互娱一面已过,约二面)(三大部门分开投)
网易后台开发对学历和语言要求比较严格,因此笔者主要投递了测试开发,因为与笔者的python比较接近。
笔者问到的比较偏基础,例如服务端的时候问python的“+”重载,形如“init()”的函数、python装饰器,网页前后端交互(主要是因为嘴欠提了句ajax被疯狂问,笔者说了不会还是问、然后二面就挂了、后悔)等,算法考察了迪杰斯特拉、最长递增序列等
面测试开发的时候还问了测试网易云音乐这个软件,其实测试什么东西都是大同小异的,主要把功能、性能(包括压测)、界面、兼容、安全、可用性这几个方面答全并简单举例,推荐牛客的测试工程师面试宝典,很棒也简洁。
最后笔者考虑应该是挂在基础上了,后来恶补了python基础。

(3)百度(意向书)
投递了测开,面试体验非常好,在笔者体验中与美团并列为体验最好的公司,不会的知识会提示,笔者甚至觉得,即便不通过也是值得的。
知识偏开发,只在二面的时候对手撕代码要求设计测试用例。
算法有:不使用第三个变量进行两个数字的交换、判断循环链表、快排(最好非递归实现)、给定一个整数数组要求只使用每个元素一次拼接成最大的数、第一个重复的字符、大数乘法、字符串压缩、三数之和等。难度中等。

(4)华为(通过)
软件开发岗,知识和项目比较通用,难度尚可。

算法:二分求平方根、使用原字符串中的字母拼成尽可能多的新字符串、给定的几个十进制一位数中拼出最小的目标数的整数倍。

(5)拼多多(一面挂)
没想明白哪里不对,算法是二分,笔者写出来之后给面试官介绍了半天,面试官最后说应该对。。可能是讲解的时候态度不够好?

(6)美团(HR面后等通知)
后台开发岗,面试体验极佳,不会也不觉得尴尬,善于引导。
进程间通信,三次握手与四次挥手等。
算法:链表拆解成二叉树、最大连续子数组和、还有两个比较简单的记不得了。

(7)字节跳动(通过)
后端开发岗。这我真得说明一下,我面了三轮,一共七面才进去,社区里面还有面了十多面才进去的,为什么呢,手撕代码比较难、HR疯狂捞,捞起来面,面完挂,挂了再捞,真滴可怕。

算法:十六进制数加法、快排非递归、三数之和(要求n2复杂度)、两个数字之间的所有数字258出现的次数(最好不能遍历,用数学分析)、数组求一个峰值(不能遍历,最好为logn复杂度)。五花八门,笔者建议没有好思路的时候先把笨办法写出来证明代码能力,比什么都写不出来强,说不定就能过。

(8)腾讯(挂)
笔试5道A了4道,但是据说面试很考基础,笔者基础知识掌握不太好,基本不报能过的希望。
(后补:)果然,笔者基础不好,尤其是C++基础不扎实,致命伤。面试的时候显然面试官对我的项目不太感兴趣,怎么说都是“哦,还有吗”,加上现在也是秋招末尾了,20分钟,没给做题就挂了,还是有点难受的,建议大家好好准备C++,春招的时候再投递争取过了。

(9)京东(挂)
第一次:之前实习投过,秋招邀请投递简历,投递以后简历不合适,给兄弟整蒙了。
第二次:会java吗,不会。为什么来测开?可能没说好,一共聊了不到15分钟,挂。
不能和东哥做兄弟了(哭)。

(10)海尔(通过)
你能来公司做什么?用过什么算法?只是听过还是真的用过?
两面一共40分钟,过。

(11)快手(挂)
TCP拥塞控制和流量控制各自的目的?测试朋友圈点赞功能?
测试知识掌握不到位?挂。

(12)浪潮(已拒)
一面机器人面试,不太喜欢。另外当时百度基本已过,没再往下走。

(13)猿辅导(挂)
不愧是今年白菜价40w+的公司,笔试很难,笔试即挂。

(14)哔哩哔哩(二面后等待)
笔试过于简单,一半人全A。
一面面试官魔鬼,让我写了6道代码,后两道比较难,但是恰巧做过所以都做出来了。
二面超大量数据乱序(笔者项目中做过,有兴趣的可以翻翻之前的博客)。
据说今年招人不多,估计够呛。

3、秋招

秋招大概就不投递了吧,上面许多介绍也是正式批的。
这几个月笔者要开始准备考研,干就完了。

三、主要内容

1、心态

同学之中总有大神,还有的同学保研成功了,社区里也不乏offer收割机。这时候我怎么办呢?

认真准备,有效努力,知识必须能写出来、简单-中等题目必须能做出来,提交正确才算会。
不必羡慕,明珠上的人很多,你不断的进步,只会越来越近。
笔者找工作的时候被拒绝了很多次,但笔者始终有一种盲目的自信,每次面试都有收获,都有针对项目或者知识或者题目的短板被补上,也算不虚此行,相信下次不会再在这里跌倒,知识盲区越来越少,很快就能通过面试

面试的时候最好录音,方便以后复盘,尤其是字节跳动,非常喜欢考察之前面试官挂你的地方的知识你补齐了没有

2、项目

这个因人而异,但是写在简历上的一定非常数量,并能对每一点做一定的扩展。例如笔者项目中用mongo数据库加快速度,做的时候没想那么多,面试的时候面试官帮我想了好多,泪目~
比如为什么选mongo,弃用了mysql:答:b树相较b+树快以及两种树的基本原理、项目中很少使用段查询、内存映射机制、高可用(主从和投票机制)等。

说实话,人家不问,我真说不出来,问了几次之后再被问的时候就比较从容了。

3、基础知识

选择一门好的语言还是很重要的,尤其是应用比较多的JAVA,C++。像笔者的python:
(1)只是在写题的时候占优势,因为写起来简单,但是运行速度慢,有的题目同样的思路C++能通过,python两倍时间也过不了。
(2)问到基础知识的时候,比如多态及其实现细节、左值引用和右值引用、垃圾回收这些,是,python可以实现,但毕竟不是那种直接面向对象的语言,平常很少用到这些机制,就比较难回答。
建议时间充足的同学好好学学C++或者JAVA。
话说回来,这就是简单的代价。优秀的程序员写好了你直接用,和自己写一遍这些机制是完全不同的,还是不能偷懒,好好练习一下。

不同公司考察方向区别较大,建议在牛客上多读几篇相关公司相关岗位的面经,解答他们的问题,帮助很大。
比较多的通用考点我这里罗列一下,方便大家查看。
测开相关岗位:
1、对你写的代码写测试用例。
2、测试某个软件或者这个杯子。
开发:
1、快排,普通快排->原地快排->非递归快排,考察极多。
2、topk问题,主要考察堆排序。
3、红黑树及其插入删除元素,大概能说即可。

计算机网络
2、TCP和UDP的区别、应用场景。
3、TCP拥塞控制、流量控制及其对比
4、OSI七层模型,中上层中的代表协议。
5、url输入到显示网页经历了哪些过程。
6、http状态码。
7、TCP三次握手与四次挥手,timewait状态,为甚是三次握手不是两次。
8、TCP可靠连接的机制

数据库:
1、mysql数据库的两大引擎及其对比,innodb的特点。
2、非关系数据库和关系型数据库的对比。
3、数据库四大隔离级别。
4、脏读、不可重复读、幻读及其原理,如何解决。
5、ER图设计数据库。
6、sql语句。

操作系统:
1、虚拟地址与物理地址映射,段页式
2、进程有哪些资源
3、进程间通信(IPC)
4、死锁的形成条件,如何避免。

语言相关,以python为例:
(1)python装饰器
(2)生成器
(3)is和==的区别
(4)运算符重载
(5)建类,实现链表
(6)=号,深浅拷贝。
(7)可变对象与不可变对象。
(8)python中面向对象的实现。
。。。python建议学习廖雪峰的python教程,免费快捷
C++选手推荐牛客的C++工程师面试宝典,也很棒。

4、算法

算法主要靠自己刷题,而且非常重要,写不出来基本就凉了。
推荐leetcode、牛客各大公司各大岗位热题(很多公司都是用牛客的线上编程系统进行考核,至少应该熟悉)、剑指offer题目等。

大概有个标准,leetcode上面简单题应该秒,中等的题也能秒(虽然不一定是最佳思路),但是一定看看最优的思路学习一下。

大概刷到400道题就比较稳了,笔者刷了300多道,基本能应付面试,但是偶尔会被问住。这个越多越好,对思路的掌握越纯属,不是单纯的蒙原题啊,那太难了。需要读者自己把握刷题和知识的平衡吧,看面试的时候哪方面比较欠缺。

5、HR面

比较偏重性格和规划。主要这么几点吧,读者自己选择
1、积极乐观,
2、吃苦耐劳,接受加班
3、认同企业文化,最好能提前了解一下。
4、为什么选择这个岗位?你做这个岗位有什么优势?这个最好学习下别人怎么说的,你会发现同样的想法,人家说出来就那么有条理那么好听,还是比较重要的。
(ps:笔者京东一面15分钟挂估计就是职业规划没说好,人家明显不愿意听了就结束了)
5、其他offer?如何选择?

6、小技巧以及注意事项

笔者经历,千人千面,择优选用。
1、面试录音,事后复盘。
2、对于自己准备好的比较有亮点的地方,在自我介绍的时候一定要引导出来,给面试官一个一听这里就可以问一下考察一下的感觉。这个非常非常非常有用
3、另外遇到不会的问题的时候,可以打打擦边球,回答另外一个比较接近的问题来拖延一下时间回想一下,比较和善的面试官就不会再往下问了;如果面试官一定要问,不会就直接说不太了解,同时往自己熟悉的领域引导,切忌现场造轮子胡说,态度诚恳一般没什么问题。
4、面试官说时间就到这里的时候,如果你还没写完,有思路说完思路就结束,不要拖时间。浪费人家的时间,即便做出来大概率还是不过。
5、有思路即便不是最佳也要写出来,表名代码能力和思考的过程(即边写边说)。
6、礼貌热情不做作,有时间可以了解下部门业务。
7、薪资爆料可参考公众号offershow,最好作为了解。切勿将这种爆料作为谈薪依据,因为面评不同,拿别人的offer来求公平会很傻也没什么用。据说谈薪一般需要其他公司的offer来谈比较管用,但也不排除有的公司不给什么谈判的余地,需要自行了解。
8、非常非常非常重要的一点是,早报早上岸,早报早上岸,早报早上岸。招聘开始和招聘末尾的难度差距很大,招到最后基本大家都招满人了,除非你非常优秀,否则是不好过的。有提前批就走提前批,招聘一开始就报上,真就是特别占便宜和特别吃亏的区别。话至于此,望重视。

四、后记

如有疑问或补充,欢迎留言。

你可能感兴趣的:(竞赛心得,秋招,面试,牛客,实习)