3年Java阿里跳字节的面试心得总结

java · 浏览次数 : 14

小编点评

前言 笔者在不足两年经验的时候从成都一家金融科技中厂跳槽到杭州阿里淘天集团,又于今年5月份从杭州淘天跳槽到成都字节。自认为自己在面试这方面有一点心得,处于记录和分享的目的便有了此文,此文纯主观,也许对3年社招的同学有所帮助。 本文主要是面试技巧,技术方面不涉及。 1. 面试前 1.1 项目亮点梳理 亮点不等于高并发实际618这种高峰情况下,生产环境有些接口qps小于机器数doge。不要觉得自己没有高并发的经验就觉得自己没有亮点。你缺少发现亮点的眼睛。 亮点不一定是你已经实现的在真实场景中,也许因为排期、不要过度设计、或者其他原因,真正实现的方式是一口气梭哈,甚至在极端场景下是有题的。 亮点可以来自你yy想出的:也许你可以想一个更加完善、更加具备扩展性、稳定性的设计,只要你能较完备的设计出方案,并且方案是可行的,那么这可以作为你的亮点,即使你没有写代码。 例子:我在淘天的时候有一个依赖第三方抽奖接口的功能,代码实现是调用第三方接口,然后同步落表,并依靠消息来保证最终一致性。在这个背景下,我yy了使用本地消息表的分布式事务,这便成为了我的项目亮点。 亮点项目不一定是你做的项目:虽然这有点不诚实,但是大部分情况下核心功能轮不到你做,如果你能主动的去梳理这个功能,了解需求背景、技术方案、稳定性等相关内容并融合贯通,那么这个项目又何必是你做过的? 想清楚怎么描述你这个项目 一般来说,面试的时候会让你做一个自我介绍并简要的说一下你自认为比较有挑战的项目。这个时候你需要简要的描述这个项目,并且能简要的说出技术挑战(吊一下面试官的胃口,引导面试官doge),我是这样做的简单的说明一下需求背景,一般一句话,不要太长! 因为我是业务开发,这一句话主要要表现你对业务是有理解的,甚至有自己的理解,最好能知道需求的目的! 不要太长,因为你面试的是技术开发,不是产品! 分条说项目的难点or亮点: 比如合理的设计分库分表,满足后续业务迭代,并实现冷热数据分离。利用本地消息表,基于消息和重试机制实现最终一致性。 这里是简单的说一下你的几个项目,因此大概说一些技术难点即可,不需要展开,因为你应该不只有一个项目。 提一下成果: 比如最终业务成果(业务指标,模糊的说一下,太精确就涉密了),技术成果(性能优化了多少,能抗多少qps,这个成功要和你克服的难点对应起来!) 如上是说,简单介绍项目,主要是简要说一下,一般后续面试官回挑它感兴趣的点进一步挖掘,面试前你要准备好如何应答,我一般是这样梳理的: 业务背景和业务上的限制:业务上下游及背景,有些时候一个项目是有早期的枷锁的,可以提一下。这里一样简短,主要是给面试官一个背景,不然上来说这个项目xxxx,人家直接懵逼了! 实现了什么功能:大致说一下核心接口的功能,大致流程,有哪些模型。难点,以及怎么解决的:难点1 :xxxx,你设计了一个什么样的方案并最终解决。你为什么这么做:这里要体现出你对技术的思考,比如分布式事务,你为什么不用tcc(需要上下游改造,别人不try 你做不到,那么上下游会配合你么?),等等其他选型都可以说一下,最终你选择了本地事务+消息重试保证最终一致性(为什么?因为实现简单,并且需求不需要实时的一致性,最终一致性即可,那么中间这一段不一致的时间,你是如何解决的,前端是如何表达的,等等)目前还有什么不足,后续如何做这里主要是体现,你有规划,是主动的,有技术追求的。而不是一个纯粹的执行者! 1.2 简历编写排版啥的我就不说了规避你的弱点比如你学历不好,但是在公司拿过很好的绩效,有不俗的成果,那么工作经历应该放在学历上面。让面试官看到你想让他看到的和谈恋爱一样,你po在微信的肯定是最好的一面。写简历一样,把你最自信的技术栈加粗,放在最容易能看到的地方。针对性的写简历如何你有多个项目ABCD,篇幅限制只能写2项目,项目A和B和你投递的公司是更为契合的,那么何不把业务最match的项目写上昵?,在工作经历也可以体现出更匹配的地方! example:笔者投递过蚂蚁的SRE,虽然自己不是做SRE的,但是平时也会关注一些稳定性相关的,我在工作经历中写了自己有系统稳定治理经验,参加过大促稳定性保障,并加粗。虽然这个SRE和我这个狭义的稳定性不是完全的一致的,但是也是有一点关系的。 1.3 降低预期 天生我材必有用也许是没hc了,而不是你不够优秀!另外人和人是有磁场的,你也许就是和这个面试官不对付,而不是你哪里不好(当然不好的地方要复盘)吃个口香糖,上个厕所面试前放松一下,一直绷着也不太好! 2. 面试中 2.1 保持沟通 特别写leetcode,有的同学不知道咋写就尬住了,你可以说一下你的思路,或者你的问题(题目看不懂,或者你的思路解决了不了这个问题)和面试官沟通,反馈。因为面试你的人是你未来的师兄or上级,工作中你肯定不是啥都知道的,也是需要沟通请教的,沟通到位反而是一个加分项。即使你很会写,也要在写的过程保持沟通,比如实现代码的第一步,第二步! 2.2 良好的表达 表达有条理,语速适中,分情况,分条的表达。特别需要注意一点,你需要介绍一点业务背景,但是不要过度介绍,因为招聘的是开发,而不是产品。适当的表达,利于面试官了解背景,在表达中突出自己的对业务的了解,也是不错的,毕竟是业务开发,还是要懂业务的。 比如你聊到分库分表,设计了x张表,x个库,是希望用户的数据集中在一个库一个表,减少分页查询聚合的开销,预留了很多空间是因为后面有哪些需求计划(模糊,不要涉密)会带来数据量的暴增。 2.3 体现你对技术的思考 能比较多个技术选型,知道自己选择这个技术选型后的舍与得,每个方案的缺点和有点。能体现技术在业务上的取舍:比如分布式最终一致性,中间态是怎么做的,比如隔一段时间进行回查,比如表达一个抽奖中的状态(因为本地写了INIT记录,然后调用第三方,第三方maybe超时了,这时候INIT表达为抽奖中,回查就是来弥补这个超时)能知道使用的中间件解决了什么问题,为什么要使用,底层原理。 2.4 合理的猜问 到你不懂的点,你可以说不知道,但是自己可以猜一下,根据你其他的知识联想,或者自己的技术scene来推断该如何解决,给出你的解决方案,这也是体现你能力的点。比如你不帅,但是你有钱。 2.5 幽默 我是一个比较逗的人,在面试字节的时候问到抽奖接口流量很高,如何解决,说了常规解决方案1,2,3等等,面试官还是继续问还有没有其他的解决方案,我说:“能不能抽几个倒霉蛋默认中一些廉价奖品,一般抽奖会有一些兜底奖品,比如积分,可以提前跑任务写中奖记录,而不是调用下游去抽奖doge,如果业务可以接受的话”。 这个方案好么,不那么好(前提是你前面给出了很多其他技术方案,不要上来就让业务做阉割),但是把面试官干笑了。人家写了一天代码,开了一天会,还要面试你,如果你风趣幽默,是不是在一众候选人中脱颖而出昵,更有记忆点昵? 3. 面试后 复盘,不懂的点及时弄懂,其他比如表达某一个项目不清楚,可以再梳理梳理。 4. 福利 笔者目前在提供免费的简历修改建议,以及帮找项目亮点,可以查看《系列文章目录和关于我》文末的二维码,加群私聊群主1v1。为什么我愿意被白嫖:后续发展副业doge。交个盆友。你的项目会被我学会,变成我的系统设计经验。我什么水平,够格帮你么?3年经验,大厂p6,脉脉正常水平。另外本身免费,要求不要太高哈,而且我也是刚开始(目前帮助了2位朋友)。交流向,不是我教你,是我们互相学习。目前暂定周末(工作日不行)1到2位,1次1个半小时,腾讯会议的方式,时间灵活。

