| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> 面试 - 了解大厂面试基本套路及每一轮的重点 -> 正文阅读 |
|
[Java知识库]面试 - 了解大厂面试基本套路及每一轮的重点 |
不啰嗦,我们直接开始! 引言无论是刚刚毕业的学生,还是刚刚工作一两年面试经验比较少的同学,往往会比较困惑该如何准备面试。面对至少三轮面试(或更多轮)大公司面试都有什么要求,我来分享一下我的经验。 给自己明确一个目标,把一部分工作交给你,你能否独立把控好一个项目的顺利运转,独立设计、开发、完成一个项目对于一个初级工程师或许有点困难,但是把这个当作自己今后的明确目标,给自己一个高起点也未尝不可。 那么独立完成一个项目需要那些硬实力和软实力呢? 合适的候选人:
1、语言基础知识:(一面)为什么基础很重要: 第一,语言基础直接决定你的编码能力,属于基本功,通常技术第一面考察的是基础知识,以 Java 为例,你是否熟练使用 List & Map 数据结构,是否熟悉 Java 多线程 or 并发编程,线程池工具。 第二:是否会用 Spring 全家桶和一种持久化框架(Mybatis or Hibernate),这也是为什么会问你 Spring 原理(如 IOC 原理,AOP 原理),因为它是搬砖必备技能。如何证明这个砖你可以搬?语言基础真的很重要了,平时一定要多注意积累。 2、对常用中间件的理解 (一面 or 二面)具备了语言基础和常用 SSM/H 框架能去大厂搬砖了吗?好像是不能,毕业设计做个单机版图书管理系统应该没问题。 大公司可不需要图书管理系统,你还需要会一些常用的中间件,毕竟在一个大型系统中,使用各种中间件是一定的,如缓存中间件 Redis,消息中间件 Kafka,搜索引擎 ES 等,还需要会一门 RPC 框架如 Thrift 或 Dubbo,要理解常用中间件使用场景,注意事项,或者一些运维能力。因为线上出问题后,除了专门的运维人员,开发人员也需要你参与问题的排查,大多数时候问题可能是因为你使用姿势不对引起的。 3、系统设计能力 (三面 or 四面)面试官想考察你什么?
前面提到了语言基础和中间件基础,在大型系统中,业务往往很复杂,你的业务抽象能力和架构设计能力,直接决定系统的稳定性和系统长线延展性和是否易于维护,这一点蛮难的,需要长期的经验积累,身为一个优秀的开发人员,你设计的系统是否能让新人很快理解上手,并在当前系统架构上用最少的工作量添加新的功能,还有一点很重要,你设计的系统是否存在缺陷,这个缺陷包括短时间暴露缺陷和长时间暴露缺陷。 举几个例子,都是现实工作中你会遇到的问题,并非面试造火箭,工作拧螺丝的问题。 案例 1: 我:我在项目中使用了 Kafka,异步处理高并发写入,多大提高系统并发能力。面试官:异步处理方案很好,那你是怎么使用异步处理解决数据一致性问题的????(短时间暴露缺陷) 案例 2: 我:对于千万数量级的大表,我使用了业务主键 Hash 分片的方式做了分表,有效缓解 SQL 慢查询的问题。 面试官:很好,那你还知道其他的分片算法吗?如果你分表后,数据一年后再次变成千万级以后该怎么办呢?使用 Hash 分片算法还合适吗?(长时间暴露缺陷)。 案例 3: 我:我在项目中使用了 Redis 缓存热点数据,大大提高了接口的响应速度。 面试官:很好,那是是如何更新数据到 Redis 里的?你是否做了候补方案应对缓存失效问题,比如热点数据不热了,命中率下降,你是否了解 Redis 的淘汰策略? 诸如此类的问题太多,能从各方面考察你对中间件的了解程度和系统设计能力。你能否证明自己可以胜任这份工作?系统交给你负责领导会放心吗? 4、软技能(每一轮)
当然这些问题不是绝对的,把面试当成平时聊天,想聊什么都可能,但是我相信每个面试官都希望自己未来的队友是个全方面发展的实力选手,能愉快地工作,共同成长。 5、面试官让我回来等通知,我还有希望吗?最后还有一点小经验分享,我说的不一定对,但真的是经验,经常看到各种社区里有人会问面试是否还有后续的问题,互联网公司,如果你只面了一轮,面试官没有明确约你后续面试时间,让你回去等通知,那基本就是凉凉了。 死在第一轮无后续,多半是你基础不过关,赶紧回来补充基础知识,别抱幻想了。 死在第二轮无后续,多半是你的项目经验不足,同时基础知识也不够扎实出色,赶紧回来补基础 + 各种中间件知识。 死在第三轮 HR 无后续,多半是你各方面都还可以,但又和目前的坑位级别不对标,或者你的期望薪资和预期不匹配,原因有很多,面试成功与否只以实实在在的邮件 offer 为准,其他任何口头形式的 offer 都是耍流氓,你不能停止寻找下家(HR 可能把你当备胎,再观望一下有没有更合适的替代你)。 最后,面试是相互选择的过程,就像两个网友平时聊天一样尽可能发挥自己应有的实力。面试者不要想着自己是在乞讨一份工作。公司也不是大爷,想要什么样的员工就有什么样的员工,还要看公司是否有实力能否吸引优秀的人才,这是一个相互选择相互尊重的过程,如果失败了,很多时候不是你个人能力的问题,真心不是你不够优秀,也可能是你过去做的领域和现在的岗位不够匹配,也可能是自己太优秀而公司只想要一个非常初级的人员,平常心对待面试即可。 不啰嗦,文章结束,建议三连! |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 21:14:37- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |