从 Vibe Coding 到手写代码 - 一个初级开发者的真实教训

我是一个刚入行不到一年的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 的方式在技术上持续进步的。

84 个赞

既要练武,也要练功 :+1:

4 个赞

大清早发文,这是醒了还是没睡

2 个赞

说的很对,架构这个玩意真的得自己想,能尽量自己编码真得自己编码,AI一开始真的最好用来辅助,vibe coding最大的诱惑就是能写出一堆代码,但是实际上自己的产出是无法跟上。很快思路就会脱节

1 个赞

仔细看完了佬写的内容,也是感同身受。

这玩意用久了就和健身的科技选手类似了,随便练练就能长肌肉。

当过度依赖的时候,就要想想他的代价是啥了。

6 个赞

基础还是要学好的,当初我学java的时候 都在说,不要用ide 用记事本写,哈哈哈(我并没有从记事本开始)

1 个赞

可以看看有没有帮助 :face_savoring_food:

15 个赞

我来讲一下我的看法喔,你说的这个,“吊打普通程序员能碰到的所有同事”,可能我就是那个比ai还牛逼的程序员。我写了最少10年代码,ai的经验还是欠缺的,仍需要经验丰富的程序员,也就是架构师指导。我承认90%代码ai都可以写。但是你的需求必须写的非常完整。ai才可以输入你想要的代码。重要的是,这些经验可以复用。
我之前写的开发提示词,也是遵循这个原则,人的经验大于一切,ai只是提供方案。人来选择调整。返工率大幅度下降。
那些 oepnspce,测了,完全不可控,烧token,慢的难以难受。可能是我不会用。还是怎么回事,就是用那些没输出过有用的代码。都是屎山。

4 个赞

咋说呢,因为写代码是你的基本功,肯定不能丢,就算是汽车开了智能辅助驾驶,也不能全让它开,自己一点不介入

4 个赞

感觉那些一次性的项目可以用ai写,但是需要长期维护的项目,还是自己写比较好。新人最好全程都自己写

很强了!

2 个赞

我感觉当前的AI智能确实会在短期内让大型项目提高生产力,但是长远看,该花的时间仍然少不了,

1 个赞

如果还处在成长期,vibe可以做参考。对我来说只是减少工作量

3 个赞

说的太好了!

1 个赞

我只是用来生成一些模板类的东西,或者实现某个功能的细节,全部交给ai可能那种功能简单的外包或者自己的项目可以,公司长期维护的肯定不行的

1 个赞

这也是目前有在考虑的问题,
对于高级开发来说,VibeCoding是多了一堆打下手的007小弟,生产力可以乘10倍;
但是对于初级和中级开发来说,可能因此失去了练手的机会而无法成长为 高级开发.
长期来看对公司和业界发展是不利的.

1 个赞

我已经废了,懒得不想再写了. 更多的时间花在了摸鱼上

3 个赞

我现在就是,回头看全是屎山,现在在重构 :distorted_face:

1 个赞

打铁还需自身硬

1 个赞

我觉得是思路一定要跟上,是让ai跟着你的思路,而不是你跟着ai的思路

3 个赞