ChatGPT能取代多少程序员?
发布时间:2023-03-02 09:21:01作者:顺晟科技点击:
“去年年底,我看到大佬们在分享ChatGPT相关的内容。一开始我以为还是资本和老大哥fomo的玩具,但是用了之后,和朋友交流,还有自己的研究,才确信ChatGPT模式是革命性的。”梵高曾经在国内一家大厂做后端工程师,离开程序员岗位很久了。他又一次因为ChatGPT把目光投向了代码世界。
梵高觉得ChatGPT作为一个生成型AI,有很强的交互能力。“它实际上被训练成一个大型的语言集合,带有互联网中整个人类的语气。可以想象,它将开启一个使用自然语言和机器交互的新时代。”作为一名前技术人员,梵高也承认,一些初级的、重复性的工作将由AI来完成,这在程序员的工作中也是一样的。
“我们每天都要写代码,从一行行代码开始,每个变量方法都要自己生成。后来idea有了代码补全和编译器。现在GitHub Copilot(微软和OpenAI联合推出的AI编程工具)可以通过描述需求和上下文来智能地编写代码。”按照这个逻辑,他认为编码并不是不可替代的能力,交给AI也指日可待。
还有消息说AI已经取代了市面上的程序员。据美国消费者新闻与商业频道介绍,根据谷歌内部的测试,ChatGPT可以通过谷歌的初级软件工程师面试,这通常适合刚毕业的大学生和第一次从事编码工作的求职者。一些计算机从业者也尝试过,发现ChatGPT真的可以写基本脚本。虽然它不能通过完整的编程直接开发出一个程序,但是它可以通过一步一步的指令来教会人类完成这项工作,它甚至具有调试的能力。
从这个角度来看,很多基础的编码工作都可以由AI来完成,AI能否通过长期的学习来无限提高编码能力还未可知。有程序员表达了对深燃的担忧。他们曾经以为搞IT会是比高速收费员更稳的“铁饭碗”,现在却发现自己就是那个小窗口里随时会被换掉的人。
没有人能在人工智能的洪流面前保持傲慢。推动技术的人,反过来可能会被技术取代。
“我在几分钟内就写好了代码,
ChatGPT只需要几秒钟。"
林坦是一名前端开发工程师,目前在加拿大工作。去年年底ChatGPT出现,北美科技圈已经开始关注和讨论。她说,同事试用后,从技术角度充分肯定了这个工具的优点。有人开玩笑说,以后要转行,让ChatGPT写代码。
“在我尝试用ChatGPT写代码后,我真的感到有点焦虑。”林坦告诉深燃,她给ChatGPT的指令是写一个JS(JavaScript)文件,生成一个重启按钮,点击这个按钮刷新页面。ChatGPT很快给出了完整的代码,并在下面阐述了自己的想法。“如果我写这一段,可能需要几分钟。只需要几秒钟。”
林坦只尝试了一段基本的代码,要求只是给页面添加一个功能。树莓健康APP联合创始人阿晨告诉深燃,他让ChatGPT写一个小程序,同样可以又快又好地完成。“我的需求是开发一款AI识别错别字的软件。首先问了ChatGPT的开发思路是什么,从后端用的是哪个框架搭建的,前端用的是微信小程序的某某框架,然后小程序是怎么发布上架的。可以一一列举。”阿晨说自己之前没有开发小程序的经验,这次只是让ChatGPT教他做。从提供思路到如何实现,阿晨按照其指导成功开发了这个小程序,并放到了微信开发平台上。
和林坦的感受类似,阿辰也发现ChatGPT不仅能帮助用户解决具体问题,还能合理解释背后的逻辑,既能授人以鱼,又能授人以渔。比如,阿辰给ChatGPT下了一个指令“小程序textarea的指定位置变红”,ChatGPT给出了一个回答:“如果你想在小程序textarea中指定某个位置,可以通过在textarea中插入一个‘富文本’标签来实现。请在“rtf”中使用“span”标记,并为此标记指定“style”属性,以控制文本的样式,如颜色和字体大小。ChatGPT在回答完这些原理后,也给出了具体的操作步骤。
阿琛在开发过程中也遇到了几个程序错误。他把错误信息发布到ChatGPT里让它检查,它也能准确调试。“我可以根据它的回答直接解决问题。”阿陈说,在没有小程序开发经验的情况下,可能需要查阅资料来学习,大概需要两三天才能完成开发,出现问题也不一定能很快解决。“我们一般会使用百度这样的搜索引擎,但由于这类工具给出的答案并不是特别准确,我还需要在海量的信息中做二次筛选,所以整体时间会拉长。并且放在ChatGPT里,从告诉我怎么做到成功解决bug一共用了3个小时。”
ChatGPT只需要几个小时就能完成人类几天就能完成的工作;人类要工作几分钟,ChatGPT只要几秒钟。速度和效率的提升是AI的价值之一,而在程序员眼中,从分钟到秒的进化几乎是“恐怖”的,因为很难想象AI在速度上的上限。
除了速度,ChatGPT的“逻辑”和“思考”能力也超出了一些程序员的预期。林坦在日常工作中经常请查特普特帮忙。他觉得这比以前用谷歌效率高多了。
“比如我想写一个软件,里面包含几十个文件。我在其中一个文件里筛选了一段代码,交给了ChatGPT。可能会有很多来自其他文件的变量和数据,下面会解释,这部分变量虽然没有出现在这段代码中,但是可能是从其他文件中传递过来的。如果你问像Siri这样的AI同样的问题,他们会说,‘我不知道你的变量是从哪里来的。’"
接触ChatGPT一段时间后,林坦的情绪也发生了几次变化。“起初,我持怀疑态度,认为它只是类似于Siri的东西。发现它能像我一样写代码并运行,我很震惊。这种震撼直接造成了一些职业焦虑。它比我快多了。如果它经过长期的学习和训练,有一天会取代我吗?”
林坦以前是学生,后来转行做程序员,原因之一就是这个职业很难像出纳、银行柜台、高速收费员那样快被机器取代。“疫情也让我觉得有点幸运,因为我们的工作没有受到影响,还可以在家工作,但直到ChatGPT这样的AI出现,我才意识到程序员不是铁饭碗,原来我的职业危机可能就是它带来的。”
可以做一些代工,
但它不能完全取代程序员
ChatGPT有基本的代码能力,写起来更快。但是,如果真的把ChatGPT放到程序员的工作场景中,还是暴露出很多局限性。
先说写代码的基本环节。几位程序员的共同经验是,让ChatGPT写一些基础脚本,为网页写一个函数,从技术角度指导小程序的开发,是可行的。但是,“它只能写代码片段,不能写完整的代码。”陈解释道,“可以理解为,比如我想生成一个word文档,但是ChatGPT只能生成一个文本形式。如果我需要两个word文档,它只能给我一段文字。要生成一个文档,我需要手动复制到office软件中进行手工处理,而ChatGPT的字数限制是最多15000个字符。”阿琛认为ChatGPT最大的缺点是不能只从写代码的层面来写一个完整的程序,因为开发者需要有控制整个框架的能力。
曾经有人这样描述程序员工作的不可替代性:“程序员的核心竞争力不在于写代码,而在于和各种人扯皮,斗智斗勇。”事实上,在业务场景中,无论是前端还是后端,测试还是运维,程序员最难也最费时的工作就是需求转换、测试和修改。简单来说,就是明确公司要什么,然后去做。这个任务需要大量的人类经验和创造力,ChatGPT目前还很难完成。
陈举例,他们在做一个健康管理APP,里面需要有一些饮食食谱。这些食谱之间有一些逻辑。“如果ChatGPT帮我实现了查询一个饮食的功能,它不知道这个饮食食谱是怎么插入数据库的,是怎么调出来的,工作人员是怎么在后台维护的。我需要告诉它步骤,但这样的步骤相当于我自己写代码的框架,它只是帮助我填写框架中的内容。”
让ChatGPT了解业务在目前来看显然是个伪命题,很难替代程序员日常工作中最耗时耗力的部分。不仅具体业务难以理解,而且涉及一些复杂、极端的生产活动。ChatGPT只能从自己的数据库里总结一些“美丽的废话”。
梵高说,例如,问chat GPI“k8s中有哪些工作负载类型?”这个问题很基础,一般用于面试程序员。ChatGPT可以非常完整的回答。“但如果你问‘如何把双十一淘宝的订单功能做出来,让它支持54万/GPS?’它只能列出分布式架构、缓存技术、负载均衡、数据库优化和代码优化。“梵高认为这只是一个模棱两可的答案,并没有给出具体的模型理论和实用价值。”而我们现实生活中的一些业务场景,只能用人脑去探索和解决,这也是程序员的工作。解决这些专业问题,跟随市场变化,人脑甚至很难给出一个完美的答案,AI暂时也做不到。"
“各行各业都有一些拧螺丝的工作,一般交给实习生或者新手。在我们的工作中,比如制定一个技术方案,需要有人具体实施,但是这个crud(添加、删除、检查数据库)又枯燥又繁琐。已经设计好的,只需要执行的工作,未来都可以交给AI。”国内某大厂程序员阿东认为,这次来自AI的‘入侵’是好事。“我本来不想做可以被AI取代的工作。这些没有创造性的工作都被AI接管了,这正好让我有精力去做更有趣的事情。”
从事基础工作的“底层程序员”可能会觉得有点冷。原美的集团AIoT算法负责人连世禄告诉沈燃,高级程序员很难被替代,也就是“大牛”。
“以ChatGPT的开发为例。在构建这个模型的时候,丹尼尔会提出第一个环节应该是有监督的深度学习,使用的是GPT3这样的成熟模型。”他解释说,很难替换构建框架的人,因为如果一个人没有足够的开发经验,如果第一步就放损失函数,优化损失函数值的空间就会极低,这与结果相反。“我认为底层程序员所做的是,丹尼尔已经告诉他使用什么框架,以及如何调整数据集和参数的大小。他只需要介绍和写一些固定的代码,ChatGPT会做这部分。这群人不能再产生更高的价值,或者这群人的价值会被ChatGPT取代。”
“山脚下很拥挤,半山腰人少,在山顶可以呼吸新鲜空气。”连世禄说,归根结底,拥有顶级设计能力,能够发现和解决问题,创造新生产力的程序员,在ChatGPT面前会更加从容自信。
未来已经来临,
程序员不再是“铁饭碗”
在对效率和生产力的无限追求中,人类创造并训练了人工智能。当人工智能发展到ChatGPT出现的那一刻,人类创造的机器反过来撕掉了人类无效工作的面具,把一些重复性、机械性、低含金量的工作推到了悬崖边上。
相比于普通大众,计算机行业的人作为在这条赛道上摸爬滚打了很多年,见证了人工智能一步步走到今天的见证者,既兴奋又焦虑。连世禄说他很兴奋,因为他对ChatGPT和人工智能的未来充满希望。“现在ChatGPT走的是大数据、大模型、大计算力的路线,采用的是庞大的数据集。这种做法很可能是完全正确的,因为我们之前尝试过很多小数据和小优化算法,但都达不到这种效果。”
焦虑的原因比较复杂,简单来说就是害怕被落下。连世禄说,很多互联网大佬都在没日没夜的找ChatGPT的应用方向,大家都在浪上。他十年前就喊艾,现在更怕他早起赶晚集。“搞算法的人也焦虑,自己的算法方向没有问题。”
在林坦看来,ChatGPT给程序员带来的焦虑也是一件好事。千千成千上万的普通程序员的核心竞争力是理解需求和独立完成设计架构的能力,而这恰恰是避免被AI取代的核心竞争力。“像我从事的网站开发工作,可能很难替代前端的人性化设计工作,但是后端的数据库操作和参数传输接口,可能几十年后就难说了。这是没有办法的。我只能锻炼自己的代码能力,继续学习。”
陈最近也在为他的团队面试技术人员。有了ChatGPT,他对经验较少的面试官的要求会更辩证。“没有真正的开发经验也没关系。我更希望他们有自己的逻辑思维,而不仅仅是执行力,只有ChatGPT能做的事情。”
连世禄还指出,如果未来ChatGPT等AI大规模进入企业,可能会伴随着对复合型技术人才的需求,也就是产品技术人员或者技术产品人员,现在非常稀缺。他解释说,从他的观察来看,在国内外很多大型互联网公司,产品人员和技术人员是水火不容的,双方不愿意良性沟通。“ChatGPT需要一个兼容的角色,懂技术,能快速找到需求并解释清楚,因为理论上只要给ChatGPT明确的提示,就能给你编程。”
另一个绕不开的话题是成本。阿陈说,参照文新的模式,很多企业已经宣布准备接入。“这可能就像现在很多云服务器一样。第一次使用时,必须由制造商支付费用。企业可能觉得很便宜,但是一旦依赖,人工智能公司就会垄断,这个使用成本会逐渐增加。现在很多公司开始考虑建设私有化的服务器。我认为人工智能系统也会经历这样一个消费阶段。”
人工智能在企业中已经有所应用,比如智能寻呼,智能客服等等,但是对于程序员这个岗位,就要看情况了。一方面,判断一项工作能否被人工智能取代,首先要看这项工作与智能的结合程度,包含大量人类经验和创造力的工作是否还能保住工作。另一方面是成本的比较。如果用于客服的人工智能系统价格低于雇佣人力,自然可以替换,但如果用于编程的人工智能系统价格更高,程序员就永远需要。
不可否认,机会是走向高度,走向控制AI的算法工程师,走向懂需求懂技术的复合型人才。基础工作会逐渐失去价值感,这些人要么离开,要么被AI驱动,跑得更快。这可能就是人工智能和人类的关系。如果人类创造AI的初衷是为了解决人类工作生活中的繁文缛节,那么AI就不会是敌人,而是更聪明的朋友。
林坦说,就像马车协会抵制燃油车一样,面对新事物,旧事物自然会排斥和恐慌,但是当你发现潮流不可逆转的时候,你也发现你在和潮流同向狂奔。
*题图和文中图片均来自pexels。应采访对象要求,阿陈、阿东为化名。
(报道)
- 上一篇 : 谁画的AI画& ampquot赚钱&
- 下一篇 : 从“种草营销”的角度重读小红书