« 主页

问题-思维模式-工具

发布于

版权声明:眯眼探云原创,可随意转载,请保留该版权声明及链接:https://tyun.fun/post/111.prompt-mind-tool/

这篇博客,拖了很久。一方面是沉迷于 AI Agent 不能自拔,另一方面,还是因为一直没有想好这个脉络要怎么写。但它一直在我的头脑中酝酿,最近我终于抓到了那条模糊的线索:

有了工具,就能解决问题吗?

从锤子和钉子说起吧

你用过锤子和钉子吗?往木头里钉木工钉子,或者往墙上钉水泥钉子,用锤子一下一下的敲进去。敲钉子就是你希望解决的问题,你用锤子这个工具去解决这个问题。

比如你要买了一幅喜欢的XX画(你会喜欢什么画呢?),你想挂在墙上,你就可以在墙上敲一个钉子。但别急,你可能不想破坏墙,你的问题也许并不是敲钉子,而是希望把画挂起来。其实还有别的方案,比如有可以粘在墙上的透明挂钩,甚至有强磁挂钩,你可以吸在……比如冰箱上面。

你有没有听过 JTBD(焦糖布丁)理论,这是几个英文单词的缩写:Jobs to be done。有个对应的例子是商店里的奶昔销量很不错,因为早上开车上班的人,希望有个能够放在车上,不容易晃出来,又能随时吃几口的食物。有了具体的问题,才有针对性的解决方案。

理解真正的问题并不容易,需要深度的思考。前几天,我儿子吃东西掉了一地,我一般并不介意他犯错,但得学会处理错误。我让他收拾,结果就把几个大的渣渣捡了,留了好些碎渣渣。我当时就很生气,做事怎么可以这么敷衍。你看,人们很喜欢根据做事的结果,来把原因归结为别人的品质、态度。但如果这么简单的理解 & 处理问题,只能带来战争(情绪对抗)。

每当我情绪上头的时候,我都知道这是一个信号,我需要认真的想想,问题在哪里。经过思考,我判断真正的问题其实在于,小朋友心中对于收拾这件事(或者这类事情),理解不一样。在他的视角来看,也许是这样:你叫我收拾,我就收拾一下,很给你面子,对吧。(很多人工作中也是这么干的吧)

理解了问题以后,我得想想,用什么样的工具可以解决这个问题:

  • 我可以直接惩罚他,然后告诉他这样就是不行。这个工具的模式算是武力压制,但获得的结果通常是反抗。甚至也许可以表面压制成功,但无法压制内心。
  • 我也可以和他讲道理,可以讲很多的道理。如果道理讲的好,也许可以获得认同,但通常来讲,道理是抽象的。人学会一个道理,通常是亲身经历了一些事件,然后才反应过来:原来别人讲的是真有道理。所以讲道理会有些用,但不能报太大期望。
  • 还可以讲故事。如果能找到一些具体的故事,最好有些部分能够符合小朋友的生活实际经验,那么小朋友就有可能真正理解这个问题。在此基础上,适当的提醒,逐渐就能养成一些习惯。

这些工具,可能都会有用,但是……其实最关键的,还是得搞清楚真正的问题:儿子是怎么想的。对于儿子遇到的问题,真正解决的好,而且是长期有效的那种,其实都是使用了**“沟通”**这个工具,了解了他的想法,然后表达了我的想法,最终找到了那个恰当的处理方式。

工具和问题

我们通常的期望是,我遇到了一个问题,所以我需要一个工具来解决问题。

消费社会,最常见的方式就是购买工具。现代物质非常丰富,对于常见的问题,我们几乎可以买到所有相应的工具(或服务)。但买了工具并不代表就可以解决问题,能使用工具解决问题的那些人,我们通常会认为他们的动手能力很强。

