读书 | IT人如何直击本质洞察底层逻辑?

【好书共读作者/Edison Zhou


作为IT技术人,我们不仅要精进技术,也要在技术之外修炼自己的软能力。本质思考,是一种直击事物本质的能力,是思考“思考的方法”,是一切思考的原动力。我们不用担心这个能力在其他企业用不上,因为它是你的“底层操作系统”。

1为何学习直击本质?

无论做什么工作,思考能力都是必不可少的。换句话说,思考能力,往往会影响一个人的其他能力,甚至会影响我们的人生高度。

金庸小说《倚天屠龙记》中,张无忌学习乾坤大挪移的时候,学到第五层就只用了几个时辰,而一般人需要几十年甚至一辈子,前任教主阳顶天练到第四层后便走火入魔最后挂了。经典电影《教父》中有一句我们可能都听说过的台词:“花半秒钟就看透事物本质的人,和花一辈子都看不清事物本质的人,注定是截然不同的命运。”

那么,为何张无忌可以快速掌握乾坤大挪移,又为何有的人可以半秒钟看透本质?

因为,他们都有“九阳神功”护体,“九阳神功”其实就是他们的内功心法,一种本质思考的底层能力,换句话说,就是他们的底层操作系统

《企业IT架构转型之道》作者钟华老师在《数字化转型的道与术》中写道:“有道无术,术尚可求。有术无道,止于术。”。本质思考能力,其实就是道(内功心法),掌握了道,即使目前没有术(独孤九剑)也没关系。那么,对于程序员来说,在技术层面什么是道什么又是术呢?我个人认为,程序设计和软件设计其实就是道,属于内功,而各种前后端流行框架的花式应用和组合则属于术。

因此,对于任何行业的人,学习了解事物的本质,锻炼直击事物本质的能力,都是有必要的。特别是我们IT技术人,往往喜欢认为所有的问题都是技术问题,试图用技术问题解决所有问题。《软件设计之美》作者郑晔老师也说道,任何试图用技术去解决其业务需求关注点的问题,只能是越陷越深。这时候,我们不妨将技术先放在一边,试图去思考业务需求的本质,探究其根本属性,问题根源和底层逻辑到底是什么,或许可以帮助我们技术人更好地用技术服务业务,最终交付业务价值。

2本质思考

什么是本质?所谓本质,其实说的是三件事:

(1)事物的根本属性

即一个事物之所以成为它的根本原因,回答这个事物是什么的问题。

思考事物的根本属性有三种表现形式:给出清晰的定义、做出准确的简单类比 和 打出精妙的比方。

(2)问题的根源

即导致问题发生的根本原因,帮助我们解决问题、解释问题和预测问题。

(3)现象背后的底层逻辑

即隐藏在各种现象背后不变的规律,帮助我们举一反三和融会贯通,找到同类问题的普遍根源。

底层逻辑一般具有四个特点:抽象、简洁、动力来源 和 通用性。

那什么又是本质思考?

艾菲在《直击本质》一书中下了一个定义:“透过复杂现象,看清事物的根本属性,看透问题根源,看懂现象背后底层逻辑的思考能力”。

图片来自刘润《商业洞察力30讲》

那么,我们要如何达到看透本质的思考能力呢?

答案就是:“大胆假设、小心求证”的溯因推理法。所谓溯因推理,就是从现象B推出原因A,而本质思考是从现象和问题出发,找到导致其发生的根源和底层逻辑。因此,溯因推理 和 本质思考 是相似的。

这种溯因推理法的思考方式,也有一个目前比较时髦的名字:“第一性原理”,已经被众多大厂的大佬们广为采用和推崇,比如特斯拉的CEO埃隆马斯克就是其中的一个代表性人物。

“大胆假设、小心求证”是道,那么具体如何落地?艾菲在《直击本质》书中给出了一些方法,即我们所说的术,如下图所示:

在上图所示的这些方法里边,结构性分析法和系统性分析法是相对较为复杂的分析方法,结构型分析法主要应对静态的分析,而系统性分析法则主要应对动态的分析。

