我的技术之路 – 工作五年的一次总结

衣带渐宽终不悔,为伊消得人憔悴。

王国维《人间词话》人生三境界之二

从12年接触编程写下第一行代码到现在,不经意已经走过了整整8个年头,步入职场也将满5年。偶尔回想起这些年的经历,在外企、互联网初创公司、垂直行业的独角兽和ToB软件公司之间不断沉浮,最终选择云计算和PaaS领域,也在各种的机缘巧合下把玩过dotnet、php、nodejs、java、golang等众多技术平台。

总结的话,我所走过的技术之路可以用四个阶段来概括。

第一阶段:做功能

初入职场,同大多数人一样,从内部系统的边边角角功能做起。在不满每天写各种脚本巡检系统数据的安逸生活中,开始翻看所使用的开发框架的源码,从此一发不可收拾,从ASP.NET 、WPF到.NET BCL(类同Java的JDK源码) ,也是从这个时候开始和Github有了不解之缘。

第二阶段:做框架

一半来自于对技术强烈的好奇心,一半来自于年轻技术人喜欢”show“的心态,逐渐不能满足于翻看源码,更想自己去”造轮子“。在这段时间里,自己实现过IoC、AOP、Mapper、Mvc、ORM、RPC、Web Server、Redis Client 和 APM的Client 等等框架类库,时常会因为benchmark提示10%而欣喜不已。我所掌握的设计模式和对技术细节的敏感也是得益于这个时期各种”造轮子“的经验。

也是在这个阶段,我打磨了自己的第一个开源项目,基于IoC和AOP的dotnet 框架 AspectCore,而后在做APM探针的时候结缘了SkyWalking,把SkyWalking作为唯一成熟的APM方案引入到dotnet 生态。该项目的发起人吴晟也作为我的”开源引路人“,教会了我如何去建设一个真正的开源项目和开源生态。

第三阶段:做架构

18年初我从某垂直行业的独角兽离职,加入到现在的公司,从互联网行业转型做企业软件交付。幸运的是,我遇到了一群优秀的同事和充满技术热情的团队,在这里我从参与APM、微服务治理平台开发,逐渐成长到现在负责整个PaaS平台的运维监控体系建设。

从0到1的过程,就是一部不断踩坑填坑的血泪史,经历过日志系统不稳定影响业务团队打包构建,经历过流量来的时候监控比业务系统更早挂掉的窘境,也经历过加班半年开发的平台一夕之间要推倒重来的迷茫。

好在,结果是好的。从最初的1000万日志就能把系统打垮,到现在轻松处理百亿级数据的弹性实时计算平台,自己主导的每一次的系统重构和架构升级,仿佛都是一次脱胎换骨的新生,让我对大型分布式系统架构的理解更深入一分。

如果说写框架的艺术是挖掘技术细节和深度,那么在做架构的时候,不仅需要在各种细节中抽丝剥茧,还要更多去思考功能抽象,从平台的角度去考虑系统的可复用、可伸缩和稳定性。

第四阶段:做产品

在很多技术人的认知中,产品和技术是相互割裂的两个对立面,并且在网上还流传有多不胜数的“产品经理vs程序员”的梗。但在我看来,一款优秀的产品恰恰是技术人最好的名片,如Foxmail之于张小龙、如WPS之于求伯君。

我们不断的在学习各种新技术,除了在找工作的时候应对面试之外,还可以考虑这些技术能产生什么价值。不管是业务产品还是技术产品,都是技术价值的最佳体现载体。

当然,不可否认的是,在产品设计和Coding之间确实存在很大的思维转变,你所面对的不再是计算机和代码,而要在跟客户、用户不断的打交道中找出他们的核心诉求,协调资源把诉求转换为对客户、对自己和对公司的落地价值。

做产品的过程,也是一个对行业和领域的认知不断加深的过程,在我面前,这将是一座充满机遇和挑战,需要继续勇攀的高峰。

写在最后

我的个人公众号”竹韵悠扬“开通也有一段时间了,因为自己的”懒惰“一直没有写过文章,今年开始决定把我在技术道路中的一些感悟和好玩的技术分享给大家,如果你对上面的文字感兴趣,那就来关注一下吧~