最近有人问我一个问题,现在AI普及了,AI就可以写代码了,程序员被大量裁员,那我们的孩子还要学习编程吗?这还有出路吗?
这是个很难回答的问题,的却,现在学个软件开发的专业很找工作难度大大增加,也看到大量的新闻在说裁员的消息,实际上,我现在要写个简单的工具也不自己写了,都是由AI代写,大公司关于AI能力的大模型也越来越卷了。那么编程是不是不需要呢?
我的理解是编程更需要学习了,不过学习的内容,学习的方向,学习的重点,学习的手段,方式和效率有变化了。狭义的编程,比如做那种偏应用的是不需要深入学习了。但是广义的编程,比如算法,模型,架构,产品等方面,更需要学习编了。
我记得我们刚接触编程的时候,是1998年左右,那个时候流行学习打字,输入法还是学王码,我一有空就在那儿背“王旁青头兼五一”,“土士二干十寸雨”。电脑那个时候还是80286,80386。我们都是靠打印一张键盘在桌子上盲练输入法。那个年代会编程的人,都是牛人啊。
我最早接触的编程是用QBASIC,后来慢慢学习了一点儿汇编,然后就是C语言,然后就是学c++,VB,Delphi,到后面Asp,c#,Java,python,Rust,数据库从Dbase到foxbase,informix,sybase,oracle7,mysql,Pgsql到现在的分布式数据库等。编程语言的变化是一条线,反应了不同时代对信息化,数据化,智能化的变迁过程。编程语言之外,从单一编程,到奉为圣经的“设计模式”,从CS架构到BS到微服务。操作系统经历了Dos,windows,solaris,linux。这个学习和使用技术的过程,是相对传统的,线性的。我相信有些技术在90后及以后的人,都没有听说过,就彻底进入了历史的垃圾桶。
现在有了AI以后,这一切就变化了,学习的内容重点不在掌握有一种语言,有一些个人的奇淫技巧。学习的内容和方向我觉得应该是编程的逻辑思维,架构思维,模型训练,产品思维。学习的手段从一步一步线性学习,变化为掌握一定基础后,按需学习。
首先,编程的基础和逻辑思维还是需要学习的。从我最早接触的“输入”-“计算”-“输出”的理解,到定义常量,变量,循环等基础,到基本的数据结构,如数组,队列,栈等。这些基础知识可以让你以后在做出来的软件有更深入的理解。这一块知识需要的时间也不多,系统学习一个月加上动手练练,就很熟悉了。
其次,有了以上基础以后,你就可以按需学习了,比如你要做什么东西,可以通过AI编程,先让AI通过知识问答的方式帮你做出来。然后你可以在这个过程中,看看AI怎么写的代码,理解一些设计模式和思维,这种成长速度很快,然后就可以去学习人工智能的一些基础知识,包括大模型,agent开发等,这样比较符合现在市场对人员的需求。
当然如果你不是想学编程,那么你应该在这个基础上学习一下架构思维和产品思维。
架构思维是让你理解你做的东西怎么样更好的运行起来,在日常运维过程中用更合适的成本把你的业务跑起来。比如你的系统需求是多大的并发量,数据量是个什么级别,应该从那些角度去考虑系统运行的稳定性,安全性等,实际能投入的资源怎么分配到各个板块,这些都是需要站在比编程更高纬度来思考的,也是AI短时间内不能复制的知识。
产品思维一方面让你理解面向用户,业务的角度如何让别人用你的产品,更好更爽的用你做的产品。同时也让你能理解为什么有时候用户提出来的需求,没有那么容易实现,要平衡技术,市场,运营等各个方面的难题。很多时候AI可以说的头头是道,但是大部分知识都是不太符合用户现实需求的,洞察用户心理并开发合适的产品,在短时间AI还是很难做到的。
所以,我的回答是AI时代,不需要像以前那样学习编程,但是需要理解编程的基本知识,同时学习编程相关的领域知识。