所谓系统,就是由要素和连接关系构成,实现某种目的的模型。我们会通过一些系统的循环图来分析其结构,看到这个系统是如何运作的,其中的增强回路、调节回路是怎么样的,是否具有延时效应等等。当我们能够看清楚整个系统的结构与运行模式时,问题的根源就会说落实出,而问题的解决办法也会逐渐清晰。

图片来自刘润《商业洞察力30讲》

比如,当我们去看容器的时候,如果只看表象我们认为它是一个轻量级虚拟机,容器与容器之间实现了相互隔离的。但当你深入分析之后,容器其实是一个基于进程这个已有概念下的新模型。容器实例的本质仍然是一个Linux进程,只不过它使用“障眼法”(Namespace实现隔离+Cgroups实现限制)为这个进程设置了一些“边界”,使之成为了一种特殊的Linux进程。而容器化的本质如果只看表象我们会认为它是只是一种应用打包的方式,当你深入了解之后,你会发现容器化技术其实是提供了一个沙盒环境,只不过这个沙盒环境也有点特殊,它就像是一个集装箱,将应用"装"了起来。为什么是集装箱,而不是其他箱?因为,这个集装箱不管被运输到哪里,只要打开就可以直接使用。没错,你可能猜到了,它就是容器镜像,它保证了不同环境之间可以在操作系统级别运行环境的一致。为什么可以一致?因为它只是一个操作系统所包含的文件、配置和目录,并不包含OS内核,我们可以将其挂载在任何容器的根目录上。容器镜像的本质又是什么?如果看表象我们认为它就是一个个的压缩包,可以随时通过docker pull从各个镜像仓库里面拉下来。但如果深入分析,你会发现容器镜像其实是一组联合挂载的rootfs(根文件系统),这些rootfs位于/var/lib/docker/aufs/mnt目录下,是为容器进程提供隔离后执行环境的文件系统。而Docker公司创新地设计了“分层镜像”的概念,其背后也是对于多个rootfs的连接关系的处理,换句话说,也是建立了一个模型,这个模型是一个由可读写层、init层和只读层构成的多个rootfs的分层架构。

又如,Kubernetes目前已经成为了容器编排领域的事实标准,那么Kubernetes的本质又到底是啥?如果我们初一看,Kubernetes就是一个帮助我们实现快速的容器集群管理和调度的工具。但是,Kubernetes在顶层设计上,并没有选择走Swarm或Mesos的老路,而是选择了创建一个新的模型,而Docker只是这个模型中的一个符合标准规范的要素之一(你可能知道,在K8s v1.20之后不再使用Docker,我们需要使用其他CRI运行时如Containerd或CRI-O了)。这个模型,统一定义了应用与应用之间的关系,紧密协作无间的就放在了Pod里,需要批量管理的Pod就会放到Deployment里,需要共享信息却又不是随便能看的就会放到Secret里,而不想被直接访问还想实现负载均衡的多个Pod就会找Service来帮它们做代理入口...... 此外,这个模型还统一了应用运行的形态,即定义了基于Pod改进后的对象,如Job、CronJob、DaemonSet等。最后,这个模型如何和我们交互呢?它定义了一个“声明式API”的使用方式,可以让我们通过yaml等方式和K8s集群进行交互。可以看到,如果K8s没有提供一个新的模型,而是走Swarm的老路,它可能不会从三足鼎立的厮杀中突出重围,而开发者要做的,就是首先要看到这个新的模型并理解它,然后再应用它。

在技术世界里,需要我们透过表象去观察本质的地方太多太多......

3思维破局

思考问题的本质是思维的第一次提升,而迁移思考、升维思考和逆向思考则可以让思维进行第二次的提升。

迁移思考

所谓迁移思考,就是将思维模型和底层逻辑运用到更多的领域,从而解决各种各样的问题。但是,需要注意的是扩展应用到的这些领域,需要与当前问题属于“表面不同,本质相似”的关系。

巴菲特的合伙人查理·芒格曾说:“一个人只要掌握80~90个思维模型,就能够解决90%的问题,而这些模型里面非常重要的只有几个。”

