查看原文
其他

ChatGPT能取代多少程序员?

深燃团队 深燃 2023-03-03
将深燃设为“星标
第一时间收到文章更新

深燃(shenrancaijing)原创
作者 | 邹帅
编辑 | 唐亚华



“去年年底,我看到大佬们都在分享ChatGPT相关的内容,一开始我以为还是资本和大佬fomo的玩具,但是经过使用、和朋友交流,加上自己的研究,我确信ChatGPT模型是革命性的。”樊高曾在国内大厂做过后端工程师,离开程序员岗位许久,他因为ChatGPT又再一次将目光投向代码世界。
 
樊高觉得,作为生成式AI,ChatGPT的交互能力极强,“它其实是用整个人类在互联网中的语调,训练成了一个大语言集合,可以想象它会开启一个使用自然语言和机器交互的新时代。”而作为曾经的技术人员,樊高也承认,⼤部分初级和重复劳动的工作都会被AI代劳,这在程序员工作中也一样。
 
“我们日常写代码,最早是一行行的码,每个变量方法都要自己生成,后来idea有代码补全和编译器,现在GitHub Copilot(微软与OpenAI共同推出的AI编程工具)可以通过描述需求和上下文,智能写代码。”按照这个逻辑,他认为,编码也并不是不可取代的能力,交给AI指日可待。
 
市场上也有AI取代程序员的消息传出。据CNBC报道,据谷歌内部的测试显示,ChatGPT能够通过谷歌的初级软件工程师面试,这个职位通常适用于新的大学毕业生和第一次从事编码工作的求职者。有计算机从业者也进行了尝试,发现ChatGPT确实能够进行写基础的脚本,虽不能进行完整的编程直接开发一个程序,但它能通过一步步指令,教人类完成这一项工作,它甚至有debug(排错)的能力。
 
如此看来,大量基础的编码工作可以由AI完成,而AI通过长时间学习能否无限提升自己的编码能力,也未可知。有程序员向深燃表达了自己的担忧,曾以为搞IT会是比高速收费员稳定的“铁饭碗”,然而现在发现自己也是那个小窗里随时会被取代的人。
 
没人能在人工智能的洪流前保持傲慢。推动科技的人,都有可能反过来被科技取代。
 

“我几分钟写的代码,
ChatGPT只要几秒钟”

谭林是一位前端开发工程师,目前在加拿大工作。去年年底,ChatGPT面世,北美科技圈就已经开始关注并讨论了。她说,同事们试用之后,都从技术角度充分肯定了这款工具的优势,也有人开玩笑说要转行,以后让ChatGPT写代码就行了。
 
“我试着用ChatGPT写了代码之后,确实感受到了一丝焦虑。”谭林告诉深燃,她给ChatGPT的指令是:写一个JS(JavaScript)文件,生成一个restart button(重启按钮),点击这个button要求刷新页面。ChatGPT很快就给出了一段完整的代码,并在下面解释了自己的思路。“这段如果我写可能需要几分钟,它只要几秒钟。”
 
谭林尝试的仅仅是一段基础的代码,需求只是在页面添加一个功能。树莓健康APP联合创始人阿晨告诉深燃,他让ChatGPT写了一个小程序,它也能又快又好地完成。“我的需求是开发一个AI识别错别字的软件。我首先问了一下ChatGPT开发思路是什么,从后端用哪个框架去搭建,前端用微信小程序的某某框架去做,再到小程序怎么上架发布,它都能够一一列举出来。”阿晨表示,他此前没有小程序开发经验,这次也是正好让ChatGPT教他做,从提供思路到如何执行,阿晨按照它的指引,成功开发完了这个小程序,并在微信开发平台上架了。
 
