以我的亲身经历为例,告诉大家写简历和面试的技巧(面向高级开发和架构师)(2)

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注Java)
img

正文

3 这块最重要,是结合业务,抛出项目用到的技术,但别展开。

比如我见过一个职位介绍,里面写到需要有数据库优化的经验,那么我就说,项目里我用过MyCat作为分库分表,(不展开技术),结果上线后,我们数据库能承受住每秒2000个并发请求(说下用好的结果)。

又如一个JD里说要用到微服务技术,那么我就说,项目里用到了Spring Cloud框架,用到了Ribbon,Eureka等组件,容器是Docker。用好以后,在发布时会发现,各模块之间的调用耦合性大大降低。

这块为什么不用展开?第一,当前还在介绍项目,如果展开技术,就会主次不分,面试官会对你的逻辑思路产生质疑。第二,由于在JD里有要求,面试官一定会深入来问,别人问你说总比自己自吹自擂要好。 第三,就好比之前考文科内容,当前在介绍项目时,先应当把所有的点说出来,面上自有机会发挥。

5  准备项目介绍时,我是如何准备值钱技术的

这块其实和介绍项目经验时密不可分,这里就拿我介绍过的Netty组件来说明。

1 准备如何过渡到相关技术的说辞。

这里一定别让面试官感觉你在自说自话。比如我准备的方案1是,在介绍好项目背景后,如果面试官没打断,我就询问,能否介绍其中的Netty细节?得到允许后再说。方案2是把这些技术关联到面试官可能会问的问题上,比如问及网络通讯时介绍Netty,这个事先我会整理一个问题列表,遇到此类问题,我会抛出Netty说辞。对于其他技术也可以照此准备。

2 结合业务需求点,说下为什么要用这个技术,以及用了有什么好处。

比如为了优化网络通讯协议,所以用基于TCP协议的Netty,我业务模块里的xxx功能是用到netty,再稍微结合业务和Netty展开下。这样的话,面试官就会感觉这个技术你不是仅仅在学习中用到,而且在项目业务里用到。

3 准备下这个技术里我踩过的坑。

比如通讯过程中我遇到了半包和粘包问题,对此我更是深入了底层代码说明,还有Netty里的堆外内存管理问题,我准备了一个由于管理不善而导致的OOM问题的排查和解决过程(这类问题网上相关的也很多)。

4 我再准备了用了这个技术后对项目的帮助。

比如Netty是基于TCP协议的,它要比Http协议要轻,所以通讯性能高,且Netty内部的Reactor线程模型对系统的IO帮助很大。

其实准备到这个程度,一般的面试官就不怎么再问了,哪怕面试官再问了一个我不知道的问题,我也可以理直气壮地说不知道了,毕竟我之前已经介绍了不少底层代码,再精通Netty的人也未必能面面俱到地在脱稿的情况下回答出任何问题。

但为了以防万一,我更准备了“源于项目但高于项目”的说辞,一方面证明我平时还会不断专研,另一方面进一步证明我熟悉并能合理使用Netty的底层代码。这方面我准备了如下的内容:

1 Netty的重要组件以及一个请求过来时各模块工作的时序图。2 Netty内部零拷贝的原理和好处,对此还专门准备了代码。3 Netty读写索引的工作方式。4 Netty异步处理的机制。

大家可以想象下,如果在面试中,大家很自信地边写底层代码边解释问题,面试官会对大家有什么评价?其实这些都是可以准备的,我一直没明白,为什么有些人面试前不做任何准备?这些准备的素材又不是找不到。

下面我再略讲下我MyCAT的准备要点。

1 还是讲下业务背景,为什么要用?2 如何使用,无非是设置分库规则,改写SQL语句等。3 准备下踩到的坑,比如自增长主键在每台机器上都要保证唯一。4 然后再结合些底层代码,准备下一条SQL语句是如何分发到对应的分库上的,然后执行好以后又如何返回的。

基本上我面试时说到这个程度后,面试官就不怎么问了。

6  事前评估好自己的薄弱点,想办法让面试官忽略

哪怕事先再准备,我们也不能保证自己一定能达到职位介绍里的要求,这时候就得准备一个自己薄弱技术的列表,然后想办法在面试中绕过去,如果绕不过去,就找些替代方案。

比如我对消息通讯组件不熟悉,在面试前我哪怕看代码看文档也无法进一步理解,我就在面试中,故意不提这个环节,抛出其它值钱技术,引诱面试官来问,一般交流一个技术点大约耗时10分钟(边画图边介绍再提问),所以面试过程中详细交流到的最多也就5个点,少的话就3个,在不少面试里就根本没涉及到这块。