正文

中厂->阿里->字节,成都->杭州->成都

系列文章目录和关于我

0.前言

笔者在不足两年经验的时候从成都一家金融科技中厂跳槽到杭州阿里淘天集团,又于今年5月份从杭州淘天跳槽到成都字节。自认为自己在面试这方面有一点心得,处于记录和分享的目的便有了此文,此文纯主观,也许对3年社招的同学有所帮助。

本文主要是面试技巧,技术方面不涉及。

1.面试前

1.1 项目亮点梳理

也许你和我一样,写简历的时候写到项目亮点环节,感觉无从下手。

笔者在阿里甚至很少写数据库,大多做一些查询展示的功能,那么项目亮点从何而来?

亮点不等于高并发

实际618这种高峰情况下,生产环境有些接口qps小于机器数doge。不要觉得自己没有高并发的经验就觉得自己没有亮点。

你缺少发现亮点的眼睛

由于你是实际写项目的人,“不知庐山真面目,只缘身在此山中”,很多时候你也许需要另外一个人听你描述项目,在对方的问题中你将找到项目的亮点!(这个人可以是我,详见文末!)

亮点不一定是你已经实现的

在真实场景中,也许因为排期、不要过度设计、或者其他原因,真正实现的方式是一口气梭哈,甚至在极端场景下是有题的。

  • 亮点可以来自你yy想出的:也许你可以想一个更加完善、更加具备扩展性、稳定性的设计,只要你能较完备的设计出方案,并且方案是可行的,那么这可以作为你的亮点,即使你没有写代码。

    例子:我在淘天的时候有一个依赖第三方抽奖接口的功能,代码实现是调用第三方接口,然后同步落表,并依靠消息来保证最终一致性。在这个背景下,我yy了使用本地消息表的分布式事务,这便成为了我的项目亮点。

  • 亮点项目不一定是你做的项目:虽然这有点不诚实,但是大部分情况下核心功能轮不到你做,如果你能主动的去梳理这个功能,了解需求背景、技术方案、稳定性等相关内容并融合贯通,那么这个项目又何必是你做过的?doge