和谭林的感受相似,阿晨也发现,ChatGPT不仅能帮用户解决具体问题,还能有理有据地解释背后的逻辑,既能授人以鱼,又能授人以渔。阿晨举例,他对ChatGPT提出指令“小程序textarea指定位置颜色变红”,ChatGPT给出回答:“要在小程序中的‘textarea’中指定某个位置的文本颜色变浓,可以通过在‘textarea’中插入‘rich-text’标签来实现。在‘rich-text’中使用‘<span>’标签,并为该标签指定‘style’属性来控制文字的颜色、字体大小等样式。”回答这些原理之后,ChatGPT还给出了具体的操作步骤。
 
阿晨在开发过程中还遇到了几个程序报错,他把报错信息贴入ChatGPT让它检查,它也能准确地debug,“我根据它的回答可以直接解决问题。”阿晨表示,在没有小程序开发经验的情况下,他可能需要查阅资料学习,大概两三天能完成开发,遇到问题也不一定很快地解决。“我们平时会用百度这样的搜索引擎,但因为这类工具给出的答案不是特别准确,我还需要在海量的信息中做二次筛选,所以整体时间会拉长。而放到ChatGPT里面,它从告诉我怎么做,到解决bug成功运行,总共就花了3个小时。”
 
人类几天才能完成的工作,ChatGPT只要几小时;人类要做几分钟的工作,ChatGPT只要几秒钟。速度和效率的提升,是AI的价值之一,而在程序员的眼中,从分到秒的进化,也几乎是“恐怖”的程度,因为很难想象AI在速度上的上限。
 
除了速度,ChatGPT的“逻辑”和“思考”能力也超出了一些程序员的预期。谭林在日常工作中会经常寻求ChatGPT的帮助,他觉得比以前用Google效率高得多。
 
“比如我要写一个软件,这里面包含几十个文件,我把其中一个文件中的一段代码筛下来给ChatGPT,这里边可能会出现很多变量和数据是来自其他文件的,它就会在底下解释的时候,说这部分变量虽然在这段代码里没有出现,但可能是从其他文件中传递过来的。同样的问题如果问Siri这类AI,它们就会说‘我不知道你这个变量从哪来的。’”
 
接触了ChatGPT一段时间,谭林的心情也经历了几次变化,“最开始听到的时候还是持质疑态度,以为只是类似Siri一样的东西。发现它能跟我一样写代码,并且可以运行的时候,我是很震惊的。这种震惊直接引发了一些职业焦虑,它的速度比我快这么多,那如果它经历长时间的学习和训练,是不是就会有取代我的一天?”
 
谭林以前学生物,转做程序员理由之一就是觉得这个职业很难像收银、银行柜台、高速收费员一样快速被机器取代,“疫情也让我有一些侥幸心理,因为我们这个工作没有受什么影响,还能居家办公,但直到ChatGPT这种AI的出现,我才反应过来,原来程序员也不是铁饭碗,原来我的职业危机可能会是它带来的。”
 

能部分代工,
但不能完全取代程序员

ChatGPT具备基础的代码能力,而且写起来速度更快。不过,如果真的把ChatGPT放在程序员的工作场景中,它还是暴露出了不少局限性。
 
先说写代码这一基础环节。几位程序员的共同体验是,让ChatGPT写一些基础的脚本,为网页写一个功能,指导完成小程序的开发,从技术角度来说都是可行的。但是,“它只能写代码片段,不能写完整的代码。”阿晨解释,“可以这样理解,比如我想生成一个word文档,但ChatGPT只能生成一个文字形式,我如果需要两个word文档,它还是只能给我一段文字,要生成文档我还需要手动拷贝到office软件进行人工处理,而且ChatGPT是有字数限制的,最多15000个字符。”阿晨认为,只从写代码这个层面来说,不能写一个完整的程序是ChatGPT最大的劣势,因为开发人员是需要有把控整个框架的能力的。
 
有人曾这样形容程序员工种的不可替代性:“程序员的核心竞争力不在于写代码,而是在于跟各种人扯皮,斗智斗勇。”实际上,在业务场景中,不管是前端还是后端,测试还是运维,程序员工作中最困难和耗费时间的是需求转换,测试、修改。简单来说就是明确公司要什么,然后做出来。这一项需要大量人类经验和创意的工作,ChatGPT目前还很难完成。
 
