新手用Codeium写练手任务,最怕什么?提示词写得太笼统,AI直接给你丢出一个带数据库、Dockerfile的全栈项目——这哪是练手,简直是制造挫败感。代码跑不通不说,连逻辑链条都看不懂,更别提一步步跟下来学到东西了。

用“单点动作+边界锁死”替代项目描述
把“帮我写个学生管理系统”换成类似这样的描述:
“只用Python写一个函数,接收姓名和学号两个字符串,存进全局列表,返回当前列表长度。不定义类、不写输入提示、不输出任何文字,只返回数字。”
这一步,必须得做。否则Codeium会自动补全__main__块、加argparse、甚至生成requirements.txt——它默认你想要的是“可交付项目”,而你真正需要的是“能一行一行看懂的10行代码”。
一个简单的替换原则:禁用“系统”“管理”“平台”等宏观词,全部替换为“函数”“变量”“打印”“返回”等具体动词。指令越具体,AI的发挥空间就越小,练手效果反而越好。
按认知负荷分三阶输出
先让它生成最薄的一层逻辑。
第一步:“用Python写一个判断字符串是否为回文的函数,只用基础切片,不调用reversed()或循环。”
第二步,确认能跑通后追加约束。
“在上一函数基础上,增加对空格和大小写的忽略处理,例如‘A man a plan’应返回True。”
第三步,封装成可验证任务。
“把上面两个函数合并为一个,命名为is_palindrome_v2,添加类型注解,并在if __name__ == '__main__':中调用它测试三个样例:'aba'、'A man a plan'、'hello',打印每组输入和对应结果。”
这里有个关键点需要注意:Codeium不会主动记住前序步骤。每次都要把“上一版本”显式带入新提示词,否则它会从零重建上下文,之前的逻辑就会丢失。
强制AI暴露思考路径
有两种方法可以做到这一点。
方法一:用/goal前置指令
在Codeium编辑器中输入:/goal 请先列出本任务涉及的3个Python核心知识点(如切片、str.lower()、布尔运算),再逐条说明为什么每个知识点不可跳过;最后才输出代码。
方法二:角色锚定法
“你是一名刚带完Python入门班的助教,正在给只会print和input的学生出题。请设计一道题,目标是让他们第一次接触‘函数返回值’概念。题目描述必须含输入样例→预期输出→学生易错点(如忘记return)。”
需要注意的是,未登录Codeium账号时,/goal指令不可见,该功能将完全失效。这一点在设置工作流时务必提前确认。
防AI自由发挥的硬性收口
在提示词末尾加一句不可删减的收口指令:
“只输出最终可复制粘贴运行的代码,不解释、不补充、不加markdown代码块符号、不写‘以下是答案’等引导语,第一行必须是def或if __name__。”
这句必须放在提示词最后一行,且前面不能有空行。Codeium对结尾指令极其敏感——漏掉它,80%的概率会多出两段说明文字和一个错误示例。
如果生成结果的开头是“好的,这是一个……”,说明收口指令被忽略了。这时候需要检查一下是否有多余的换行或标点符号错误。指令的简洁和准确,往往决定了练手任务的成败。
