拓展性思维:举一反三、拓展思维
拓展性思维的核心目标是提升我们思维的广度,也就是让我们的知识树变大更加的开阔;
举一反三,解决同样类型的N个问题
举一反三的好处是:我们能否用同样的知识和手段去解决类似的相关的几个类似的问题,比如说:
1.当发现某个系统的JVM参数配置存在一个错误的配置,不是仅仅修复这个系统的jvm配置,而是把负责的几个系统都检查一下是否需要统一修改;
2.系统中存在某个bug导致产生了脏数据,不是直接订正已发现的脏数据,而是根据特征拉取出所有的脏数据,进行一次性的处理。
这种思维方式的特征是举一反三,触类旁通,相当于产生批处理的效果,可以大大提升自己解决问题的效率,避免重复的操作处理。
寻求更多的可能性:扩展解决问题的不同手段:
拓展思维常见的手段是:是否能够具有更多的理解方式,或者说更多的解法,举一些案例说明:
1.产生故障的时候,快速解决的办法,除了进行代码的回滚之外,还有哪些方案可以选择?如果故障处理经验丰富的工程师一定知道,除了回滚之外,还有系统的降级、运营活动的降级等多种解决的方案。
2.在日常工作中除了写更加健壮的代码,嗨哟与哪些手段可以提升系统的容错性?还有数据监控,单据闭环等多种手段处理。
解决问题的手段多了之后,思维视野也就更加开阔了。
抓住重点的思维:提升效率,方便记忆与传递:
当我们发现知识树建立起来之后,怎么样使得记忆和使用的效率变高?而且对外传递的时候更加容易让人理解?抓住重点思维要解决的场景是:
1.如果每件事情都按照知识树方式做,效率可能不会特别高,有更快的办法吗?
2.在对外沟通表达的时候,要表达核心思想,否则别人会很难理解你的表达内容,比如大家再晋升答辩,项目汇报的时候一定深有体会。
解决这两类困惑,核心思路是要抓住重点和脉络:
1.归纳法:采用归纳法,把细节隐藏掉,呈现知识的脉络,这是一种非常好的思路;尤其是大家在准备晋升的ppt,ppt的每一页都需要归纳一个核心观点,不是全是细节,这个非常重要!并且训练归纳的能力,本身就是对知识理解深刻程度的一种反映;
2.优先级法:优先级策略往往应用于在多项任务之间找到最关键或者收益最大的那个任务项,比如说完成一件事情可能有若干个步骤,其中那个步骤是最有效的,大致可以做一个排序。在实施的时候,可以按照优先级去落实。
锻炼思考力的有效实践:
1.意识的觉醒:意识觉醒是提升思考力最重要的一个点,我认为,只要形成了这种意识,就已经成功了一半。很多的同学思维能力没有上去,是没有意识到思考力这个概念,知识机械地做事情,做事情。。。每次都在同一个思维从层次上面转悠,不可能有本质的提升。从初级工程师、高级工程师、技术专家、高级专家,,,级别的提升靠什么?多接了多少需求?多写了多少代码?这些因素会有,但是关键因素不是这些,而是思考力在不断的提升,思维方式在不断进化,进而导致业绩产出比变得更加优秀,产生的事半功倍的效果。
2.保持信息:只要掌握了正确的方法并坚持训练,思考力绝对可以提升。
3.空杯心态:思考的过程其实是对人的知识进行不断刷新和重构的过程,这里一定要保证空杯心态,对新的环境,新的理念,新的技术持有开放态度,否则就是给自己制造阻力。
4.思考的时间从哪里来?
a.利用碎片时间:上下班的路上、吃饭的时候,可以把刚刚或者今天的事情想一想、想通了,然后定期进行一次总结。
b.抓住工作的过程:每次出技术方案,优化代码,排查问题,处理故障,准备晋升,都是一次训练的机会,在做事情的过程中就可以思考并快速实践。
思考力提升有没有什么判断标准:
1.广度:就是自己的知识树能够长多大的范围,知识树越广,知识就越渊博;比如说,从如何写一个多线程程序,提升到如何做系统性能的优化,再到如何做系统稳定性备战,这就是一种广度的提升。
2.深度:就是自己的知识树的叶子有多深,越深对知识了解越透彻;比如从“分布式事务问题解决思路”,到“利用最终一致性解决分布式事务”,再到“利用DTS解决分布式事务”,这就是一种深度的提升。
3.速度:就是建立和刷新知识树的速度了,比如原来你想清楚一个建模方案要一天,现在只需要半个小时就可以想清楚了,那就是速度的提升了。
好的工具推荐:Xmind
一定要相互分享:
思考虽然主要靠自己,但是一定要相互分享。因为思考是智力活动,相互分享完全能够取得1+1》2的效果。
1.项目分享:重大项目是一定要分享的,包括架构设计经验,过程经验,质量提升经验,都需要分享出来;
2.周会分享:周会是学习分享的好时机重点就是一些关键的方案,架构设计理念,好的工具,甚至工作无关的内容;
3.群内分享:当有个人采坑以后,在群里提醒一下大家,这是一个很及时的分享方案;
4.年度、季度分享:聊聊一年内的进步或者说犯错的事情。
技术Leader在训练思考力中的职责:
在技术团队中,技术Leader的思考力意识,能力和实际行动,决定了一个团队的整体思考力水平和成长速度!
一个团队要提高思考力和学习的能力,首先这个团队Leader的思考力意识就要提上来,如果团队Leader没有思考意识,也没有吧团队同学的成长放在心上,那么整个团队的思考力和成长速度绝对快不起来。
1.先要把自己变成一个思考着,自己做表率,以身作则;
2.意识心态上先变过来,要把团队同学的成长速度最重要的职责之一,没有这个意识就是空谈。
3.多创造思考的条件和氛围:一定要抓住机会进行review、方案评审、周会等,鼓励大家去思考和分享;
4.控制团队的节奏,给大家学习和思考留出一定的时间;
5.及时的引导和示范,有的同学可能掌握会偏慢一些,这个时候需要有耐心去引导同学找到思考的感觉;
6.不必干预过多的细节:返回大家的群体只会,而不必做过多的干预,更不能以个人的意志去强迫别人接受;
总结:
1.思考力对于程序员的成长至关重要,团队和个人都需要有意识或者无意识提升思考的能力。
2.对程序员最重要的思考力有,原理性思维,结构化思维,反思性思维,扩展性思维,抓重点思维;
a.原理性思维是根基,因为没有搞懂的情况下所有的知识建构都是空谈。
b.结构化思维帮助我们建立我们的知识树。
c.反思性思维不断对知识进行重构,是实现认知升级的必备条件
d.扩展性思维可以提升知识的广度和深度。
e.抓重点思维可以加快知识的使用效率和传递效率
1.在提升思考力的实践中:
a.思考力提升最关键的是意识的转变
b.要对思考力的提升充满信心
c.多在工作中取锻炼思考力,不需要花费太多额外的休息时间
d.多相互分享
e.团队Leader要团队同学的成长和把思考力提升作为最重要的内容,并且需要拿出实际的行动