• 从程序员到架构师,如何才能快速成长?


    从程序员到架构师,技术成长之路分为哪几个阶段?架构师是如何持续学习,提升认知的?切换技术赛道后,如何才能快速适应新方向?企业如何做好开源合规治理?

    本期《超级连麦》,我们邀请到了安势信息资深解决方案架构师、ArchSummit 深圳 2022 讲师朱贤曼,和极客邦科技创始人兼 CEO &TGO 鲲鹏会发起人、校长霍太稳,极客邦科技事业合伙人、InfoQ 极客传媒总经理汪丹,共话程序员到架构师的技术成长之路。内容有删减,感兴趣的同学可进入“霍太稳视频号”观看直播回放。

    技术人如何快速适应新方向?

    汪丹:朱贤曼老师这些年一直在不停地踏进新领域,从最开始写 C++,到做出口管制合规、数字化转型,再到后来做开源合规治理。您在一个新的领域里,是如何保持不断向上,快速适应新方向的?

    朱贤曼:我很赞同一句话,人生在于折腾。我这几年也是一直在折腾,不管是换岗位还是换公司等等。但是 折腾也一定要有自己的规划 ,比如我会尽可能地朝着复合型方面去发展,发挥自己的优势。

    这也是一个不断积累的过程,可能需要经历几个关键阶段。在最初的学习阶段,比如刚开始参与工作的那段时间里,那会面对的通常是一个系统中的某个小模块,对整个系统的理解也不太足。但随着越来越深入,不断地主动学习,自己经验多了,也会逐渐站到更高的角度去看待问题。

    当然在这个过程中也会经历阵痛期,有挫败感,但随着你视野的提升,你的想法真的也会改变许多。现在大家都在聊 T 型人才,那个竖就是你专注的方向,横就是你拓宽的视野。

    做架构师,理解技术是基础,但是在技术之外,也要能够理解业务。当你对业务理解得非常透彻,甚至比用户更理解的时候,你才能更好地去设计架构。再进一步,架构师还需要和各种角色打交道,比如客户、供应商、法务等等。

    汪丹:您提到需要站在更高的角度去看待问题,就这一点而言,在实际工作中还是比较难做到的。普通技术人怎样才能从更高的角度去看待自己的工作,实现自身的认知跨越?

    朱贤曼:在回答这个问题之前,我想和大家分享一个我曾经走过的弯路。过去刚毕业参加工作的时候,我也会对一些领导交代给我的工作产生疑问:工资就这么多,我就是一个普通的程序员,为什么要让我做系统架构?那个时候只是觉得领导在给我分活儿,对这个行为也不太理解。但后来才发现,在这个过程中,你成长的速度会非常快。

    所以后来,我也会站在更高的位置看待自己的工作,对自己的要求高一点,并试着站在领导的角度去考虑问题,想象如果我是他,我会怎么做,他做的和我想的是不是一样。这也是我的一点小经验。

    可能你一开始不太理解,但当你最终反应过来的时候才会明白,这些经历并没有让你吃亏,最终都是自己得到了成长。其实这个道理在过去也有人和我说过,但当你没有悟到其中奥义的时候,你很难转变自己的认知,最终错过了多年成长期,一直停滞不前。

    汪丹:对于这个话题,我也想问一下 Kevin,Kevin 站在 CEO 的角度,是如何挖掘团队同学潜力的?怎样才能让团队成员更快地站在更高角度看问题,实现认知跨越?

    霍太稳:我觉得不是每个人都能有这样的觉悟的,一百个人里面可能有一两个就已经很不错了。所以对于团队的负责人来说,不要抱特别大的希望,先接受这样的现实,因为这条路注定艰辛,失败概率也比较高,大部分人是不太会选择的。

    另外,很重要的一点就是要从源头上去找到优秀的人才,让那些想向上发展、有野心的同学加入进来。作为领导,你需要判断哪些人对名和利是有追求的,这里的名和利不是贬义词,而是褒义词。用一句俗语来讲,不想当将军的士兵不是一个好士兵。如果他本身是一个特别佛系,对待任何事情都无所谓的人,那么不要把他硬架上去,否则只会两败俱伤。

    从程序员到架构师,如何快速学习、提升自我?

    汪丹:世界上第一位程序员就是女性,女性在技术开发上有哪些优势和痛点?

    朱贤曼:我本科和硕士读的都是计算机专业,在我们这个专业里,确实女同学比较少。工作之后我发现,在个别公司,女性要想拿到 offer,需要比男生更优秀。

    我的个人观点是,女性在技术开发上既有优势,也有劣势。优势方面,女性会偏稳重,且更细心。架构设计并不是说技术越牛越新,就是最适合的。事实上架构设计有很多约束条件,比如时间、成本、质量等等,需要更稳重地从多个角度进行思考。另外女性普遍更擅长沟通,架构师通常需要和各种角色打交道,协调各个部门,良好的沟通可以大幅提高效率。劣势主要来自于精力方面,软件行业技术变化比较快,需要持续深耕才能保证自己不会落伍。

    汪丹:Kevin 针对这个话题有什么见解吗?

    霍太稳:我们不会把性别当做一个问题,在我们公司,大部分高管都是女孩子。所以我的观点是,谁行谁上。公司需要做的就是,根据自身的特点和运营模式,去找到合适的人。

    汪丹:从程序员到架构师,技术成长之路分为哪几个阶段?

    朱贤曼:第一个阶段就是学习阶段,从专注实现系统中的某个模块开始。我是一个相对比较好奇的人,在这个过程中我也会渐渐地思考,一点点地对整个系统有了更全面的认识。另外,我也会经常看前辈们留下的设计文档,从中可以学习他们的所做所想,这里面不仅涉及到技术问题,还包括很多业务问题。

    在第二个阶段,当你有了一定的思考后,也需要进行输出。技术人需要有意识地参加一些技术会议,写技术博客等等,不仅能帮助到别人,也能对自己的知识进行梳理,准备的过程也是一个能让自己学习提升的过程。

    汪丹:有用户提问说,做业务架构一定要懂技术吗?

    朱贤曼:做业务架构设计需要你了解行业、客户,并且对需求进行分析。不过,要想做好业务架构,最好还是得懂技术,可能你不一定精通,但至少要有基本的技术知识,比如掌握通用的框架以及计算语言等等,否则你会遇到很多困难。

    汪丹:朱贤曼老师平时是如何学习,提升自己的?Kevin 作为 CEO,又是怎么进行个人学习的?

    朱贤曼:说到学习,我认为最好的方式就是先和项目组里的高人学,看看他们是怎么做、怎么想的。另外就是我刚提到的多输出,做好技术积累的同时,也能开阔自身的视野。

    还有很重要的一点是,一定要找到一个项目锻炼自己。我们常说“听过很多道理,依然过不好这一生”,很多东西只有你在实践中得到锻炼,才能获得进步。机会是靠自己争取的,比如,当你在一个项目上步入瓶颈期,就需要主动申请参加其他项目,让自己获得成长。如果有哪些项目涉及到了新领域,你也可以主动请缨,虽然新项目会让你遇到更多的挑战,但也能让你有机会获得成长。

    霍太稳:每个人在学习上可能都会有个出发点。比如朱贤曼老师希望能成为一个更好的架构师,对于我来说,作为公司 CEO,我的出发点是希望公司可以更好地活着。

    就学习而言,我认为效果比较好的方式有以下三种:

    • 向高人学习。这也是极客邦这家公司一直强调的,我们在内部会开设精进学堂、未来领袖训练营等等,通过邀请一些公司内部、外部的优秀同学过来做分享,把他们在某个领域的见解传递给大家,从而让大家有所收获。

    • 从书里学习。已经有人把这些知识整理得非常清楚了,你从中能找到共鸣,并且也能快速提升自己。很多优秀的同学都保持了主动阅读的习惯,无论是阅读纸质书籍、电子书,还是像极客时间这样的知识服务内容,我认为不管什么形式,只要是开卷就是有益的。

    • 到项目中去练。如果你一直只听别人怎么讲,不去自己实际地应用,那么即便你学习了很多东西,也很难沉淀出自己的。与其临渊羡鱼,不如退而结网。但需要清楚的一个逻辑是,不要指望今天学习完,明天就能用上,后天就能看到效果,这个相当于天方夜谭。现实情况是,可能你做的大量工作都是无用的、重复的,甚至是错误的,但如果没有这些工作作为积累,很难做出正确的事情。

    我想表达的是,对于普通人而言,还是要保持学习的习惯,多和别人沟通学习,三人行必有我师。另外还要多阅读大量的资料,找到项目操练。台上一分钟,台下十年功。这种方式看上去比较慢,但却很务实,也是最有效果的。

    企业做开源合规,具备安全意识是基础

    汪丹:朱贤曼老师目前在做开源合规治理相关的工作,根据您的观察,目前的科技公司是否都应该关注开源软件安全问题?

    朱贤曼:理论上来说,都应该关注这个问题。但目前的现状是,国内偏大型公司在这一方面做的比较好,对于中小公司而言,更多还是会优先关注功能等问题。因为开源合规对于公司而言是一个成本中心,而不是创收中心,中小公司更多考虑的还是如何活下来。但可以看到的是,这几年国内对于开源的讨论越来越多,相信慢慢也会有更多的人开始关注开源合规与安全问题。

    汪丹:中小公司怎样才能规避开源安全问题?

    霍太稳:这个问题比较大,也是大家现在比较关心的一个话题。我最近在和专家交流后发现,从大的层面上来讲,安全在任何情况下都是第一位的,公司高管尤其是技术高管,需要特别注意这些问题,并且安全问题怎么强调都不为过。

    但是坦白来讲,具体到实现层面,包括程序设计等,挑战还是比较大的。但只要你有了安全的意识,并且愿意在技术上投入成本去解决这个事情,并且说服自己的老板也来关注安全问题,那么这个问题终将迎刃而解。

    朱贤曼:Kevin 说的很专业。企业做开源合规治理,最重要的就是先具备安全合规意识,这个是基础,甚至比其他层面还要重要。

    汪丹:现在行业里是否有一些软件或工具可以帮助企业规避开源合规与安全方面的问题?

    朱贤曼:有很多这类的软件。比如安势信息的 SCA(软件组成分析)工具,能够帮助企业清楚自身使用哪些开源软件,在这个基础上,再来看这些开源软件是否存在风险,比如许可证、漏洞等等。作为架构师,不仅只关注软件的功能设计,也需要关注安全合规,如果在设计时没有考虑到这些问题,后续再整改的话,也会非常痛苦。

  • 相关阅读:
    基于springboot车辆充电桩管理系统springboot000
    计算机毕业设计(附源码)python知识付费运营管理系统
    jupyter中安装scala和spark内核详细教程
    虚拟机JVM
    1333.餐厅过滤器【leetcode】【Java】
    如何确定自己的armbian系统是不是ARM64架构
    python | 第六章:组合数据类型
    GIS 数据结构BSP树
    30分钟学会html+css实现乒乓球快打特效(内附源码)
    k8s的亲和调度
  • 原文地址:https://blog.csdn.net/m0_62051288/article/details/126436459