阿晨举例,他们做的是健康管理类的APP,里面需要有一些减肥菜谱,这种菜谱之间存在一定逻辑,“如果让ChatGPT帮我实现一个菜谱查询的功能,它不知道这个减肥菜谱是怎么插入数据库、怎么调出来、工作人员怎么通过后台维护,需要我把步骤跟它讲一遍,但这样的步骤等于是我自己已经把代码的框架写完了,它只是帮我实现框架里的内容填充。”
 
让ChatGPT理解业务,目前来看显然是一个伪命题,所以程序员在日常工作中最耗时耗力的那一部分,很难被取代。不仅是具体的业务难以理解,涉及一些复杂的极端的生产活动,ChatGPT也只能从自己的数据库中归拢总结一些“漂亮的废话”。
 
樊高说,比如向ChatGPI提问“k8s中的Workload Type有哪些”,这个问题很基础,一般是用于面试程序员的,ChatGPT能非常完整地作答。“但是如果问‘如何做双十一淘宝的下单功能,让它支持54万/gps?’,它只能列举采用分布式架构、采用缓存技术、使用负载均衡、数据库优化、代码优化这几点。”樊高认为,这只是一个模棱两可的,没有给出具体模型理论和实操价值的答案。“而我们现实生活中的一些业务场景,只能使用人脑去探索和解决,这也是程序员的工作。解决这些专业性强,跟随市场变化的问题,人脑甚至都很难给出完美答案,AI暂时更是无法代劳。”
 
“各行各业都有一些拧螺丝的工作,一般都会交给实习生或者刚入门的人员来做。在我们的工作中,比如设立一个技术方案,需要有人去具体地把它实现,但这个crud(数据库的增删改查)就比较无聊和繁琐。类似这种已经设计好了,只需要执行的工作,以后完全可以交给AI来做。”国内某大厂程序员阿冬认为,这种来自AI的‘侵入’是个好事,“能被AI替代的工作,本来我就不想干了。这些没有创造性的工作由AI接手,正好能让我有精力做更多有意思的事情。”
 
从事基础工作的“底层程序员”也许会感到一丝凉意,前美的集团AIoT算法负责人连诗路告诉深燃,高阶程序员,也就是“大牛”是很难被取代的。
 
“拿开发一个ChatGPT来举例。在搭建这个模型的时候,大牛会提出,第一个环节要用supervised deep learning(有监督的深度学习),而且用的是GPT3这样一个成熟的模型。”他解释,搭建框架的这拨人很难替代,原因就在于如果一个没有足够开发经验的人,万一把损失函数放到第一步,优化损失函数值的空间会极低,那对结果来说就是南辕北辙。“我认为底层程序员做的事情就是,大牛已经告诉他用什么框架,告诉他如何调整dataset和参数的大小,他只需要引入,写一些固定的代码即可,这部分ChatGPT就会做。这一拨人已经产生不了更高的价值,或者说这一拨人的价值会被ChatGPT替代。”
 
“山脚下很挤,山腰上人少一些,山顶上就能呼吸到新鲜空气了。”连诗路说,归根结底,有顶层设计能力,并且能够发现和解决问题,创造新的生产力的程序员,才会在ChatGPT面前更加从容和自信。
 

未来已来,
程序员不再是“铁饭碗”

在对效率和生产力的无限追求中,人类创造并训练人工智能。当人工智能发展到ChatGPT出现的这一刻,被人类创造出来的机器,反过来撕下了人类无效工作的假面,将一些重复、机械、含金量低的工作推到悬崖边。
 
相比普通大众,计算机行业人士作为多年来始终身处这个赛道,见证人工智能一步步来到今天的亲历者,他们又兴奋又焦虑。连诗路说,兴奋是因为对ChatGPT以及人工智能的未来充满希望,“现在ChatGPT走大数据、大模型、大算力的路线,采用庞大的Dataset(数据集),这个路子很可能是完全正确的,因为以前我们尝试过很多小数据、小调优算法都达不到这种效果。”
 
