主要观点总结
本文主要讲述了一个没有技术背景的人通过AI编程尝试制作产品,过程中遇到的挑战和问题,包括AI编程的需求洞察能力的重要性,以及如何建立和提升需求洞察能力。作者通过开发数独游戏为例,分享了其利用AI生成不同难度题目的经验和教训。
关键观点总结
关键观点1: 零基础使用AI编程的挑战和问题
作者通过实践发现,虽然AI可以帮助实现功能,但在产品细节、技术实现路线等方面需要自己的真实体验感受,并且需要理解技术背后的逻辑和实现路线。此外,作者还遇到了AI修改功能可能导致一堆东西面目全非、代码逐渐臃肿、无用文件堆积等问题。
关键观点2: AI编程中的需求洞察能力的重要性
作者认为,无论是不是AI时代,让你做出产品能赚钱的都不是编程能力,而是需求洞察能力。AI只是让你能快速、低成本地把需求洞察变成可用的产品。作者通过开发数独游戏等案例,强调了需求洞察能力的重要性。
关键观点3: 如何利用AI生成不同难度的数独题目
作者在开发数独游戏时,利用AI生成不同难度的题目,并通过实践发现了生成高难度题目的技术实现路线的复杂性。作者还分享了自己遇到的一些技术问题,如唯一性校验、生成效率等,并提到了一些解决方案和尝试。
正文
最近网上有不少案例分享,0基础的人通过AI编程,几个小时做了产品,然后稳稳的收入激增,确实挺让人羡慕,我自己也分享过一些案例,但毕竟只是道听途说,那么很多事情,需要自己试试才知道。而且只有自己真的去尝试了,那么和读者交流沟通,遇到别人问及相关问题的时候,才能真的拿出靠谱的意见和建议,而不是仅凭道听途说就去胡乱点评,这也是我一直自我标榜和所谓IT评论家最大的区别所在。
当然,最近这两年一直在旅游,缺乏工作心态,所以动作肯定比不了一线的年轻人。先说结论,对我来说,想要快速用AI做出一款可用的产品,目前来看,不太行。当然,这也要看产品类型,和对应的技术诉求,我会用自己的案例来讲解,可能存在的问题。
一开始我是问chatgpt,移动跨平台开发用什么语言框架比较好,它说flutter比较好,那么用什么开发工具呢,介绍的是vs code,其实一开始我是在我笔记本上安装的,按部就班的安装,我装的是visual studio, flutter, android studio,以及它要我安装的一些其他sdk和组件,但我笔记本硬盘分区不合理,系统盘太小了,虽然做了很多应用迁移,还是很快被一些默认安装程序什么的塞满,经常要删删改改才能让系统正常运行,此外笔记本电脑的速度也堪忧。几经周折,总算是把flutter demo调通了,但这种一大堆各种窗口和按钮的交互方式我还是很不习惯,其实我算是上古时期程序员,而且一直抵触前端开发,我以前用的开发工具都是远程服务器上直接开Vi,全部命令行操作。
所以稀里糊涂的不知道从何下手的感觉,加上笔记本的编译速度也很慢,就停了几天没动,然后听从一些读者小伙伴的劝告,考虑了个人预算的问题,毕竟抠门,选择买一台mac mini做开发机,征得夫人同意后,去商场的苹果分销店直接顺了一台,羡慕国内的同学有国补,我就不想耗这个时间了,直接拿。然后配了个鼠标,在家楼下的电器城拎了一台显示器,然后把闲置两年的蓝牙键盘拿出来,算是齐活了。
光搭建开发环境,就折腾了我两天。不过还好mac上安装还算顺利,这次是把vs code,android studio, flutter,此外一些其他语言插件各种也都装上了。那么在vs code上,用的是copilot编程,copilot可以调用各种AI模型,第一天用claude 3.5各种来回反复,很折腾,第二天就狠心注册了copilot pro版本,氪金就是好,claude 3.7启用后明显写代码的效率和成功率提升了。
其实我自己是十分拒绝写前端交互的,而且很多年没有真正做过技术了,(去年无聊写过解数独的程序,还不错),所以全部都是在copilot chat上提需求,让AI自动写代码,前后我是一直没有参与代码的修订和编写的,这么说来,和零基础AI编程,好像也挺像的。
我平时手机上常玩的是数独游戏,所以想拿这个练起手(事后证明,想简单了),然后一开始还算顺利,难度选择,提示功能,草稿功能,最后的快速填充功能,连胜纪录,胜利次数,最快时间等状态数据的保存等等,一样样设计开发完成,中间也有很多反复,但总算看上去完成了(其实并没有,只是自己不知道)。
然后开始设计更多游戏,2048,扫雷先后实现,中间也是和各种bug斗争(都是把问题扔给AI,我是不查代码的),以及各种体验优化等等。
再往后就是增加语言选择和多语言能力,设计多语言的产品名称等。
然后今天,回头想再完善一下数独,增加更高难度,然后才发现,掉坑了。。。
1、很多人也遇到的,就是你让他哪怕修改一个很小的功能,甚至仅仅是简单的版式调整,它有可能把前面一堆东西给你改的面目全非,以至于经常要反复往回调整。后来小伙伴提醒,务必要装一个git 版本管理工具,现在听话了,本地跑git服务,每天老老实实提交稳定版本,遇到各种崩溃的场合,老老实实的回滚。
2、需求提的多了,代码会逐渐臃肿,各种无用的,废弃的都会堆积在代码里,而且经常会莫名其妙的丢弃原有文件另开新文件(当然也许是自己执行chat的时候打开的文件不够全),然后就导致很多没用的文件还在目录里。有时候需要让AI帮你分析一下,哪些代码没有用,哪些文件没有用,claude 3.7 是可以分析的,但还有就是本来可以合并的逻辑,可以合并的代码,却放到了好几个地方,这也遇到了。
3、很多产品细节需要认真去体会,这需要你自己的真实体验感受,AI可以帮你实现功能,但交互的流畅性,有太多小细节需要你来发现,来定位,来把握,然后告诉AI,它才能帮你调整,帮你优化。
扫雷游戏,选择高难度的时候,格子会非常小,手指点击很容易出错,而且边缘很多手机屏幕是弯曲屏,边缘部位的点击就更难。
我选的几个游戏都是因为我自己可以算深度玩家,很多细节我会非常敏感,当然,实话说,AI并没有都帮我解决的很好,这也是需要不断和AI沟通,不断调整的事情。
然后说说我掉的坑,和这个案例所代表的,零技术基础使用AI编程会遇到的严重问题。
我开发完成数独游戏后,一直测试的是简单模式,因为测试速度比较快,测试通关的过程,失败的提示,连胜记录等等,各种文字信息和记录信息是否正确,一直没有测试高难度模式,毕竟耽误时间么,所以一直也没觉得高难度模式有什么问题,那么今天兴起,说加上最高难度试试,所谓最高难度,就是只保留17个数字,是数独游戏离最少数字有解的情况,但并不是任何一局数独你保留17个都能有唯一解的,这个就是一个很麻烦的话题,所以我让AI帮我设计完之后,作为资深玩家,我点开一看就发现,唯一性有问题,于是我让AI增加唯一性校验,然后改过后,继续点开游戏,发现手机卡死了,于是跟AI说这个问题,我以为只是个bug,还没意识到问题在哪里。