开发者社区> 中间件小哥> 正文

谈谈技术能力

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

作者:朱春茂(知明)

技术人成长的悖论


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


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


到底什么是技术能力


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


两类日常工作


  • 重复琐碎类工作


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


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


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


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


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


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


  • 抽象复杂类工作


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


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


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


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


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


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


技术能力层次模型


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


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


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


1.png


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


  • 术,硬核技术能力


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


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


  • 法,技术架构能力


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


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


  • 道,技术领导力


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


如何提升技术能力


2.png


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


寻找成长的源动力


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


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


常态化的总结与反思


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


第一个就是反思,能够敏锐地反思自己的不足,然后不断去修正自己的心态和行为让自己蜕变。


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


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


实用技巧


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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
如何设置阿里云服务器安全组?阿里云安全组规则详细解说
阿里云安全组设置详细图文教程(收藏起来) 阿里云服务器安全组设置规则分享,阿里云服务器安全组如何放行端口设置教程。阿里云会要求客户设置安全组,如果不设置,阿里云会指定默认的安全组。那么,这个安全组是什么呢?顾名思义,就是为了服务器安全设置的。安全组其实就是一个虚拟的防火墙,可以让用户从端口、IP的维度来筛选对应服务器的访问者,从而形成一个云上的安全域。
18580 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
27723 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,大概有三种登录方式:
12967 0
阿里云服务器安全组设置内网互通的方法
虽然0.0.0.0/0使用非常方便,但是发现很多同学使用它来做内网互通,这是有安全风险的,实例有可能会在经典网络被内网IP访问到。下面介绍一下四种安全的内网互联设置方法。 购买前请先:领取阿里云幸运券,有很多优惠,可到下文中领取。
21933 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
19980 0
阿里云服务器ECS登录用户名是什么?系统不同默认账号也不同
阿里云服务器Windows系统默认用户名administrator,Linux镜像服务器用户名root
15287 0
+关注
中间件小哥
阿里中间件(Aliware)官方账号
1140
文章
52
问答
来源圈子
更多
阿里云中间件主要有包含这么几个: 分布式关系型数据库DRDS_水平拆分 做数据库扩展性的 、消息队列MQ 是做消息的中间件、企业级分布式应用服务EDAS 做分布式服务的、还有一些其他的中间件,比如配置服务、缓存等等。
+ 订阅
相关文档: 全局事务服务GTS 分布式调度任务SchedulerX 云服务总线CSB
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载