关于技术能力的思考和总结并不是说??会失去竞争力,或者会被能加班写代码的年轻人取代。典型代表是从业5年左右的核心技术骨干。此时的他,在码字的同时,也开始规划下一阶段的职业发展;不写代码的人很困惑,因为我很久没写代码了(或者代码量少了),我的技术基础退化了,我在市场上还有竞争力吗,我的发展空间会不会受到限制。典型代表是有业务项目的架构师或团队负责人,他们更注重业务需求的理解和拆分以及团队事务的管理。这种围城现象非常严重,是技术人员在职业发展过程中不可避免要面临的困境.但是要明确回答这个问题,根本原因不是写代码不写代码量,本质还是回到什么是技术能力,如何提高技术能力的根节点。我总结了自己的一些观察和思考,供大家参考。什么是技术能力?要说清楚什么是技术能力,就必须看透技术能力的本质,从源头上分析。选取几个程序员日常工作中遇到的问题进行分析比较,从我们日常的认知中找出哪些是技术能干的,哪些是技术不行的。两种日常工作重复琐碎的工作,一种工作敬业解答其他组技术同学对组内业务的疑惑,我们称之为日常支持。比如问问你负责的系统,为什么开发环境会报错,影响他们的项目联调。这类工作的典型特征是随时可能有人问你一个问题,也可能是同一个问题被不同的人问了很多遍。这种类型的工作被称为重复性/琐碎的工作。下面我们来看看这类工作的几种做法:第一种:就事论事,回答这个问题。就此而言,您只是解决了一个特定的问题。遗憾的是我们很多技术类的同学都是这个水平。第二种:回答完这个问题,整理成文档,把排错的步骤写清楚,提高自己和同事的工作效率。在这个程度上,你看到并解决了内部效率问题。第三种方法:把这次排查问题的方法和逻辑固化成一个小工具,供咨询同学使用,方便他以后自己排查解决,既解决了别人的问题,又彻底释放了他自己和同事的效率。从这个意义上讲,意味着你重新定义了性能问题,并找到了更好的改进方法。第四种:找到这个问题背后的根本原因,从业务原理或产品功能上寻找解决方案。将技术工具抽象成业务功能的完善。从这个程度上来说,说明你已经从单纯的技术效率提升上看到了架构的合理性,并试图在业务上找到根治性的解决方案。从这四种不同的做法中,我们可以看到,即使是这些重复的琐碎工作,我们也可以从扩大收益的角度提取价值,然后在多个层面寻求解决方案。在解决问题的过程中,自然而然地锻炼了自己的多层次思维和抽象能力。抽象复杂的工作还有一种工作是相对抽象复杂的。其典型特点是只能感受现象,难以找到根源。没有明确的目标和固定的解决方案,需要自己制定计划和策略。举一个实践中遇到的例子,在复杂的系统环节中,经常会出现联调效率很低的问题。每个R&D同学都会抱怨各种问题,但是又没有办法解决。面对如此复杂、抽象的问题,有以下几种方式:第一种:找到抱怨的同学,询问具体问题是什么,然后有针对性地解决。方法二:更广泛地收集问题,然后列成表格,归类分析,安排负责人跟进解决,最后定期跟踪进度。第三种方法:深入分析表中问题,将问题抽象出来,从架构调优和产品功能的角度寻找原因,找到解决这些问题带来的商业价值,确定目标拆解路径,最终遵循任务进度和跟踪进度。第四种:从更全局的角度思考这个目标和年度目标的关系,和组织发展的关系,思考如何扩大这件事情的收益,思考如何解决这些事情来锻炼和培训团队成员。可见,做这种抽象复杂的工作其实有很多种方法。细看可以看到技术架构的调优,深看可以结合目标和组织成长。当然,还有一种很通用的做法,就是纯粹解决单个问题,纯粹成为项目经理,通过任务列表跟踪进度。技术能力层次模型通过以上两类的分析在日常工作中,我们可以清楚地看到,技术能力的特点是能够透过现象看本质,能够通过抽象和归纳优化技术架构层来解决问题。类似的问题。因此,我对技术能力的定义是:技术能力是一种旨在解决某一问题的思维、方法和执行手段,其本质是解决问题的能力。在编程领域,就是对遇到的业务问题进行抽象、提炼和逻辑构造,通过研发工具来提高解决问题的效率,减少人工和低效的重复性工作。如果使用方法论技术能力的定义为了分析“什么是技术能力”,我提取了一些模型来表达。这个能力模型按照阶段分为三个层次:技能,硬核技术能力。技能层面其实是比较硬核的技术能力,基本上是技术的基本功(比如计算机基础,分布式技术,质量意识等等)。这虽然归为基本范畴,但也是一个技术人的基础。工作了3-5年的同学,基本上还停留在这个阶段,就是需要大量的练习,才能使自己的技能非常熟练。这个阶段最重要的是要有技术好奇心,有技术特长,通过时间长期学习和实践,才能成为团队的核心骨干。method,技术架构能力method的层次其实更多的是技术架构能力,即通过现象看本质,通过模型和原理表达本质,解决抽象复杂的问题。这是一个高层次的技术架构思维,基本上5-10年的学生都会在这个阶段。这个阶段更强调发现问题、定义问题、分析问题和解决问题的能力。处于这个阶段需要认知能力有很强的提升。这里的必要品质是韧性和宽容。容纳不同的意见,经受住各种挑战。但是这个阶段也有一个很大的误区,就是很容易被简化为学了很多方法论或者套路。也就是说,技术领导层级其实更多的是技术领导力,即通过技术影响力找到远景和目标,带领组织实现战略成果。现阶段需要立足于深厚的技术架构能力和技术硬核能力。使用技术思维解决纯技术领域以外的问题。一般来说,10年以上的学生都会遇到这样的问题。这个阶段的成长也会面临人的内在素质和能力的提升,需要更多的感悟,而不是单纯的训练和问题驱动的思考。其实这个阶段有一个很大的误区,就是很多人只学了皮毛没学要领。纯粹是对自己的自我提升,对他人的PUA。如何提高技术能力有了技术能力层次模型的定义,其实对于如何提高是有一定的指导方针的。以后如果有机会,我们可以分章节讨论这个技术能力的提升过程。但在制作实战详解章节之前,还有一个“内功法”要分享给大家:寻找成长的源泉。人们往往不关心这个问题,认为成长是每个人都想要的,但每个人都没有仔细考虑过是什么在促进你的成长:是因为你想享受修行、思考、悟道的过程,还是因为你渴望得到周围人的认可/反馈/评价。在你顺风顺水的时候,两者的感受可能不太一样,但是当你面临晋升失败、项目不利等挫折时,就会有很大的不同。如果你能找到自己成长的源泉,那么当你遇到真正的困难和困惑时,你就能调整心态,找到突破口,让自己走出困境,获得长足的成长。归一化的总结与反思无论是编码的技术基础学习和成长,还是比较抽象的问题解决,还是技术领导力的成长。只要是成长,只要能抓住这两个关键,就一定能成功。首先是反省,能够敏锐地反省自己的不足,进而不断地端正自己的心态和行为来改造自己。二是总结。总结的过程就是不断梳理自己的过程,把迷茫的、对的、错的东西归类,总结的越多,时间的复利就越能发挥作用,越能促进成长。找到动力的源头,才能解决根本的动力问题。通过总结和反思,可以利用时间的复利。通过这两种心法,可以使自己成为一个能够不断充实自己、提高自己的人。当你达到这个境界,你一定会成为技术强人。实战技巧要做到常态化的总结和反思,最简单的技巧就是写文章。通过文字的排列,可以使人的思维更加成熟。思想成熟了,说话自然就清楚了,也能和外界说话了。清楚了,才能更好地分享和交流,才能真正纠正自己的想法是否正确。所以我提到了以文代思、以思促说、传授实践技能的实用技巧。
