文档章节

我是如何在2年内逆袭成为BAT年薪40W的资深开发工程师的?

宋庆离
 宋庆离
发布于 01/17 20:53
字数 2382
阅读 9543
收藏 4

我是如何在2年内逆袭成为BAT年薪40W的资深开发工程师的?

原创: IT互联网 芝士来了 2018-12-04

坐标:杭州 | 工作时间:2年 | 年薪:40W

毕业院校:普通二本(非计算机专业)

现任职位:BAT某公司资深开发工程师

 

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

 

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

 

焦躁阶段

 

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

 

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

 

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

 

(扫描文末二维码,即可获取完整脑图)

打开见识阶段

 

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

 

相比关系型数据库,NoSQL的优势在哪里,你们在什么场景下会用到?

分析日志里存的都是账号登陆信息,一天100G左右,找某一时间段内登陆次数最多的一个账号

你们的并发量有多大,对于雪崩现象是如何规避的?

 

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

 

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

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

知识深化阶段

 

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

 

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

 

聊一聊你对JVM的原理,如何减少Full GC的情况?

消息队列如何保证顺序消费?如何保证at least once特性?

数据是通过push还是pull方式给到消费端,各自有什么弊端?如果消费失败,可能是哪些原因引起?如果是因为网络原因引起,该如何解决?

 

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

 

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

 

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

 

逆袭路上的3点体会

 

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

 

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

 

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

 

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

 

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

 

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

网易云课堂@JAVA微专业----针对职业岗位的体系化培训,直击就业痛点,行业专家亲授,网易企业真实案例实践,助你成为企业关键性人才。

 

福利1  网易云课堂@微专业---《网易云课堂Java进阶免费系列直播课》

 

适听人群:Java初、中级开发工程师

每晚20:00会在网易云课堂由网易内部特邀高级技术讲师免费分享最新Java大厂技术

 

报名方式:

扫描下方二维码添加助教小姐姐微信,

通过审核后即可免费报名

 

 

福利2  Java开发资料包

 

该资料包中主要包括「大数据容器数据库架构技术文档」、「大型公司技术文摘」、「Java开发参考书籍」、「Java开发学习图谱」等内容,全方位扩充你的知识体系。

 

想要参与Java进阶免费系列直播课

以及获取Java开发工程师资料包的同学,

可以长按扫描下方二维码,

添加网易云课堂Java课程助教小姐姐

 

网易云课堂Java进阶免费系列直播课报名通道

免费课程,名额有限,先到先得~~

 

 

© 著作权归作者所有

共有 人打赏支持
宋庆离

宋庆离

粉丝 100
博文 36
码字总数 49422
作品 0
私信 提问
加载中

评论(14)

大嘻子
不如请作者先回答下二本其他专业又没有大厂镀金又没有大产品的经历如何通过BAT社招海选?
jackyZ
jackyZ
真能扯
暴猿
暴猿
呵呵
蒋同学
2年你逆袭到BAT资深开发,马云是你爷爷啊
kernel64
kernel64
他是如何2块钱抽中6000万巨奖的?
Action_-_
Action_-_
diao丝逆袭广告文
六九金服
六九金服
抛去最后的培训,前面的还可以看看。
粤利粤0
粤利粤0

引用来自“粤利粤0”的评论

呵呵

引用来自“粤利粤0”的评论

呵呵
呵呵
粤利粤0
粤利粤0

引用来自“粤利粤0”的评论

呵呵
呵呵
粤利粤0
粤利粤0
呵呵
FW: 2月数据库排行榜:MySQL 分数增长迅猛,Oracle 下降最多

2月数据库排行榜:MySQL 分数增长迅猛,Oracle 下降最多 局长 发布于 2019年02月02日 收藏 19 评论 23 我是如何在2年内逆袭成为BAT年薪40W的资深开发工程师的?>>> DB-Engines 数据库流行度排...

SamXIAO
02/04
0
0
我是如何在毕业2年内逆袭成为BAT年薪40W的资深开发工程师的?

  坐标:杭州 | 工作时间:2年 | 年薪:40W   毕业院校:普通二本(非计算机专业)   现任职位:BAT某公司资深开发工程师   身边的师弟师妹经常问到:非计算机专业出身,你是在2年内...

java进阶架构师
2018/12/05
0
0
程序员跳槽全攻略,再不开窍过了30岁就要后悔!

最近,有不少的程序员小伙伴们私信【程序员小灰】公众号关于跳槽的问题,今天就在这里统一解答。   首先,引用马云的一句话,员工离职的原因基本上可以归结为两点:钱,没给到位;心,受委屈...

bjweimengshu
2017/11/24
0
0
热门技术人员在公司招聘时薪资是如何定位的?

我有一个问题想请教 近期出现过很多热门的技术 比如 移动App开发 前端 大数据 数据挖掘机器学习之类 这些开发人员在市场上也是相对稀缺 受到公司的青睐 对于一些大公司都是有自己的技术人员职...

即时光影
2016/06/17
1K
9
年薪30W,2018年前端发展趋势分析

互联网发展如火如荼,前端开发在经历了前两年的火热之后,大浪淘沙,沉淀下来,计算机科学基础的核心没有变化,而其领域将继续分化,专业将细分。 行业的持续发展使前后端逐渐融合,走向全栈...

心旗
2018/05/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

php register_globals将接收参数转为全局变量

最近在看公司旧的系统的时候发现一个很奇怪的事情,很多页面用的变量找不到源头,没有定义也不是接收,意思是腾空出现的。 经排查,原来是php配置做的好事:register_globals = On。registe...

shikamaru
39分钟前
9
0
Linux 交换分区swap

一、创建和启用swap交换区 如果你的服务器的总是报告内存不足,并且时常因为内存不足而引发服务被强制kill的话,在不增加物理内存的情况下,启用swap交换区作为虚拟内存是一个不错的选择,我...

Yue_Chen
41分钟前
4
0
notepad++如何使用列块编辑模式?

notepad++如何使用列块编辑模式? 听语音 | 浏览:18584 | 更新:2015-12-22 10:56 | 标签:软件 1 2 3 4 5 6 7 分步阅读 notepad++是一款功能强大的文本编辑器,可以支持各种不同的文本类型...

linjin200
43分钟前
1
0
Java 基础语法

一个Java程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作。下面简要介绍下类、对象、方法和实例变量的概念。 对象:对象是类的一个实例,有状态和行为。例如,一条...

二九结狐六体
47分钟前
3
0
研发团队资源成本优化实践

背景 工程师主要面对的是技术挑战,更关注技术层面的目标。研发团队的管理者则会把实现项目成果和业务需求作为核心目标。实际项目中,研发团队所需资源(比如物理机器、内存、硬盘、网络带宽...

美团技术团队
51分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部