如何和面试官高效愉快的沟通
无论会不会,一定不能慌。无论会不会,一定要和面试官确认自己的理解是不是正确,这道题应该如何思考? 避免思考过度,跑偏。
面试重点在于沟通,我总结了几个经验。
及时总结结论
面试官也是要写面试评价的,如果每个问题结束以后,你都总结好结论。面试官可能直接引用你的结论用来写面试评价。
- 一定要有条理性的和面试官沟通。 避免东一笤帚,西一扫帚。最好提前想好一些结论,重复几遍。这样面试官可能直接用你的"结论"来 写面试经过,结论,评价等。 说完一件事,最好有条理性的总结下,这会让面试官对你印象更深刻。 试想:一个陌生人说了一堆话,我怎么能记住他说了啥。但是他要是最后有总结,我就能记住。
- 当面试官出现了疑问,抛出了问题,中断你的回答,一定不要一味的回答,立即响应。 要优雅的中断当前问题,等自己说出关键结论后退出讨论,响应面试官的打断提问。把握自己的节奏,先和面试官征求意见,能否把剩下的说完。继续快速的说完,记得总结结论。例如:"刚才的问题还没说透彻,我可以最后再总结几点吗?"
求同存异,避免争论
面试官不如你熟悉你的项目,你的经历。 说,听,讨论。 三个阶段都会存在沟通信息的损失,所以给面试官讲清楚, 让他理解,认同你可能很难。 同时如果出现争论,会降低面试官对你的好感,降低沟通效率。你有责任及时的终止争论。可以使用一点技巧:
- 当出现争论质疑时,重申问题上下文, 解决方案的目的, 当前现状, 历史背景, 设计方案时的利弊抉择。
- 也可以坦诚的承认,我们这块的设计,实现方案并不是完美的。甚至做得不好。"我们已经提出了哪些优化点(提出了解决方案),但是优先级并不是很高(优先级是最好的甩锅方式),当初由于更专注于业务目标,技术前瞻性做得不足。你确实眼光独到,一针见血发现了这个问题,这个问题让我们头疼了很久。" 趁机夸赞一波面试官。
- "这块确实比较复杂,咱们总结一下,细化一下分歧再讨论" 面试官一般不会拒绝,面试的主动权重新由你掌握。(要有主动权意识) 细化分歧过程中, 其实就是取得共识。至于某些细枝末节的争论,直接和面试官协调下,忽略掉即可。 把你们的共识摆出来。然后说:"咱们的分歧主要是什么什么,其实是我没说清楚,再针对面试官疑问解释一下。如果系统确实有问题,可以这样说。"我们想优化,因为有更高优的事就搁置下了。我们想这么做,但是由于时间来不及,或者当时 XXX,没有这么做。不过后来我们确实吃了亏,算是技术债"。
- 承认系统设计缺陷不会丢分,强项装逼不服输才是最二百五的
简历重要吗? 随便写行不行?
- 简历一定要认真写。面试官抛出的问题中,除了常见的高频面试题,就是简历中你写的东西。要保证简历中写的东西,透彻理解。
- 很多面试官不会提前准备问题,都是看你简历有什么,就问什么。
- 面试官不会看你精通Spring就会问你Spring,看你写熟悉Redis,就不问Redis了。无论写的是了解,还是精通都可能被面试官问到,所以面试前都要准备到精通的程度,否则尽量别写。对于不太熟悉的技术,仅仅是知晓程度,就别写了。如果被面试官问到不会就很丢分,面试官的面试评价就会写上:你不会XXX。面试很丢分。记住面试官是为了找你的亮点,不是要求你无所不精。简历不要过于吹牛逼。给面试官期望高,失望就更高。
- 在学校整的东西,没啥知名度就不要写了。
- github 要有,但是我没有被问过github 中的项目。所以Github装B被打脸概率可能不大。
项目经历问吗?
-
项目经历一般是 面试必问的,重点问的。 所以第一步要优先发掘自己项目中的亮点, 把自己做的工作清晰的写出来。切记不要说"自己的项目也没什么亮点"。
-
自我介绍阶段重点介绍应该也是自己的项目经历、工作经历,擅长什么技术。这时最好自己提前准备一份演讲稿把自己的项目亮点说出来,多练几遍。避免不过脑子,黄河决堤式回答,想到哪里说哪里。
-
一定会让你自我介绍!这是面试必考题。好好准备自我介绍。
常见高频问题呢?
- java 锁,线程同步,Juc 包。线程池
- 内存模型,gc 调优
- mysql 索引,锁,事务隔离级别。
- 常见分布式高可用架构 redis, mysql, zk, mq等。 数据同步,数据分片,数据备份等
需要刷题吗?
- 一般不会问太多算法题,但是至少一半以上公司都会手撕算法。 把leetcode 各个类型的题都刷十道以上基本没太大问题。 hard题一般不会问
- 如果自己面试表现非常好,但是因为算法题被刷掉是不是会很遗憾呢?
- 算法题能扩展一个人的思路,还是有用的。也锻炼一个人编码能力。 个人建议白板算法用 python 非常简洁。更聚焦解题思路
- 如果自己面试表现特别好,职位匹配度非常高。 算法题是可以放水的,会挑简单题问。 目的就是 留下你,怕你答不上来,避免尴尬
- 如果自己面试比较差, 算法题答得特别好,会不会扭转面试结果呢? 基本不会, 手撕算法只是辅助。项目经历和基础面试题是核心。
面试结果可以问吗?
- 如果没有面试到 hr,或者 终面面试官没有明确 hr 会联系,我基本都会问。 或者问一下自己的不足。 一般都会告诉自己。记住如果你面试通过了,面试官对你态度会非常好。如果对你态度不好,基本上就是挂了。(我有次去小米面试表现很差,简历都被退回来了,告诉我咋出门,面试官就回工位了。我不用问,就知道面试结果。)
- 手撕算法OK,也会被刷掉。 我在陌陌就是 手撕算法非常完美,结果还是挂了。
一般几轮面试?
不算 hr ,基本都是三轮。 但如果二轮面试官开始扯虚的,和你介绍项目,问你职业规划 也许二面就是终面。 不清楚就问一下面试官。
平时工作划水, 面试临时抱佛脚行不行?
不行
- 当面试官逼问项目细节时, 如果平时没有对细节特别熟悉,做事马马虎虎,技术深度不够,例如 技术选型为什么这么做,其他方案?优劣势是什么? 如果没有调研,面试时,很快会露出马脚。
- 如果对项目的整体架构不熟悉,只熟悉自己的模块,也会可能被面试官问到关联的模块,项目如果自己不熟悉,马上就会支支吾吾。如果你回答,这块不是我负责的,我不太熟悉,就会让面试官质疑你:主动意识不够,全局意识不够。评价时会被评"只能完成自己模块内的工作,对系统的全局没有了解,主动意识不强。自我驱动意识差"
- 工作时,可能仅仅聚焦业务,对于项目中应用的技术关注不足。 面试时候就会被面试官揪住。如果当时不思考清晰,并且面试前没有意识到这块技术风险, 就会给面试带来很大风险。美团面试官曾问我,介绍一个你主要负责的 参与方最多,周期最长,最复杂的一个项目如何推进的? 如果平时工作不积极,不主动思考,面试被摊上这么一个问题。基本上哑口无言。 (我当时在现场就目瞪口呆了,汗颜啊)
仅仅看博客,把高频面试题搞懂行不行? (问题驱动式准备面试)
这是必须要做的事情。但是仅仅做到这些还远远不够,例如阿里面试官问
- gc 为什么一定要 stop the world? 一般博客没有给出明确清晰直观的原因。 、
- 一致性 Hash 如何实现? 手撕一下。为什么叫一致性 hash,一致性体现在哪里? 一般博客没有。
- lru 算法手撕一下。 博客有,看一遍就能手撕了?
- redis 和 zk 分布式锁实现如何选型? 各自缺点,优势?项目使用时如何避免缺点带来的负面影响?
- 如何基于 AQS实现获取锁的公平性非公平性?
面试官甚至给你埋坑,故意说一个错误的,看你能否反驳。
我之前被带坑过, Java线程池问题
arduino
面试官问: 是先到 max size 还是先添加到阻塞队列?
我说 阻塞队列满了才会继续创建线程到max size
面试官: 是这样吗? 那么如果是无界队列岂不是永远无法到达 max size
我说: 对啊,有道理啊,我可能记错了。然后被面试官带偏了。
所以结论是,光看懂记下来,不够,要深刻理解。时刻带着问题去学习。问题驱动式学习。 最后你会发现,过了许久,你印象最深刻的还是自己当初提出来的疑问及其解决思路和答案。
总结一下重点:
- 面试必考自我介绍,记得准备好1-3分钟的演讲稿,多练习几遍。
- 简历写的内容一定要精通,不要写自己不熟悉的。
- 及时总结结论,习惯性的1、2、3 条理性的回答。
- 求同存异,千万不能争吵,有分歧时,先理解一下面试官的意思,分歧在哪里。
- 坦诚自己系统的不足,千万不要打肿脸充胖子。
- 平时工作要努力、多思考。临时抱佛脚容易被识破。
最后祝大家面试顺利。
如果大家觉得看完有收获,点赞、收藏、评论,怎么方便怎么来。小弟在此拜谢了🤗。