查看原文
其他

一个 38 岁程序员,在技术圈自由游曳

OSCHINA OSC开源社区 2024-01-10
程超,一个 38 岁的程序员,面对互联网世界的暗流涌动,显得游刃有余。
最近,他正在忙着研究生毕业答辩,不过其生活节奏仍然非常规律:每天早上六点起床,跑步五到十公里;然后学英语背单词,已经坚持了七百六十多天;接着送孩子上学,再去上班,上班路上看技术文档或是练听力;晚上回去看看书,直到零点。
从事互联网行业 16 年,程超深耕支付、交易、订单等业务,颇擅长 DevOps、AIOps、基础架构、稳定性建设、高并发等技术。因此,热衷于分享知识的他,在技术圈留下了不少足迹,除了用 “小程故事多” 的网名发布了诸多的技术博文之外,还主导了《高可用可伸缩微服务架构》一书,并合著有《深入分布式缓存 —— 从原理到实践》,此外还翻译了《Spring5 设计模式》。
此外程超还被多个技术社区所认可,获得过 “腾讯云 TVP”“阿里云 MVP 成员”“云智慧最有价值专家” 等称号。
我们很想知道:在忙碌的工作之外,程超是如何达成这许多成就的;在职业生涯转折点,他的选择是什么;关于写作、出书、翻译,他有哪些心得可以分享;面对 AI 等新技术的到来,他又做了什么。为此,我们采访了程超,看看他如何在技术圈自由游曳。
程超,高级研发管理专家

一、能否介绍一下您当前的工作方向?

主要有两个:一是 DevOps 平台建设,二是 AI 工程建设。之前我一直负责公司的稳定性建设,以及 DevOps、AIOps 的体系建设,今年年初开始研究 AI 相关,建设公司的 AI 工程,目前已经上线一个平台支持公司的智能客服业务。


二、从事互联网行业 16 年,最引以为傲的成就是什么?

职业生涯挺长,有很多收获与感悟,总结下来:
在公司层面:
  • 在目前公司主导了 DevOps 和 AiOps 相关的工作,推动了多云架构的设计与研发,同时也负责团队管理。你的工作在公司内部得到了认可,获得了 2022 年度最佳领导奖和最佳技术团队奖。

  • 松果出行阶段,负责了多个业务线的核心工作,尤其是订单中台和用户中心的设计和架构工作。通过性能优化和微服务体系建设,你成功将服务性能从 500qps 提升到 3000qps。此外我设计和开发了多个关键系统,如订单重试中心、超时控制中心等。

  • 在易宝支付,我主要聚焦在支付平台和实时统计方面。在优化和重构支付平台的过程中,你将性能从 50TPS 提升到 200TPS,并且实现了可扩展性,这为公司带来了巨大的收益。同时获得了公司的年度 "工匠提名奖" 和 "开放分享奖"。

在个人层面:
负责书籍的撰写和翻译工作,包括《高可用可伸缩微服务架构》的主导、合著书籍《深入分布式缓存 —— 从原理到实践》以及翻译《Spring5 设计模式》。此外我还担任过极客时间的讲师,贡献过每日一课等视频课程。


三、您在过去的工作中,遇到最具挑战性的项目是什么?对您而言,在该项目中的最大收获是什么?

最具挑战的项目是支付交易平台,不仅需要平台提供高并发能力,同时也要保障系统的资金安全,与钱有关的项目往往都需要特别谨慎。
最大的收获是对自己的技术体系做了重新梳理,做项目要三思而后行,稳定性保障的多种技术方案和手段。


四、能否跟我们聊一下一路以来您的职业发展路径?在技术方向这块经历了什么样的变化?

个人坚持的理念是一专多能。首先是要专,从毕业到现在,我一直坚持 Java 技术方向,然而 Java 发展很快,从我刚接触的 Jdk1.5 一直发展到今天的 Java21,已经经历了非常多的版本,而我一直在坚持学习,虽然到目前还谈不上极为精通,但至少已经积累了大量工作经验。
其次是多能, 目前在市面上除了 Java 这个老牌开发语言,还有非常多其他类语言,比如 Go、Python、Rust 等等,每种语言的出现一定有它的优势和使用场景,因此需要根据项目情况、使用场景,适当选择最合适的语言来对项目进行整体提高。


五、在技术方向抉择的过程中,您是主动选择还是被动接受的?