想清楚怎么描述你这个项目

一般来说,面试的时候会让你做一个自我介绍并简要的说一下你自认为比较有挑战的项目。

这个时候你需要简要的描述这个项目,并且能简要的说出技术挑战(吊一下面试官的胃口,引导面试官doge),我是这样做的

  1. 简单的说明一下需求背景,一般一句话,不要太长!因为我是业务开发,这一句话主要要表现你对业务是有理解的,甚至有自己的理解,最好能知道需求的目的!不要太长,因为你面试的是技术开发,不是产品!

  2. 分条说项目的难点or亮点:

    比如合理的设计分库分表,满足后续业务迭代,并实现冷热数据分离利用本地消息表,基于消息和重试机制实现最终一致性。这里是简单的说一下你的几个项目,因此大概说一些技术难点即可,不需要展开,因为你应该不只有一个项目。

  3. 提一下成果:

    比如最终业务成果(业务指标,模糊的说一下,太精确就涉密了),技术成果(性能优化了多少,能抗多少qps,这个成功要和你克服的难点对应起来!)

如上是说,简单介绍项目,主要是简要说一下,一般后续面试官回挑它感兴趣的点进一步挖掘,面试前你要准备好如何应答,我一般是这样梳理的:

  • 业务背景和业务上的限制:

    业务上下游及背景,有些时候一个项目是有早期的枷锁的,可以提一下。这里一样简短,主要是给面试官一个背景,不然上来说这个项目xxxx,人家直接懵逼了!

  • 实现了什么功能:大致说一下核心接口的功能,大致流程,有哪些模型。

  • 难点,以及怎么解决的:难点1 :xxxx,你设计了一个什么样的方案并最终解决。

  • 你为什么这么做:这里要体现出你对技术的思考,比如分布式事务,你为什么不用tcc(需要上下游改造,别人不try 你做不到,那么上下游会配合你么?),等等其他选型都可以说一下,最终你选择了本地事务+消息重试保证最终一致性(为什么?因为实现简单,并且需求不需要实时的一致性,最终一致性即可,那么中间这一段不一致的时间,你是如何解决的,前端是如何表达的,等等)

  • 目前还有什么不足,后续如何做

    这里主要是体现,你有规划,是主动的,有技术追求的。而不是一个纯粹的执行者!

1.2 简历编写

排版啥的我就不说了

规避你的弱点

比如你学历不好,但是在公司拿过很好的绩效,有不俗的成果,那么工作经历应该放在学历上面。

让面试官看到你想让他看到的

和谈恋爱一样,你po在微信的肯定是最好的一面。写简历一样,把你最自信的技术栈加粗,放在最容易能看到的地方。

