具有强大能力的GPT-4横空出世,让我们眼前一亮、惊讶于它能够执行一系列复杂的任务,如代码生成、错误检测、软件设计等,所以我们有必要来探讨一下GPT-4这类多模态语言模型会给软件研发带来怎样的影响?它会重新定义软件开发的新范式吗?会影响程序人员的职业发展吗?让我们聚焦本期K+Talk大咖对话,与行业大咖畅聊一二。
以下内容整理自第43期K+Talk直播节目
对话嘉宾:
王千祥: 华为云智能化研发首席专家、PaaS技术创新Lab主任、CCF软件工程专委会副主任
朱少民: “软件工程3.0”定义者、同济大学特聘教授、CCF高级会员
邹 欣: CSDN副总裁
全文字数:10200字
阅读时间:约10分钟
主持人:
在本期直播开始之前,我们已经在各大平台上收集了小伙伴们最感兴趣的问题。主播已经将这些问题整理好了 ,今天我们将在直播间请各位老师逐一作答。
接下来我们直接进入今天的主题:请问各位老师,GPT-4这类多模态语言模型会给软件研发带来怎样的影响呢?
首先请王老师给我们分享一下您的看法。
王千祥:
实际上,这个问题恰好是我们今晚整体讨论的核心。我先简要谈论一下我的想法。首先,我们目前还无法确切地说GPT系列模型的能力边界,以及它们将对软件研发产生怎样的影响。我们只能说影响会非常大 ,但具体影响有多大,实际上还不清楚。然而,对于我们这些软件研发人员而言,GPT-4等大型模型已经带来了很大的影响。整个研发领域可能需要一段时间才能完全适应这些变化,但我们已经看到它对研发人员产生了深远的影响。例如,就在一周前,3月22日OpenAI发布的“可怕的X”项目,对软件研发人员产生了巨大的冲击。我们在25号还举办了一个活动,讨论了这个问题,并加深了对这个话题的理解。
事实上,许多专家,如复旦大学的彭鑫老师,也在讨论这个话题,我们都变得异常勤奋。朱老师最近在他的公众号上也频繁发表文章,阅读量显著提高。这些都表明GPT-4等模型对研发人员的影响已经开始显现,大家都在紧盯着这个领域的发展。
我们通过参加这些访谈和研讨会,逼迫自己去思考这些问题。光听别人的观点可能不足以深入理解,但当我们参与讨论时,我们会更加投入地去思考。就像在学校里,自己看书时可能只是浮光掠影,但当我们要给学生讲解时,我们会更认真地准备。因此,我很愿意参加这样的访谈,逼迫自己去深入思考这些问题。
邹欣:
CSDN上周六刚举办了一场大会,我们也邀请了王老师来给我们分享。在会上,我们发布了一个名为InsCode的GPT应用工具。这个工具让开发者能够更容易地进行开发,那到底有多容易呢?所以我们就想一起试试看。因此,InsCode带着这个目的来给大家展示。我们制作了一个探索者,这几天已经有数千人在上面发布了各种作品。我个人认为这是一个非常有趣的小软件。
我们经常说:“临渊羡鱼,不如退而结网。”就是我们一边聊天一边可能在家里做点东西。在AI大潮中,有些人想淘金,我们想卖点工具,帮助大家在AI大潮中通过实践真正受益。
朱少民:
我也同意前面两位老师的观点。这个变化确实非常大,我们需要先自己用起来。就像刚才我们在“智能软件工程群”里的讨论,有老师质疑GPT能否写出具有强逻辑性的Prolog代码。然后一位大厂的测试总监立刻进行了尝试,发现确实可以。所以谁先使用,谁就先受益。
最近,我们看到阿里发布了24年来最重大的组织改革,成立了云智能集团,由CEO亲自兼任。这些都说明这是一个非常大的变化。因此,我提出软件工程3.0的概念。我们经历了1.0的工程化、标准化的变革,强调流程决定结果,到2.0以人为本,充分发挥程序员、测试人员和产品经理的潜力。如今,我们已经进入了数字化时代,计算机系统和工具开始理解我们存储的信息。我们可以通过GPT进行人机对话,这是一个很大的突破。在软件开发中,AI可以生成需求文档、功能规格说明书、代码、测试用例和测试脚本,从而真正实现持续交付。这对整个软件开发产生了巨大的影响。因此,我认为软件工程3.0已经到来,今年就是元年。
主持人:
好的,非常感谢这三位老师的解答。
刚才在候场时,王老师提到,最近参加了许多研讨活动,那么想问一下王老师,您在周六的研讨会上主要讨论了什么内容呢?
王千祥:
周六的研讨会,我忙了一天,上午我作为演讲者分享了一个主题,名为“AI编程无尽的前沿”。AI编程将激发许多相关能力发展。以后有机会我会再和大家交流。下午,我主持了一个关于AI编程的论坛,主要探讨了它对程序员的影响。邀请了一些一线从业者,他们分享了自己的看法。
关于AI编程对程序员的影响,我们可以从以下几个方面来看:
1.对不同水平的程序员影响不同。对于高水平程序员,AI编程是福音,能大幅提高他们的效率和价值。但对于水平较弱的程序员,可能会面临一定的威胁。
2.需求设计阶段的影响可能较小。因为需求设计涉及到很多创造性的东西,而且与编码相比,设计的数据量可能没有那么大。
3.在测试阶段,AI编程可能带来新的研究领域。但如何衡量AI生成的代码质量仍然是一个挑战。
4.运维方面,目前大模型对运维的影响相对较小。因为目前大模型缺乏公共的运维数据,但随着大模型的发展,这种情况可能会改变。
希望这些能对大家有所启发。
主持人:
众所周知,邹老师在微软拥有多年的研发经验,对微软有着深入的了解。所以想请教您,微软是如何构建大型语言模型的呢?
邹欣:
首先,我已经离开微软两年,所以对他们的大型模型了解有限。不过昨天我去了一个学校演讲,提到我是1987年上的大学,现场的学生们都很惊讶,因为他们都是2000年之后出生的。所以我可以分享一下我在微软之前的经历。
在我加入微软之前,我曾去美国攻读硕士研究生。当时我们研究的是程序理解,也就是program comprehension。在 80年代和90年代,美国意识到有很多古老的代码没有人在维护,我们需要理解这些代码并生成相应的文档。那时,一位MIT的学者提出了一种概念叫做programmers apprentice,即程序员的学徒。这个概念的核心是训练一个人工智能成为你的学徒,学习处理文件操作等常见任务。
这个概念实际上源自70年代的一本书,我是在90年代阅读的。现在,经过30年的发展,这个概念终于得到了实现,而且取得了显著成果。关于微软,我在那里进行了很多关于AI的研究和应用开发,但我们当时主要做的是小模型,如人脸识别。我们会收集大量的人脸数据,进行标注,然后用模型进行训练。基于这项技术,我们做了人脸定位、识别和美颜等应用。
后来,我还开展了一些相关技术研究,但主要依然是小型模型。例如,在我的最后一个项目中,我们利用OCR技术扫描大量打印出的文档、发票和餐馆小票。我们训练模型识别单价、总价等信息,然后将其转化为模型。接着,我们编写低代码程序,将这些字段提取出来。对于每种类型的文档,我们都需要建立一个模型,并不断更新训练数据。这是一个非常繁琐的工作。
现在有了大模型,例如ChatGPT,它可以在PDF文件中回答问题、概括文件的主要内容,或者在表格中找到去年收入最高的月份。大模型具有多模态功能,包括处理文字、图像、视频以及排版信息等。因此,大型模型确实非常强大,在很多小模型上所花费的大量时间和精力,大模型可以轻松解决。例如,我们曾将 OCR准确率提高到95%或96%,但大模型的优势在于,人们关心的是核心价值,而不是那5%的准确率差异。这是一个非常重要的点。
另外,实话说,我在微软的时候,GPT1和2已经发布,而公司内部也进行了很多研究。许多研究员和有洞察力的管理者看到了这个方向的潜力。所以,大约在2016年前后,微软投资了OpenAI。当时,OpenAI的产品与图像识别相关,我认为我们的研究院也可以做。我不明白为什么要投资另一个公司。不过,看来领导们在这件事上用一句俗话说,他们在下一盘大棋,想要做大模型,而我们只是在下一盘小棋,针对特定类型的问题进行训练。
因此,我非常佩服那些有大格局的公司和行业人士,他们敢于做出大胆的投资。许多公司都在做大胆的赌注,有些公司计划去火星,有些公司研究其他领域。我觉得他们非常值得敬佩,尽管有时候可能会失败,但他们的勇气是值得我们学习的。
主持人:
实际上,当GPT刚问世时,网上最热门的应用就是利用GPT为小学生写作文。这对教育行业的冲击相当巨大。
朱老师在大学任教,因此我们想请教您关于GPT对软件工程专业教学方面的影响有哪些呢?
朱少民:
的确,教育方面对GPT也很关注。有人担忧,学生以后都会用GPT来完成作业,而不再动脑筋。如果学生不思考, 他们的能力将会下降。技术的发展可能对某些人有利,而对另一些人不利,关键在于如何利用这项技术。教师应该和学生沟通交流,让他们明白可以用GPT来完成作业,但不能过度依赖。在大学教育中,传授知识已经不再是教师的重心。重要的是培养学生分析问题、解决问题的能力,以及系统思维能力、逻辑能力、批判性思维能力等。
因此,教育的形式需要发生变化,更注重讨论、辩论和实践。GPT等大模型为学生提供了丰富的知识来源,但人类则更需要具备更好的推理能力和批判性思维能力。此外,动手能力和综合判断能力也是教育中不可忽视的部分。
总之,GPT/大模型对大学教育产生了很大的影响。在全球竞争的背景下,教育也需要进行改革。在线教育和GPT等技术的支持将使教育更加全球化、竞争化。老师们需要关注与学生的交流、辅导和讨论,而不仅仅是传授知识。
我觉得可以请邹老师和王老师,对这个话题补充一些看法。
王千祥:
我认为这个问题非常重要。我在学校里当了将近20年的教师,关于教学,我想补充一个观点。AI的发展对计算机类专业的教学可能产生很大影响。传统的课程体系可能需要调整,以适应新的技术发展。以前我们讲授的课程包括编程、编译、操作系统、数据结构等基础课程,但现在可能需要增加如何表达意图、如何与AI交流的课程。
有观点认为,AI的发展会使文科生更加受益,因为他们更擅长表达意图。而理科生虽然擅长技术,但表达能力相对较弱,与AI沟通时可能效率较低。因此,我们需要教会学生如何清晰地表达意图,以便更好地利用AI的能力。
另外,AI的发展也会影响教学模式。例如,未来可能会有AI来讲课,老师们只需要讲解部分核心内容,而AI负责讲解其他部分。这种新的教学模式可能会让老师们的工作变得更轻松,同时实现个性化教育,满足不同学生的需求。
邹欣:
学校对AI的态度也在不断变化。起初,学校禁止使用AI,认为使用AI等于作弊。后来,学校允许使用AI,但要求注明。最后,学校鼓励使用AI,并要求学生分析AI的答案,以提高自己的理解。我认为,AI将成为我们生活中的一部分,但核心问题仍然是如何培养学生的创新能力和创意。
以前很多老师关注教授计算机语言的语法,但忽略了编程思维的培养。AI可以帮助学生解决基本的语法问题,而老师们应该专注于教授创新和创意。这对老师来说也是一个很大的挑战。
主持人:
在之前的讨论中,朱老师发表了一篇《GPT-4开启“软件工程3.0”全新时代》的文章。文章中涉及到一个问题,即GPT是否会重新定义软件开发的新范式。这个问题确实值得我们深入探讨。
朱少民:
我在文章中提到了一个三环模型。在过去的DevOps只有两个环:开发和运维。随着DevOps的兴起,软件更多地作为一种服务形式存在,运维变得越来越重要。这时候,我们需要将开发的思想融入运维中,形成一个完整的闭环。
然而,在我的文章中,提出了一个包含三个环的模型。首先是机器学习(ML),接下来是软件开发,最后是运维。如今的软件开发更注重模型驱动开发,类似于敏捷开发中的测试驱动开发。首先需要建立一个优秀的模型,然后进行开发和运维。
王老师刚刚也谈到了运维的重要性。我们可以根据业务需求调整运维模型,将其与自己的业务相结合。这也意味着,在未来的软件开发中,模型驱动开发和数据驱动开发将成为常态。模型和数据将成为我们关注的重点,甚至是公司的宝贵财富。
正因如此,国家数据局的成立也体现了数据的重要性。同时,模型的重要性也日益凸显。尽管在过去,我们在软件工程教学中讲述了很多理论,如UML等,但实际应用并不广泛。然而,未来我们恐怕不得不使用这些方法。
综上所述,未来的软件开发将更注重模型驱动开发、数据驱动开发和AI原生开发。这些理念构成了我所说的“软件工程3.0”的核心。之前,我了解到了一些观点,例如,王怀民院士曾提出软件开发1.0、2.0、3.0等不同的范式。其中,3.0是关于群体智能,2.0则是关于开源方式,而1.0则是传统的工程范式。如有错误,请王老师和邹老师指正。我希望这能抛砖引玉,引发更多的讨论。
王千祥:
听朱老师的解释,我也在思考一个新的范式。在不同范式下,可能有不同的理解。从流程的角度看,最早的瀑布模型主要关注流程的一步一步分析。随后的螺旋模型则引入了迭代的思想。如今,由于AI技术的发展,开发流程可能会发生较大的变化,某些环节可能会被压缩,甚至消失。例如,项目经理在描述需求和细化设计后,程序员的角色可能变得不再那么明显。然而,测试环节仍然是必要的,因为AI系统无法完全保证质量和价值观的满足。
当然,这个新范式的具体形态还在不断变化。例如,随着GPT-4和GPT-5等更先进的技术的出现,流程和迭代方式都可能发生更大的变化。
邹欣:
从这个角度看,一个新的范式正在逐步形成。实际上,更重要的一点是,以前的程序,无论多复杂,都可以看作有限状态机。然而,现在基于深度学习的模型是基于统计的,同样的输入可能产生不同的输出。这导致了一些有趣的现象,例如,当我们用模型来解决问题时,客户可能会因为在特定情况下的表现不如预期而提出bug。
以美颜软件为例,假设我们发布了一个新版本,声称对黑皮肤的处理效果更好。理论上,厂家应该感到满意。然而,他们可能会反馈说,虽然黑皮肤的效果提升了,但白皮肤的效果却变差了。因为这是一个基于统计的模型, 很难做到在保持某些特征不变的情况下改变其他特征。因此,这也是一个巨大的范式变化。
王千祥:
关于朱老师提到的软件开发3.0范式,我想起了另一个话题,那就是软件2.0的概念。当我第一次听到软件2.0这个说法时,我是非常抵触的。这个概念是由一些AI领域的专家提出的,他们认为 AI生成的代码和软件就是软件2.0。虽然现在我的抵触情绪已经减轻了,但我仍然在思考如何界定这种新型软件与之前的软件之间的区别。
有观点认为,既然需求到代码的编写都是由AI完成的,而代码到实际应用的过程又是自动化的,那为什么还需要代码呢?我们只需要直接从需求转换成实际应用就好了。这些观点确实反映了软件开发范式的变化,也可能与软件形态自身的变化有关。
我想补充一点,这个变化可能会对整个软件开发过程产生影响。这个话题确实值得我们长期观察,因为越早关注这些变化,越早认识到这些趋势,我们可能就能更快地适应和进步。这是我想要补充的一个想法。
主持人:
在刚才的讨论中,邹老师提到GPT已经覆盖了90%的日常工作,但在创意工作方面仍有10%的待提高空间。关于GPT在软件需求定义和分析方面的影响是怎样的呢?
邹欣:
刚刚两位老师也讲了,如果需求定义非常清楚,GPT可以很好地完成任务。但现实中需求往往不够清晰,甚至需求方自己都不清楚自己需要什么。此外,需求可能会在开发过程中发生变化,这使得软件开发变得更加复杂。对于老旧系统的改造和适应新需求,AI在处理这些问题上可能会遇到困难。尽管如此,如果需求能够明确地表达,GPT依然可以在一定程度上提供帮助。
朱少民:
GPT能够理解自然语言并与人进行沟通,这确实是一个巨大的进步。通过引导GPT,可以使其更好地生成需求文档。此外,GPT可以帮助我们更好地理解用户需求,因为它所接触到的数据远比我们个人的经验丰富,所以需求的完备性会更好。同时,GPT生成的文档在一致性、规范性等方面的质量往往优于一般人的写作水平。朱老师认为,使用GPT生成的文档质量可能会比许多软件开发人员编写的技术文档更高。
总结来说,GPT在软件需求定义和分析方面具有一定的潜力,可以在需求明确的情况下提供有效帮助。同时,GPT也能帮助我们更好地理解用户需求,提高文档质量。然而,在处理复杂、不清晰需求和老旧系统改造方面,GPT仍有一定的局限性。
王千祥:
我会就这个问题简要回答一下,因为两位老师的观点我基本上都同意。GPT对软件需求的定义和分析肯定会产生影响,而且会提供很多帮助。至于帮助的程度,有可能达到 80%到90%,甚至在某些模块级别的需求上,GPT能够直接生成解决方案。
我想起以前David Parnas曾特别强调需求文档化,尤其是采用表格等形式化表示方法。如果遵循一定的规范,与GPT的交流效果会更好,更容易得到一个完善的结果。GPT在理解自然语言方面的优势可能会发挥很大作用 ,虽然它阅读的需求文档不如代码那么多,但在自然语言处理方面的经验丰富。
GPT在处理套话方面尤为擅长,而需求描述与套话有一定相似之处。因此,GPT在需求定义和分析方面会节省很多时间,并对软件开发产生正面影响。总之,我认为GPT对软件需求的定义和分析肯定会产生积极影响。
主持人:
实际上,我们已经讨论了GPT对软件需求定义和分析方面的影响,接下来我们可以进一步探讨GPT在软件设计方面的影响,包括UI设计和架构设计。
朱少民:
虽然我对这方面的了解不如其他两位老师,但我还是尽量提供一些思路。实际上,在软件设计方面,GPT可能表现出一定的策略性能力。例如,它能够理解一些系统特征,以及如微服务架构和SOA架构等设计模式。这些理论知识和对设计草图理解方面,GPT应该没什么问题。
然而,对于如何更好地考虑性能和可靠性等方面,GPT可能需要面对更大的挑战。因为在这方面的训练数据相对较少,它的策略性能力可能与人类相比还有较大差距。不过,GPT在处理遗留系统方面可能具有较大价值。
正如邹老师和王老师提到的,GPT可以从大量遗留代码中理解系统架构。这方面,我所认识的在美国大学的一位学者,她研究基于代码来理解软件架构、技术债务,包括代码的耦合性和复杂度等问题。过去,这些问题主要通过特定工具、规则和代码扫描来解决,而GPT可能在处理大量遗留代码方面具有类似的能力。
例如,对于需要理解数百万行代码的系统,单个人类可能面临巨大挑战。然而,GPT或许更能胜任这项任务。因此,在处理遗留代码方面,GPT可能具有很大价值。例如,在进行系统迁移时,GPT可以帮助我们理解原有系统的逻辑关系,并在此基础上开发全新系统。这样,我们可能会更容易完成任务。
王千祥:
确实,GPT在一定程度上可以用于软件设计,但关键在于它能提供多大的帮助。我记得在GPT-4出现之前,我曾接受过一次访谈,当时参与的还有蒋总、复旦大学的彭鑫老师等。当时,我们讨论的问题是ChatGPT对开发人员、安全人员和架构师等角色的影响。
在GPT-4问世之后,我觉得我的观点有所改变。当时,我认为架构师相对较为安全,因为在设计架构时,除了考虑需求外,还需要关注底层的特殊信息。这些信息是GPT难以获取的。但后来我意识到,在许多公司内部,我们可以将这些信息加入到GPT的训练中。
此外,GPT-4的输入长度相对更长,使得我们可以将更多的架构信息加入到训练中。因此,GPT-4在软件设计方面可能比我原先预想的帮助更大。所以,我认为GPT肯定能在一定程度上帮助架构师,甚至可能比我之前设想的帮助更大。不过,架构师这个职位相对来说还是较为安全的。
邹欣:
我认为架构确实非常重要,但如果我们脱离具体的应用场景来讨论架构,实际上架构的种类并不多。我们都知道,在传统的软件开发中,有一些常用的设计模式和架构。但在实际应用中,一个关键问题是,很多系统需要解决特定行业的问题,如石油、煤炭安全、核电站和医疗等。这些领域都包含大量的领域知识,以及这些知识中的约束关系。我对GPT是否能够了解这些领域知识持保留态度,但考虑到GPT的快速发展,也许它会有一天能够理解我们人类看不到的领域知识。
我个人认为,当前的挑战在于真正的应用是基于具体的生活、工作和经济环境中的行业。这些领域中仍然存在许多规律。因此,架构师不仅需要了解计算机,还需要了解特定领域,运用软件技术解决领域问题。我们需要看到AI是否也能了解这些领域,并抓住其中的主要矛盾和矛盾的主要方面。如果AI能够做到这一点,那么我们的工作确实会受到影响。
王千祥:
当我们利用大型开源模型并对其进行领域训练时,我们也需要考虑多个模型的协作,例如领域专家模型、编码模型等。这样的协作可能会产生一些我们人类不太理解的架构和语言。就像我们通过自然语言直接编写代码,中间可能不再需要设计环节。
然而,我认为设计仍然是必要的,因为未来需求总会发生变化,设计架构可以帮助我们更好地应对这些变化。此外,评估架构的优劣是一个非常困难的问题,甚至比评估代码更难。对于代码,我们可以通过测试来判断其质量,但对于架构,评估的难度更大。
朱少民:
在这种情况下,人的价值可能会变得更加重要。当越来越多的机器人参与工作时,架构师等人类工作人员的责任也将变得更加重大。因此,我们不能忽视架构师的存在,他们仍然具有重要的价值和责任。
主持人:
我们实际上讨论了关于软件需求定义的问题,以及它对架构设计的影响。
那么在后续阶段,它会对软件测试产生哪些影响呢?
朱少民:
一方面是之前进行的一些实验,包括国内外的实验室在GUI自动化测试、基于故障的测试、接口测试脚本生成等方面的研究。这些实验探讨了自动生成测试用例和代码的可能性。另一方面是我之前做过的实验,通过明确的需求定义,利用不同的方法生成测试用例,如等价类划分、边界值分析和因果图等。
其次,之前我提到了微软研究院的楼建光老师所进行的一次分享,展示了类似于AlphaZero的方法在测试用例和脚本生成领域的应用。这种方法允许两个生成模型——代码生成模型和测试脚本生成模型的相互博弈,不断促进代码质量和测试覆盖率的提高。
另外,我还提到了GPT-4模型在测试领域的应用,它具有通用智能,能够使用各种工具进行测试。这意味着GPT-4可以在系统识别和验收测试中发挥重要作用,不再需要手动编写测试脚本。同时,强调资深测试专家的存在仍然是必要的,因为他们需要确保机器人的测试工作准确无误。
之前,我一直强调探索式测试和自动化测试这两者有机结合起来的重要性。人类在新功能的测试中应发挥创新能力,而回归测试则应全部交给自动化工具来完成。未来,强化学习和人类示范可以协同完成系统级别的测试工作,减轻了测试人员的工作负担。
在未来几年,大模型有望解决我们80%左右的测试问题,但人类仍需要控制整个过程,以确保测试的质量。在这个过程中,资深测试专家的角色将会得到保留,而大量底层测试人员的需求将逐渐减少。这就是我对未来软件测试领域的一些展望。
邹欣:
也许在未来的GPT-5或GPT-6中,就像朱老师所说,我们现在使用编程语言的方式可能会发生改变,这与我们自身的局限有关。就像AlphaZero一样,它能够自己解决问题, 而不需要学习人类的方法。
主持人:
接下来,我们将讨论最后一个问题,即GPT模型对程序员的影响。这个话题引起了很多人的关注,因为GPT模型可以替代许多基础工作。许多程序员担心自己面临职业危机,希望听听三位老师的看法。
王千祥:
实际上,我刚才已经谈到了一些影响。GPT模型对开发人员的影响非常大,使他们更加勤奋地学习。我建议其他人员也要勤奋一些,多了解GPT-4的能力。很多人可能因为各种原因没有亲自尝试使用GPT模型,我特别佩服朱老师的探索精神,亲自从头到尾尝试了一遍。我鼓励大家都去尝试一下,感受到GPT模型带来的震撼后,你可能会更加迫切地想要适应新的变化。一定要适应并拥抱这些技术,否则可能会被淘汰。这是一个不可避免的规律。
邹欣:
实际上,每当新技术问世,总会引起很多人的担忧。但我认为,首先它确实是一个工具,我们应该好好学习使用它,没有什么大不了的。如果实在不能适应,我们还可以去尝试做其他事情。毕竟,在编程这个职业诞生之前,人类也没有这个职业,对吗? 我们在编程时经常提到,古代的织布机其实也是一种编程方式,需要制定计划和编程。现在,人们不再用手工织布,而是用机器代替。大家并没有因此感到可惜,而是享受着这一成果。我认为,在整个社会中,还有很多非常重要的事情等着我们去完成。作为程序员,我们可以拥有更大的格局,相信人类会不断发展。
首先,人类需要利用能源。如果我们不能利用能源,那么我们只能用锄头耕地。现在,我们可以利用各种能源,如水力、核电等。这个问题将持续很长时间,关键是如何更有效地利用能源。此外,当人们衣食无忧并拥有充足的能源后,我们需要考虑如何保持健康和长寿。在这方面,医学和生物学领域同样非常广阔,有许多问题可以由程序和AI来解决。
作为程序员,我们经常需要处理重复性高的工作,如数据库的增删改查。我们应该为AI能够接手这些工作感到高兴,这样我们就可以去做一些更有趣的事情,如攻克癌症、研究蛋白质折叠等。我认为,我们可以做更多有意义的事情,而不必担心明天AI会学会我们现在的工作。我们只需要学习新的东西来应对这些变化。
朱少民:
其实我本来想谈论一下,比如我们可以尝试成为AI提示工程师。就像前面提到的,现在已经有智能提示工程这个行业了,你可以尝试去做这样的工程师。新的职业总是会不断诞生,对于专家或资深人士来说,其实并没有太大的风险。正如王老师之前所说的,作为架构师或资深的测试人员、开发人员,你的价值将更大,你借助GPT会做得更好、更有效率,因为当有了机器人或助手来完成一些简单的工作时,你就不再需要亲自去做了。
正如邹老师刚才所说,拥有更大的格局是非常重要的。我们需要保持一种成长性思维,不断学习和成长,以更好地利用这些变化,或者去做自己更喜欢的事情。
以前你可能觉得测试人员的工作比较单调,但实际上,开发工作也未必非常有趣。如果你每天都在处理产品线上的代码,你真的有那么多创新吗?正如邹老师所说,90%的日常工作是常规工作,所以不会那么有趣。每天写代码和测试其实没有太大的区别。你可能觉得自己在编写新的代码,但大部分时间可能还是在实现“增删改查”功能,只是在不同的项目和业务中。这些并没有特别新鲜的东西。
但在未来,这些单调或不是特别有趣的工作都可以交给机器去完成,那么你自己就可以去做更有趣、更有意义的事情了。有时候,你应该把这种变化看作是一件好事。
觉得文章不错,顺手点个“点赞”、“在看”或转发给朋友们,欢迎您留言。
未完待续
如果想进一步了解GPT相关内容,请关注4月6日晚8点K+Talk大咖对话,本期K+Talk邀请到腾讯Tech Lead 茹炳晟老师、中科院计算所高级工程师李明宇老师以及Testin云测CTO陈冠诚老师共同做客直播间,结合最新一线实际应用案例,深入探讨GPT-4在编程和软件开发领域的革新作用。讨论与分享AI在代码生成、审查、优化等方面的实际应用,并解析其在软件开发流程中的影响。此外,还将探讨GPT-4在编程教育、职业变革等方面的未来趋势。敬请期待《编程新纪元:如何利用GPT-4重塑软件开发与创新》的精彩对话,共同见证AI与编程领域的交融发展!