从心理学的角度来讲,技术方向的主动选择会给人带来更多的自主感觉,主动选择自己熟悉的技术方向,更容易产生成就感,而成就感会带给人以责任感,也将伴随的是积极的态度与行动。
当然这个世界本来就是多样性,有主动的技术选择,就一定会存在被动的情况,当在某一场景下,自己无法把握技术方向,而只能变为被动选择的时候,应该选择接受,从整体上分析现状,改变自己的格局和视野,变化角度来看问题,积极调整心态,化被动为主动。


六、您是什么时候开始有自己明确的职业规划的?当工作方向跟职业规划发生冲突时,您是如何选择的?

我是工作到第五年的时候,开始认真思考自己的职业规则。
有一个网上看到的冷笑话。很多程序员每天都在写代码,每天都很忙,当面试官问他,你的职业规划是什么?程序员回答说:“没有 “。那么,如果你必须选择一个角色,你会选择什么?例如,技术总监。程序员回答说:“CEO”......
很多程序员在刚毕业工作的时候,往往前几年都是想多学习技术,多积累经验,当工作到一定时间,就会遇到职业瓶颈,这就需要认真思考自己未来应该如何规划,这往往也是程序员未来选择的分水岭。是一直做技术,做架构师、高级架构师、首席架构师,还是从事技术管理,做经理、总监、CTO ?还是有可能会转型,做产品、销前,或是创业?是要一直在一个领域深耕,还是会变换方向和领域,做个多面手?这里面应该如何选择呢?我们了解自己吗?自己是内向,还是外向,喜欢沟通,还是喜欢安静,这都是决定未来方向的衡量指标。
当工作方向与职业规划冲突的时候,不要轻易立刻下决定,要先思考:
  • 方向

假如你自己的职业规划目标是做架构师,那么现在公司决定让人做经理,那么管理性质的岗位就与架构师的目标不匹配,按常理来说应该止损,重新选择架构师的技术方向。但是重新选择的前提是,你之前制定的规划是合理的。为什么这样说的呢?我遇到一些朋友,他们也有自己的职业规划,结果深入沟通后才现,他们的职业规划并不十分合理,既不符合自身的优势或性格,也不符合现实情况。
  • 平台

其实方向不能抛开平台而存在,我们要考虑目前所处的平台如何。这里会涉及到公司与部门,假如公司走下坡路了,公司也没有明确的发展方向,无法让你在新的工作方向上提升自己的竞争力,那么当工作方向与规划冲突的时候,那这样的平台有可能会消耗自己的时间。


七、您先后在京东、360 和易宝支付等公司工作过。想知道在不同公司,您的工作方式和风格有何不同?

其实每家公司都有自己的特点与优点,但可以根据所处的行业,来匹配不同的工作方式。
京东: 因为公司规模非常大和人员非常多,所以沟通和协作可能需要更多的层级,并需要更多的协调工作来确保项目顺利推进。另外作为一个大型电商平台,京东可能更注重创新和用户体验,可能更倾向于尝试新技术和创新解决方案。
360: 安全领域可能更注重团队间的严格合规和保密性,可能有更多的审查和验证程序,以确保代码的安全性和质量,注重稳定性和已有的可靠技术。
易宝支付: 在金融领域,可能更加注重细节和合规性,以及资金安全性。可能有更严格的流程和规范,以确保系统的稳定性和安全性,做事风格是三思而后行,要充分考虑,认真考虑各种可能存在的情况,要能给客户带来稳定性和可靠性的体验。


八、不同公司对您的职业发展有何影响?在不同公司,您学到的最宝贵的经验是什么?

  • 在京东更多的是学习到了电商与互联网经验,学到了高并发场景的应用,收获了很多技术的最佳实践,以及在大公司与不同部门如何高效协作。

  • 在易宝支付我收获了如何建设稳定性的平台,如何站在用户角度去思考,如何带领一支大团队来高效协同,共同完成目标。此外公司还为我培训了大量管理方面的课程,让我的管理经验从野路子变成具有方法论的系统性实践。

  • 在现在公司,收获的更多是建立产品化思维,让我的想法不再仅是基于技术思维,要以产品角度来思考,让自己做的产品如何得到更好的用户体验,如何更快更高效地响应用户的需求与问题。

可以看到我的职业发展是一条从底层逐步向上层的过程,从底层技术思维到管理思维,再到产品思维。


