如何建立自己的代码心智模型

以 LLM 为底层的自动代码补全工具帮助我们从代码敲击的背景下剥离出来,一定程度上减轻了劳动量。但是其能力的限制使得通常无法在高度定制化的场景下给出最优方案,此时对于熟悉 Copilot 的我们会发现生疏到无法解决。因此如何权衡自动补全工具带来的便利性和自身能力成长是必要的,合理的解决方法是建立心智模型来得其意,再指挥工具免其劳帮助工作效率的提升。本文从自身的角度建立自己的心智模型,

一、从 Cheetsheet、Cookbook 到 LLM

学习代码工具中速查表、官方文档、cookbook 是非常重要的资源。

  1. 速查表(Cheetsheet)是列出某个库的常用的命令、语法和代码片段,给初学者快速参考的工具,可以帮助快速的查找特定命令和语法,共享的互联网资源总结了很多可行的速查表。eg: ML-cheetsheet
  2. 但是从学习的角度官方文档(Document)往往会给出详细的例子,让人望而却步。
  3. 在两者之间的 cookbook 更倾向于结合代码片段给出如何解决实际案例,除了代码片段本身,也还会解释、上下文信息以及在什么样的场景下采取特定的解决方法。

在后 LLM 时代,copilot 的自动补全功能可以说完全代替了 cookbook,当用户提出一个需求场景,如“帮我写一个归并排序”,先天的代码补全功能可以给用户自动生成所需要的代码。

  1. 优点一在于提升效率,可以从烦躁的代码敲击和函数名称记录中剥离出来,让一些常见的操作可以自动的从代码补全来完成
  2. 优点二让边界更进一步,代码补全有的时候会“涌现”出新的编辑方式,这通常是因为别人已经有过相同的表达,可以将大模型看作是共同记忆的集合
  3. 缺点在于无法完成创新工作,如果这件事情从来没有出现过,LLM 通常是无法完成固定的操作的,这个时候仍然依赖于写作者自身对于工具的理解,但是长时间未写相关论文的过程中,会消失对于 API 的熟练性而导致无从下手。

解决这样问题的前提是思考我们是如何学习一件事物的:我们会通过学习相关概念和实际案例来获取属于自己的理解和知识,个体的理解程度决定对于知识的掌握程度。个人将在代码领域中的理解称为**心智模型**。

认知心理学中将心智模型定义为我们脑海中的世界是一种概念,通过概念和关系来表达真实的系统

通过建立自己对于某种概念的全局认识,再通过自动补全工具是操作 API 可以帮助我们在每次使用的过程中都是对自身理解外在表现应用的认知,可以进一步加深自己的印象而不是让自己变得生疏

二、心智模型 + Copilot = 复利效应

Copilot 的含义是辅助工具,抛开 LLM 时代不谈很多场景下的工业工具都是对人类个体自身的辅助增强:

  • 纺织机,通过工具的方式来提升纺织的效率,但是起无法替代苏绣的作用
  • 汽车,通过新的能源转换方式代替双腿移动,但是起无法在所有道路上运行
  • 社交媒体,通过互联网来代替 face-to-face 的表达,让物理距离变得不重要,但是其无法代替线下交流
  • 洗衣机,是在洗衣场景下双手的解放,但是其无法适用所有的衣物
  • 相机,对于人类视觉和绘画的简化,但是其无法替代艺术创作

AI-Copilot 也是如此,通过对简单事物的替代,配合自己的理解可以增加创作效率,但是坐在主导位的只能是自身,为了更好的使用辅助驾驶需要理解其行为的含义,建立其工作的心智模型,来更好的使用 ta

三、【个人向】需要建立什么样的心智模型

3.1 编程基础

Python_cheetsheet.drawio

3.2 数据获取、数据预处理、数据转换

structure_data_cheetsheet.drawio

3.3 数学操作、模型构建、框架展示

附录:关于写作的一些思考

文字、语言、肢体表达是个体与个体之间有限的交流方式,内在的逻辑性是上述三者均需要的内核,其中文字是最为正式和准确的信息交流方式。现代社会的高度分工需要敏锐、清晰的文字表达,除了逻辑性之外,其还需要有准确的词汇和语法技巧,在图文编辑器发达的背景下恰当的格式排版更加重要。但是在中文互联网背景和推荐系统肆掠的背景下,如何培养自己的文字表达成为一种奢侈。这里给出自己的建议总结:

  1. 凝练表达,目的为先。用尽可能少的语言让别人来抓住自己的核心思想,达成从“听不懂”到“听懂但是不知道为什么”的目的,建立起快速联系的纽带
  2. 逻辑连贯,有理有据。在说服别人的时候可以通过精炼表达,利用层次递进的方式来让别人接受自己的想法。注意每个论据也可以看作是一个需要精炼表达的命题,尽可能的用数据和事实去表达自己。重复冗余的话术只会让自己变得不够信服
  3. 词汇专业,语法通顺。所谓的互联网黑话或者是英语的专业词汇本质上是一种语言共识,可以快速的将希望表达的含义浓缩的传递给别人,专业学习也是如此,很多的专业壁垒来自于浓缩的含义。除了词汇之外,句子的语法通顺也很重要,这部分中文的表达(图)不如英文的表达(树)方式有趣,平时要多加锻炼
  4. 格式清晰,排版准确。现代编辑器带来从个体化(书法、签字)向工业化(字体、格式、排版、符号)的转变,如何善用这些模块可以更好的提升自己的表达。
    1. 符号:字体、大小、颜色、中文符号、英文符号
    2. 工具:斜体、加粗、划线
    3. 排版:段落、缩进、表格
  5. 理解意图,尊重读者。表达的核心目的在于建立起双方的联系,而不是为了坚持自己的想法来辩论得到输赢,因此充分的理解读者的理解诉求,针对不同群众可以接受的方式来表达自己。
  6. 敏锐思考,在反馈中成长。表达交流并不只是将内心的东西全部的释放,和别人交流反馈的过程中也是提升自己内在思考的一种手段因此表达的时候也要持续保持对于自身观点的思考,讨论是表达的最终目的。

推荐书籍

《金字塔原理》

《批判性思维》


如何建立自己的代码心智模型
https://blog.tjdata.site/posts/54653.html
作者
chenlongxu
发布于
2024年10月8日
许可协议