面试37次,16个offer上岸后总结了一些面试心得
Posted java路人甲乙丙丁
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面试37次,16个offer上岸后总结了一些面试心得相关的知识,希望对你有一定的参考价值。
前言
春招刚过,眼看着马上又要秋招了,所以打算总结一下自己的收获,顺便给大伙输出一些东西,希望对还没上岸的兄弟在秋招取得一个好的结果有一些帮助。不敢说多权威,只是权当给大家一个参考。
本文大概分为春招结果、面试指导思想以及面试经验,最后我会放一下我在字节跟腾讯的面试过程,给大家参考一下。
春招面试了这么多家公司的准备工作,面试题,以及一些公司的招聘信息和各公司面试偏重点我都有整理好,算是自己的一个小癖好吧,现在我已经上岸了,可以无偿分享给大家,直达文末有获取方式,祝大家都能早日拿到自己心仪的offer。
-
Java基础知识总结
-
2021金三银四Java岗面试真题总结
-
一线互联网公司Java面试核心知识点
春招结果
-
收到 Offer 国内: 腾讯、阿里、百度、字节、美团、依图 外企: 微软、....、.... (还有几个容易被定位,就不写了)
-
简历/笔试被挂 Airbnb、米哈游
-
还有几个在等结果
-
总共参与了 37场次 的面试
-
投递岗位全部为后端开发暑期实习
指导思想
以下这些东西,或许听起来很“虚“,但我认为它们又是确实是有用的。
-
招聘到底是什么?企业(买家)在人力市场上,向我们(卖家)购买劳动力这种商品。实质是一类交易。
-
面试到底是什么?买家用各种方法“黑盒检测”卖家手里商品的各种质量参数,买家探测/质疑/挑刺卖家,卖家回应买家,双方交换、讨价还价,最终双方敲定是否成交(一般来说主动权在买方)、一个有明显固定套路的过程。
=> 和你爸妈去菜市场挑菜、买菜、讨价还价的过程,本质上完全一样。但要把自己代入小贩的角色。
=> 可以把你知道的、见到过的,所有相关知识都迁移到应聘这件事情上来。没吃过猪总见过猪跑。
=> 商品本身的质量 = 硬技能 = 简历履历、CS知识、八股文、代码能力、做算法题能力 展示 & 推销商品的技巧 = 软技能 = 怎么在讨价还价的过程中,成功地展示自己,最终把自己推销出去、卖掉。
=> 根据整个面试流程的特征(比如检测商品质量的方法是黑盒检测),根据预期准备时长和自身基础决定策略,以最大化单位时间效率作为目标,对两种技能分别准备。最终目标就是把自己“卖掉“。
-
到底应该从谁的角度出发来思考?
例如,我们参加实习面试当然还有其他目的,比如感受公司氛围、学技术或者刷简历等 但是,这些意义仅是站在我们的角度才make sense的. 对于大多数普通卖家(我们)来说x,主动权仍是在公司(买家)手里的,所以我们从谁的角度出发来思考,也不言而喻了。
具体工作
-
硬技能
简历履历
最重要的指标例如学历/论文/获奖,在开始准备面试时,基本已经定死了。
我们能主观上改变的地方在哪里呢?考虑一下面试过程的特点,几乎所有面试官都会或多或少根据简历上的点来针对性的问你。根据这个特点进行写简历/准备面试,就行了。我想到的就这些。
八股文
有3种策略。【不要一看到“s死记硬背“就觉得是最差方法,而是要根据对应八股的出现频次来灵活采用不同策略】,要不断提醒自己,【目标函数是,在有限的时间限制下和自身基础限制下,最大化时间效率】。
具体策略
低频八股: 短时间理解不了,直接死记硬背。若时间紧张,果断跳过。
中高频八股: 把中学时候那套背诵技巧拿出来,比如编各种口诀辅助记忆。或者适度花时间去适度理解。 例子:待补。
高频八股: 花较多时间、精力深入理解,理解体会背后的设计思想、逻辑 + 反复背。
很多问题在英文搜索引擎上会有更优质、更能帮助你理解的解答。
个人准备时长:半个寒假
算法题
市面上有统计各公司面试算法题出现频率的网站,按从高频到低频的顺序进行准备。
个人准备时长 Leetcode: 断断续续做了有四个多月,共300+题。
做完后,对于高频的一百题不到,去看了题解区的题解,然后根据自己的实际情况,逐一写了自己的题解笔记(思考路径、易错点等)
项目
随便找了个以前写的网站项目。如果你找不到项目写,可以看看我之前写得这篇GitHub收藏最高的10个Java练手项目推荐。私信“秋招”就可以领取了。
然后多看面经,把常见的项目相关的问题整理出来,预先想好怎么回答。面试的过程中不断增补即可。
-
软技能
首先还是要明确观念
面试主要的内容就是买家不断通过交互式的试探"商品"质量。
注意,这是一个动态的、交互的过程y, 而不是一个静态的过程,并不是等同于做一张题目都打印好了的固定“试卷“。
个人通过大量面试发现,基本所有面试官面试,都或多或少存在【骑驴找马】的现象。也就是说,面试题并非像一张打印好的考试卷一样,是完全静态的、固定的x,而是动态的、交互式的。面试官(或多或少)会看着简历,或根据谈话内容,来选择下一步的面试问题。如果你能提供给他提问的方向,面试官也乐于省得动脑子找问题来问你。
这就给了我们交互引导的空间。要让话题往利于你“推销卖掉”自己的方向、展示出自己好的一面的方向走。
面试官问了一个你不会的东西,不要直接说不会,而是把你知道的能扯上关系的东西,主动地给面试官讲。最差的应对措施就是直接说“不会”了事。
对于你自信的、想让他问的东西,想办法在谈话中往那边引,让面试官往那个方向问。 有时会碰到,面试官直接问你,“你觉得自己有什么擅长的知识领域“,能就更省事了。
有时会碰到,面试官问你,“你对XXS方面的知识熟悉吗”,如果熟悉,当然作肯定回答Y。如果不熟悉,不要只说自己不熟悉就完事了。你完全可以趁机会说出你熟悉的领域,完成提问方向的引导。
总而言之,要充分发挥我们的主观能动性,而不是被动地、等着面试官像出试卷题目一样,一条一条地问你
读者可以自行举一反三
-
面试之外的技能 和 HR 沟通 :
同样要明确观念,不要当一个单纯的被动执行者。在面试时间、整个应聘流程时长、甚至 Offer 本身上,其实都有可能通过各类沟通改变。谈与不谈,可能就嘴皮子上下翻两下,却可以帮助你节省几周的苦苦等待时间。总之,想方设法充分发挥自身主观能动性。
复盘。记录每次面试全过程,事后复盘总结
多用已有 Offer 进行 argue,包括对面试官 & HR。能省的可能不只是等待时间。
字节面试过程
一面(65mins)
-
自我介绍
-
项目中怎么用的这些开源算法
-
项目中的场地检测和自动取弹算法
-
问:会不会数据库,问个简单的问题,在数据库操作数据的时候,什么时候可以利用索引?
-
问一下计算机网络,TCP的连接过程(详细聊了三次握手和四次挥手)
-
为什么有time_wait,没有会怎么样
-
说一下TCP的拥塞控制
-
刚才说到了TCP是保序的,是靠ack还是seq
-
https是比较主流的因特网协议,聊一下https的加密过程(只说了一下https的加密特点,答得不好)
-
了解http2.0吗,和http1.1有什么区别(只聊了http1.1的特点,http2.0说的不好)
-
再聊一下操作系统,说一下死锁的必要条件
-
聊一下死锁的避免(银行家算法)
-
操作系统中你了解那些锁呢?(介绍了一下信号量机制,互斥信号量同步信号量,然后具体的读写锁互斥锁自旋锁答得不好)
-
了解linux吗,用什么命令查看当前系统进程(答平时只是使用linux写一些代码,没有深入了解过)
-
做道题(L474零和一,二维01背包)秒了
二面(55mins)
-
一分钟介绍一下自己
-
你是怎么使用开源库的,你所说的对开源库的优化能说一个具体的例子吗?
-
说一下进程和线程的区别
-
知道协程吗
-
进程间的通信方式有哪些
-
http的状态码了解吗,说一说3开头的状态码,300,301,302的区别,304详细说一下
-
http请求方法GET和POST的区别
-
刚才说到幂等性,了解PUT和DELETE吗,他们是幂等的吗
-
数据库了解吗?redis了解吗?(答在学,问会多少,答一道题都还没做过)
-
聊一下overload和override
-
智能指针了解吗,说一说
-
指针和引用的区别了解吗?说一说
-
了解哪些设计模式(没有专门了解过,略了解一些单例模式)
-
单例模式是把构造函数作为私有函数,那么如何没有对象就调用类的函数呢(static)
-
还了解其他的设计模式吗(真的不会了...)
-
了解LRU和LFU吗,LRU用软件实现如何设计数据结构
算法题
-
找到第K小的数剑指 Offer 40. 最小的k个数,秒
-
无重复的最长字串,秒
如何评价自己
反问
-
如何评价我
-
想要适应岗位需要提高哪方面能力
其实面试官中间问了很多其他的问题,***了解吗,因为我没有听说过,所以面试完就回忆不起来了。
三面(45mins)
-
自我介绍一下
-
项目相关,问了某个项目的核心内容,具体实现
-
设计一个排行榜的数据结构,能够快速给玩家加分加分并且更新前100的玩家
-
10G的url黑名单,url是64字节,现在给你一个url,如何快速判断在不在黑名单里?
-
追问:你知道布隆滤波器吗?
-
问了个数据库分表相关的设计题,我没有学过数据结构,感觉回答的不对
-
最后做道题吧,一道滑动窗口题,注意回滚
-
反问
HR面(22mins)
这个没什么可说了,因为到这里意味着基本已经稳了,剩下的无非就是待遇的问题,随便聊就行了,当然,别把天聊死了。
腾讯面试过
一面(1.5h)
自我介绍
-
项目
-
java hashmap源码
-
java 常用集合和部分源码
-
spring源码分析怎么解决三级缓存
-
springboot启动原理
-
java垃圾回收
-
jvm内存结构
-
tcp三次握手,四次挥手,超级详细,尤其是第四次挥手
-
tcp和udp,详细介绍udp,报文大小多少,为啥。http 数据包大小,为啥。
-
http常用状态吗,502是啥
-
https加密的详细过程
-
操作系统调度算法和饥饿问题
-
操作系统虚拟内存,虚拟地址。
-
redis数据结构,底层数据结构
-
mysql索引相关的
-
linux常用命令
-
算法,寻找数组中重复的数字
反问
二面(1h10m)
-
自我介绍
-
详细介绍项目,项目一些问题会深挖,然后问一些解决方案
-
tcp四次挥手深问
-
32位操作系统里进程可以分配内存大小,为什么。
-
epoll底层数据结构,原理
-
生产遇到问题及解决方案
-
操作系统虚拟内存,虚拟地址深问
-
算法,1面算法的变种
-
反问
三面
我记得是腾讯三面面试官约我面试时间,但是我当时在面试另一家,一直没接到电话,我回打很多次一直占线,过了半小时发感谢信了...不过也只能怪自己
总结
其实面试了那么多家公司之后,发现这些大厂的要求都差不太多,抛开其它的经验能力等等,单纯从技术,或者说知识上来讲,可以发现一些共通的地方。
-
Java基础
-
计算机基础
-
数据库
-
常用开源框架
-
分布式/微服务
-
中间件,缓存、消息中间件
只要把这些都大致掌握,然后针对你要面的岗位做一些侧重复习,拿到手的offer都不会太少和太差的。
然后腾讯特别喜欢操作系统和网络,字节和虾皮喜欢算法,网易喜欢问框架。面试完没有整理,很多都忘了,把自己记得的写了下来
就写到这吧,后面有机会再跟大家分享面试的一些趣事和经验。
最后,需要资料的朋友们看过来,一键三连(点赞+收藏+关注)后戳这里领取资料
end
以上是关于面试37次,16个offer上岸后总结了一些面试心得的主要内容,如果未能解决你的问题,请参考以下文章
上岸了,私藏总结的 20 万字超全硬核面试题送给学弟妹们,奥利给!
7年Java开发经验,面试20多家公司,砍下16个Offer,总结干货面试题!