九、互联网技术变化相当之快,您是如何应对挑战和变化的?

  • 需要持续学习,积极参加各种培训、讲座、研讨会等活动,学习最新的科技发展动态和应用技巧。

  • 培养团队协作能力,团队合作可以集思广益,共同面对挑战,解决难题。

  • 多关注信息来源,不断涌现的新技术和信息意味着需要更多的时间和精力去跟上这些变化。

  • 接受改变,应该以积极的心态去拥抱和适应,不能去抵制他们。


十、面对技术的快速变化,跟十年前的自己相比,心态有什么不一样吗?

十年前,自己更愿意在熟悉的领域深耕,如今自己心态更开放,更愿意接触不同的技术和方向,这中间有职位的变化导致,也有经过十年的技术沉淀后,技术视野需要变得宽广,不管是哪个方式,我始终持续学习。


十一、您当前关注互联网行业的哪些热点领域?将如何平衡个人发展和行业发展的关系?

当前最热的领域无非就是 AIGC 了,我一直在持续关注,不过幸运的是,我目前正在做这一相关的工作。
对于许多人来说,个人发展和职业发展是两个重要的方面,但却经常会出现平衡问题。有时候,我们会专注于一方面而忽视另一方面。如果我们只关注行业发展而不注重个人发展,我们可能会陷入职业倦怠。反之,如果我们仅关注个人发展而不注重行业发展,我们可能会错过许多职业机会。
其实我认为这两者完全可以做到相辅相成,行业发展代表的是趋势,个人发展只能代表自己某一场景下制定的目标。个人发展只是能过去发展的梳理,然后对未来的展望,当新的行业发展到来时,这将会对个人发展带来冲击和变动,我们将接受这一切,如果认为新的行业发展带来的是机遇和机会,那么可以适当调整个人的发展,将新行业发展与个人发展进行适当结合与融入,让个人发展变得与时俱进,始终保持竞争力才是根本。


十二、DevOps、AIOps 的概念近几年在国内颇为盛行,您是什么时候开始接触这方面的?有什么机缘巧合吗?

我是在 2014 开始正式接触并产生浓厚兴趣的,但当时我在负责业务线的部门,发现业务团队与运维团队协作并不是非常顺畅,存在着业务开发端,测试端和运维端的信息鸿沟,所以我想推动解决这个事,发现 DevOps 的核心更是解决这三者的关系的,打通软件交付过程中的 IT 工具链,使各个团队减少时间损耗,更高效地协作。于是我从国内外网站上看了几百篇相关文章,在社区里与相关朋友讨论 DevOps 的推动与发展,与公司高层沟通我的想法,与运维团队紧密沟通配合,开始推动 DevOps 在公司的落地。


十三、从了解 DevOps、AIOps 等概念到实际落地,您经历了怎样的一个过程,能够否结合案例聊一聊?实践 DevOps、AIOps 其中的难点是什么?

先谈谈其中的难点。
DevOps:
文化变革:DevOps 不仅仅是工具和流程,更是一种文化变革。最大的挑战之一是将团队从传统的瀑布式开发模式转变为迭代、自动化和协作的方式。这需要时间和领导层的支持。
自动化:自动化是 DevOps 的核心,但建立自动化流程需要投入大量时间和资源。自动化测试、部署和监控等方面的工具选择和集成是挑战之一。
工具链整合:在 DevOps 中,使用多种工具来实现自动化流程,但这些工具的整合和互操作性可能会带来复杂性和困难。
团队沟通与协作:从传统的团队结构转变为跨职能团队需要更多的沟通和协作。团队成员可能需要适应新的工作方式和角色。
文化变革和接受度:引入 DevOps 文化可能会遇到团队成员的抵制或不适应。确保他们理解变革的重要性并逐步接受需要耐心和教育。
持续学习与改进:DevOps 是一个持续改进的过程。持续学习新技术和最佳实践,以及不断改进工作流程是非常重要的。
AIOps:
数据质量和整合:AIOps 依赖于大量数据来进行分析和预测。确保数据的质量、完整性以及不同数据源的整合是挑战之一。
算法和模型选择:选择合适的机器学习算法和模型来应对特定的运维挑战需要一定的专业知识。在实践中,不同情况可能需要不同的算法,因此选择和调整模型是一个挑战。
解释性和透明性:对于许多业务场景来说,AI 模型的决策必须可解释和透明。这意味着需要找到平衡,确保模型的预测不仅仅是准确的,而且还能解释其背后的原因。
逐步采用:对于一些组织来说,接受和信任 AI 在运维中的作用可能需要时间。逐步展示 AI 在提高效率和准确性方面的成果是至关重要的。
团队技能提升:引入 AIOps 可能需要团队成员具备一定的机器学习和数据分析知识。这可能需要培训和技能提升计划。
监管和合规性考虑:在某些行业,AI 的使用可能受到监管和合规性要求的限制。确保 AI 系统符合相关法规是挑战之一。
我目前公司正是经历了这一阵痛,在前期依然是依靠传统运维的方式,导致生产和上线效率极低,因为变更导致的故障频出。而 DevOps 平台推出后,从研发生产域(需求管理、迭代管理、开发和测试),持续交付与布署(研发资源、发布管理、运行时管理、分析大盘、系统管理等),到产线运行域(aPaaS、bPaaS、tPaaS、dPaaS 以及多云管理平台、CMDB), SRE 域(智能分析与告警平台、排班中心、统一数据采集平台、技术中间件统一管理平台)等多领域进行统一自助管理,实现一站式全生命周期管理。


