旗下微信矩阵:

ChatGPT能取代多少程序员?

在对效率和生产力的无限追求中,人类创造并训练人工智能。当人工智能发展到ChatGPT出现的这一刻,被人类创造出来的机器,反过来撕下了人类无效工作的假面,将一些重复、机械、含金量低的工作推到悬崖边。
2023-03-01 11:38 · 微信公众号:深燃  邹帅   
   

“去年年底,我看到大佬们都在分享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’中使用‘’标签,并为该标签指定‘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就不会是敌人,而是更聪明的诤友

谭林说,就像马车协会抵制燃油车一样,面对新生事物,旧的事物会天然地排斥和恐慌,但当你发现潮水不可逆转的时候,你同时也发现,你正和潮水涌向同一个方向。

*应受访者要求,樊高、谭林、阿晨、阿冬为化名。

【本文由投资界合作伙伴微信公众号:深燃授权发布,本平台仅提供信息存储服务。】如有任何疑问,请联系(editor@zero2ipo.com.cn)投资界处理。