升维思考

思考问题的本质可能并不能解决所有的问题,这时就需要我们提升思维高度、增加维度,甚至跳出原来的框架,这就是所谓的升维思考。升维思考的本质是对价值观、人生观和世界观的重新审视,拓展和重塑

在升维思考的多个方法里,对我最有影响的应该是无边界思考法了,这就引出了有限游戏和无线游戏的概念。这个世上至少有两种游戏,一种是有限游戏,另一种是无限游戏。有限游戏以取胜为目的,而无限游戏以延续游戏为目的。

其实,我们一出生就生活在一个有限游戏里:

  • 小时候的游戏是“好好学习,努力考第一”,每次游戏都有排名,都有赢家。每次游戏,我们和父母都如临大敌。

  • 大学时的游戏是“看谁能找到好工作”,投身于考研、雅思托福GRE、笔试和面试、LeetCode刷题,这个游戏的结果就是赢家可以去世界500强,去头部企业拿高薪。

  • 工作后的游戏是“看谁早晋升、看谁买房多、看谁车子豪、看谁的孩子能成为别人家的孩子......”

在我们玩游戏的过程中,大部分人都开始过得大同小异,最终慢慢地就活成了同一种人,即以比别人过得更好取得胜利为目标,一直要处于社会主流价值观内的人。不过,同时我们也失去了一些自由,因为我们将自己的人生限制在了一个小方框里。

因此,我们需要用无边界思考方法去打破这种限制,活出无限游戏的自由。《有限和无限的游戏》一书的作者詹姆斯·卡斯曾说:“有限游戏是有剧本的,而无限游戏则是传奇性的”,所以,如果我们能够不断地扩展边界和探索边界,不再执着于输赢,人生也就会变得不同。

在这个人生的无限游戏里,我们可以不断地去追求对知识的探索、对智慧的追求、对美好的向往、对自我的觉知与探索 和 对他人的帮助,我们的人生观也会从有边界变得宽广甚至无边界,很多问题也会迎刃而解。

逆向思考

在进行了无数次的正向思考之后,我们可能会习惯性地沿着同一个方向继续。这时,不妨试一试逆向思考。所谓逆向思考,就是对已经司空见惯或已成定论的事或观点反过来进行思考的一种思维方式。

比如,当我们思考做什么才正确的时候,我们可能会找不到方向。不妨这时进行逆向思考,先列出那些不该做的事,将它们排除在外,也不失为一种好方法。小霸王/步步高创始人段永平就是这样思考的典型案例,他有一个经典的“不为清单”,即列出一些原则,但是这些原则是指导企业“不要做什么”而不是“要做什么”。

又比如,现在主流的编程范式包括:结构化编程、面向对象编程 和 函数式编程,每种编程范式在设计时并没有说建议我们做哪些事,而是对我们程序员的能力施加了约束,即哪些事情不要做。

  • 结构化编程,限制使用 goto 语句,它是对程序控制权的直接转移施加了约束。

  • 面向对象编程,限制使用函数指针,它是对程序控制权的间接转移施加了约束。

  • 函数式编程,限制使用赋值语句,它是对程序中的赋值施加了约束。

与其说这些编程范式是告诉你如何编写程序,倒不如说它们告诉你不要怎样做。理解这一点,你才算是真正理解了这些编程范式。

4学习总结

纸上得来终觉浅,绝知此事要躬行”,学习和打开我们技术人的思维,了解事物的本质以及如何进行本质思考后,就需要在日常的工作生活中试着用这些思想和方法去指导我们去挖掘现象背后的东西。毕竟,实践才是检验真理的唯一标准!

这里,Edison诚心向各位IT技术人推荐阅读艾菲的《直击本质》或刘润的《商业洞察力》一书,先学习什么是本质,本质思考/洞察力是什么能力,如何训练本质思考/洞察力,或许你就会有一点答案了。如果你还对系统思考方法论有兴趣,那也推荐阅读一下《系统之美》。

读一本书,不难,坚持读书,不简单。

IT技术人,让我们一起坚持多读好书。