十四、大模型技术的发展,给 AIOps 带来了什么样的影响?面对大模型对 AIOps 技术带来的巨大影响,身处其中,您的感受是什么?

主要有四个方面的影响:
  • 智能决策支持:大模型技术能够处理更多更复杂的数据,使 AIOps 系统能够提供更智能的决策支持。

  • 异常检测和预测能力:大模型能够提供更准确和高效的异常检测和预测。通过分析历史数据和实时流数据,AIOps 系统可以更好地识别潜在的故障和异常模式,甚至在问题发生之前预测到可能出现的问题。

  • 自动化运维:借助大模型技术,AIOps 系统可以更好地实现自动化运维。这意味着系统能够自主识别问题并尝试自动修复,减少对人工干预的需求,提高运维效率。

  • 精细化的问题定位:有助于提供更精准的问题定位。通过对复杂数据的分析,AIOps 系统可以更准确地定位问题所在,提供更具针对性的解决方案。

大模型技术对 AIOps 的影响是革命性的。对我而言,身处这个变革中让我感到兴奋和充满挑战。这种变革为 AIOps 注入了更多可能性,让我们能够更全面、更智能地处理运维问题。这种感受就像站在技术的前沿,目睹着未来的可能性一样。同时,也带来了新的学习和适应等方面的挑战,但这也是促使自己不断进步和学习的机会。


十五、您先后参写了两本《高可用可伸缩微服务架构》、《深入分布式缓存》著作,又翻译《Spring5 设计模式》一书,想问您写作 / 翻译的初衷和动机是什么?

我之前在 CSDN 上写了二百多篇技术博客,其中包括微服务相关的,也包括缓存相关的,当时写作的初衷就是想把自己积累下来的博客文章能够以书籍的方式做个系统性梳理,这样不仅便于知识的系统化,同时也能更好地和读者进行交流。
而翻译的想法来源于我持续的英语学习,在翻译《Spring5 设计模式》书之前,我已经持续学习英语五年,深知学习英语的重要性,这是打开与世界交流的窗口,所以正好有朋友约我翻译这本书,所以我想做尝试,也是对自己多年英语学习的一个检验。


十六、这些创作给您的工作和生活有带来了什么变化?

首先这些创作本质上是会给自己带来技术影响力的提升,增加更多与同行交流的的机会,其次这也是一种深度学习和整理知识的过程,需要将复杂的技术概念转化为易于理解的内容,这种能力可以让我更好地将技术知识分享给其他人,同时也加深了自己对技术领域的理解。


十七、您在写作过程中的创作经验和心得可以分享吗?

