以前开始修改一个缺陷时,脑海中会瞬间出来修改缺陷的思路和细节,但今天着手更改一个缺陷的时候,突然发现自己依然能够清楚思路,但是曾经"肌肉记忆"般的代码结构、编程语句竟然已经模糊了。
心里一阵发慌,毕竟毕业后一直靠这个吃饭呢。
但冷静下来后,我开始思考这个问题了。
"古法编程"时代倡导的技术细节,在"AI编程"时代是否还是重点?如果不是重点,那我们应该关注什么呢?
今天,我就抛砖引玉,谈谈我的看法,欢迎大家一起探讨。
编程的发展
我们先来回顾下编程语言发展的大概脉络,基于个人经验总结,不一定全面,大家参考。
机器语言和汇编语言,我们就不聊了,离我们太远,除了大学自学了解了一下,后来就再也没实操过。
接着是手工编码时代,程序都是我们一个字母一个字母敲出来的,这时的 IDE 还比较初级,更多的是各类文本编辑器,比如:"记事本"。这个时代,甚至"tab 还是 4个空格","if 语句后的左大括号是紧跟 if 还是换行" 都是大家争论的点。
然后来到了智能辅助的时代,各种语言层出不穷,Basic、FORTRAN、LISP、C、PHP,包括现在依旧火热的 Java、Python。这时候,相应的 IDE 已经基本成型,大家可以快速生成代码结构,也可以通过智能提示直接补全一大段代码。
再后来,我们进入了"AI编程"的时代,代码都已经不是补全了,而是可以直接通过自然语言从 0 生成了。"一句话生成应用"虽然有些夸张,但这个模式目前确实已经可行。
发展中的变化
大学学习的技术比较陈旧,所以,我有幸经历了上述每一个阶段。
仔细想想,其实每个阶段的前进,其实都有以下几个方面的变化:
- 抽象层级的上升
- 关注对象的粗化
- 体力占比的降低
抽象层次的上升
- 最开始和 CPU 寄存器打交道的机器语言、汇编语言;
- 接着需要考虑内存分配的 C 语言;
- 再后来只需要关注应用层级的 Java、Python;
而到了现在,借助 AI 编程,我们关注的变成了功能需求和界面体验。
因此,我感觉编程所处的层级在不断上升,不断地从机器一侧向人靠近。
关注对象的粗化
由于编程工具的发展,我们编程关注的对象也从语言的关键字,到语句,到代码片段,再到后来的服务。
AI 时代,我感觉我们关注的对象需要更加宏观,比如一个功能模块、一套系统实现。
现在拿到一个需求,通过 AI 帮我实现一版,审阅发现不够满意之后,我有时已经不会像之前一样调试、优化,而是直接回滚,然后向 AI 发出改进后的指令,再次生成。
这还只是 AI 初级阶段的情况,也许以后真的有可能像"钢铁侠"里面一样:
"Jarvis,帮我实现一套仓库管理系统。"
"Jarvis,这套流程太复杂,重新帮我设计一套简单点的。"
体力占比的降低
最开始,代码是在纸带上人工打孔实现的,后来,一个字母一个字母敲,再后来,一行一段的补全。
现在,直接生成。
以后,应该就是语音指令(目前通过语音识别已经初步实现),甚至脑机接口了。
这其实也是人类发展的必然,我们一定会大力发展解放自己双手的技术。
个人看法
AI 时代,编程范式一定会发生变化。个人认为我们关注的重点,不要过于聚焦底层的细节,而要注重架构、设计、逻辑等更具技术含量的内容。
比如:
- 不要"Java 语法二十四讲",而要"设计模式与系统思维";
- 不要"HTML 标签大全",而要"色彩、光影、布局的技巧"
- 不要"if-else 的一百种写法",而要"流程控制的设计艺术"
由于文字水平有限,无法提炼出特别精准、简练的内容,只能通过对比呈现一下,希望可以表达清楚。
结语
AI 不会取代程序员行业,但一定会替代一部分程序员,但同时,AI 也让我们从重复劳动中解放出来,比我们向上成长。
你准备好重新塑造自己的"编程能力"了吗?
欢迎一起探讨------毕竟,未来的范式,就在我们手里。