(1)艾菲,《直击本质》(推荐指数:★★★★★

(2)刘润,《商业洞察力》(推荐指数:★★★★★

(3)[美] 德内拉●梅多斯,《系统之美》(推荐指数:★★★★) 

Note:这本书主要讲解系统性思考和分析方法论

5思维导图

如果你不想买书学习本质思考,那么花2分钟来瞅一眼核心内容思维导图吧:

Note:精华脑图,可以收藏。

公众号内回复“直击本质”可获得高清脑图!

年终总结:Edison的2020年终总结

C#刷题:C#刷剑指Offer算法题系列文章目录

商业知识:IT技术人的底层商业知识兵器库

.NET大会:2020年中国.NET开发者大会收官


????扫码关注EdisonTalk

不变的依旧是分享

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/305477.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

内网通mac能用吗_纯干货!小容量Mac装外置硬盘Windows系统最完美的方案!(多图)...

很多用Mac 的同学都会碰到一个很头疼的问题,那就是对 Windows系统的需求,macOS系统虽好,但是很多专业性软件都没有Mac 版本(特别是对国内的用户),这时大家就会对 Windows系统有需求了。这时候很多同学会想到使用虚拟机或者装 Boot…

卖shell看站什么意思_粤语俚语卖咸鸭蛋是什么意思?

点读:卖咸鸭蛋(maai6 haam4 aap3 daan6)点解:就是死了的意思点造句:粤:您搵丧彪啊,佢琴日去劈友唔小心赖咗嘢,宜家已经去咗卖咸鸭蛋啦~~普:你找丧彪吗,他昨天…

asp.net core安全事项(上)

隐藏web服务端信息创建一个asp.net core mcv web项目,运行,F12查看返回信息,如下图,会清晰看到服务端的类型是kestrel.有时安全检测要求不能显示服务端信息,这样在一定程度上能降低被 攻击的风险,具体代码如…

云水画中人,独立一江秋

转载于:https://blog.51cto.com/wuliguo/50014

python是c语言_python与c语言

广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! python语言调用c语言进行扩展,或者增加程序的运行速度都是特别方便的。 同时还能获得与c或者c几…

aes算法实现c语言_以C语言实现归并排序为例,谈谈五大常用算法之一的“分治法”...

分治算法,顾名思义就是“分而治之”,即把规模较大的复杂问题拆分为若干规模较小的类似子问题,并逐个解决,最后再将各个子问题的解决结果合并,得到原始问题的结果的方法。这个技巧是很多高效算法的基础,例如…

一朝读码深似海,不读源码薪难升!读懂.NET5源码,到底多重要?

谈到源码分析,很多人会有这样的疑问:“.NET5的基本功能我已经掌握了,还有读源码的必要吗?”实际上,阅读源码不仅能够帮你更深刻地理解底层设计原理,提升你的系统架构能力和编码功力,还能让你知道…

50万数据生成6位数不重复字符串_R语言系列3:高级数据管理

R语言系列3:高级数据管理此文内容为《R语言实战》的笔记,人民邮电出版社出版。从高中电脑课学VB开始,大一课内开始学习C,到后来大二为了数模学习Matlab,到大三为了搞深度学习自学Python,到研究生之初学习St…

fcn网络训练代码_另辟蹊径,中科院自动化所等首次用图卷积网络解决语义分割难题...

使用 CNN 处理图像问题已经是常规操作,但此类方法会造成局部位置信息的损失。如何解决这个问题呢?来自中科院自动化所和北京中医药大学的研究者另辟蹊径,提出用图卷积网络解决语义分割问题。选自arXiv,作者:Yi Lu等&am…

盘点大厂的那些开源项目 - 小米科技

小米是一家以手机、智能硬件和IoT平台为核心的互联网公司,以智能手机、智能电视、笔记本等丰富的产品与服务。致力于让全球每个人都能享受科技带来的美好生活。“为发烧而生”是小米的产品概念。“让每个人都能享受科技的乐趣”是小米公司的愿景。小米公司应用了互联…

博主应邀参加YOCSEF虚拟化技术论坛

发布日期: 2007-11-18 中国计算机学会青年计算机科技论坛<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />CCF Young Computer Scientists & Engineers ForumYOCSEF于<?xml:namespace prefix st1 ns "urn:schema…

自定义依赖注解无效_最详细的自定义Spring Boot Starter开发教程

1.前言随着Spring的日渐臃肿&#xff0c;为了简化配置、开箱即用、快速集成&#xff0c;Spring Boot 横空出世。目前已经成为 Java 目前最火热的框架了。平常我们用Spring Boot开发web应用。Spring mvc 默认使用tomcat servlet容器&#xff0c; 因为Spring mvc组件集成了spring…

thinkpadt450s换键盘视频_ikbc c87 入门级有线机械键盘测评

大家好&#xff0c;我是胖虎。今天&#xff0c;写一写我当初买的第一把机械键盘「ikbc c87 茶轴」&#xff0c;非常好的入门级樱桃轴键盘&#xff0c;手感和键帽都很不错。ikbc c87 茶轴机械键盘小白&#xff0c;第一款入门级机械键盘买什么&#xff1f;这款ikbc c87和高斯 87C…

dotnet cli 5.0 新特性——dotnet tool search

dotnet cli 5.0 新特性——dotnet tool searchIntro.NET 5.0 SDK 的发布&#xff0c;给 dotnet cli 引入了一个新的特性&#xff0c;dotnet tool search&#xff0c;主要用于搜索 Nuget 上的 dotnet tool&#xff0c;这个命令会搜索 tool 的名称以及一些元数据&#xff0c; tit…

localhost 已拒绝连接_MySQL连接错误:Access denied for #x27;root#x27;@#x27;localhost#x27;

问题描述&#xff1a;笔者在Mac安装MySQL&#xff0c;但是当我连接到localhost本地服务器却被拒绝mysql -u root -p(1045, "Access denied for user rootlocalhost (using password: YES)")根据MySQL的反馈&#xff0c;可以得知&#xff0c;我输入的root密码应该不对…

ncl 添加点shp文件_气象编程 | NCL高效快速精准提取不规则区域内的格点数据

添加新云天气象主编微信或QQ&#xff1a;130188121&#xff0c;及时获取或发布气象升学、就业、会议、征稿及学术动态等信息&#xff01;通常情况下&#xff0c;要获取某个区域内的格点数据&#xff0c;如果要求不是很高&#xff0c;直接采取矩形框挑选方法——即锁定所需范围内…

2021技术领域趋势报告:Rust继续增长、低代码是重要趋势

喜欢就关注我们吧&#xff01;OReilly 发布了一份《2021 年编程、运维、AI 和云计算的发展方向》报告&#xff0c;该报告基于 OReilly 在线学习平台产生的数据&#xff0c;就技术行业的趋势进行了一番分析。编程语言方面&#xff0c;报告从使用情况、使用量的同比增长以及搜索查…

python中list的意思_list在python中是什么意思

序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置&#xff0c;或索引&#xff0c;第一个索引是0&#xff0c;第二个索引是1&#xff0c;依此类推。 Python有6个序列的内置类型&#xff0c;但最常见的是列表和元组。 序列都可以进行的操作包括索引&a…

cad必练10张图_CAD比例问题大详解!赶紧收藏!

下面我们来按照从小白的起点学习比例问题&#xff1a;对于比例问题&#xff0c;最关键的一点&#xff0c;就是要弄明白「现实世界」「CAD 的虚拟模型空间」「打印出来的图纸」这三个世界之间的关系。弄明白了这个&#xff0c;一切就迎刃而解了。「现实世界」和「打印出来的纸质…

腾讯招.NET5,居然要求精通MySQL,而不是SQLServer!

春节将至&#xff0c;短暂的2020年正式要宣告结束&#xff0c;展望2021&#xff0c;可谓风起云涌&#xff0c;可以预见.NET5和云原生将是大热话题&#xff0c;NET开发者该如何把握机遇&#xff1f;逛逛招聘网站&#xff0c;看看大厂招聘&#xff0c;这是市场风向标。该学习的东…