写书本身是一件持续性的体力与脑力劳动,需要对自己的主题做出针对性的内容建设,同时也会占用大量的业余时间来写,我记得当时我每天早上六点起床开始写,写到八点然后赶快去上班,晚上下班回来经常写到零点左右,而且周末也会减少陪伴家人的时间。当然家人在这个过程中也给与我很大的支持和鼓励。
写作的过程往往是漫长的,很多时候遇到一些写作瓶颈后容易产生放弃的情绪,遇到这种情况,首先想到的一定是正向能量的输入,就是坚持,还有与出版社编辑或是朋友进行相关沟通,找到解决问题的办法,不能轻言放弃。
下面聊一下写书的过程:
  • 首先要考虑书籍的选题,如何确定选题,是选一个稀缺的书籍题目,还是在众多重复的主题之间想一个标新立异的。

  • 第二要考虑受众群体,其实越偏入门的书,越容易产生销售,越有深度的书,受众群体的层级就越高,写作难度也就越大。

  • 第三就是写作资料的收集,我们是否之前已经积累了大量与主题相关的材料,这点挺重要的。这决定你的写作速度,如果之前从来没有收集和创作过与主题相关的材料,那写作过程将是漫长的。

  • 第四就是要充分考虑写作大纲,大纲是书籍的灵魂,大纲的成功与否,将在一定程度上决定书籍的销量是否成功。

  • 第五是写作计划,什么时候开始写?什么时候写完?每个月的进度是多少?每个星期的进度要多少?每天都写多少?要做好统筹规划。

  • 第六就是真正写作了,在写作的过程中,你的自律能力会不断地提高,让你感觉到了一种机械的状态,而这种状态,会让你忘记掉时间,这就是心流。而自律依赖于目标,依赖于你的欲望。自律刚开始会打破你原有的习惯,会让你感觉是一件痛苦的事,但坚持一段时间后,就觉得,这其实没什么。

  • 第七是写作的时候,要考虑借助哪些工具。有些出版社采用的是在线 markdown,有一些出版社则接收的是 Word。所以,在你采用工具之前,先了解一下最后的格式。而我建议使用可以分布式协作的版本管理平台,诸如于 GitHub 或者云共享平台等。这样可以高效地进行协同。

  • 第八是要考虑,这本书是一个人写,还是多个人写,一个人写就是进度会慢,但更加聚焦,进度自己能把控。多人写作的话就需要团队管理能力,每个人的情况不一样,对于知识的掌握情况也不一样,他们目前的忙闲程度也不一样,如何更好地管控每个人的进度,就需要与大家一起讨论,制定每周例会沟通进度与遇到的问题,大家一起想办法解决,而不至于让其个作者太过落后,影响整体书籍进度的编写。


十八、听说您目前正在写一本稳定性建设相关的书,能否跟我们聊一聊这本书?为什么会选择这一方向?当前进展如何?

目前确实是在写一本关于稳定性建设的书,原因就是想把多年积累下来的经验做个总结分享给大家,这本书的构想囊括了从稳定性建设的总论到技术组件的建设,每个章节都涵盖了不同方面的主题,例如微服务带来的挑战、故障发现与定位、故障的快速解决,分布式事务、服务限流和熔断等等。为读者提供了系统稳定性建设的全面视角,从概念到实践都有所涉及。每章都有明确的目标,介绍了相关技术领域的知识点,并提供了实际场景下的解决方案。
当前这本书已经完成三分之一,相信明年上半年会写完出版。


十九、您获得过 “腾讯云 TVP”“阿里云 MVP”“云智慧最有价值专家” 等称号,能否结合自身案例谈一下,社区对个人成长和行业发展的重要性?

以我参与的,腾讯云 TVP 团队倾力打造的 TVP 第六期吐槽大会为例,由 6 位 腾讯云 TVP 专家与 Cloud Studio 产品及技术掌舵人强强碰撞,直面产品问题,共同为 Cloud Studio 产品指明提升方向,为 AI 时代云端 IDE 的未来发展探索更多可能。
技术的发展少不了 issue 区的反馈,产品的进步免不了用户的吐槽。腾讯云将产品使用开放出来,倾听业界专家与用户心声,持续打磨升级技术和产品能力,为用户提供更极致的产品体验。个人的成长也能够通过与社区专家的多次碰撞得到极大的提高与视野的开阔。


二十、您对个人未来发展有何期待?

目前正在从事 AIGC 相关的研究和研发,是我的兴趣点,也希望未来能够在这方面不断深耕与发展。


往期推荐




支持苹果芯片的Fedora发行版来了!Linus看了会狂喜

因躁狂症失业,知名开源项目作者“在线求打钱”

No Star, No Fix




这里有最新开源资讯、软件更新、技术干货等内容

点这里 ↓↓↓ 记得 关注✔ 标星⭐ 哦


继续滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存