当 AI 学会编程,程序员的未来真的只能写 Bug了嘛?
二十多年前,我刚刚接触计算机时,那时候觉得编程真是一件神奇的事情,居然可以操作屏幕上神奇的字符!要说我自己的第一个编程“作品”,那可能是试图在 286 PC 的黑白显示器绘制一个钢琴键盘,并可以响应按键发出不同频率的蜂鸣声 —— 是的,那时候还没有声卡,只有开机时会“滴”一下的扬声器。虽然这个简陋的尝试并没有完成,但却给了我极大的乐趣,也开启了我的编程生涯。
从《代码大全》 到 StackOverflow 大师
后来,当我在北京找到第一份工作时,学会了 Perl 语言,编写了我的第一个 CGI 程序(互动网页),编程于是成为了我吃饭的本领。
上世纪末,互联网刚刚在国内兴起,人们编程时所能求助的外援,大多是各种语言手册、类库大全等书籍。这其中有一本著名的大部头被很多程序员置于案头,它就是《代码大全》,这本书里面提供了很多有用的、精妙的编程示例和技巧。往往在遇到编程难点时,程序员们可以“复制”书中的一些最佳实践来解决。
随着互联网的普及,逐渐出现了 Stack Overflow 之类的编程类问答网站。程序员们惊喜的发现,原来很多困扰自己的编程难题都可以在网上找到答案,且点赞数较高的代码示例比自己写的还要好。于是乎,很多“程序员”变成了“谷歌程序员”/“百度程序员”,搜索、复制,然后粘贴就好了。以至于,StackOverflow 在某年愚人节的 恶作剧 说,它将限制对其网站的免费访问,除非人们购买“钥匙”:一个带有“打开 Stack Overflow”、“复制”和“粘贴”的按钮的设备,算是对这种直接复制、粘贴的做法表达了一种冷幽默。最有趣的是,居然有热心网友联合键盘定制厂商,真将这块特别的键盘定制出来了,并以 29 美元出售。
程序员们是否越来越成为一种熟练工?
随着写的代码越来越多,这种有趣但有时候又很枯燥的重复工作,让我想过什么时候可以有个会编程的程序就好了。
在做过很多编程工作之后,我发现,编程很多时候就是一种例程和模式的重复应用。无论是 C 或 Java 语言,还是 JavaScript、Python 语言,都有庞大无比的类库、例程库。很多时候,你花费了很长的时间,只是为了找到合适的类库和它的用法罢了。至于说自己创造的代码,不过是将其粘合起来的胶水而已。
似乎程序员的“创造性工作”,越来越沦落为快餐店配餐员工一样的地步:根据“下单”,去选择合适的“餐品”,组合搭配之后,放上“餐盘”,送给“顾客”,然后时不时还会被“顾客”讨要一些忘记附送的“餐巾纸”之类的。当这种熟练工的工作逐渐被产品经理等非技术人员识破后,程序员们经常会被嘲笑为“写 Bug的”。
人工智能编程步入实用
这还不够,程序员们甚至连这种复制、粘贴的熟练工作都嫌麻烦,于是一些聪明的程序员们就将眼光放在了近些年大热的人工智能上了。既然现在人工智能已经“无所不能”了,何不请人工智能来编程呢?
对于这一倡议,“光头老板们”表示非常欢迎,这样就再也不用招聘昂贵的程序员了,也不用伺候那些程序员们的怪癖了 —— 比如要么键盘敲得飞起,要么半小时才按几个按键;比如晴天不编程,雨天不编程,心情不好不编程,心情好也不编程 …… 玩笑之余,程序员们看起来已经快没有这种好日子了。
GitHub,对,就是那个被微软收购了的“全球最大的同性交友社区”,他们手握世界上最大的编程代码库,于是就用它训练出来了一个会编程的人工智能 —— Copilot。不要误会,Copilot 不是 “Copy Lot” 的意思,是指“副驾驶”。
在 Copilot 横空出世后,抛开业界对它的许可证问题等道德批评之外,据使用过的人说,“真乃神器也”。你可以简单地描述你要做的事情,它就可以从它庞大的代码库中给出一段你需要的代码,稍加修改甚至无需修改就能直接使用。于是,你看到了,一群程序员,在输入几行字之后,他的 IDE 就马上给出一大段的代码,然后他再这里点点那里按按,假模假式地修改一番,就完成了一个功能。
甚至,聪明的程序员们发现,他们不但可以让人工智能写代码,而且开发规范所要求的代码注释也是现成的。如果不是用那段写给人工智能的文字做注释的话,你还可以让人工智能帮你注释那些蹩脚的代码。
好吧,程序员还需要干什么?只需要按按钮吗?
不止如此,现在的人工智能,除了替你编程之外,还能自己训练模型了。对,你没看错,人工智能可以自己训练 AI 模型了,这是要进化了嘛?
程序员怎么办?写 Bug 吗?
怎么样,是不是感觉自己当年选计算机专业有点明珠暗投的意思了?现在人工智能这么厉害,不仅仅一些传统的依赖人工完成的工作会被人工智能取代,连我们程序员们都面临着失业的风险了。
当然不,其实,至少在目前来看,人工智能还只能是“人工”智能,远没有到全面取代程序员的程度。但是,一些比较简单的、形成模式的编程工作,肯定会被逐渐优化,这一点可以从“低代码”再次流行起来可见一斑。
作为创造程序的人,如果你不想被另外一段程序取代你的工作,只有掌握创造的能力,才不会被淘汰。反而,你可以利用人工智能提升自己的编程水平和效率。
所以,道路很清楚了,在这个人工智能大行其道的时代,你想继续呆在空调房,坐在人体工学的椅子上,手拥若干大显示屏,挥斥方遒吗?只有一条路,做人工智能做不了的事情,掌握人工智能,让它为你所用。
好了,图穷匕见了,这篇文章就是一篇软文,是来劝你抓紧投身人工智能的!
如何,感兴趣吗?
.
.
.
好,我看到你的兴趣了。不过我知道你还有点疑虑,比如学习人工智能技术是不是很难?是不是需要很多资源(比如训练模型时)?是否有人可以指导你?是否有更多同好可以一起前进呢?
正好,现在有个绝佳的机会。华为最近在全国举办“2022 年昇腾 AI 创新大赛”,除了高达千万元的丰厚奖金(为什么我要先说这个),还有遍布全国的各个分赛点,以及参赛过程的全程辅导。当然,你需要做好迈上人工智能这条赛道的充分准备了。
这场大赛是面向人工智能开发者打造的顶级赛事,旨在鼓励全产业开发者基于昇腾计算技术,共同打造软/硬件解决方案、探索模型算法,加速人工智能与行业融合,促进开发者能力提升。
整个赛程长达半年,在我看来,无论你是初窥人工智能门径的初学者,亦或是具有丰富经验的编程大佬,这段时间都足够你打磨出一款不错的作品。说不定这次大赛的几十万大奖就是你的啦!
整个比赛分为应用赛道与昇思赛道两个部分,大家可以“组队打怪”:
- 对于企业、高校或科研机构的团队,可以开发基于昇腾软硬件平台的解决方案。基于昇腾全栈 AI 软硬件平台(包含 Atlas 系列硬件、异构计算架构 CANN、AI 框架昇思 MindSpore、应用使能 MindX 等)开放命题,围绕人工智能深度学习技术,探索有具体落地的创新方案。从区域赛晋级的队伍还能参与全国赛奖金的角逐,全国赛最高奖金可达 20 万,赢取双份奖金!
- 对于个人开发者(或团队)可以参与昇思赛道的比赛。赛题包括 20 道论文复现赛题与 10 道前沿课题任务。选手完成论文复现或者创新挑战的成果将在昇思社区与启智社区进行开源,赋能更多开发者。
具体的情况,请参考 《昇腾 AI 创新大赛》官网或以下海报: