我是一个刚入行不到一年的Full Stack 网页开发(TS/Angular + Java/Spring Boot)。之前有段时间疯狂依赖 AI 写代码(大概有半年的时间,实习和转正的前几个月基本都在用ai写代码,自己写的很少),现在想分享一下我为什么彻底改变了。
我的 Vibe Coding 经历
入行初期,我 vibe code做过一个 Excel 导入功能,用的claude,写了上百个 classes,前端几个页面。当时觉得挺顺利。起码功能是都有了,ui也不错,但现在回头看,到处都是屎山代码。不管是当时我不怎么理解和懂的前端,哪怕我自觉写的不错的后端,也是各种各样的问题。不是功能性的问题,是架构 写法 问题处理的问题。
目前做的项目更大一些,之前vibe code 的部分问题更多。花了很多的功夫才慢慢的纠正。就今天,让 Claude 改个前端小变化,网页版弄了好几个小时都不行,Claude Code 折腾了 2-3 轮才搞定。
让我彻底醒悟的几件事
1. 无法解释自己的代码 有一天跟同事 review 代码,他问我为什么要自己写一个 batch save,而不是直接用 JPA 的 save 让 Hibernate 处理。我当场懵了,因为这段是 AI 写的,我根本说不出为什么。
2. 基本功严重退化 好几次和同事一起看代码、写代码,很基础的 if-else、equals 都写错。因为浅浅的基本功都被 AI 依赖给搞废了。
3. 因为怕不能用 AI 而拒绝更好的 offer 几个月前收到一个更好公司的 offer,我拒掉的其中一个原因是:怕那个公司不让用 AI,然后试用期被赶走。
4. 手写代码后的巨大进步 最近 4 个月开始重新尽量手写代码,在家也经常自学。明显感觉写代码能力、理解能力、信心都在稳定增长。
之前很多东西只是概念上理解,多手写几次,真的不一样。每一个符号、API、类、问题,都有各种各样不同的意义和写法。以前感觉很虚,遇到问题只能问 AI。现在工作日常碰到的问题,自己都能有基础思路了。看代码、学习也更有方向。也有些时候能纠正一下claude给我的建议。
关于 Vibe Coding 的几个现实问题
深度和广度不等于实战能力 AI 的知识面确实广,但知识运用程度还有很大差距。而且 AI 很容易写对一个东西的同时忽略另一个东西,context 处理也经常有问题。
大脑外包的危险 Vibe coding 最大的问题是你基本无脑写代码,因为脑子都外包给 AI 了。这个有研究支持,很多人也有同感。用 AI 用多了,脑子用少了,人真的会变傻,技术能力会下降。
我 vibe coding 最狠的那 2-3 个月,就是我感觉进步最少的时候。
后续怎么办 如果只是Vibe code,基本上自己的理解没法跟上ai造出的代码。如果是小功能还好,大的 持续几个月乃至几年的项目,总有一天会突然无法理解为什么ai那么写,因为不是自己写的所以早忘记了,也因为大脑外包的问题,技术 概念理解在vibe code的过程中没有增长多少。到最后,如果要加新的功能或者改代码,还是坚持让ai改,不仅自己心虚,同事问起来不知道怎么回答,出事了又怎么办。而让自己上手项目,又要看代码仔细的看一遍,需求仔细的过一遍,甚至把ai用到的api和写法学习一遍。到了最后等于还是重复了本来就该一开始的时候不vibe code的时候的学习 和 思考过程。
打工仔用 AI 的隐形成本 如果是自己接项目或者出于兴趣,那是另一回事。但打工仔天天用 AI,脑子外包给 AI,美其名曰得到更多休息时间,在我看来却是弊大于利。
本来打工仔赚的就是那点工资,就算 vibe code 到极限,资本家也不可能多给多少钱。而程序员最核心的能力就是思维能力、解决问题能力。用 AI 用得再好,除非真的在解决商业问题,否则到最后只是一个 AI 的 pre-processor,根本没有竞争力,也没法提升能力。后续怎么跳槽,怎么进步?难不成在一个公司待到死 一直用ai来写?
天天vibe code,面试、更好的工作自然也过不了。只要问一些细节问题,马上露馅。更别说如果到了新公司,哪天上司 同事 盯着自己 改代码 聊需求,难不成打开chatgpt或者claude,然后问"claude 这个该怎么写"?
开发这行杂的知识点太多,vibe code 能学到的太少了。
我现在的做法
现在能手写的就手写为主,AI 是导师 + 干脏活的实习生:
- 前端 CSS/HTML 这些价值不高的让 AI 做
- 核心逻辑、架构设计尽量自己动脑
- 遇到问题先自己思考,AI 用来讨论和验证。目前基本不需要问其他同事技术问题。也可能有小池塘的原因,但是最大的原因还是ai作为导师强太多,看单一问题的深度和广度,很强,吊打普通程序员能碰到的所有同事
写给那些还在 Vibe Coding 的同行
我也不知道那些说自己随便拿捏商业代码的是什么大佬,但我反正做不到。而且即使做到了,代价可能也比想象中大。
如果你和我一样是普通网页开发,建议认真考虑一下:你现在节省的时间,可能正在用未来的职业发展来买单。
欢迎大家分享自己的经验,特别是如何平衡 AI 使用和手写代码的。我也很想知道有没有人成功用 vibe coding 的方式在技术上持续进步的。