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

系列文章目录和关于我

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经验offer收割机的面试心得的更多相关文章

  1. 从零基础到拿到网易Java实习offer,谈谈我的学习经验

    微信公众号[程序员江湖] 作者黄小斜,斜杠青年,某985硕士,阿里 Java 研发工程师,于 2018 年秋招拿到 BAT 头条.网易.滴滴等 8 个大厂 offer,目前致力于分享这几年的学习经验. ...

  2. 【金三银四跳槽季】Java工程师如何在1个月内做好面试准备?

    目录 一.写在前面 二.技术广度的快速准备 三.技术深度的快速准备 四.基础功底的快速准备 五.下篇预告 一.写在前面 春节长假转眼已过,即将迎来的是一年一度的金三银四跳槽季. 假如你准备在金三银四跳 ...

  3. 计算机专业如何高质量的走完大学四年?毕业成为Offer收割机

    前言:迷茫本就是青春该有的模样,但不要让未来的你讨厌现在的自己. "就要毕业了. 回头看自己所谓的大学生活, 我想哭,不是因为离别,而是因为什么都没学到. 我不知,简历该怎么写,若是以往我会 ...

  4. 从零基础到拿到网易Java实习offer,我做对了哪些事

    作为一个非科班小白,我在读研期间基本是自学Java,从一开始几乎零基础,只有一点点数据结构和Java方面的基础,到最终获得网易游戏的Java实习offer,我大概用了半年左右的时间.本文将会讲到我在这 ...

  5. 「 Offer收割机之JVM」:生存还是毁灭

    这两天,广州的天气又开始热了起来,又到了小动物交配的季节,啊呸,又到了一个收割 offer 的季节.年底将至,又到了面试的高峰期,JVM 作为Java 程序员面试绕不过的一道坎儿,它又来了,你准备好了 ...

  6. offer收割机也有方法论

    秋招的战火就像这夏天的温度一样炙热,陆陆续续很多学弟学妹问我秋招的注意事项,作为温暖型大叔的我此刻必须出场了. 看仔细了,接下来龙叔就把这offer收割机的秘密都告诉你们. 如果你还没点关注的话,记得 ...

  7. 程序人生|从网瘾少年到微软、BAT、字节offer收割机逆袭之路

    有情怀,有干货,微信搜索[三太子敖丙]关注这个不一样的程序员. 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试完整考点.资料以及我的系列文章. ...

  8. JAVA多线程和并发基础面试问答(转载)

    JAVA多线程和并发基础面试问答 原文链接:http://ifeve.com/java-multi-threading-concurrency-interview-questions-with-ans ...

  9. [转] JAVA多线程和并发基础面试问答

    JAVA多线程和并发基础面试问答 原文链接:http://ifeve.com/java-multi-threading-concurrency-interview-questions-with-ans ...

  10. JAVA多线程和并发基础面试问答

    转载: JAVA多线程和并发基础面试问答 多线程和并发问题是Java技术面试中面试官比较喜欢问的问题之一.在这里,从面试的角度列出了大部分重要的问题,但是你仍然应该牢固的掌握Java多线程基础知识来对 ...

随机推荐

  1. [FAQ] Error occured while trying to proxy to: xx.xx.x.xx:xx/xx

    遇到这种情况,要知道证明访问并未到达指定的服务地址. 可能原因有未启动.端口占用 等等,请逐一排查. Tool:ChatAI Refer:Proxy_Error Link:https://www.cn ...

  2. [FAQ] web3js, Error: Please pass numbers as strings or BN objects to avoid precision errors.

    我们在调用合约方法时,都可以传一些参数的,比如转账金额 value. value 的单位是 wei,这是一个很小的单位,所以一般数值很大. 注意,把 ether 转 wei 需要先把 ether 的值 ...

  3. 4、Linux 网络基础

    1.基础命令 hostname:查看或设置当前主机名 route [-n]:查看或设置主机中路由表信息 netstat:查看系统的网络连接状态.路由表.接口统计等信息 常用选项 -a:显示所有-n:以 ...

  4. java代码审计-某酒店管理系统

    java代码审计-某酒店后台管理系统 目录 java代码审计-某酒店后台管理系统 1.简介 2.文件上传漏洞 3.CSRF漏洞 4.存储型XSS 1.简介 文章只作研究学习,请勿非法渗透测试: 该系统 ...

  5. Rails向数据库添加新字段和修改字段

    目录 添加字段 控制台上执行下面的命令 会生成文件db/migrate/20210529131328_add_column_to_black_ips.rb 执行迁移 执行结果 修改字段 添加迁移文件 ...

  6. ansible系列(34)--ansible实战之部署WEB集群架构(4)

    目录 1. 业务环境部署 1.1 wordpress-base编写 1.2 wordpress-web编写 1.3 wordpress-mysql编写 1.4 wordpress-proxy编写 1. ...

  7. 基于Node.js+MySQL开发的开源微信小程序商城(微信小程序)部署环境

    在网上搜到小程序设计的项目,下载前辈的代码到本地环境,接下来需要如何部署代码到本地,并能够看到完整的效果展示. 服务器端: https://github.com/tumobi/nideshop Nid ...

  8. postgresql性能优化3:分区表

    一.分区表产生的背景 随着使用时间的增加,数据库中的数据量也不断增加,因此数据库查询越来越慢. 加速数据库的方法很多,如添加特定的索引,将日志目录换到单独的磁盘分区,调整数据库引擎的参数等.这些方法都 ...

  9. 使用js有效括号匹配封装函数

    点击查看代码 function isValidParentheses(str) { // 定义一个栈,用于存储待匹配的左括号 let stack = []; // 定义一个对象,用于快速判断括号是否成 ...

  10. 【源码】蚁群算法TSP问题可视化

    ACO.Visualization项目 本项目演示蚁群算法求解旅行商问题的可视化过程,包括路径上的信息素浓度.蚁群的运动过程等.项目相关的代码:https://github.com/anycad/AC ...