图源:源于网络

通过谷歌面试的ChatGPT要取代码农了?硅谷工程师:先别急

如果要在最近的科技圈里找出一个“顶流”,那一定非ChatGPT莫属。

与过去那些人工智能产品不同的是,此次的ChatGPT除了以一己之力让全行业一夜回春、并挑起了各大科技公司之间的激烈Battle之外,也首次给每一个普通人都来了一次“正面暴击”。当越来越多的人亲自体验了ChatGPT之后,打工人们的“饭碗焦虑“也变得越来越大。

一时间,关于“我会被人工智能淘汰吗?”“哪些职业将被ChatGPT取代”等话题的讨论声四起。这其中,程序员成为了被重点关注的对象。

实际上,在ChatGPT去年12月刚推出时,最先出圈就是它让人震惊的写代码的能力,当时一大批开发者在试用之后惊叹不已。不久前,关于ChatGPT 成功通过谷歌内部初级程序员(L3级别)面试、能拿到18万美元年薪的消息更是炸开了锅,也由此引发了一场关于AI是否很快淘汰程序员的大讨论:一些人感慨会写代码的ChatGPT要很快终结程序员的黄金时代了,一些人却也认为ChatGPT还远不到能取代自己的时候。

 图源:截自于pcmag
图源:截自于pcmag

那么,硅谷的软件工程师们究竟是怎么看待ChatGPT的,在他们眼中ChatGPT的写代码能力究竟如何,它会给哪些类型的工程师带来直接威胁?带着这些问题,我们此次也找到了一些在硅谷不同科技公司、不同岗位、不同工作年限的工程师们,听了听他们的看法。

Emily   

公司:谷歌  

职位:后端工程师    工作年限:6年

“它考试很厉害,但没法创新”

我觉得在讨论“ChatGPT是否会取代程序员”这个问题之前,要首先理解ChatGPT背后的原理是什么。其实在OpenAI的官博上对ChatGPT介绍的很清楚,ChatGPT是一个大型语言模型,用监督学习和强化学习进行训练,训练数据是使用来自互联网的文本数据库。

这里面就有两个很关键的部分。一是在机器学习领域,语言模型的数学基础其实是概率论。简单来说就是用已知的文本作为条件,来预测在类似条件下出现不同词语的概率。也就是说,ChatGPT给你的答案是根据数据集来“摘取”和“猜”出来的,虽然它可能出现很高的正确率,但绝对不可能保证100%的准确。

但很多的工作对于准确性的要求很高,就以我们的工作为例,你可能因为写出一个bug就给公司带来巨额损失,所以在这个过程中一定是需要懂技术的人来进行监督和验证,因此从这个角度来说,程序员这个职业是不可能消失的。

 图源:OpenAI官方博客
图源:OpenAI官方博客

我了解到谷歌之所以在推出语言模型上很谨慎的原因,其实也是出于对这种不确定性的担忧。一方面你不能保证它的答案准确性可能会给用户带来误导,另外就是一旦大规模开放使用,语言模型究竟会预测出什么内容目前是很难人为加以精准控制的,这里面就会会给公司带来巨大的声誉和经济损失的风险。前几天Bard演示出问题那件事就是一个挺典型的例子。

另一个关键部分是,因为ChatGPT模型的训练是基于截至2021年的互联网文本数据库,那么也就是说,这个文本数据库里没有的东西它是无法给出答案的,它只能帮你去整合、归纳、推测,并不具备创新创造的能力。但我们日常的工作并不是机械性的去复制粘贴代码,而是需要做大量的思考、设计工作,这些思考和设计可能是为全新的产品或功能服务,并没有可以参考的案例。我觉得目前ChatGPT或许可以发挥作用的是在代码测试环节,能够帮忙大幅提高测试的效率。

对于ChatGPT能通过谷歌L3面试这个事其实也并不奇怪。因为谷歌L3级别的面试基本上都是相对基础和模式化的算法题,是没有需要强思考的系统设计题目的。实际上别说是L3的面试题了,我有同事用他去参加ACM编程比赛那些类似于编程领域的“奥赛题”去考ChatGPT,它也都能答得很好。简单来说,ChatGPT就是题海战术训练出来的,它是个很厉害的应试考生,但缺乏自由创造和开拓性。

就目前来看,我和我身边同事都还没有感受到会被ChatGPT取代的威胁。但我觉得未来几年程序员招聘门槛变高是很有可能的,零基础转码上岸的这种概率会大幅降低。

Leo 

公司:硅谷某C轮创业公司  

职位:后端工程师  工作年限:7年

“它可以作为辅助工具提高开发效率”

我是去年年底ChatGPT刚推出时我就去试用了,说实话当时确实有震撼到我。最大的不同就是我在跟它对话的过程中,无论是语言交流的流畅度、语气语调、反应时间、谈话内容的深度和广度,我第一次有一种在跟人对话的感觉。就感觉如果给它加上声音,可能就会比较贴近钢铁侠里的贾维斯了。

当然我后来也不断尝试用它来生成和解释代码,发现它在以下几个方面的能力很突出:一是代码的理解能力。我曾经在Stackoverflow上随便截取了别人贴的一段代码,然后要求ChatGPT用自然语言去解释这段代码,在没有上下文的情况下,它能够快速并准确给出描述。二是改进、重构或简化现有代码的能力。基于它的代码理解能力,它能够根据你现有的代码来帮你很快找出一个更高效、简洁的替代方案,或者根据你的指令进一步完善,这一点是让我印象很深刻。三是解决问题的思维能力。对于那种比较基础的问题,ChatGPT短时间就能生成完善的方案,给出它思考的逻辑和步骤,甚至还能给出几种不同思路的解法供你选择。

