谈谈技术能力

朱春茂(知明) 2022-07-09 09:47:00

一、技术人成长的悖论

 

在程序员界有一个悖论持续在困惑着很多技术人:写代码的人一直写代码是否会丧失竞争力,是否会被后面年轻的更能加班写代码的人汰换;没在写代码的人长时间不写代码(或者代码量较少)是否代表技术功底的退化、市场竞争力的下降和发展空间的局限。前者的典型代表是工作5年左右的核心技术骨干,此时处于编码正嗨但也开始着手规划下一个职业发展阶段的时候;后者的典型代表是带业务项目的架构师或者团队负责人(Team Leader),他们将更多的精力放在业务需求理解和拆分,团队事务的管理上。

 

这种围城现象非常严重,是技术人在职业发展过程中必定会面临的困境。但要回答清楚这个问题,其根源不在于写不写代码或者代码量的多少,其本质还是要回到什么叫技术能力以及如何提升技术能力这个根节点上来。以下是根据我的观察和思考总结出来的内容,供大家参考。

 

二、到底什么是技术能力

 

要解释清楚什么是技术能力需要看清技术能力的本质,从源头进行剖析。挑选几个程序员日常的工作问题做剖析比对,通过我们的日常感观辨识哪些是有技术能力的做法,哪些是缺乏技术能力的做法。

 

 

1、两类日常工作

 

1)重复琐碎类工作

 

有一类工作是专门解答其他组技术人对组内业务的疑惑,我们称之为daily支持,比如咨询我们负责的系统在开发环境中有一个报错影响了他们的项目联调是什么原因。这种工作的典型特征是,随时可能有人提出问题,且同一个问题可能会有不同的人询问很多遍。这类工作即为重复琐碎类工作,我们来看看对于该类工作的几种做法:

 

  • 就事论事,回答完问题即结束。到这个程度其实只是解决了一个具体的问题,而很多技术人都是处于这个层次。

 

  • 解答完该问题后整理成文档,把排查步骤写清楚,提升自己与同组人的工作效率。到这个程度说明我们看到并解决了内部效率问题。

 

  • 将此排查问题的方法和逻辑固化为小工具给咨询的人员使用,使得咨询的人员以后能够自助排查解决,这样既解决了别人的问题也彻底释放了自己和同组人的效能。到这个程度说明我们重新定义了效能问题并找到了更好提效的办法。

 

  • 找到此问题的背后根因,从业务原理或者产品功能上找解法,将技术工具抽象为业务功能的完善。到这个程度说明我们已经从单纯的技术提效看到了架构合理性问题,并尝试在业务上寻求彻底根治的办法。

 

从这四种不同的做法我们可以得知,即使是重复琐碎类工作,我们也能从扩大受益面的角度提炼价值,寻求多个层次的解法,在解决问题的过程中也自然而然也锻炼了自己多层次的思考和抽象能力。

 

2)抽象复杂类工作

 

还有一类工作是相对抽象和复杂的工作,典型特质是只能感受到需要的现象,但很难找到根因,因此没有明确目标和固定解法,需要自己做方案定策略。举个实际中遇到的例子,在复杂的系统链路中往往会出现联调效率十分低下的问题,每个研发人员都在抱怨各种各样的问题,但却没有办法根治。面对这样的复杂抽象问题,也有几种做法:

 

  • 找到抱怨的人员,询问具体的问题,然后针对性解决。

 

  • 更加广泛收集问题,通过表格的形式对问题归类分析并安排负责人跟进解决,最后定期跟踪进度。

 

  • 深入分析表格中的问题并对问题进行抽象,从架构调优和产品功能的角度去寻找原因,并寻找解决这些问题带来的业务价值,确定目标拆解路径,最后按照任务推进和跟踪进展。

 

  • 从更全局的角度去思考此目标与年度目标的关系、与组织发展的关系,思考如何扩大此事的效益,思考如何通过解决此事锻炼和培养团队人员。

 

可以看出抽象复杂的工作其实也有多种做法,看得更加细致是可以看到技术架构的调优,看得有深度是可以与目标、组织成长结合在一起。而一般的做法就是简单地解决单个问题,将自己变成项目经理,通过任务列表跟踪进度。

 

 

2、技术能力层次模型

 

通过对上面两类日常工作的分析,我们可以明显看到有技术能力的做法特征是能够透过现象看到本质,并能够通过对问题的抽象归纳进行技术架构层调优以解决同类问题。

 

因此我对技术能力的定义是一种以解决某种问题为目标的思路、方法与执行手段,其本质就是解决问题的能力。在编程领域,就是对遇到的业务问题进行抽象、提炼以及逻辑的构建,通过研发工具以提升解决问题的效能,减少人工低效的重复工作。

 

如果用技术能力这个定义的方法论对“什么是技术能力”进行剖析,我提炼了一些模型来表达。

 

 

这个能力模型按照逐步境界阶段分为了三层:

 

1)术:硬核技术能力

 

术这个层面其实更多是硬核技术能力,基本上就是技术的基础功底(如计算机基础、分布式技术、质量意识等)。虽然这个归为基础类,但这也是技术人的立身之本。工作3-5年的人基本上都还是处于该阶段,需要大量的练习使得自己的技能非常娴熟。

 

处于该阶段最重要的是有技术好奇心,要有技术的专研力,通过时间的磨炼持久去学习去练习,使得自己能够成为团队的核心骨干力量。

 

2)法:技术架构能力

 

法这个层面其实更多的是技术架构能力,即通过现象看透本质,通过模型、原则来表达本质以解决抽象复杂类问题。这是一种高阶的技术架构思维,基本上 5-10 年的工作人员会处于这个阶段。这个阶段更多强调发现问题、定义问题、分析问题和解决问题的能力。

 

处于这个阶段的人需要很强大的认知能力提升,必备的素质则是皮实和包容,需要容得下不同的观点,也要经得起各种挑战。但这个阶段也有很大的误区,即非常容易被简化为要学习很多方法论或者套路。

 

3)道:技术领导力

 

道这个层面其实更多的是技术领导力,即通过技术影响力去寻找愿景和目标,带领组织取得战略结果。在这个阶段时我们要基于深厚的技术架构能力和技术硬核能力,通过技术思维去解决超越纯技术领域的问题,一般来说具有10+年工作经历的人会遇到这类问题。这个阶段的成长也会更多面临人的底层素质能力升级,需要更多依靠领悟而不是纯粹的训练和问题驱动的思考。这个阶段也有很大的误区,即很多人只学到了表面功夫而没有深得要领,那么就会变成对己是自我修养的提升,对别人则是PUA。

 

三、如何提升技术能力

 

 

随着将技术能力层次模型定义出来,如何提升也有了一定指南。

 

 

1、寻找成长的源动力

 

大家往往对这个问题不以为意,觉得成长是每个人都想要的,但是大家没有仔细琢磨过促进我们成长的究竟是什么:是自驱想要享受练、思、悟的过程,还是因为渴望得到周边人的认可或评价。这两者在我们顺利的时候可能没什么感觉,但当我们面对晋升失败、项目不利等挫折时就会有明显的差异。

 

如果能够找到自己成长的源动力,我们在遇到真正的困难和迷茫时才能够摆正自己的心态,寻找突破口,让自己走出困境,得到长足的成长。

 

 

2、常态化的总结与反思

 

不管是编码类的技术基础学习成长,还是相对抽象的问题解决,亦或是技术领导力成长,成长只要抓住这两个关键就一定能够成功。

 

1)反思

 

能够敏锐地反思自己的不足,然后不断去修正自己的心态和行为使自己蜕变。

 

2)总结

 

总结的过程是不断梳理自己的过程,将自己是是而非的东西分类归类,而且总结越多就越能够用好时间的复利,就越能够促进成长。

 

 

3、实用技巧

 

要做到常态化的总结与反思,最简单的技巧就是写文章,通过文字的整理可以让自己的思考更加成熟,想得更加成熟以后自然而然对外就能够讲得更加清楚,能够对外讲清楚就能够更好地分享交流,才能够真正去校正自己的想法是否正确。所以我提出了以写代想,以想促讲,以讲验真的实用技巧。

 

作者丨朱春茂(知明)
来源丨公众号:阿里巴巴中间件(ID:Aliware_2018)
dbaplus社群欢迎广大技术人员投稿,投稿邮箱:editor@dbaplus.cn

最新评论
访客 2023年08月20日

230721

访客 2023年08月16日

1、导入Mongo Monitor监控工具表结构(mongo_monitor…

访客 2023年08月04日

上面提到: 在问题描述的架构图中我们可以看到,Click…

访客 2023年07月19日

PMM不香吗?

访客 2023年06月20日

如今看都很棒

活动预告