# 写给那些想用 AI 编程、但每次都卡住的人:真正卡住你的,从来不是代码本身
**作者**: brewcookie
**日期**: 2026-04-29T07:16:02.000Z
**来源**: [https://x.com/ibrewcookie/status/2049387214535368948](https://x.com/ibrewcookie/status/2049387214535368948)
---

## 一、那个让我熬到天亮的作业
我上大学的时候,学习OS(操作系统),其中有个作业是写一个简易的操作系统。那时候一个作业写的死去活来,一连几天睡不了几个小时。
我现在还记得那种感觉:凌晨三点,室友早就睡了,房间里只剩下我书桌前的电脑屏幕亮着。fork、exec、wait、pipe、信号处理、僵尸进程⋯⋯一行一行调,一个一个 bug 啃。gdb 打开像在读天书,断点设了一堆,最后发现是字符串少了个 \0。
那个作业写了很久。交作业那天,我看着自己几百行带注释的 C 代码,是真的有一种"老子终于把这玩意搞出来了"的成就感。
前几天,我突发奇想,上大学时候的大作业让AI写会怎么样?于是我让 AI 写一个差不多功能的OS。
5分钟。
不夸张,5分钟都用不到。代码干净、有错误处理、还顺手帮我加了几个我当年没敢碰的特性。
我盯着屏幕看了一会儿,心情很复杂。说不上是震惊,因为这种事最近已经发生过太多次了。但每发生一次,那种"我过去到底在干什么"的念头就再多一层。
后来想到面试。当年为了找工作,刷了多少题?hard 题做不出来失眠,medium 题一遍过了高兴半天。现在再看 LeetCode,有一种说不上来的荒诞感——这些题,AI 做得比我又快又准,而且不会因为没睡好就翻车。
以前 debug 要问问聪明的 gdb,现在 debug 要问问聪明的 GPT。
工具变了,问题没变。但花了那么多年练的那些"硬功夫",在 AI 面前,确实什么都不是了。
## 二、一个我一直没想明白的问题
带着这种感受,我最近一直在想一个问题:
AI 编程到底是面向谁的?
这个问题听上去像是个伪命题——不是"所有人"吗?但你真去琢磨,会发现两头都不太对劲。
有基础的人,其实不太需要"AI 编程产品"。 我自己写代码,直接打开 Codex 或者 Claude Code,把上下文丢进去,提需求、改代码、跑测试,闭环很快。我不需要被引导、不需要被教学、也不需要花哨的封装。任何把 AI 编程做成"傻瓜界面"的产品,对我来说都是负担。
没基础的人,光给 prompt 也走不远。 你让一个完全不懂代码的人去用 AI 写一个稍微复杂点的东西,前 5 分钟很爽——"哇,它真的写出来了!"后 50 分钟就开始痛苦——跑不起来、报错看不懂、改一处坏三处、AI 给的方案听上去都对但选哪个?最后东西做出来了,但他不知道为什么能跑,也不知道为什么会挂。下次再做,等于从零开始。
中间这条沟是真实存在的。一边的人觉得 AI 编程没什么新鲜的,就是个更好用的搜索引擎;另一边的人觉得 AI 编程是魔法,但魔法不稳定。
那 AI 编程到底要服务谁?
## 三、鸿沟其实不在"会写代码"和"不会写代码"之间
我后来想明白一件事:
我们一直把这条鸿沟描述成"懂代码 vs 不懂代码",但这个划分其实是错的。
真正的鸿沟,是有没有"系统思维"——也就是说,当一件事要被做出来的时候,你脑子里有没有一张关于它"长什么样"的地图。
我那个折磨人的操作系统大作业,真正教会我的不是 fork 怎么写。fork 我现在让我裸写一遍我也不一定能一次写对。它教会我的是另外一些东西:一个程序运行的时候,输入从哪里来、输出到哪里去;一个功能跑不通,问题可能藏在哪几个层面;当某个东西"看上去对但就是不工作"的时候,应该怎么把它一层一层剥开;如何在一个很大的、自己也没完全看懂的系统里,找到那个最该改的地方。
而一个完全没接触过编程的人,他卡住的地方往往不是"语法不会写"——AI 帮他写了——而是他不知道该让 AI 做什么、做到什么程度算对、出问题了该怎么往回追。他没有那张地图。
所以你看,真正的差距不是"会不会 coding",而是"脑子里有没有那种关于软件如何运作的、模糊但可用的直觉"。
我把这种直觉叫做判断力。AI 编程时代真正的门槛,是这个东西。
## 四、"判断力"到底长什么样?
这个词太抽象了,所以这一节我想把它拆开讲——判断力在具体的某个时刻,到底是什么。
第一种判断力:对"看上去能跑"和"真的能用"之间距离的敏感度。
AI 给你一段代码,本地跑通了,demo 也漂亮。一个有判断力的人,这时候脑子里会立刻浮现一串问题:输入是空的会怎样?输入特别大会怎样?两个人同时操作会怎样?网络断了会怎样?昨天能跑,今天数据多了一倍,还能跑吗?
这些问题不是 AI 主动会问的,它默认你给的就是典型场景。但软件挂掉,永远挂在非典型场景。这种"自动想到边界"的本能,是判断力最基础的一层。
第二种判断力:闻得出"技术债"的味道。
AI 很擅长给出"能解决眼前问题,但会留下长期隐患"的方案。比如硬编码一个值,比如把同一段逻辑复制到三个地方而不是抽象出来,比如为了绕过一个 bug 多加一个 if-else。
这些方案在当下都是对的——它们让东西跑起来了。但三个月后,当你想改这个值、想改这段逻辑、想搞清楚那个 if-else 为什么存在的时候,你就会恨当初的自己。
判断力是在 AI 给你方案的那一刻,能闻到"这玩意现在能用,但以后会让我哭"的味道,然后停下来要求一个更干净的版本。
第三种判断力:知道什么时候该停下来重新想。
你让 AI 改一个 bug,它改了。还有 bug。你让它再改,它再改。改到第五次,问题还在。
没有判断力的人,会继续改第六次第七次。有判断力的人会停下来想:等等,可能问题不在这里。可能是设计错了。可能是我从一开始就在错误的方向上让 AI 努力。
软件里 90% 的卡壳,不是因为你不够努力,是因为你在错误的方向上太努力。判断力是知道什么时候该往回退一步,而不是继续往前撞。
第四种判断力:对"AI 说得很自信"保持警惕。
AI 有一个特点:它说错话的时候,和说对话的时候,语气是一样的。它会用完全一样的笃定告诉你"这个 API 这样调用"——而那个 API 根本不长这样。
判断力是建立一种条件反射:听起来越合理的答案,越要去验证一遍。尤其是当 AI 说"这是最佳实践"、"业界都这么做"的时候——这种话往往是它最不可靠的时候。
还有一种变体:当 AI 给你三个方案让你选的时候,敢问"还有没有第四种我们没想到的?"。AI 给的选项不是穷举,是它当下最容易想到的几个。
第五种判断力:知道一件事"应该多复杂"。
AI 有两种倾向都会犯。一种是过度工程——给你加一堆其实不需要的抽象、配置、设计模式,把一个 50 行能搞定的事写成 500 行框架。另一种是过度简化——把一个本来需要认真考虑的问题,用一个看似优雅的方案敷衍过去。
判断力是对"复杂度配比"的直觉:这件事就这点大,用不着搞那么多花活;那件事看起来简单,但底下的坑很多,得认真做。
这种直觉只能从大量的实际经验里长出来——但好消息是,AI 时代积累这种经验的速度,比过去快得多。
第六种判断力:知道什么时候要离开 AI 去找人问。
有些问题 AI 永远解决不了,因为它涉及的是 AI 拿不到的信息:这个项目过去为什么这么设计、团队的偏好是什么、用户真正在意的是哪一点、这个决定背后有什么没写在文档里的历史包袱。
判断力是知道这些问题的边界——什么时候 AI 是最好的助手,什么时候你需要去找一个真人聊一下。
把这六种放在一起看,你会发现它们有个共同点:它们都不是"知识",而是"反应"。
知识可以查,反应只能练。
## 五、如果你没有 coding 背景,具体该怎么练?
我想给没有技术背景但想真正用上 AI 编程的人写一份具体的路径——不是"学 Python"那种老套答案,而是适合 AI 时代的、专门用来积累上面那些"反应"的方法。
第一阶段:从"改"开始,不要从"写"开始。
新手最大的误区,是一上来就想用 AI 从零造一个东西。这种做法的问题是:你完全不知道 AI 给你的东西哪里对哪里错,因为你脑子里没有任何参照系。
更好的起点是:找一段 AI 给你的能跑的代码,改一个东西。改一个数字、换一个变量名、把"红色"改成"蓝色"、把"3 个"改成"5 个",看结果有什么变化。
这件事看上去很弱智,但它在帮你建立最基础的直觉:输入和输出的因果关系。改这一处,会引起哪一处变化?这个直觉是后面所有判断力的地基。
第二阶段:把 AI 当"私人教授",强迫自己读。
接下来,对每一段 AI 给你的代码,你要做一件事:让它逐行解释这段代码在干什么。
不是"大概在干什么",是逐行。
然后追问:这一行如果删掉会怎样?这一段为什么用 if 不用 while?这个变量为什么叫这个名字?
听上去很啰嗦,但你做几次就会发现:你开始能"读懂"代码了。不是能写,是能读——能看出一段代码大概在做什么、大概合不合理。这一层能力比"会写代码"更重要,因为 AI 时代你 90% 的时间都是在读 AI 写的东西。
第三阶段:练拆解,这是从用户变成"指挥者"的关键。
一个不懂技术的人用 AI,最容易掉进的坑是:把整个需求一股脑扔给它——"帮我做一个能让用户登录、上传图片、然后自动打标签的网站"。
AI 会给你东西,但通常会有一堆问题,因为这个需求被压缩得太狠了,里面藏着无数没说清楚的细节。
正确的练法是:在让 AI 动手之前,自己先把这件事拆成步骤写下来。
比如刚才那个需求,你可以试着拆成:
1. 用户怎么注册?用邮箱还是手机号?
2. 登录之后看到什么?
3. 上传图片是单张还是多张?大小限制?
4. "自动打标签"是基于图片内容还是基于用户输入?
5. 标签存在哪里?怎么搜?
你会发现自己拆的过程中,会冒出一堆原本没意识到的问题。这些问题正是 AI 帮你做完之后会出 bug 的地方。
做这个练习不是为了让你能写代码,是为了让你能想清楚自己要什么——这件事 AI 替不了你,因为它不知道你脑子里到底想要什么。
第四阶段:刻意制造 bug。
当你有了一段能跑的代码之后,做一件反直觉的事:把它弄坏。
故意改一个变量、删一行、把 == 改成 =,然后看会出什么错。报错出来之后,先别问 AI,自己看看能不能猜出原因。然后再让 AI 验证。
这一步在做的事情,是把你过去对软件的"恐惧感"——一看到红色报错就慌——转化成"这是信息"。
报错不是失败,报错是软件在告诉你它哪里不舒服。debug 的本质就是看懂这种"不舒服"。这种能力是判断力的核心,但学校里没人教,公司里也没人教。它只能靠你自己刻意制造、然后刻意修复来积累。
第五阶段:把同一件事做三遍。
挑一个简单但完整的小项目——比如一个 todo list,或者一个能搜索图片的小工具。然后做三遍:
第一遍:让 AI 全权处理。你只说"我想要一个 X",剩下都让它决定。做完之后,你回头看,尝试解释每一行——做不到的部分,就是你的盲区。
第二遍:你来指定每一步。先做什么、再做什么、用什么方式。AI 只负责具体写代码。这一遍会比第一遍慢,但你会发现自己开始有"主动权"。
第三遍:试着不依赖 AI 的解释,而是自己读代码。读完之后再问 AI 你理解得对不对。
做完三遍之后,比较你在三个版本里的"理解颗粒度"。这个差距,就是你成长的轨迹。
这五个阶段没有时间表。有人三个月走完,有人三年还在第二阶段反复打磨。这不重要。重要的是每一个阶段都在积累那种 AI 替代不了的反应。
## 六、那些年学的东西,真的白学了吗?
回到最开始那个让我心情复杂的问题:花了那么多年学的东西,在 AI 面前,是不是什么都不是了?
我现在的答案是:那些"看得见的技能"确实贬值了,但那些"看不见的反应"反而更值钱了。
裸写一个简易操作系统这件事不值钱了。但当年写简易操作系统时被反复训练的"看到一段不工作的程序,能在脑子里模拟它的执行过程"——这个能力现在比以前更值钱,因为它是你和 AI 协作时唯一不能外包的部分。
刷 LeetCode 写出最优解这件事不值钱了。但刷题时被磨出来的"对边界条件的警觉"、"对复杂度的本能反应"——这些在 review AI 代码的时候,是你保命的东西。
debug 时熟练操作 gdb 这件事不值钱了。但 debug 时养成的那种"不相信任何看上去对的东西,直到亲眼看见它在跑"的态度——这种态度在 AI 编程时代是真正的护城河。
所以那些年没白学。只是我们以为自己学的是"怎么写代码",其实真正学的是"怎么思考一个系统"。前者被 AI 替代了,后者被 AI 放大了。
## 七、写在最后
我没有完整的答案。AI 编程这件事还在快速变化,今天我说的某些判断,可能半年后就不成立。
但有一件事我越来越确定:
AI 编程不会让"懂技术的人"和"不懂技术的人"之间的差距消失,它只是把这个差距挪了个地方。
过去差在"会不会写",现在差在"知不知道该让它写什么、写出来对不对、什么时候该停下来"。
如果你是有基础的人,不用焦虑那些被替代掉的技能——它们本来就只是表面。你真正的资产是底下那层判断力,AI 越强,它越值钱。
如果你是没基础的人,也不用觉得自己永远追不上——你不需要重走一遍 OS、算法、编译原理的老路。你需要的是上面那五个阶段,慢慢把那种"反应"长出来。
中间那条沟是存在的。但它没有那么深,也没有那么宽。
只是没人愿意把搭这座桥的事,认真做出来而已。
## 相关链接
- [brewcookie](https://x.com/ibrewcookie)
- [@ibrewcookie](https://x.com/ibrewcookie)
- [485](https://x.com/ibrewcookie/status/2049387214535368948/analytics)
- [Upgrade to Premium](https://x.com/i/premium_sign_up)
- [3:16 PM · Apr 29, 2026](https://x.com/ibrewcookie/status/2049387214535368948)
- [485 Views](https://x.com/ibrewcookie/status/2049387214535368948/analytics)
- [View quotes](https://x.com/ibrewcookie/status/2049387214535368948/quotes)
---
*导出时间: 2026/4/29 17:17:11*