AI Agent 是一个强大的工具,也真是好用的工具。但并不是所有人都能发挥它的威力。对于真正的程序员而言,指挥 AI Agent 干活是一件开心的事,能够解决非常多的问题。但对于非程序员而言,则大多进行“许愿式”编程。愿望许的合适,也许能出结果,但更多的情况是,做着做着就撞上了墙。

为什么程序员可以做的更好呢?因为程序员掌握了使用程序解决问题的思维模式

什么是思维模式

我试着拿敲钉子来说一下。

敲钉子看起来是个简单的事情,但实际上要敲好也是个技术活。你得对不同的钉子和不同的材质有所了解。比如敲木头的钉子和敲水泥的钉子会有些不同。你得知道怎么拿钉子才不容易被锤子敲到手,那是真的疼。通常是先轻敲几下定位,然后是加大力度几下敲进去。敲的时候一定要敲准,力的大小要把握好,这需要练习,更需要理解敲的过程中,各物体之间的关系变化。

这里所指的思维模式,就是你能够理解真正的问题,理解解决问题的思路和原理,能够灵活利用不同的工具,针对性的解决问题。

比如敲钉子,没有锤子的话,用扳手行不行?当然行,但用扳手的那个位置敲,用多大的力最合适,只要掌握了对应的思维模式,你就很容易判断。

程序员掌握了丰富的编程领域的知识,以及如何使用这些知识。因此,在使用 AI Agent 时,除了许愿式的编程,程序员还可以按需做很多方向明确的指挥,当然就能更好的解决问题。那你肯定会想,AI 以后变的更聪明不就行了?还真不行。AI 知道如何解决问题,也知道如何使用工具,但只有你,才能搞清楚当前真实世界中,待解决的问题是什么,有哪些关键限制,如何做取舍。

如果你了解软件行业,你肯定知道当前的一个主流观点:给资深程序员配高级 AI,是性价比最高的方式。

那非程序员就用不好 AI Agent?

我们先来看看工具是怎么来的。假如,你想要做个工具,你会怎么做?比如设计一个家用的做蛋糕的工具。首先你必须得知道做蛋糕的过程是咋样的,中间可能会有哪些操作步骤。然后呢,你肯定需要考虑,具体那个步骤环节,需要工具来帮助完成某个具体的事情。比如搅拌蛋液,用专门的工具就比只用筷子好用。但你大概率不会去设计把自动把蛋液搬到烤箱中的工具,用戴个隔热手套可能是更好的方式。

工具并不是凭空产生的,问题 & 解决问题的经验,是先于工具存在的。并且工具的使用,也是和解决问题的方法息息相关的。比如家里的搅蛋工具,和工厂中的搅蛋工具,是完全不同的。

工具是经验的固化。也就是说,研究工具的使用,是可以帮助我们理解问题的。

还是说敲钉子,如果你用别的东西敲钉子,可能总不合适。但如果你用锤子敲钉子,你就更容易找到敲钉子的感觉。一些抽象的工具,也是如此,比如思考工具。

同样,使用 AI Agent,虽然刚开始肯定只能进行许愿式编程,但如果你持续使用 AI Agent 编程,并且学习 & 思考,你会逐渐理解编程这回事。而且 AI 这个工具还有个特别之处,那就是遇到不懂的你可以直接问他,这学习速度就大大提升了。所以我就特别喜欢 pi agent,每当我启动 pi agent 的时候,都能看到这么一句话:

Pi can explain its own features and look up its docs. Ask it how to use or extend Pi.

当然,即使有了 AI Agent,理解编程世界依然不是件容易的事情,因为整套知识体系相当庞杂。当你形成足够的理解以后,你能很好的指挥 AI Agent 编程的时候,你就不再是外行,你也就成为了程序员。

所以我一点都不担心 AI 替代程序员,AI 可以让更多的人成为程序员,也让更多的公司能雇用程序员。

就到这里吧

回头看了看,依然不算十分满意,但关键的想法还是都提到了,那就这样吧。

感谢阅读 & 欢迎交流~