码迷,mamicode.com
首页 > 其他好文 > 详细

程序员的思维利器:逆向,总是逆向

时间:2020-11-13 12:38:55      阅读:4      评论:0      收藏:0      [点我收藏+]

标签:模型   pid   加载   缺点   相关   飞行员   指标   公众   需要   

程序员的思维利器:逆向,总是逆向

今天,介绍一个我最喜欢的一个思维模型,叫做逆向思考。思维模型(mental model)是一套简单、抽象但非常有用的原则,可以帮助我们理解周围的世界。

我是在 Farnam Street 的博客上看到逆向原理的,这也是查理·芒格(伯克希尔·哈撒韦公司的副主席和沃伦·巴菲特的朋友)最爱。他一句名言是,“......事物的本质是,许多困难的问题都是在逆向思考时得到最好的解决”。

在另一次采访中,他回忆说,在二战期间,作为一名空军气象学家,他没有问什么能保证飞行员的安全,而是问有什么因素会杀死他们,并把所有的精力集中在“试图预测雪、冰或雾,但忽略了几乎所有其他的因素”。

我几乎可以用一本书来介绍查理·芒格说过的其他有意思的东西,但是我先打住。

什么是逆向思考?

逆向思考是基于一个格言:逆向,总是逆向。它是先考虑一个逆向(通常是负面的)结果,并列出导致这些结果的原因。它迫使你需要停止做某些事情,以避免出现负面结果。它给我们提供了一种新的可能性和能力,这在正常的思维模式下很难被考虑到。

逆向思考的做法非常简单。

  • 定义问题:你要达到的目标是什么?
  • 逆向思考:怎么做保证能出现失败的结果?
  • 最后,考虑避免出现上述失败的解决方案。

这听起来非常抽象和模糊,我们来看几个例子。

一、与其问如何提高产品或功能的使用率? 你可以考虑有哪些事情阻碍了用户使用某个功能?这将导致这样一个优化的列表:

加载时间慢,即性能问题
营销力度不够,或者在平台上营销,或者营销的对象不对。
用户手册不知道在说什么......你懂的。

二、 遵循逆向思考原则,自问是什么阻碍了自己阅读 Kindle 或书架上所有未读的书,而不是问如何才能读更多的书?

可能的原因和需要割舍的一些东西如下:

  • 花了太多时间在社交媒体上
  • 在 Netflix 或迪斯尼看了太多的节目
  • 花大量时间泡 reddit 或浏览 HN 新闻。

三、在投资过程中,不要想我如何总是选择一只赢利的股票,而要问自己如何防止长期亏损?

是否足够分散投资以防止长期亏损?
是基于合理的原则进行投资,还是在投机?

希望这能让你体会到逆向思考作为一种心理模型的强大,我要补充的是,它并不是银弹,也不会总是给你具体的答案,但它会起到一个强制作用,避免明显的判断失误。我再给你留下一段我最喜欢的查理关于逆向思考的名言。

通过努力让自己始终不笨,而不是努力成为一个非常聪明的人,这一点让很多人获得了长期的显著优势。
查理·芒格

其他程序员怎么看这个问题?

网友 mlangenberg 提到:

作为一名软件开发人员,我在过去十二年里一直在做一件事:想尽所有可能出错的原因。

这样做的缺点是,我已经把我的思维模式训练成了这样一种方式,以至于在工作之外很难把它关掉,这对我的个人生活产生了不少负面影响。

(也许我天生就是一个末日思维者,这也是我成为一名优秀软件工程师的原因)

网友 arthurjj 提到:

我习惯于和我的团队一起做一个项目预验收。在正式发布前几个月,我提议团队快进一下,假装项目失败了。然后我们讨论项目为什么会失败。

这通常会列出一个清单,并让你时常对其保持警惕。

网友 seanpquig:

我在一家知名的搜索引擎算法团队工作,我也可以证明这种思路多年来对帮助改进我们的产品非常有效。

相比于常规的“如何才能让我们的搜索变得更好”的假设性想法,我们采取的是花费大量时间分析数据,找到我们失败的地方。我们的许多显著的相关性改进都来自于跟踪和了解我们始终无法产生结果或用户无法参与的查询类型。

我认为这是一种非常有效的方法,但可能需要一些纪律和眼界。当团队花了非常多时间关注产品的失败时,也许会产生一些内部观念,即产品不断出现错误和各种问题。因此,你也需要记住你做得很好的地方,以及你作为一个团队或产品,已经走了多远。

扩展阅读

避免愚蠢比寻求聪明更容易:
https://fs.blog/2014/06/avoiding-stupidity/ (英文)

网友讨论:
https://news.ycombinator.com/item?id=23905221

英文原文:
https://www.anup.io/2020/07/20/invert-always-invert/

活动预告

技术图片

GIAC 全球互联网架构大会 2020 将于 8 月 14 - 15 日在深圳举行,本届 GIAC 议题共设置有 24 个专题,覆盖各类架构热点领域,每个主题由业内知名架构师、技术负责人等专家担任出品人,负责议题选取和质量把控。本届 GIAC 专场包含 CloudNative云原生(出品人:宋净超)以及 Go语言(出品人:谢孟军) 等专题,对大会感兴趣的同学,点击阅读原文查看 GIAC 详细日程。

参考阅读:

  • 你只修改了2行代码,为什么需要两天时间?
  • 程序员如何锻炼数据思维?(附数据指标记分牌)
  • 当你同事工作出色时,如何得体地告知他上司
  • 云原生时代,Java还是Go?
  • 如何保留优秀的程序员

本文由高可用架构翻译,技术原创及架构实践文章,欢迎通过公众号菜单「联系我们」进行投稿。

高可用架构

改变互联网的构建方式

技术图片

程序员的思维利器:逆向,总是逆向

标签:模型   pid   加载   缺点   相关   飞行员   指标   公众   需要   

原文地址:https://blog.51cto.com/14977574/2546090

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!