十年大厂Android开发经验,现在已经转行,这是他给出的五条建议

这是群里一个大佬的故事。 笔者是2009年本科毕业的,有幸在毕业的第一年就进入腾讯。后面也一直都在大厂,其中绝大多数的时间都是在搞Android开发,零零总总也是将近十年的开发经验。

生正逢时,这也算是吃上第一波红利的人。但是后面还是决定转行,这里就和大家唠一唠笔者作为一个老Android的故事和几条建议吧。

生正逢时

毕业的第一年,机缘巧合下我进入QQ后台。那一年,我完成了一个学生到职业人士的蜕变,也完成了学生式技术思维到职业式技术思维的转变。

当时的 QQ 主要还在PC端,移动互联网还没有兴起。我是从事分布式系统的开发,参与的第一个项目是QQ分布式后台的接入层系统。

我作为一个毕业生加入到了这个团队,可以说是接触到了当时即时通信领域最尖端的技术。

生正逢时,大抵就是说的我吧。

工作二三事

我觉得在当时我的工作中最难的事情就是在线状态的同步。以前PC端的QQ,有在线状态的功能,你登陆上线后,你的好友能在一秒的延时内,接收到你状态的变化。

那时 QQ 已经接近1亿人同时在线,1亿人在线状态的互相同步,所带来的同步流量是很恐怖的。QQ接入层最牛B的地方,就是利用流量分层的思想,使得1亿人的状态同步,在有限的带宽资源下达成了,而且端到端的时延控制在了1秒内。

这些技术在当时可以说是顶尖了,我感到很荣幸。

在那一年多的时间里,我懂得了什么是架构设计,什么是定性分析和定量分析,接触了海量分布式系统的设计理念,培养起了软件质量的意识,心理上也完成了一个学生到职场人士的改变。

2010年,因家庭的原因,我转岗到了QQ邮箱。因为原来的技术基础比较好,入职后进入到了基础架构团队,做自研存储系统的研发。

小角色的成长

2011年,微信项目立项,半年后被安排进微信项目组。

进入项目组后,接到的第一个任务,是研发一套适合微信业务的存储系统。

当时的技术总监对这个新的存储系统提出了很高的要求,要求实现双主灾备而且要求性能要有三倍的提升。

项目发展初期,人手严重不足。

初始只有我跟我 leader 做这块的事情,但我 leader 因为还有其它的任务,所以真正 coding 的只有我一个人。

现在回想起来,当时那真是一个赶鸭子上架的项目。不管是项目要求还是人力,时间,在现在看来都是极不合理的,但客观环境就那样,你不上也得上!

当时我经历了半年艰苦的过程,我几次想过放弃,当时外面新的 offer 都谈好了,不过最后还是坚持了下来。

现在想来,那半年,是这十年,成长最快的时期。技术能力,技术视野,心理承受能力,都上了一个新层次。我也深刻体会到了:要历经风雨,才能看见彩虹!成长,真的是被逼出来的!

写下这段的时候,我内心依然带着一份激动!

顺理成章的,我成为这个存储系统的主负责人,随着业务的高速发展,业务侧对存储系统也不断提出新的需求和新的要求。

到2014年的时候,系统已经经历了3次重大迭代,从最初勉强可用的小系统发展到了覆盖微信百分之九十以上业务的存储系统。

我也由一个普通工程师成长为了一名高级工程师。

当时微信的发展迅猛,而且微信有很好的产品文化,我在基础架构团队做了一段时间后,也想多接触接触产品,于是就申请转岗到了开放平台。

开发平台团队当时的主要业务是公众号。

但是,进入的第一年,我感到了不适应。

在技术上,相比基础架构团队,业务团队在技术规范,软件质量保障上的投入都比较少,有段时间,我还觉得有些技术的事情做的太过 “随意”。

在产品上,经常跟不上产品的思路,产品说的每句话都能听懂,但却不懂得这背后的考量,想不清楚为什么要这么做。

2015年左右的时间,我又进入到了快速成长期,不过这次成长是偏业务的成长。

我带着做基础架构积累下来的经验,对已有的业务系统进行了全面的 review , 带着几个同学,一起把已有的基础系统,进行了优化和重构,使得业务的稳定性上了一个台阶。

自己在这个过程中,也培养起了更好的业务意识:不追求最好,只要最合适!

同时,自己也获得了任命,开始带技术团队。

接下来几年里,除了技术经验,自身的业务经验,产品思维,管理能力都得到了巨大的提升。

我觉得,这又是一次蜕变的过程!

以上是我个人的三段关键经历,因为文字篇幅的缘故,有很多的故事没提及,没展开。这些故事,有些在以前的文章里面分享过了,还有些,后面也会继续分享给大家。下面说一下我的经验分享。

自身的感悟

做了这么多年的Android开发,我想和大家分享一下自己。

1. 技术增长有黄金时期,好好把握
通常毕业一两年后,都可以获得快速的成长,但后续的成长就很依赖于是否碰上好项目了。没有好的项目,没有实战的经历,技术能力很难有根本性的提升。

2.我们需要提高的不仅仅只有技术
作为一名程序员,技术能力是很重要的。我建议职业生涯的早期,都要专注于技术,保证自己能有一项核心竞争力,但不应该止于技术,如果有机会接触业务,产品,管理,我建议都应该去试试。

3.不要太早进入管理岗(提高自己更重要)
管理是耗费精力的,特别是新晋的管理者,往往被搞到焦头烂额,无暇顾及自身的技术提升,所以我建议不要过早进入管理,工作三至五年后,再进入比较好。

4.尽早开始做职业规划
职业规划不是一个静态的计划而是随自身发展而变化的。需要注意的是:一,要尽早开始,最好在进入工作后就开始思考这个事情;二,不要追求完美,没有完美的职业规划,合适自己才是最好的!

5.要有恒心和毅力
至少我的经历里面,每次的蜕变都伴随着心理上的煎熬,准确的说,是经历过了这种煎熬,才带来了蜕变。而每次的蜕变,都带来了视野上的开阔和心理舒适区的极大扩展。所以,对于成长的痛苦,你应该要有心理准备!


把时间拉长,从一年,三年,五年,十年,甚至二十年,你会发现,很多人都已经放弃不跑了。大部分可能在五年至十年时就呆在原地不动了,所以,只要能够坚持二十年以上的尽力向前,你一定可以超越很多人!

我从事Android开发这么多年,我从书籍、网络,以及自己的一些经验总结了一套知识体系,包括各种学习PDF、面试文档、架构视频等。

在这里感谢帮助过我的各位前辈,同时我也把这些东西拿出来分享给大家。

耗时298天,8大模块、3382页66万字,Android开发核心知识笔记!

猜你喜欢

转载自blog.csdn.net/BUGgogogo/article/details/114241565