有两场面试,技术面试官问及到了,我就说项目里用过,同时多介绍些使用场景,比如用Kafka进行异步消息通知,通过消息中间件来保证交易的幂等性。这样面试官听到我介绍了应用场景,就至少会认为我用过。只有一场面试,面试官在kafka方面问得很细,问到如何集群内防止消息重发的细节,我就没回答上。

也就是说,我通过刻意回避外加介绍业务应用场景,很大程度上隐藏了我了解不深的技术。相反,如果我在简历中大大咧咧地写上用过kafka,那么可能每场面试都会被问到,毕竟在面试中被问倒不是件好事。

又如,我对分布式集群里的失效转移底层细节始终没理解透彻,那么在相关问题上就得非常小心。

有一场面试里,我被问到dubbo+zk集群,这块如果细问,一定会问到失效转移的选举算法,我对此不熟,那么我就先说dubbo的通讯协议,序列化方式以及通过设置超时时间实现服务降级的思路,然后再说zk的部署。最终面试官果然问到选举算法,但之前我已经结合业务谈了dubbo底层代码和zk的相关部署,所以不理解选举算法并没有产生太大的影响。

这里用到的技巧是“偷换概念”,一个问题有多个回答方向,你先让面试官感觉到你在很多领域非常熟悉,那么在个别领域不熟悉就无伤大雅了。

7  和猎头和人事的沟通要点

1 猎头和我们是一伙的,我们成了猎头也能拿到提成,所以和猎头谈时一定得坦诚,把你优点和弱点都说,猎头会帮忙想办法(比如问面试题)或者是帮忙优化简历。

2 面试前,一定和猎头谈次,或者问下对这家公司该说什么话,以及之前人的成功失败经验,如果问题,去问下面试题(包括笔试题和口头技术问题)。

3 面试后,一定第一时间和猎头沟通,这时个人直接去问不合适。而且还可以通过猎头说,哪怕这个岗位没面上,还可以尝试这个公司的其它岗位。

4 谈工资时一定得先听猎头的建议,不少人对当前行情不了解,或者信心不足,工资没要足,这时让猎头谈是比较合适的,因为猎头就干这个的。一般来说,跳槽后,工资大约有20%到50%的涨幅,有些公司会要前家公司的收入证明,相关问题也可以问猎头。

但和人事谈,就要小心了,毕竟人事是公司开工资的。

1 人事会问之前公司的离职原因,这时千万别让人事感觉出你不稳定,你可以说为了进一步提升自己的能力,此类问题网上太多,大家可以自己查。

2 在谈发展方向时,别和JD上的背离。比如JD上是招个技术开发人才,你却和人事说,干了1年后想转Team leader管理岗位,或者说同时想做测试,那么人事就会感觉到,你未来的发展规划和公司想要的不匹配。

总之,面试时人事会非常nice地和你交流,有时候甚至是套话,看你是否稳定,是否能很好地和团队协作,能否加班,我就见过有人卡在人事这关,甚至还不知道为啥被拒。

而且一般你在和人事谈工资前,最好向猎头打探下这个职位的工资范围,在此基础上,如果你感觉面试非常好,或者他们着急要人,或者你感觉加班会很多,可以适当多要些,相反如果你非常想进这个公司,那么就自己斟酌。
8  总结:不能常跳槽,但得经常更新自己的技能
我不推荐经常换工作,比如一年换个两家,那么公司会质疑稳定性,但对于我们做IT的人来说,如果手头技术停滞不前,那么自己的竞争高工资的能力也会大大降低。
那么目前该了解哪些技术?以及在这个技术方面我当前掌握得如何?这固然可以通过工作来检验,但工作中接触到的技术毕竟是有限的,这时就可以通过面试来检验自己当前的学习情况,同时也可以通过面试题去了解自己的努力方向。

Kafka实战笔记

关于这份笔记,为了不影响大家的阅读体验,我只能在文章中展示部分的章节内容和核心截图

image.png

  • Kafka入门
  • 为什么选择Kafka
  • Karka的安装、管理和配置

image.png

  • Kafka的集群
  • 第一个Kafka程序
  • image.png

afka的生产者

image.png

  • Kafka的消费者
  • 深入理解Kafka
  • 可靠的数据传递

image.png

image.png

  • Spring和Kalka的整合
  • Sprinboot和Kafka的整合
  • Kafka实战之削峰填谷
  • 数据管道和流式处理(了解即可)

image.png

  • Kafka实战之削峰填谷

image.png

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
[外链图片转存中…(img-YzEuQagS-1713302443023)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 24
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值