针对性的写简历

如何你有多个项目ABCD,篇幅限制只能写2项目,项目A和B和你投递的公司是更为契合的,那么何不把业务最match的项目写上昵?,在工作经历也可以体现出更匹配的地方!

example:笔者投递过蚂蚁的SRE,虽然自己不是做SRE的,但是平时也会关注一些稳定性相关的,我在工作经历中写了自己有系统稳定治理经验,参加过大促稳定性保障,并加粗。虽然这个SRE和我这个狭义的稳定性不是完全的一致的,但是也是有一点关系的。

1.3 降低预期

天生我材必有用

也许是没hc了,而不是你不够优秀!

另外人和人是有磁场的,你也许就是和这个面试官不对付,而不是你哪里不好(当然不好的地方要复盘)

吃个口香糖,上个厕所

面试前放松一下,一直绷着也不太好!

2.面试中

2.1 保持沟通

特别写leetcode,有的同学不知道咋写就尬住了,你可以说一下你的思路,或者你的问题(题目看不懂,或者你的思路解决了不了这个问题)和面试官沟通,反馈。

因为面试你的人是你未来的师兄or上级,工作中你肯定不是啥都知道的,也是需要沟通请教的,沟通到位反而是一个加分项。

即使你很会写,也要在写的过程保持沟通,比如实现代码的第一步,第二步!

2.2 良好的表达

表达有条理,语速适中,分情况,分条的表达。

特别需要注意一点,你需要介绍一点业务背景,但是不要过度介绍,因为招聘的是开发,而不是产品。

适当的表达,利于面试官了解背景,在表达中突出自己的对业务的了解,也是不错的,毕竟是业务开发,还是要懂业务的。比如你聊到分库分表,设计了x张表,x个库,是希望用户的数据集中在一个库一个表,减少分页查询聚合的开销,预留了很多空间是因为后面有哪些需求计划(模糊,不要涉密)会带来数据量的暴增。

2.3 体现你对技术的思考

  • 能比较多个技术选型,知道自己选择这个技术选型后的舍与得,每个方案的缺点和有点。
  • 能体现技术在业务上的取舍:比如分布式最终一致性,中间态是怎么做的,比如隔一段时间进行回查,比如表达一个抽奖中的状态(因为本地写了INIT记录,然后调用第三方,第三方maybe超时了,这时候INIT表达为抽奖中,回查就是来弥补这个超时)
  • 能知道使用的中间件解决了什么问题,为什么要使用,底层原理。

2.4 合理的猜

问到你不懂的点,你可以说不知道,但是自己可以猜一下,根据你其他的知识联想,或者自己的技术scene来推断该如何解决,给出你的解决方案,这也是体现你能力的点。

比如你不帅,但是你有钱。

2.5 幽默

我是一个比较逗的人,在面试字节的时候问到抽奖接口流量很高,如何解决,说了常规解决方案1,2,3等等,面试官还是继续问还有没有其他的解决方案,我说:"能不能抽几个倒霉蛋默认中一些廉价奖品,一般抽奖会有一些兜底奖品,比如积分,可以提前跑任务写中奖记录,而不是调用下游去抽奖doge,如果业务可以接受的话"。这个方案好么,不那么好(前提是你前面给出了很多其他技术方案,不要上来就让业务做阉割),但是把面试官干笑了

人家写了一天代码,开了一天会,还要面试你,如果你风趣幽默,是不是在一众候选人中脱颖而出昵,更有记忆点昵?

3.面试后

复盘,不懂的点及时弄懂,其他比如表达某一个项目不清楚,可以再梳理梳理。

4.福利

笔者目前在提供免费的简历修改建议,以及帮找项目亮点,可以查看《系列文章目录和关于我》文末的二维码,加群私聊群主1v1。

  • 为什么我愿意被白嫖:
    • 后续发展副业doge。
    • 交个盆友。
    • 你的项目会被我学会,变成我的系统设计经验。
  • 我什么水平,够格帮你么?
    • 3年经验,大厂p6,脉脉正常水平。
    • 另外本身免费,要求不要太高哈,而且我也是刚开始(目前帮助了2位朋友)。
    • 交流向,不是我教你,是我们互相学习。
  • 目前暂定周末(工作日不行)1到2位,1次1个半小时,腾讯会议的方式,时间灵活。

img

与3年Java阿里跳字节的面试心得总结相似的内容:

3年Java阿里跳字节的面试心得总结

中厂->阿里->字节,成都->杭州->成都 系列文章目录和关于我 0.前言 笔者在不足两年经验的时候从成都一家金融科技中厂跳槽到杭州阿里淘天集团,又于今年5月份从杭州淘天跳槽到成都字节。自认为自己在面试这方面有一点心得,处于记录和分享的目的便有了此文,此文纯主观,也许对3年社招的同学有所帮助。 本文

又跳槽!3年java经验offer收割机的面试心得

中厂->阿里->字节,成都->杭州->成都 系列文章目录和关于我 0.前言 笔者在不足两年经验的时候从成都一家金融科技中厂跳槽到杭州阿里淘天集团,又于今年5月份从杭州淘天跳槽到成都字节。自认为自己在面试这方面有一点心得,处于记录和分享的目的便有了此文,此文纯主观,也许对3年社招的同学有所帮助。 本文

又跳槽!3年Java经验收割成都大厂的面试心得(干货满满&文末有福利)

中厂->阿里->字节,成都->杭州->成都 系列文章目录和关于我 0.前言 笔者在不足两年经验的时候从成都一家金融科技中厂跳槽到杭州阿里淘天集团,又于今年5月份从杭州淘天跳槽到成都字节。自认为自己在面试这方面有一点心得,处于记录和分享的目的便有了此文,此文纯主观,也许对3年社招的同学有所帮助。 本文

爪哇,我初窥门径

2017年3月,我大二下学期了。 虽说一直在学习,持续在解决学习中遇到的问题,但迷茫依旧。 对着黑框编程,还是不知道Java在现实工作中是用来干什么的。 说实话,真的挺枯燥无趣的。 逐渐,我开始意识到,持续搞这些基础,是没有意义的。 我在网上看他们讨论的Java问题,很多我都看不懂是什么东西。 我要

Java爬虫-爬取疫苗批次信息

今年3月份开始,就接到通知, 根据《关于开展有关人群第二剂次脊髓灰质炎灭活疫苗补种工作的通知》国疾控卫免发〔2024〕1号文件要求,在2016年3月1日至2019年9月30日之间出生的儿童,凡无接种禁忌者,需补齐2剂次脊髓灰质炎灭活疫苗。由于我家一直是异地打针【在外漂打工,懂的都懂】,疫苗本上信息又

Semantic Kernel Java SDK,为Java应用程序提供AI功能集成

美国时间 2023 年 7 月 19 日,Semantic Kernel 团队在其官方博客[1]上宣布发布 Java 版Semantic Kernel。 Samantic Kernel系列的源代码可在GitHub上 [2]找到,但Java的0.2.6-alpha版本可从[3]Maven Centra

[转帖]SpringBoot 3.0最低版本要求的JDK 17,这几个新特性不能不知道!

2022-02-27 分类:Java 阅读(1872) 评论(0) GitHub 24k Star 的Java工程师成神之路,不来了解一下吗! 最近,有很多人再传说 SpringBoot要出3.0的版本了,并且宣布不再支持 Java 8,最低要求是 Java 17了。 其实,早在2021年9月份,关

2023年 CISO 需要高度关注的任务和趋势

在过去的几年中,企业一直忙于应对远程办公模式下的安全要求。展望2023年,疫情局面将与过去3年大不相同。根据目前的趋势,未来一年的网络攻击的数量和严重程度都将增加,这将对各规模企业,尤其是未做好准备的企业产生重大影响。本文将结合 BlackBerry 2022威胁报告的关键结果,谈谈 CISO 们在

嵌入式行业入行6年的一点小感想

从18年毕业到现在已经工作6年了。 熟悉招聘的人都知道,对于工作年限来说,工作开始的前3年是一个分水岭,3~5年是一个分水岭,5~10年又是一个分水岭。10年以上又是一个分水岭...... 我曾经以工作第3年为一个节点,做过一些小小的总结;现在又是3年了,我想借此机会简单概括一下这些年(21年到~2

Huaweicloud for 开发语言

连续参加过几次华为云第三方满意度调研,我对华为云对开发者最不满意的一点就是对Top10 常用语言的支持上很差,特别是对.NET的支持。经过连续多年(至少有3年了)的不断反馈,今天很高兴在华为云上看到了华为云对开发者声音的重视:https://developer.huaweicloud.com/dev