普二本,两年经验逆袭BAT大厂拿50W offer的辛酸之路

身边的师弟师妹经常问到:非计算机专业出身,你是在2年内如何逆袭成BAT年薪45W的资深开发工程师的。其实很简单——努力!

我16年毕业于普通的二本学校,非计算机专业出身,只因为对软件开发感兴趣,所以找工作的时候就一直投IT行业的职位。刚踏入这个行业时,以为突击一下东拼西凑的面试材料,就能有个很好的收获。结果却是,别说大公司了,就是很多看不上的小公司的笔试题都过不去。

焦躁阶段

后来我去了本地的一个小公司去做服务端的开发。虽然叫服务端开发,但其实就是做系统指标监控功能,从DB中读取一些指标数据,通过图表的形式展现在浏览器中,所用的技术无非就是Spring MVC那一套。这种CRUD的工作内容做时间长了,就纯粹是体力劳动了,技术视野没办法打开。

即使写这么简单的功能代码,却还总是被leader批评,说我写的代码质量太差,配不上这几千块的工资。人总是要脸面的,为了改变这种状况,就开始想着如何在平凡的工作中把事情做到极致,开始关注代码质量,开始真正的啃起了《Java编程思想》、《effective java》、《设计模式》这些书。

同时强迫自己在代码开发前,多画一些架构图、数据流程图,写代码的时候也强迫自己代码分层,经过半年的磨炼,渐渐的也能写出一些松耦合高内聚的代码,也改变了满屏if-else乱飞的现象。leader也不再说我代码差了,还给我涨了几百块钱(知识就是金钱)!

低学历毕业,工作两年成功逆袭进入BAT企业,现如今年薪45W!

打开见识阶段

当时我以为这就是优秀程序员的核心能力,就鼓足勇气去投了一些大公司的职位,却没收到一个面试邀请函。后来投了几个小公司的面试,收到了面试却没收到offer,因为有的面试题我根本没有概念,比如:

相比关系型数据库,NoSQL的优势在哪里,你们在什么场景下会用到?分析日志里存的都是账号登陆信息,一天100G左右,找某一时间段内登陆次数最多的一个账号你们的并发量有多大,对于雪崩现象是如何规避的?

这些问题让我意识到:语法与设计模式只是程序员基本技能而已,要想进一步发展,必须在数据结构、高并发、分布式技术等方面提高。最开始学习的时候是很艰难的,基础弱,加上工作中又没有这些技术的使用场景,所以只能在论坛、博客等看零碎的文章,进步比较慢。

要想系统的学习,图书和网络课程是比较好的选择。我买了诸如《java并发编程实践》、《大型分布式网站架构设计与时间》、《Spring Cloud与微服务构建》等书,来来回回看了好几遍。然后在网上看了些视频,有免费的,也有收费的。我还花了近半年时间系统性地学习了一套课程,学完之后对Java相关的技能有了更为体系化的了解。同时,对于非科班出身或基础知识不够扎实的工程师来说,也可以有效起到查漏补缺的作用。

低学历毕业,工作两年成功逆袭进入BAT企业,现如今年薪45W!

低学历毕业,工作两年成功逆袭进入BAT企业,现如今年薪45W!

之后我就试着在工作中利用这些技术,当时的状态就是“拿着锤子后,看到哪里都是钉子”,学到一个新技术后,就想强行用在任何项目上,leader有时候说我疯了,可我觉得也不必鄙视这种经历,凡事都有一个认知过程,这也是一种积累。

知识深化阶段

大概17年下半年,我就投了一些大的互联网公司职位,比上次好一点,有一些公司给我了面试邀请,但最后却都还是没收到offer。

后来复盘一下面试问题,发现我在整体技术面上回答得较好,但在细节技术点上,有点吃力,比如面试官问:

聊一聊你对JVM的原理,如何减少Full GC的情况?消息队列如何保证顺序消费?如何保证at least once特性?数据是通过push还是pull方式给到消费端,各自有什么弊端?如果消费失败,可能是哪些原因引起?如果是因为网络原因引起,该如何解决?

通俗的话来讲,就是虽然我见识了各种各样的轮子了,也知道各种轮子适合在什么样的路上跑,但不知道为什么适合。针对这种情况,结合已有的知识体系,选择了一个方面进行了深入,我当时选的是消息队列的深入研究,从网络协议、服务端消息存储、客户端消费、各种异常情况的处理等都摸了一遍。

这个过程我会针对每个环节进行假设反问,如果这一步失败了,会发生什么情况,该如何处理?这种思维培养了我对技术问题细节思考的能力,现在看来真的是受益匪浅。

18年上半年,我又去试了大公司的面试,虽然过程磕磕绊绊,但是面试官觉得我思考问题还是挺全面的,潜力比较大,因此最后收到了待遇丰厚的Offer!

逆袭路上的3点体会

为什么我会一直执念于要去BAT之类的大型互联网公司工作?除了因为薪水诱人,更是因为能有大规模分布式的技术可以挑战。

回首两年来的升级打怪之路,从16年毕业于普通的二本学校,到成为顶尖互联网公司的资深Java开发工程师,不免感慨良多。如果说让我给大家分享几点心得,那以下的3点应该是我近两年来最大的感触:

跳出舒适圈,找到目标是前进的起点。如果你在自己当下的工作中无法接触太多的新技术,可以尝试多去外面公司面试,这能在一定程度上帮助自己找到学习的目标;

跳槽要趁早,杜绝成为温水里的青蛙。对于想跳槽到大公司的同学来说,一定要趁早。因为同样的水平情况下,大公司更会看中「潜力」—— 年龄越大,潜力越小;

始终保持你的学习欲。对于工程师来说,学习永无止境。但埋头苦学是不够的,你要注意自己的学习一定要有系统性,除了手头的项目和身边“大牛”的指导外,看书和网络课程是最有效的方法,用少量的金钱换取宝贵的时间,是非常值得的。

如果你依然觉得有些茫然,不如跟有多年Java开发经验的资深工程师聊一聊。

关注我添加VX:MXW5308 即可免费领取获取往期Java高级架构资料、源码、笔记、视频。Dubbo、Redis、设计模式、Netty、zookeeper、Spring cloud、分布式、高并发等架构技术

2021金三银四面试如何突击:

亿级流量下的缓存设计,一节课搞定高并发面试

  1. 通过redis解决千万级并发压力架构设计

  2. 项目中遇到哪些问题?设计方案?秒杀?雪崩?穿透?击穿?预热?

  3. 无锁化,串行化,扁平化克制高并发瓶颈!

  4. redis 宕机了咋办,如何做到可用性和一致性的trad off?

  5. 12306抢票,微信红包,电商详情页等高频面试问题!

  6. redis持久化,主从复制,分片集群在BAT中的具体使用设计

  7. redis分布式锁造成的架构压力和错误的架构设计问题

  8. 正确用布隆过滤器,跳表skiplist,HashMap解决并发场景问题

  9. 如何和面试官互动获得offer

  10. 学习方法和面试方法分享

  11. 逃避认知偏差,技术诅咒,幸存者偏差

月薪2w必问 spring源码,如何才能完美应对,这节课给你答案

  1. 图解spring IOC的实现机制

  2. spring的扩展实现一:BeanFactoryPostProcessor接口详解

  3. spring的扩展实现二:BeanPostProcessor接口详解

  4. 必知必会的13个Bean生命周期处理机制

  5. BeanFactory和FactoryBean的接口对比与实现机制

  6. 循环依赖问题中的三级缓存和提前暴露对象原理讲解

  7. jdk和cglib动态代理的原理及源码讲解

  8. Spring AOP的实现机制及扩展实现

  9. 巧妙回答spring源码问题,让你成为源码专家

私人定制-在线简历指导,让你从小白到面霸

  1. 月薪5k~15k初中级程序员的技能栈与简历 

  2. 月薪15k~25k中高级程序员的技能栈与简历 

  3. 月薪30k+高级程序员/架构师的技能栈与简历 

  4. 和HR谈工资的时候有哪些话不该说

  5. 私人定制-在线修改简历

  6. 必须要知道的简历中的套路

  7. 如何应对学历低/外包/背调

  8. 在二三线城市工作如何要薪水

99%的人都会死的多线程调优难点

  1. 从响应和吞吐的高维度理解什么是高并发调优

  2. 为什么有了synchronized还需要JUC?

  3. 为什么CAS和AQS是JUC的核心?

  4. 可见、有序、原子-深入JVM源码理解多线程三大特性

  5. 门闩(Latch)同步器适用于什么场景?

  6. 篱笆(Barrier)同步器适用于什么场景?

  7. 信号量(Semaphore)同步器适用于什么场景?

  8. 阶段同步器(Phaser)适用于什么场景?

  9. 原生锁支持(LockSupport)适用于什么场景?

  10. 三大场景在实战中运用线程池提升系统性能

  11. 生产环境中的线程池如何监控?

  12. 线程池有哪些拒绝策略?

  13. 有哪些拒绝策略应用在生产环境中?

  14. 线程池有哪些在实际中的应用场景?

想去互联网公司的小伙伴,SpringCloud微服务项目必问的10个问题

  1. 高并发场景下秒杀超卖Bug复现

  2. 秒杀场景下JVM锁现场压测实战

  3. 高并发场景下,分布式锁思路分析

  4. 高并发秒杀场景下MySQL分布式锁实战

  5. 高并发秒杀场景下Redis分布式锁实战

  6. 如何在双十一大促中提升分布式锁性能

  7. 抗住双十一流量峰值的其他方案

  8. 从源码级别看分布式锁如何实现

  9. CAP和BASE理论在分布式场景中的应用 

  10. 分布式锁全部代码实战压测演示

低学历毕业,工作两年成功逆袭进入BAT企业,现如今年薪45W!

转发+转发+转发后

关注我添加VX:MXW5308 即可免费领取获取往期Java高级架构资料、源码、笔记、视频。Dubbo、Redis、设计模式、Netty、zookeeper、Spring cloud、分布式、高并发等架构技术

猜你喜欢

转载自blog.csdn.net/weixin_45132238/article/details/114976871