因为ChatGPT所体现的这些能力,刚开始的时候我感觉非常惊艳,但后来随着问题的深入和复杂化,ChatGPT的错误也开始逐渐显现出来。

 图源:谷歌公共图库
图源:谷歌公共图库

其实从目前我自己的日常工作来看,我和我身边同事几乎都不会在工作中用到ChatGPT,更不会直接来用它生成代码。主要原因有几大方面,首先ChatGPT是基于互联网数据训练的,但我们在工作中很多需要用到的资料或者工具都只局限于公司内部,这些资料ChatGPT根本没学过,所以也无法产出直接拿来可用的东西。还有就是大家都知道当它遇到复杂问题的时候它都在一本正经的胡说八道,与其去花时间去查验和修正它给出的解决方案,不如自己去写。而且如果只是为了提高写代码的效率,很多公司内部其实早就在用自动填充、自动联想的代码辅助工具,这些工具是公司基于内部的资料和代码库开发的,所以针对性和准确性都更强,所以也不需要去使用ChatGPT。

就目前来看,ChatGPT更多扮演的还是一个Dictionary的角色。就是一些过去我会去Google搜索或者去Stackoverflow上找的问题,现在我都会先选择去问一下ChatGPT,它能够帮我节省大量的检索和验证时间。

最后,关于 ChatGPT之类的AI工具会不会取代程序员这个问题,我觉得在至少在未来几年里不会大范围的取代,它可能会更多的作为一个辅助的工具来帮助提高工程师的开发效率。但影响一定也会循序渐进的发生,那些重复性工作比较多的岗位很有可能会被AI彻底淘汰,比如简单的前端网页开发、CRUD类的工作或者部分数据分析类的工作。

对于Senior级别的程序员来说,虽然可替代性不是那么强,但岗位精简或许也在所难免,比如过去需要2、3个人做的事情,由于有了AI的帮助现在一个人也可以完成。而且如果行业一直保持当前这种火热度的话,在资金的支持下,技术的进步速度可能会比我们想象的还要更快,很有可能10年之后,已经不存在所谓的Junior程序员了,你的水平至少要达到如今的Senior以上才能进入这个行业。

Shawn 

公司:亚马逊 

职位:后端工程师  工作年限:4年

“它对程序员提出了更高的要求”

首先我认为ChatGPT在对自然语言理解方面的进步是让人印象非常深刻的,很多情况下你只需要输入一个比较模糊的指令,它就能给你返回准确的答案。而这种卓越的自然语言理解能力更重要的意义是给很多非技术人员打开了一个能直接去感受最前沿人工智能能力的通道。但也正是因为有很多从未接触过人工智能技术的人参与进来,这种能力带给他们的冲击是巨大的、极具颠覆性的,所以也让大家目前有些过度“神化”ChatGPT,进而造成了大家的广泛焦虑。

虽然ChatGPT取得了很大的突破,但真正要广泛应用于科技行业之中还有很长的一段路。因为每个公司的开发系统都相对封闭,如何无风险的集成、生成代码的质量是否合格、使用成本究竟多高还都是未知。我的观点是ChatGTP或其他人工智能工具不会直接取代程序员,但未来那些能够熟练使人工智能工具的程序员可能会取代其他程序员。

我之前看到一张图觉得很形象,就是说ChatGPT就像是出现了一个挖掘机来代替铲子一样,仍然需要人来执行挖土这个过程,但对挖土的人提出了更高的要求,他需要去学习如何操作挖掘机,而那些只能做体力劳动的人就会被淘汰。

 图源:源于网络
图源:源于网络

ChatGPT也是一样的,它的出现不是要淘汰程序员,而是对程序员提出了新的要求。虽然现在看起来好像通过描述就能让一个技术小白生成专业的代码了,但对于这些代码你不可能照单全收,至少需要具备判别ChatGPT返回答案正确性的能力,也就是说当你不具备一定的技术能力,你也绝不可能做出超出你能力范围以外的创新。

但在同一技能水平上,能够善用AI的技术人员肯定会比其他人更有效率、更有优势。我自己在用ChatGPT之后,觉得目前至少自己应该提升是学会如何提问题的能力,把你想要解决的问题描述的越清楚,AI能返回给你的答案就越准确。另外就是在系统设计、与人交流沟通这些人工智能比较难替代的部分培养核心竞争力。

Matt 

正在找工作  

职位方向:前端工程师

“用了ChatGPT后我更没信心了”

ChatGPT的出现其实对我产生了挺大打击的。我之前是在教育行业工作,前不久刚上完转码的课程最近正在找工作,本来最近行业就业形势就不好,在用了ChatGPT之后就更没有信心了。

我之前写一个静态网页可能要用一两天,但后来我发现用通过描述让ChatGPT几个小时就可以生成一个差不多的静态网页,而且它还会把Html、CSS的代码都写好,我对比了一下有些地方写得比我精简多了。Javascript部分本来我学起来和用起来就比较吃力,比如调用API、使用一些函数都要花不少时间去查询和写,但我发现那些问题ChatGPT都能轻松解决。

我不太清楚有经验的程序员他们的感受如何,就我自己目前的能力来说我觉得AI确实能取代我。但因为目前ChatGPT这种工具还没有大规模的应用于行业之中,目前我自己的想法还是继续投投简历,把ChatGPT作为一种学习工具。ChatGPT现在就像是我的一个老师一样,我可以从它给出的答案中去开启思路,同时也能减少大量过去我在网上去提问和搜索答案的时间。

那么,你们认为程序员会被ChatGPT取代吗?除了程序员之外,ChatGPT会对其他行业带来什么冲击,什么样的职位最有风险?欢迎大家留言讨论!

注:封面图来自于谷歌公共图库,版权属于原作者。如果不同意使用,请尽快联系我们,我们会立即删除。