这里是Z哥的个人公众号
每周五11:45 按时送达
当然了,也会时不时加个餐~
我的第「190」篇原创敬上
大家好,我是Z哥。是不是还没从5天的小长假里缓过来?没事,今天我们聊点轻松的,不费脑。
之前很少分享我自己的成长经历,今天恰好心血来潮来分享一下,也正好能让最近刚关注我的新朋友更快地了解我。
很多人误以为我在阿里工作,其实并没有。我从毕业之后就在上海的一家不知名的电商公司做,从最初的实习生,一步一步做到目前的技术部负责人。
整个过程中经历了几个质变阶段,我想,在发生这些质变的时候我当时正在做什么,应该对年轻的后辈们有一点参考价值。
回顾这九年,我可以将我的职业发展经历分为四个阶段。每个阶段描述的末尾我会总结核心关键词,送给正在路上的你一些参考。
/01 萌芽期(2012-2013)/
2012年2月,进入到公司实习。说来也巧,当时的面试官之所以让我进来实习,竟然是因为在面试的时候,我答对了几道正则表达式相关的题目。否则单凭最开始问的那些问题,估计这事就黄了。
而当时之所以有学习过正则表达式,是因为我当时帮着两位大学同寝室的同学做了两个毕业设计,其中一个项目有涉及到账户注册。为了让项目显得高端大气一些,所以当时折腾了一下正则表达式,弄个密码强度验证,哈哈。(当时是根据一份 13页的pdf 电子书学的正则表达式,事后才觉得那份真是短小精悍,精华啊)
进入工作后的一年多时间,没什么大事件发生,先是和另一位新员工一起做了一个内部用的新项目。这个项目其实只有一个雏形,后续是我们俩一起完善的。做这个不太被重视的项目看似低价值,不太能出“业绩”,实则是一个很好的展现自己在业务层面的想法和思路的机会。因为它没有专门的产品经理负责,完全是我们俩在发挥我们的想法,与 Leader 们讨论。在我们平时那种组织架构完整的,按部就班的项目迭代过程中,这样的机会反而比较少,特别是如果我作为一个新人,话语权就更小了。
大约大半年之后开始参与到了当时公司最核心的项目,自营 B2C 商城的日常开发中。我这个人有点完美主义倾向,所以在这个期间几乎没有遗留未修复的bug到第二天,除非是那种明显超出我当日完成修复能力的 Bug ,这种情况很少。
另外这个时候年轻啊,精力旺盛,外加没啥让自己分心的事物,下班到家就开始学习,写博客(那会我都发在我的 QQ 空间里),几乎天天写,每天差不多都捣腾到23:30之后。后来无意间被我们当时的部门负责人看到了,还在公司里夸奖了我一番。
这个时期的核心关键词:敬业、好学。
/02 成长期(2013-2016)/
可能是因为我第一段时期看上去比较勤奋吧,大约又过了大半年的时间,到2013年下半年,部门负责人提拔我做 B2C 商城团队的 Leader。我当时是心里慌慌的,因为我是以代替原先 Leader 的名义上位的,所以我的上位就是他的离职,第一次这么近地感受到职场的残酷。
原本我做的开发工作几乎都是后端,此时接手的整个 B2C 商城团队,包括前端部分,顿时压力山大。还好有当时做3个毕业设计项目时掌握的一些三脚猫的前端知识,不至于完全是个门外汉。
这个时期可以说是我在公司打响自己招牌的最重要的阶段,没有之一。
因为这个时期恰好也是公司的快速成长期。如果说公司初创是0-1,在市场站稳脚跟是1-10的话,这个时期就是10-1000的时候。
此时,随着公司的发展,不但业务体量增加了,业务线也多了,因此也带动了系统规模和复杂度的快速增加。
与此同时,开始出现一些以前不会出现的系统卡慢、CPU 100%、内存耗用异常地高、宕机等等问题。而且此时,OMS、ERP 等后端项目是重灾区,毕竟 B2C 商城一直以来是对外的项目,对项目质量的把控更加严格。(我在B2C商城项目中也学习到了不少经过精心设计的代码。)
在这个“多灾多难”的时期,起初所有人遇到性能和稳定性相关的问题几乎都是重启程序,最多看一看 CPU 和内存的使用是否异常。而且就算出现异常,如果在最近提交的代码中靠肉眼没看出问题,这事也就止步于此了,不会继续刨根问底。
假如这些问题一直不在我负责的项目里出现,我后续的发展会怎样还不好说。但是后来有一次 B2C 商城的 CPU 跑得很高。我硬着头皮凭着2年多的经验,尝试通过分析 dump 文件来排查问题。我之所以知道有这个方式是因为之前跟着视频自学编程的时候,视频里的讲师说这是至少有5年工作经验之后才能玩得转的东西,所以我一直以为这么高端的东西离我还很远,但是当问题摆在你眼前,并且束手无策的时候,也只能硬着头皮试试看了。
有幸的是,最后我根据网上搜寻到的资料,通过分析 dump 文件定位到了问题根源,而且我发现常用的指令就那十几个,在对这些指令熟悉之后定位问题非常快,基本上分分钟就能定位到问题的根源。
此时的我好像掉进山谷的张无忌学会了乾坤大挪移,我开始主动帮助其他项目组来定位线上的性能问题。看似帮助其他组好像对我没什么好处,但是在这个期间我分析 dump 的能力在不断提高,并且渐渐地让自己在整个技术部的影响力得到了增强。况且,整体上大家都在同一个公司,只有公司业务整体上发展好了,我们才能有更好的薪资待遇不是么。
慢慢地,其他人开始将我视为公司里技术最好的人。(打造自己的影响力其实很简单,去解决别人解决不了的问题就行)
很多人认为有了影响力是好事,自己的地位高了,还不好?但我想告诉你的是,同时也会有更多你“本职工作”之外的事情来找你,甚至导致我开始负责更多的项目,比如,增加负责了 OMS 、也偶尔客串一下 ERP 里的一些工作,帮他们处理一些疑难杂症。
这又会导致一个情况是,当遇到大促值班或者长假前后,人手不足的时候,会需要我帮忙顶上去。我还深刻地记得2015年双11,我连续37个小时没睡觉,一个人单挑 B2C 商城、OMS 系统、ERP 的打单程序,去优化他们的性能,让订单发货得以顺利进行。说实话,这样的事情真的不想来第二次了,太累了。(但是后续又遇到3、4次……)
与此同时,因为我开始花更多的时间来分析和处理各种性能相关的疑难杂症,对技术层面、对如何提高项目质量有了自己的理解。所以,我在2015年底写了一套基于 DDD 的开发框架在公司里运用,慢慢地,我又成为了公司里新技术的布道师。
也同时在2015年底,当时的技术部负责人决定将系统架构逐渐从单体应用往分布式系统转型,否则预计无法支撑接下来几年公司业务的发展。恰好此时我所负责的b2c商城系统已经能长期稳定运行了,所以我主动申请成立架构组,组建架构师团队把转型分布式系统给干了,这才开启了我的第三个阶段。
这个时期的核心关键词:避免本位意识,帮助别人也是在成就自己。敢于突破创新。
/03 成熟期(2016-2017)/
因为之前几年建立的影响力,所以这个时候我在技术上的话语权特别大,部门负责人也很支持我,基本上用什么技术全由我来决定。
所以在做架构期间,我在技术选型上的自由度非常大。这两年间,完成了除订单中心以外的核心业务的服务化独立,如商品、促销、会员等等。还引入或者自研了各种常用的中间件。如,服务治理、配置中心、MQ、分布式缓存等等。
另外,这个期间,我依旧会帮业务小组去解决疑难杂症。这个时候不完全为了继续提高影响力,而是为了让分布式系统的改造更加接地气,而不是建空中阁楼。
这个时期最耀眼的成绩是,2016年的双11因为改造并未完成所以系统没扛住,但是面对流量更大的2017年双11,非常顺利地扛住了流量冲击,系统不但没挂,连明显的卡顿都没出现。
这个时期的核心关键词:避免本位意识。做事要接地气,特别是那种全局性工作。
/04 蜕变期(2018-现在)/
由于某些原因,原来的部门负责人被调到其他部门去了,他向老板推荐我来接他的位置。要知道,当时我的 title 只是一个主管级,一下次跳过了经理,直接升到总监级。所以当时我压力又特别大,和第一次接 B2C 商城 Leader 那会差不多。
我让自己在新岗位上站稳脚跟的方式是,对组织架构和 KPI 机制进行了重新调整。目的一是让整个部门的关注点更加统一,目的二是让技术与业务更加地贴近而不是各自为战,目的三是让大家感受到新的工作方式开始了,从心理上意识到接下去要寻求变化。这可能就是所谓的“新官上任三把火”吧。
在这个时期,我将先“安内”,再“攘外”作为自己制定工作计划的核心思路。毕竟,刚接手的活不能将它越搞越乱不是么,先稳住是第一要点。
而且,经过前几年的快速发展,虽然说整个系统没啥大问题,但是小问题还真不少,这些每天都在冒出来的小问题积少成多其实还挺影响整体工作效率的。所以,第一个目标就是划出一部分时间把系统的整体稳定性提高。
同时还将开发与产品之间的工作流程进行了梳理,降低其中的不必要的内耗,进一步提高团队效率。
在以上这些措施显露成效之后,开始考虑“攘外”了。着手组建了大数据团队,将用户侧以及企业内部运作的各项关键指标进行梳理,以提高公司的决策效率和经营效率。
这个时期让我接触到了更多商业、市场相关的东西,说实话,现在我觉得现实的商业世界好像更好玩,对我更有吸引力一些。
作为部门的一把手之后,还感受到一个明显的变化就是和部门里其他同事的关系变得没之前那么亲密了,或多或少保持着一些距离,这可能就是所谓的“高处不胜寒”吧。
这个时期的核心关键词:视野不能局限于技术。做决定之前要三思,决定了就专注地做,否则就是整个团队跟着你左右乱撞。
好了,差不多就这么多吧。最后总结一下我这四段经历的关键词:
- 萌芽期:敬业、好学。
- 成长期:避免本位意识,帮助别人也是在成就自己。敢于突破创新。
- 成熟期:避免本位意识。做事要接地气,特别是那种非一线的全局性工作。
- 蜕变期:视野不能局限于技术。做决定之前要三思,决定了就专注地做,否则就是整个团队跟着你左右乱撞。
如果恰好现在我走在你的前面,那么希望我分享的这些经历能给你一些启发。希望你能早日到达你心目中的人生巅峰。
原创文章,转载请注明本文链接: https://zacharyfan.com/archives/1444.html
关于作者:张帆(Zachary,个人微信号:Zachary-ZF)。坚持用心打磨每一篇高质量原创。欢迎扫描二维码~
定期发表原创内容:架构设计丨分布式系统丨产品丨运营丨一些思考。
如果你是初级程序员,想提升但不知道如何下手。又或者做程序员多年,陷入了一些瓶颈想拓宽一下视野。欢迎关注我的公众号「跨界架构师」,回复「技术」,送你一份我长期收集和整理的思维导图。
如果你是运营,面对不断变化的市场束手无策。又或者想了解主流的运营策略,以丰富自己的“仓库”。欢迎关注我的公众号「跨界架构师」,回复「运营」,送你一份我长期收集和整理的思维导图。