焦虑的原因就更为复杂,简单来说就是怕被抛下。连诗路说,现在很多互联网的大佬都在没日没夜地找ChatGPT的应用方向,大家都在浪潮上,他从十年前就大喊AI,现在更怕自己起了大早赶个晚集。“搞算法的人也焦虑,焦虑自己的算法方向有没有问题。”
 
在谭林看来,ChatGPT给程序员带来的焦虑,也是一件好事。千千万万个普通程序员的核心竞争力还是对需求的理解能力,独立完成设计架构的能力,而这恰恰也是避免自己被AI取代的核心竞争力。“像我从事的网站开发工作,可能前端人性化设计类的工作比较难取代,但后端数据库操作、传参接口这些可能过个几十年就不好说了,这些也没办法,只能多去锻炼自己的代码能力,继续学习。”
 
阿晨最近也在为自己的团队面试技术人员,有了ChatGPT之后,他对经验较少的面试者的要求也会更辩证一些。“没有真实开发经验不要紧,我会更希望他们有自己的逻辑思维,不能只会执行,只会做ChatGPT能够做的事情。”
 
连诗路还提出,如果将来ChatGPT这类AI大规模进入企业,伴随而生可能是对于复合型技术人才的需求,也就是产品型技术人员,或技术型产品人员,这种人才现在是非常稀缺的。他解释,从他的观察来看,国内外很多大型互联网公司里,产品人员和技术人员是水火不相容的,双方不愿意良性沟通。“ChatGPT则需要一个兼容的角色,懂技术,又能快速发现需求,并把需求清晰地解释出来,因为理论上讲,未来只要给ChatGPT明确的prompts(提示、激励),它是可以给你编程的。”
 
另一个绕不开的话题是成本。阿晨说,参考文心一言的模式,很多企业都宣布准备接入。“这个可能就像现在很多的云服务器,最开始使用的时候肯定由生产商支付了大部分费用,企业端可能觉得很便宜,但是一旦依赖了,人工智能公司造成垄断,这个使用成本就会慢慢增加,现在很多企业开始考虑搭建私有化的服务器,我觉得人工智能系统也会经历这样一种消费阶段。”
 
人工智能进入企业,应用于智能传呼、智能客服等等岗位已经有迹可循,但对于程序员这个岗位来说,需要视情况而定。一方面,判断一个工种能否被人工智能取代,首先要看该工种与智能化的结合程度,包含大量人类经验和创意的工种尚能保住饭碗。另一方面则是成本的对比,如果人工智能系统用于做客服的价格比雇佣人力要低,那自然可以取代,但如果人工智能系统用于做编程的价格更高,那程序员就会一直被需要。
 
不可否认的是,机会在走向高处,走向控制AI的算法工程师,走向懂需求和技术的复合型人才。基础性工作会逐渐丧失价值感,这一部分人要么离开,要么就要被AI驱使着,跑得更快。这或许正是人工智能与人类应该有的关系,如果人类创造AI的初衷就是解决掉人类工作和生活中的繁文缛节,那AI就不会是敌人,而是更聪明的诤友
 
谭林说,就像马车协会抵制燃油车一样,面对新生事物,旧的事物会天然地排斥和恐慌,但当你发现潮水不可逆转的时候,你同时也发现,你正和潮水涌向同一个方向。
 
*题图及文中配图来源于pexels。应受访者要求,樊高、谭林、阿晨、阿冬为化名。

评论有福利!留言区抽三名读者分别送上18.88、8.8、6.6元现金红包,每周四开奖!
你觉得ChatGPT能取代程序员吗?
*欢迎留下你的观点。*原创文章转载、进读者获取一手资讯和每日福利,请扫码添加“深燃小助手”

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存