【蚂蚁人人分享】谈谈技术能力

简介: 技术人成长的悖论在程序员界有一个悖论持续在困惑着很多技术人:在写代码的人的困惑是一直写代码是不是会丧失竞争力,会不会被后面年轻的更能加班写代码的人汰换。典型代表就是工作5年左右的核心技术骨干,此时正处于编码正嗨但也开始着手规划下一个职业发展阶段的时候;没在写代码的人困惑是我长时间不写代码(或者代码量较少)我的技术功底是不是在退化,我在市场上还会有竞争力吗,我的发展空间是不是被限制住了。典型代表就是

技术人成长的悖论

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

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

到底什么是技术能力

要解释清楚什么是技术能力还得看透技术能力的本质,从源头上来做剖析。挑选几个程序员日常的工作问题来做个剖析比对,从我们的日常感观中来辨识下哪些是有技术能力的做法,哪些是没啥技术能力的做法。

两类日常工作

重复琐碎类工作

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

  • 第一种:就事论事,把这个问题回答了结束。到这个程度你只是解决了一个具体的问题。很可惜我们很多技术同学都是处于这个层次。

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

  • 第三种:将此排查问题的方法和逻辑固化为小工具给到咨询的同学去用,让他以后可以自助排查解决,这样既解决了别人的问题也彻底释放了自己和同组人的效能。到这个程度说明你重新定义了效能问题并找到更好提效的办法。

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

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

抽象复杂类工作

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

  • 第一种:找到抱怨的同学,问一问具体的问题是什么,然后针对性解决。

  • 第二种:更加广泛收集问题,然后列出来表格,归类分析并安排负责人跟进解决,最后定期跟踪进度。

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

  • 第四种:从更全局角度去思考此目标与年度目标的关系,与组织发展的关系,思考如何扩大此事的效益,思考如何通过这些事的解决锻炼和培养团队同学。

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

技术能力层次模型

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

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

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

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

术,硬核技术能力

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

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

法,技术架构能力

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

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

道,技术领导力

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

如何提升技术能力

随着把技术能力层次模型定义出来,其实如何提升也有了一定指南。后续有机会可以分章节来论述这个技术能力的提升过程。但产出详细章节的实践论述前,还有一篇“内功心法”可以分享给大家:

  • 寻找成长的源动力

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

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

  • 常态化的总结与反思

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

  • 第一个就是反思,能够敏锐地反思自己的不足,然后不断去修正自己的心态和行为让自己蜕变。
  • 第二个就是总结,总结的过程是不断梳理自己的过程,把自己迷迷糊糊,是似而非的东西分类归类,而且总结越多就能够用好时间的复利,就能够越促进成长。

找到了源动力就解决了底层动机问题,通过总结和反思是能够利用上时间的复利,通过这两样心法就能够使得自己成为一个能够不断丰富完善自己的人,达到这样的状态必定能够成为技术强人。

  • 实用技巧

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

目录
相关文章
|
SQL 开发框架 安全
Linux系统中ARMv8架构u-boot启动流程分析
Linux系统中ARMv8架构u-boot启动流程分析
868 1
|
XML Java 数据格式
Spring框架完全掌握(下)
Spring框架完全掌握(下)
|
消息中间件 存储 负载均衡
🔥产品:直播送礼延迟这么大,你就不能快点吗
先赞后看,南哥助你Java进阶一大半其实抖音的实时音视频技术RTC,是来源于火山引擎RTC的支持,抖音、火山引擎、巨量引擎属于字节跳动公司旗下的不同业务板块。我是南哥,一个Java学习与进阶的领路人。相信对你通关面试、拿下Offer进入心心念念的公司有所帮助。
395 6
🔥产品:直播送礼延迟这么大,你就不能快点吗
|
jenkins 测试技术 持续交付
自动化测试框架的搭建与实践
在软件开发领域,自动化测试是提升开发效率、确保软件质量的关键手段。本文将引导读者理解自动化测试的重要性,并介绍如何搭建一个基本的自动化测试框架。通过具体示例和步骤,我们将探索如何有效实施自动化测试策略,以实现软件开发流程的优化。
500 7
|
机器学习/深度学习 人工智能 自然语言处理
【自然语言处理】自然语言处理NLP概述及应用
自然语言处理(Natural Language Processing,简称NLP)是一门集计算机科学、人工智能以及语言学于一体的交叉学科,致力于让计算机能够理解、解析、生成和处理人类的自然语言。它是人工智能领域的一个关键分支,旨在缩小人与机器之间的交流障碍,使得机器能够更有效地识别并响应人类的自然语言指令或内容。
879 4
|
机器学习/深度学习 监控 机器人
RPA技术在金融行业中的几个关键应用领域
【8月更文挑战第4天】RPA技术在金融行业中的几个关键应用领域
767 2
|
SQL Java 程序员
马程序员2024最新SpringCloud微服务开发与实战 个人学习心得、踩坑、与bug记录Day1最快 最全(1)
马程序员2024最新SpringCloud微服务开发与实战 个人学习心得、踩坑、与bug记录Day1最快 最全(1)
485 1
|
存储 算法 安全
U盘打不开提示格式化怎么办?(含数据恢复及U盘修复教程)
本文介绍了U盘无法打开并提示格式化的问题,包括症状(如系统弹出格式化提示,文件系统显示为RAW)和常见原因(文件系统损坏、物理损坏)。提供了修复步骤:检查U盘连接、使用数据恢复软件恢复数据、更新U盘驱动、格式化U盘及使用修复工具。强调在格式化前要备份数据,严重损坏时可能需寻求专业维修。
|
存储 人机交互 C语言
【C语言项目实战】使用单链表实现通讯录
【C语言项目实战】使用单链表实现通讯录
|
自然语言处理 Java 测试技术
使用PostMan请求阿里云通义千问大模型
本文介绍如果通过postman调用阿里云通义千问API,然后介绍如果使用多语言集成,最后介绍了快速使用postman压测创建的API请求。
4206 2