不知道你发现没有,现在简历上最值钱的东西,往往是那些"看起来不起眼"的个人项目。不是大厂经历,不是论文数量,而是你用技术真的解决了一个小问题的完整过程。而对新手开发者来说,最难的不是学会某个框架,而是从"我脑子里有个想法"到"它真的能跑起来"这段鸿沟。AI恰好把这段鸿沟填平了大半——写代码、查语法、修bug、写脚本,过去要花一周入门的东西,现在一个下午就能见到雏形。这篇文章就是写给那些想用AI做个人小项目、但又不知道怎么下手的新手开发者:从选项目、选AI工具,到实际跑通一个小项目,再到避坑,一条线捋清楚。
我做个人项目也有七八年了,带过不少新手,也看着AI编程工具从鸡肋变成主力。我的结论很直接:现在做一个个人小项目的核心能力,已经不是"背下多少API",而是会不会把需求拆清楚、能不能跟AI有效协作。这篇文章没有高深理论,全是我实测下来、并且愿意反复推荐给别人的操作方式。
1. 动手之前:想清楚你要做什么
1.1 个人小项目到底"小"在哪
新手最容易犯的错,是一上来就想做一个"完整的系统",比如"我要做一个自己的电商平台"。我在带人的时候,听到这种想法就头皮发麻。个人小项目的第一原则不是炫技,而是"小到你能在两周内做完并展示出来"。这里的"小"有几个具体标准:
- 只解决一个具体问题,不解决一类问题;
- 数据可以存在本地文件或者SQLite,不需要专门配数据库服务;
- 界面可以是命令行、一个网页,甚至是一个脚本,不需要复杂的架构;
- 做完之后,你能在3分钟内跑起来给别人看。
比如"一个记录每天喝水的命令行工具"就比"一个健康管理平台"好一万倍。前者你一天就能做完,还能加上统计功能;后者你光设计了几天,代码一行没写。AI虽然能帮你写很多代码,但它不能帮你把目标缩小。目标定大了,AI也只能陪你在泥潭里挣扎。
1.2 选题四步法:从一个烦心事到一个MVP
我用过不少项目选题方法,最后沉淀下来的是一套很朴素的做法,不需要什么天分,只需要你如实回答几个问题。
- 第一步,记录你最近一周里"想自动化"的小事。比如:每天整理零钱账单很烦、记不住给花浇水的时间、写周报时要翻聊天记录。
- 第二步,选其中最简单的一件,把它写成一句话:"做一个XX工具,输入X,输出Y。"
- 第三步,砍功能。把这句话里所有"顺便""如果""还能"去掉,只保留最核心的动作。
- 第四步,问自己:这个工具如果只有我能用,我还愿意做吗?如果答案是"愿意",那就对了。
我自己的经验是,做个人项目最大的动力不是"别人需要",而是"我自己烦透了"。选题一旦落到自己的痛点上,你后面才有力气去跟报错搏斗。AI在这里的作用是帮你把这件事变得"可行",但"做什么"这件事,永远得你自己定。我见过不少新手拿AI"帮我想项目",生成一堆项目点子,最后每一个都没做,原因就在这里——那不是你的痛点。
2. AI工具怎么选,别一上来就装全家桶
2.1 四类AI工具的分工
新手总喜欢问我"哪个AI编程工具最好",我一般都会反问:你拿来干什么?因为AI编程相关的工具早就不是"一个聊天框"了——远的不说,市面上的工具至少能分成四类,各管一段:
- 对话式AI(比如ChatGPT、豆包、Kimi这类):适合聊思路、解释报错、让它生成小段代码。优点是灵活,缺点是你得自己把代码粘来粘去。
- 代码补全插件(比如GitHub Copilot、通义灵码、Fitten Code这类):嵌在你的编辑器里,你写注释它补代码,你写一半它帮你续。优点是体验顺滑,缺点是对"整个项目"的把握有限。
- 编程Agent(比如现在的Claude Code、DevOps类的自动化Agent):可以按照你的指令去改代码、跑测试、查文件,像请了一个实习生。优点是能力强,缺点是你得有基本的代码判断力,不然它改坏了你都不知道。
- 代码审查与解释类(各种带"解释代码""找bug"功能的插件):适合你拿到一堆别人的代码时快速理解,也适合提交前自查。
很多新手一上来就装五六个插件,工具栏比代码还长,结果反而是灾难。我见过有人同时开三个对话窗口,让AI们互相评理,最后还是不知道代码该怎么写。这不是不行,但至少等你项目做完了再折腾。
2.2 我目前推荐的组合与选择逻辑
我给新手的原则很简单:先选一个对话式AI当主力,再装一个代码补全插件当辅助。两个就够了。具体选哪个,看你平时主要用什么生态:
| 场景 | 推荐组合 | 理由 |
|---|---|---|
| 日常写Python/JS小工具 | 任选一个你顺手的大模型 + Fitten Code | 轻量、免费额度够用,插件在VSCode里很顺 |
| 在JetBrains系IDE里开发 | 大模型对话窗口 + 通义灵码 | 对IDE集成好,补全准确率在中文注释下也OK |
| 想体验Agent式协作 | 大模型对话窗口 + Claude Code等 | 适合项目已经有一定结构、需要AI批量改代码 |
| 纯API调用、脚本自动化 | 直接用对话式AI问API写法 | 不需要重型工具 |
如果你完全没经验,就从"VSCode + 一个补全插件 + 一个对话窗口"开始。等你体会到"AI补全"和"AI帮你写"的区别,再考虑加工具。记住,工具再多也不如你脑子里的目标清楚。
2.3 一句话说清AI大模型的基本工作方式
理解AI是怎么工作的,对你写提示词有决定性帮助。它本质上是一个"根据上下文预测下一个词"的超大模型:你问它"Python怎么读文件",它给出的不是从数据库里查到的标准答案,而是基于海量代码训练出来的"最可能被写出来的那串代码"。这意味着两件事:
- 你的问题越具体,它"预测"得越准。问"帮我写爬虫"和"帮我用requests库写一个下载某网站图片的脚本,只下载前10张,保存到images文件夹",后者的质量会高出几个等级。
- 它没有"查证"能力,只有"生成"能力。它给你一段可能过时的API写法,不是因为它想骗你,而是因为它预测"这种写法更常见"。所以你必须保留基本的判断力,至少能在报错后把错误信息回喂给它。
搞清楚这个底线,你就不会把AI当成神。它是一个极强的生成器,配合你的验证,才是一个可靠的生产工具。
3. 一个真实小项目的完整实操流程
3.1 第一步:把需求写成AI能听懂的任务说明书
很多人让AI写代码,第一句话是"帮我写个记账软件",然后抱怨AI写的不能用。其实问题不在AI,在于你把一个模糊的指令扔给了它。我在实际项目中会花10到15分钟,先写一份"任务说明书",里面至少包含四块:
- 项目是什么、给谁用;
- 技术栈限定(语言、框架、存储方式);
- 核心功能列表,每条都具体到输入和输出;
- 你希望AI"先给什么":是先给项目结构,还是直接给完整代码。
我拿自己的一个真实小项目举例——"命令行习惯打卡工具"。我的任务说明书是这样的:
你是一名Python开发工程师。我要做一个命令行版的习惯打卡工具。 技术栈: - Python 3.10+ - SQLite存储,不需要Web界面,不需要用户系统 核心功能: 1. 命令 `add 习惯名`:添加一个新习惯,重复添加时提示已存在。 2. 命令 `checkin 习惯名`:给该习惯打卡,记录今天日期。 3. 命令 `status 习惯名`:显示该习惯总打卡天数、连续打卡天数、今天是否已打卡。 4. 所有数据存在本地数据库文件中。 要求:代码结构清晰,注释写清楚,第一次对话请直接给出项目文件清单和完整代码。你看,这段话里没有废话,每一句都在约束输出的范围。AI最怕的不是复杂,而是模糊。你把边界画清楚,它生成的代码就能直接用。
3.2 第二步:让AI生成第一版骨架
把任务说明书发给AI之后,它通常会给你一段比较完整的代码。我的做法是:先不急着全盘接收,而是看它给出的文件结构。如果它说"需要三个文件",但你其实想用一个文件搞定,就直接告诉它"请合并成一个文件"。这一步是你在控制项目形态,而不是被AI牵着走。
拿到代码后,照着一个固定流程走:
- 在本地建一个项目文件夹,比如
habit-cli/; - 把AI给的代码粘贴进去;
- 根据代码里的依赖说明,用pip等工具安装所需库;
- 运行一次,做好报错准备。
这里有个技巧:不要把AI给的代码复制到"新建文件"里然后手动保存。你可以直接在编辑器里新建文件,粘贴,然后让AI解释一下"这个文件对应什么功能"。我在实际中会让AI在注释里标清楚"main函数入口""数据库初始化函数",这样即使报错,你也知道去哪一行找问题。
3.3 第三步:把报错变成AI能看懂的问题
运行代码几乎必然报错,这不是坏事。我遇到过太多新手在报错面前慌了神,甚至跑去问AI"为什么我的代码跑不了",然后把几百行代码全丢过去。其实正确姿势是"让AI看到错误本身"。
你需要做的是:
- 复制终端里完整报错信息,包括文件路径、行号、错误类型;
- 把报错信息连同相关的几行代码发给AI;
- 开场明确说"运行下面代码时出现这个报错,请帮我修复"。
举个例子,如果报错是ModuleNotFoundError: No module named 'tabulate',你不需要AI猜,直接告诉它"我是Windows环境,已安装pip"。多数情况下,AI会直接给出解决命令。如果是代码逻辑问题,报错会复杂一些,但只要你给了行号和错误类型,AI的修复准确率相当高。
我自己的习惯是:任何报错信息我都会原样复制,不加"急死了""怎么办"这类情绪词。AI识别报错靠的是信息量,不是你的语气。信息给全了,它大概率能在两轮对话内指向问题根源。
3.4 第四步:用"加功能"的方式迭代
第一版能跑通,项目就已经完成了70%。剩下的是锦上添花——前提是你对它还有热情。我每次加功能,都遵循同样的节奏:先跟AI说清楚"我现在有什么,我想加什么",再让它给出改动方案,最后只保留你真正需要的改动。
拿打卡工具来说,第一版跑通后,我加了两个功能:一个是stats命令,统计最近7天的打卡情况;一个是把数据导出成CSV,方便我月底复盘。我给AI的指令是:
"现在我有 checkin 和 status 两个命令,数据存在SQLite。请增加一个stats命令,输出最近7天每天是否打卡,用✅和❌表示,再增加一个export命令,把全部记录导出为CSV文件。"
这里的关键是:我在描述现状,而不是让AI凭空想象。AI不知道你现有代码长什么样,所以你把现状描述得越清楚,它的改动就越不破坏原有功能。如果你自己都说不清现状,那说明你还没理解自己的代码——这时候别急着加功能,先让AI帮你梳理一遍代码结构。
4. 新手最容易踩的坑:我的避坑清单
4.1 别把AI当成答案,它是"第一稿"
我见过太多新手把AI生成的代码当成标准答案,直接部署、直接拿去交作业。AI在大多数情况下写得都对,但它的"对"是统计意义上的对,不是针对你的运行环境的对。它可能默认你用macOS(实际你用Windows);它可能用了最新版本库里的新写法(实际你装的是稳定版);它甚至可能生成一段看起来完整、但实际有一个隐藏bug的代码。
所以我有一条铁律:AI给的代码,第一版永远是草稿。你要做的是运行、测试、破坏它,而不是直接信任它。等你把报错一个个修完,它才真正变成"你的代码"。
具体来说,每次AI给出代码后,我都强迫自己回答三个问题:这个代码入口在哪?它使用了哪些外部库?如果输入数据是空的,它能正常运行吗?这三个问题回答完,代码我基本就吃透了。
4.2 上下文越完整,AI越靠谱
新手跟AI协作最容易犯的第二个错,是上下文缺失。你直接问"我的代码有bug",AI连你的代码在哪儿都不知道。正确的做法是:把"目标—现状—约束"一次性说清楚。
比如你让AI帮你改一段现有的代码,至少要说清楚这样几件事:
- 这个项目大概干什么;
- 你要改动的模块是哪一个;
- 现在遇到的具体问题(报错信息或期望行为);
- 你不能接受哪类方案(比如"不能加新的外部数据库")。
我经常把对话式AI当成一个随时在场的同事,而同事之间沟通最基本的礼貌就是把背景讲清楚。你写得越多,它越能给出贴合你项目的方案,来回扯皮的次数就越少。
4.3 代码一定要进Git仓库,哪怕只有你自己看
这个坑我当年踩得很惨:做了快两周的项目,文件夹一团乱,改到功能坏了想回退,只能靠不同文件的"_final"、"_final2"版本硬扛。后来才老实用了Git。对新手来说,Git不需要掌握多少命令,只需要三个就够:
git init:让当前文件夹变成仓库;git add . && git commit -m "说明":保存一个版本;- 出错时
git checkout .:回退到上一个版本。
每次AI帮你改完代码并且测试通过,就提交一次。我的记录习惯是"功能描述 + 日期",比如完成checkin功能-0107。这样就算AI把代码改坏了,你也能一键回退,而不是跟代码生闷气。
再说一句:你提交代码的过程,也是逼自己理清思路的过程。如果不完全清楚这次改了啥,就别提交。这个习惯一旦建立,你做任何项目都不会迷路。
4.4 分清"我不懂"和"AI不懂"
遇到问题的时候,先判断这是"你不懂"还是"AI不懂"。这两个的处理方式完全不同。
如果你连"报错信息里提到的那个文件是什么"都不知道,那属于"你不懂",需要先把基础概念补上。你可以让AI用一两句话解释,但不要让它替你把所有功课做了,否则你永远学不会独立排查。如果你能定位问题,但AI在给同一个错误反复提供无效修复,那属于"AI不懂"。这时候别再硬问同一个问题,换个方式重新描述,或者简化问题——很多时候,你把一个复杂报错拆解成两个小问题后,AI就能给出有效答案。
我自己的判断标准是:我对代码的逻辑理解能画出一张粗糙的流程图,哪怕画在纸上。能画出来,说明你懂了骨架;画不出来,说明你自己都还晕着,AI给什么你都只能照单全收,这非常危险。
5. 常见问题与排查技巧实录
5.1 环境配置类问题:依赖、路径、开发者模式
新手项目里有一大半报错不是代码问题,而是环境问题。装不上库、路径找不到、开发者模式没有打开,这些能把人耗到崩溃。我把最常见的几类列个表:
| 现象 | 常见原因 | 处理方式 |
|---|---|---|
| pip安装失败 | 网络源问题或版本冲突 | 换国内镜像源,指定版本安装;检查是否装进了正确的解释器 |
| 找不到文件或模块 | 路径写死、运行目录不对 | 在代码开头打印当前工作目录,检查相对路径 |
| 手机/小程序调试不了 | 开发者模式、USB调试权限未开 | 进入系统设置找到"开发者选项",打开开关;微信开发者工具需要在小程序后台配置域名白名单 |
| 端口被占用 | 上一个服务没停 | 找到占用端口的进程,杀掉后重启 |
关于"开发者模式",我多说一句:它不是你写代码能力的一部分,但它是连接你开发和真机调试的桥。很多新手做完项目想在自己的手机上跑,找不到入口就卡住了。iOS端需要开启开发者模式,Android端需要连续点击版本号来激活开发者选项,微信小程序则需要你在微信开发者工具的"详情—本地设置"里把"不校验合法域名"勾选上,才能用本地代理调试。这些内容跟AI没有直接关系,但如果你不弄清楚,再好的AI也救不了你。
遇到环境问题时,我还有个习惯:把终端输出完整地发送给AI,包括那些看起来无关的warning。AI能根据warning判断你缺了什么系统库、哪两个包版本打架,比你搜半天零散文章更高效。
5.2 AI给出的是过时API,怎么识别
用AI开发一段时间后,你会遇到一种离谱情况:AI理直气壮地给出一个"不存在"的API,或者给你一个非常老旧的写法。原因是模型训练数据有时间截点,而第三方库每隔几个月就变一次。
我的识别办法很简单:
- 看到AI给出的API,先去搜索引擎或者官方文档站快速确认。我一般看两个东西:官方文档的更新时间,以及文档里面示例代码的写法是否和AI给的一致。
- 如果文档确实变了,就把新版写法告诉AI,并说明"请基于这个版本的文档继续改代码"。
这不是让你每个API都查,而是重要的核心调用必须查。比如认证方式、数据库连接、支付回调这种一旦出错影响全局的,你值得花两分钟检查。
5.3 代码能跑但结果不对,怎么验证
比报错更隐蔽的问题是"不报错但结果错"。刚开始用AI时极易遇到这种情况:它生成了一段看似正常的代码,运行也不报错,但输出完全不对。这时候最有效的排查手段,不是让AI瞎猜,而是"打印中间过程"。我的经典做法是:在关键步骤后加一行print(),把变量的值打印出来,然后对比"实际值"和"期望值"。
比如一个统计连续打卡天数的函数,如果算出来的数字不对,我会在每次判断连续的逻辑处加打印,看它到底把哪一天算断了。拿着这些中间日志发给AI,它就能精准定位。这比反复说"结果不对"有用一百倍。
给AI的提示可以这样写:
"我写的函数返回的是3,但正确答案应该是5。中间过程打印如下:...(粘贴日志)。请帮我判断是哪一步逻辑写错了。"
5.4 项目做不下去怎么办:缩小范围
最后说一个大多数人都会遇到的问题:项目做到一半,没动力了。不是代码太难,而是"你已经看到结果了",剩下的完善工作变得无聊。很多人这时候会自责,然后直接放弃。我给的建议是:把剩余功能砍掉一半,立刻上线一个"简陋版"。
个人项目跟工作项目不一样,你没老板逼,没KPI压着,保持完成的快感比追求完美重要得多。哪怕你的项目只有一个命令行工具,只要它解决了你的问题,你就可以拿去给你朋友看,可以写一篇文章记录你踩过的坑。我见过太多人做了六个月的项目丢在硬盘里无人问津,也见过不少人做了一个两周的小工具,因为真的在用它,反而持续迭代了一年。做完一个粗糙但完整的东西,比有一百个半成品要有价值得多。
我个人的体会是:AI真正改变的,不是"开发者不需要写代码了",而是"新手开发者不需要在起步阶段被劝退了"。过去你从装环境到跑通第一个界面可能要卡一个月,现在一个周末就能做出来。但别高兴太早——现在的门槛变成"你会不会定义问题、会不会验证结果、会不会拆需求"。这些能力,AI替代不了你。接下来的个人项目,建议你从今天就开始:找一个烦了你很久的小事,写一份任务说明书,让AI给你第一稿,然后跑起来。剩下的,就是不断重复"运行—报错—修复—提交"这个循环。这个循环多走几遍,你会发现自己已经开始独立解决很多问题了。