ChatGPT编程秀-8: 用ChatGPT跨越认知边界

作者按:最近要忙了,日更的日子要到头了。后面每一篇讲的点就小一点吧,大的点等后面有空了再写。大家见谅。

碰到了认知边界

我的有的朋友跟我说,用ChatGPT编程需要你至少要跟他对等水平,因为现阶段我们还不能做到完全不需要关心它写出来的代码,当你要读懂它写的代码的时候,就必须能力对等。还有的朋友跟我说,ChatGPT的不能超过你的认知水平,你的认知水平的上限决定了它的表现,比如你认知水平不行,导致自己不能分解任务的时候,那么你用ChatGPT也写不出代码。

上面说的都没错,但是如果是以往的工具,它可能到这里就会出现一种分层。这种分层就会导致人和人的差距的鸿沟在企业里可能就会变成一种划分职级的边界。但是ChatGPT跟以往的工具都不同,以往的工具他没有办法提升你的认知,没有办法提升你的水平。但是ChatGPT可以扮演多种角色,除了当一个生产工具之外,它还可以当一个教学工具。也就是说,当你进入到了一种低认知的状态,他可以立刻转变为教学问题,让你通过学习进入高认知状态。提升你的水平。然后你就又可以一种较高的水准进行工作了。

举个例子,在我们的这个程序里

08-01-final-process-view.png

开发最后的png_info_post_inject模块时,我其实并不会操作png的内嵌信息,以前也没有过类似的经验。所以一开始,我只是想当然的认为nodejs应该可以吧。所以我问了他很多的问题,做了很多的设计,甚至改了很多遍。就是想让他用Node.js给我做出来。经过一系列的尝试之后,果然就失败了。(主要是我用的AI自己会在图片里留一些信息,我又不想覆盖掉,我还想它的信息和我的信息在作图AI的软件里都能被看到。)我又让他给了我其他的库或原生的写法,都不太好用。由于我太有自信了,所以这个过程中我全程TDD,为了搭建这个测试环境还浪费了我很多时间。

然后在这个时候我就进入了一种迷茫的状态。我不知道该怎么办了。

跨越认知边界

幸好我现在的工具是个人工智能。所以我问他:

08-02-ask-for-solution.png

嗯……Python,我的画图AI也是用的python,这个应该可行。但是这回我学聪明了。我并不直接开始TDD。我先建了个spike文件夹。也就是调研用的。这里的代码呢只是做一个尝试。并不真正作为产品代码使用。

其实这个动作在TDD里面也是被讲究的,你应该先调研,调研完了之后再来tdd。你不应该带着对某一个知识点的不理解工作,并且在你的代码里边试验边学习一个知识点。这种做法非常常见,但是其实是反模式。因为你的代码里往往都有各种各样的其他无关因素,造成了你的学习效率不高。学习一个知识点和将这个知识点用于工作,应该是两个阶段。

所以接下来我是这么做的。我新建了一个spike文件夹。然后开始在里面实验我的代码这个spike文件夹我有可能最终是不会提交到代码库的。

然后我在里面准备了一张test.png

然后调研用python来访问png,但是我毕竟不太了解这个领域,我决定开始之前double check以下,我又问了一遍

08-03-double-check-solution.png

hmm……果然有点小坑,也不知道哪个是哪个,看起来PIL更基础一点,行吧,我的功能不复杂,可能PIL就够用了。

于是我问:

08-04-solution-to-code.png

似乎又说PIL就是Pillow,不知道靠不靠谱啊。我们都知道,ChatGPT经常会编造。这也是很多人不信任他的地方。别的领域我们不好说,但是编程领域其实不太有必要不信任他。一个是你看我们可以像这样去做一个double check。另一个就是我们可以让他从他讲的方案直接生成代码。如果他的方案不可行,你代码自然没法执行。甚至你把代码提到ide里,它可能都会有语法错误,对吧?我们有一套完整的IDE、编译器和我们的电脑组成的开发环境来验证它输出的内容是不是可信的。这也是我为什么这么放心大胆用于编程的原因。

那么既然我们得到了代码,我就可以开始试验了,我直接把example.png 改成了test.png,果然打印了出来,这可行!

然后就又问了他怎么修改,怎么append,这里就不展示了,其实如果自己走一遍就会发现,这个里面修改可能是完全覆盖可能是append,我前面说,我想保留原有信息,所以我需要的是append,这个就不是那么直接可用了,跟它折腾了一会。

所以spike这一步的其中一个意义就在这里:我可以在一个非常单纯的环境下随意地测试方案是否可行,而不用带上其他复杂的上下文,毕竟我做到这里的时候,程序也挺长的了,输入的intention.yml也挺复杂的了,每次都从头测试也很低效。

接着我又让他给我生成了nodejs怎么调用python,在今天之前,我也从来没用过这个能力。这个能力spike的很快,spike完我就直接封装了一个runPythonScript函数出来。

接着到了真正的集成点。我们需要把Python代码封装成一个node js函数,然后对我们的程序提供服务。这个时候再给大家演示一下,上一篇我们提到的编程语言也是一种语言的场景:

08-05-programming-language-is-also-a-language.png

所以可以看到,我们可以直接把代码给他,不用说太多废话。他自己能看懂,然后让他来抹平集成时可能出现的问题。比如传参问题还有返回值问题。我之前并不知道要怎么传参和得到返回值,现在我知道了。

所以前面调研环节的另一个价值就体现出来了:你调研得到的代码可以直接作为prompt使用,并不需要还转化为什么自然语言,语言就是语言,都能作为prompt的一部分,而且啊,搞不好chatgpt还更喜欢编程语言,毕竟人类的自然语言太不严谨了。

总结一下

在本文中,我们探讨了使用ChatGPT进行编程时可能会遇到的认知边界,并分析了ChatGPT与传统工具的不同之处。与传统工具相比,ChatGPT可以扮演多种角色,除了当一个生产工具之外,它还可以当一个学习工具。这意味着,当你遇到认知边界时,ChatGPT可以立即转变为教学角色,帮助你通过学习进入高认知状态。

通过一个实际的例子我们看到了,当我们在编程中遇到自己不会的事情的时候,因为我们自己也分解不出任务,ChatGPT也不能帮我们解决问题,ChatGPT的表现也会下降。这时,我们可以进行调研,也就是进入学习状态。这个时候我们就可以把ChatGPT当成学习工具使用,提升自己的认知,从而提升ChatGPT的表现。

其实编程工作一直是有两个状态的,一个是学习态,一个是工作态。而且经常是要随时切换的,所以我们要时刻提醒自己,意识到自己是处于学习态还是工作态。两种状态的工作流程我总结了一下,如下图所示:

08-06-learning-status-and-working-status.png

最后再说一点,结合我们上一篇提到的编程语言也是语言的思路,调研过程中得到的代码其实并不是什么浪费,他可以作为prompt的一部分来加速我们后面工作态时的效率。在以前,其实这样做也是可以提效的,但是因为整个过程是在人脑中,并不是很明显,今天我们通过ChatGPT来编程,我们就会发现,这种方法确实是更科学而高效的。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,491评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,856评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,745评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,196评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,073评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,112评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,531评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,215评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,485评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,578评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,356评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,215评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,583评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,898评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,497评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,697评论 2 335

推荐阅读更多精彩内容