代码之后 书架

第 03 章 / 共 12 章

第三章 · 会写代码,不等于会解决问题

先讲个真事的模板,你八成经历过。产品经理走过来,往你桌上一放:「给我们的 App 加个搜索功能。」然后转身就走了。

七个字。看起来清清楚楚,对吧?你打开编辑器,AI 助手已经跃跃欲试,一个搜索框、一个输入监听、一句数据库 LIKE '%关键词%' 查询,十秒钟给你吐出来一个能跑的版本。

但凡你真这么交差,这活儿八成得返工三遍。因为「给我做个搜索功能」这句话里,藏着至少十个没问清楚的问题——而写代码这一步,恰恰是这十个问题都问清楚之后才开始的那一小段。

「搜索」这两个字底下埋了多少地雷

我们把那句含糊的需求拆开看看,它到底没告诉你什么:

还没完——要不要记录用户搜了什么好做后续分析?搜索框要不要有历史记录和联想提示?敏感词要不要过滤?多语言要不要管?

你看,「写一个搜索功能」这个动作本身,AI 几乎是免费送你的。真正吃掉一个工程师大半精力、也真正决定这个功能是好是烂的,是上面这十几个问题的答案。而这些答案,产品经理那句话里一个都没给。

代码是解法的皮,不是解法本身

这里要立一个贯穿本章的分野。

解决一个问题,其实是两件事:先想清楚「到底要解决什么」,再把想法翻译成机器能执行的指令。前者是脑子里的事,后者是键盘上的事。

我们平时嘴上说的「写代码」,指的是后半段——把一个已经想清楚的解法,用编程语言写下来。这层东西我叫它解法的载体

载体就是「把想法装起来的那层皮」。同一个想法,你用 Python 写、用 Java 写、还是用大白话写在纸上,皮不一样,里子是一个。

而真正难的是前半段:把一团模糊的、互相矛盾的、连提需求的人自己都没想明白的现实困境,压缩成一个定义清楚的问题

「定义清楚」的意思是:边界画死了(管什么、不管什么),成功的标准说死了(做到什么程度算成),输入输出都明确了。到这一步,剩下的就真的只是打字了。

用一个类比你就懂了。定义问题像医生问诊,写代码像药房抓药。病人进来说「我不舒服」——这跟「给我做个搜索」一模一样,是句正确的废话。医生的价值全在问诊:哪儿不舒服、多久了、疼是钝疼还是刺痛、按下去更疼还是松手更疼。等他写下一张诊断和药方,抓药的药剂师照单抓就行了,快而且不容易错。

AI 现在是全世界最快、最不知疲倦的药剂师。你把药方(清晰的问题)递给它,它抓得比谁都利索。但它当不了那个医生——因为问诊需要的不是记性和手速,是判断力,是「病人嘴上说的和身体真正出的毛病往往不是一回事」这种世故。

为什么 AI 在「定义问题」这步基本插不上手

这不是说 AI 笨。是这件事的性质决定的,有三个硬原因。

一、真正的需求不在文字里,在文字外

产品经理说「加个搜索」,他脑子里其实有一整幅画面:可能是老板昨天抱怨「用户找不到促销商品」,可能是客服每天被问「XX 到底在哪买」。这些上下文他没说、甚至他自己都没意识到是这些在驱动他。AI 只能读到那七个字,读不到那七个字背后半年的公司恩怨。

信息在源头就是缺失的,不是模型不够大能补回来的。你喂进去的是残缺的题面,再聪明的解题也解的是错题。

二、好问题要靠「反问」逼出来,而 AI 默认不反问

一个有经验的工程师听到「加个搜索」,第一反应不是动手,是反问:「搜什么范围?数据多大?搜不到给什么?」——他在用问题去戳破需求的模糊。

AI 的默认行为恰恰相反:你给它一句含糊的话,它倾向于脑补一个最常见的版本然后立刻交付,让你显得很爽。它不会拦住你说「等等,你这需求根本没想清楚」。这种「用一个漂亮的反问让对方卡壳三秒」的能力,AI 天生偏弱——它被训练成让你满意,而不是让你难堪。

三、划边界是在做取舍,取舍要有人担后果

定义问题最核心的动作,是划边界——决定哪些做、哪些坚决不做。

划边界就是画一条线:线里面是这次要解决的,线外面明确说「这次不管」。不划线,需求就会无限膨胀,永远做不完。

「搜索要不要支持错别字容错」——支持,多花两周还可能引入新 bug;不支持,一部分用户搜不到东西。这是个取舍,取舍就意味着有人要为「我们这版先不做容错」这个决定负责。AI 可以帮你列出两个选项各自的代价,但它没法替你拍板,因为拍板的前提是承担拍错的后果——被老板骂、被用户投诉、被自己半年后收拾烂摊子。责任这东西,没法外包给一个不会挨骂的模型。

把镜头拉回来:你该练的是什么

所以「会写代码」和「会解决问题」的差距,说白了就是这么大:

会写代码,是给你一道定义好的题,你能把它算对。会解决问题,是面对一句「我不舒服」,你能把它变成一道题。前者 AI 抢着替你干,后者它连门都摸不着。

怎么练?下次再有人给你扔来一句含糊的需求,别急着打开编辑器,也别急着把它甩给 AI。先当十分钟医生,逼自己写下三样东西:

  1. 这事的真正目的是什么?——不是「加搜索」,是「让用户更快找到想买的东西」。目的一变,方案可能整个换掉(也许根本不用搜索,改改分类导航就够了)。
  2. 边界在哪?——白纸黑字写下这次「不做什么」。这一条最反人性,也最值钱。
  3. 怎么算做成了?——一个能验证的标准,比如「搜『促销』能在第一屏看到当前促销商品」。没有这条,你永远不知道自己做完了没有。

这三样东西写出来,才是一张真正的药方。到这一步,你再把它递给 AI,让它抓药——它会抓得又快又好。

写代码的手艺正在被摊薄,这没什么可惜的。真正稀缺的、AI 抢不走的,是把「我不舒服」翻译成一张药方的那份判断力。你越早意识到自己值钱的不是打字的手,而是问诊的脑子,就越早站到了那条正在升值的曲线上。

代码之后 · holly
面向对世界有好奇心的人 · 费曼式写法 · 由多个 AI 代理撰写与互相审校