6 年主导 3 个项目,我终于成了别人眼中的大佬
共 2452字,需浏览 5分钟
·
2021-08-25 00:32
这是程序员小跃的第 157 篇原创分享
在极客时间的《设计模式之美》课程里,作者小争哥说过一句话:对人一生有很大影响的四样东西:机遇、方向、能力、努力,我觉得它们一起决定了你是否能“成事”。我把我的经历总结起来,很应景,就是我遇上了机遇,继而有了能力上的提升,方向上的把控,以及持续努力的行动。
回忆目前为止我主要经历了三个项目,仔细归类的话,这三个竟然还都有所不同。
我参与的第一个项目
第一个项目,是我刚毕业半年之后进到项目组的一个Android App 项目。之前 App 项目的主要业务逻辑是通过 JavaScript 编写的,Android 端调用 WebView 展现即可,所以很多流程都是依赖于 JavaScript 的同学去完成。
第一个技术就来了,当时的领导们觉得有必要全部原生化,就让我赶上了重构的时代,说是重构,其实就是对之前在 JavaScript 上的业务迁移到 Android 原生上。
庆幸的是,原有项目一开始做的就比较好,文档之类的相对来说也齐全,做主流业务的同事一直在项目组里,哪怕文档里没有的业务,自己把问题总结起来抽时间麻烦他,也能得到想要的答案,基于业务文档的编码还是相对轻松。
也许老天是注定需要给我一次锻炼的机会,在重构伊始,我的师傅当时的 Android 端负责人因为身体原因休息了一个多月,就让我这个徒弟去接手了当时复杂的,核心的业务,得到了一次快速成长的机会。
抓住第一波机会的我,就这样坑次坑次完成了人生中第一个商业化项目的重构。因为项目很庞大,经历了几个月的加班加点,上架的时候狂松了一口气。几个月的努力终于看到了回报,因为前期准备的材料都很充分,对于业务上的阻碍轻松扫除,这次重构对初入职场的我是很大的能力提升。
试想一下,一个只在学校里自学 Android 的科班生,第一次接手项目,不是反复的修改Bug,而是参与重大的版本改革,是多么的幸运;锻炼的成长不言而喻,你能相信一开始入行的时候,我连面向对象都一知半解吗?项目的洗礼,可比学校里参考书籍写Demo挑战大多了。
随之而来的第二个项目
第二个项目,是我去新公司之后的项目,做一个即时通信的项目。
我来公司之前,有一个即时通信的在用,是基于 Flash 编写的,从响应速度和稳定性来说都没有让领导和用户满意,当时项目组里没有 Java 的同事(新招一个毕业生之前也没怎么接触过 Java),领导想内部发掘 Java 的员工。我做了一个方向上的选择,所以,我的第二次机遇就在这个时候蹦出来。
我到公司的时候是 Android 开发,因为当时项目组有3个 Android,没有 Java,领导在征求大家的建议,问有没有想转的,我分析了自己的情况之后,主动要求转 Java,和老大一起去做这个即时通信框架。
我们选择 Netty 框架来进行,用 WebSocket 通信,又一次加班加点的拼命时刻。(加班并不可怕,有意义的加班都不会考虑下班这件事,只会考虑能给自己带来多少收益,多少收获。)这次没有文档,只有代码,也还是有幸运的部分,之前框架的负责人一直在项目组里。
难点就是,我需要看懂 Flash 的代码,然后一步步迁移过去。此次从零开始,也有一点遗憾,整个框架是老大搭建好的,我的核心任务是在计划时间之内,完全迁移即时通信的功能,尽快把项目跑通,调试上线完成。
完美的人生总是不存在的,所以尽管那么点遗憾,搭建框架的时候我没参与,但不妨碍我对 Netty 的理解,为此我还在掘金上付费购买了 Netty 学习的一个专栏,加深我对 Netty 的理解。
从客户端转到后端,给我最大的感触就是我看项目看的范围更大了,之前客户端只是很片面的看到自己所负责的功能,后端能把整个项目都看透,尤其是业务方面的知识点。
当然,因为初次参与后端,第一次上线,给我当头一棒,现实着实把我教育了一番。后端编码和客户端还是存在不同,因为我的不熟练,在项目上线的第一个晚上,因为扛不住峰值的压力,把网站给瘫痪了,业务宕机了一个小时,幸亏老大帮我解决。
这么严重的线上事故,给我当头一棒,后端完成代码只是第一步,线上安全运行才刚刚开始挑战。这也是让我坚定,在做业务的同时,需要持续的精进自己的技术,比如数据库的频繁读写,缓存的使用,缓存雪崩、击穿的处理等等。
正在进行中的项目
第三个项目,正在紧锣密鼓的进行中,从别的团队手里接收过来,没有文档,纯靠自己熟悉。这次的挑战更大,没有任何资料,只有App接口,参考接口一个个去熟悉项目,重构项目。
对于后端来说,除了代码是现成的,人都是从零开始的,又是一次重大的机遇摆在我面前,不抓住那是傻子。很多群里的同学,想参与项目还没机会呢,我总是时不时地能碰到好的机会,来提升我的能力,我也是醉了,我这是啥运气。
结语
正如我开头说的,总结我简短的几个项目经历(其实还有几个琐碎的项目,这里就省略了),就是我遇上了机遇。当每次机会来临的时候,放到你的面前,就看你怎么抓住了。一开始我是霸王硬上弓,但是到了后面就是不断地通过自己的学习,自己的努力,把能力提升上来;然后等待下一波机会的到来,或者是根据你的选择,去创造另一个机会。
这三次的经历,从我抓住机遇开始,后面又做了一次选择,当然加上自己平时的努力(平时多看书、多学习、多实践还是必要的)。不过跃哥的性格上目前有点刚,甚至有时候觉得自己做得很好,同事都没我强,我有天下无敌的感觉,导致我蒙蔽了双眼,还在努力尝试改进中。