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

系列文章目录和关于我

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个半小时,腾讯会议的方式,时间灵活。

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

  1. Java基础篇——JVM之GC原理(干货满满)

    原创不易,如需转载,请注明出处https://www.cnblogs.com/baixianlong/p/10697554.html ,多多支持哈! 一.什么是GC? GC是垃圾收集的意思,内存处理是 ...

  2. 文章推荐一个Java程序员跟大家谈谈从业心得

    一个Java程序员跟大家谈谈从业心得 2017-10-21 java那些事 java那些事 java那些事 微信号 csh624366188 功能介绍 分享java开发中常用的技术,分享软件开发中各种 ...

  3. 引用面试官文章 :如何准备Java初级和高级的技术面试

    本人最近几年一直在做java后端方面的技术面试官,而在最近两周,又密集了面试了一些java初级和高级开发的候选人,在面试过程中,我自认为比较慎重,遇到问题回答不好的候选人,我总会再三从不同方面提问,只 ...

  4. Java后台工程师的3次面试

    第一次面试 我面的是一个中小公司,在BOSS直聘上面找的,去之前看了看关于Java的一些基础知识,在牛客网上面看的,也做了一下牛客网的题目.然后跟HR约了一个时间就去面试了.因为第一次面试,一点经验都 ...

  5. Java大厂笔试&&面试集合大全目录

    面试技巧 掌握面试技巧,提升自身软实力! HR面试都会问什么问题?(上) HR面试都会问什么问题?(下) 作为一技术人员,面试前都需要做哪些准备? 面试题 Java各个阶段面试题,帮你提升自我,拿到高 ...

  6. 【笔记0-开篇】面试官系统精讲Java源码及大厂真题

    背景 开始阅读 Java 源码的契机,还是在第一年换工作的时候,被大厂的技术面虐的体无完肤,后来总结大厂的面试套路,发现很喜欢问 Java 底层实现,即 Java 源码,于是我花了半年时间,啃下了 J ...

  7. 文末送书四本 | 这篇Java反射机制太经典!不看后悔!

    先看再点赞,给自己一点思考的时间,如果对自己有帮助,微信搜索[程序职场]关注这个执着的职场程序员. 价值:Java技能,面试经验指导,简历优化,职场规划指导,技能提升方法,讲不完的职场故事,个人成长经 ...

  8. JAVA第二次作业展示与学习心得

    JAVA第二次作业展示与学习心得 在这一次作业中,我学习了复选框,密码框两种新的组件,并通过一个邮箱登录界面将两种组件运用了起来.具体的使用方法和其他得组件并没有什么大的不同. 另外我通过查阅资料使用 ...

  9. Java学习-024-获取当前类名或方法名二三文

    今天,看朋友编写程序,打印日志时,需要记录当前类的类名以及当前方法的方法名,我发现 TA 将类名或者方法名直接写死在了代码中...虽说这样可以实现记录类名和方法名,但是当有特殊情况需要修改类名或者方法 ...

  10. 【JAVA秒会技术之秒杀面试官】秒杀Java面试官——集合篇(一)

    [JAVA秒会技术之秒杀面试官]秒杀Java面试官——集合篇(一) [JAVA秒会技术之秒杀面试官]JavaEE常见面试题(三) http://blog.csdn.net/qq296398300/ar ...

随机推荐

  1. MaxCompute执行引擎核心技术DAG揭秘

    ​简介: 作为业界少有的EB级数据分布式平台,MaxCompute每天支撑上千万个分布式作业的运行.这些作业特点各异,既有包含数十万计算节点的超大型作业,也有中小规模的分布式作业.不同用户对于不同规模 ...

  2. [Go] 浅谈 gorm 执行 AutoMigrate 的两种时机

    第一种就是直接在操作 model 的逻辑中,执行 db.AutoMigrate,模型没有更新时不会有 schema 相关的 sql 被执行. 第二种就是单独定义一个属于 main 包的 go 文件,专 ...

  3. dotnet 6 HttpClientHandler 和 SocketsHttpHandler 有什么差别

    本文来告诉大家在 dotnet 6 的 HttpClientHandler 和 SocketsHttpHandler 两个类型有什么不同 在创建 HttpClient 时,可以在 HttpClient ...

  4. STM32的半主机与MicroLIB机制

    一.半主机模式 半主机机制的作用 半主机是作用于ARM目标的一种机制,可以将来自STM32单片机应用程序的输入与输出请求传送至运行仿真器的PC主机上.使用此机制可以启用C库中的函数,如printf() ...

  5. 一篇教程搞定Windows系统中的Docker应用安装

    目录 1. 引言 2. "Docker -> WSL -> Windows"的依赖逻辑 3. 安装方法 3.1 安装WSL 3.2 安装Docker Desktop 4 ...

  6. SpringBoot-Http请求工具类

    一.编写请求配置类 import com.alibaba.fastjson.JSONObject; import org.springframework.context.annotation.Conf ...

  7. P3193 [HNOI2008] GT考试 题解

    之前学矩阵乘的时候做的题,当时因为不会\(kmp\)搜索一稀里糊涂过去了,现在填个坑. 头图 是\(Logos\)! P3193 [HNOI2008] GT考试 题链:洛谷 题库 题目大意: 求有多少 ...

  8. JDK源码阅读-------自学笔记(十二)(java.lang.StringBuffer和StringBuilder比较)

    StringBuilder结构

  9. 在 JS 中调整 canvas 里的文字间距

    实现说明: 在 JS 中 canvas 原生没有支持对文字间距的调整,我们可以通过将文字的每个字符单独渲染来实现.本案例从 CanvasRenderingContext2D 对象的原型链上扩展了一个用 ...

  10. python利用flux基本读写influxDB

    1.读取 QuerApi 形式 python 利用 flux 语句查询 influxdb 数据. https://influxdb-client.readthedocs.io/en/latest/ap ...