大模型时代,传统程序员还需要写代码吗?

科技   2024-08-23 17:36   湖北  

大模型时代的程序员新生存法则

©作者|CodeDan

来源|神州问学


一.引言


随着大模型(如GPT等)的迅猛发展,软件开发领域中我们的开发方式也在悄然发生变化。当然,我作为一名传统的Java后端开发工程师,在职业生涯的初期主要专注于使用多种数据结构以及算法编写业务代码。


然而,随着AI大模型应用技术逐渐渗透到大多数开发人员并且初步使用它之后,我有了一个疑问?


在这个大模型驱动的时代,程序员还需要像以前那样频繁地写代码吗?


本文将结合我的一点点看法,和大家一起探讨——在大模型时代下,传统程序员是否仍然需要专注于代码以及如何适应这一新趋势。


二.大模型的崛起与影响


这个议题我想分两个方向分享一下,分别是“浅层次的探究一下大模型能够在代码层面给予我们什么样的帮助”以及“大模型能够对传统开发流程产生什么样的影响”。


2.1 大模型对于传统代码的帮助


首先我个人非常喜欢在编写代码的时候对AI应用提出各种各样的问题,甚至是对他进行需求提问,所以累计了很多有意思的场景,如下所示:



不过由于篇幅原因,只针对不熟练代码的编写以及提出具体的模块需求两个方面进行演示。


2.2.1 不熟练的代码编写


大脑对于不常用的代码通常记忆的时间不会太长。对我自身来说正则表达式的功效虽然都明白,但是如果涉及到比较复杂的正则表达式可能会困惑我较长的时间,那么这个时候就可以使用gpt来辅助我们。


AI接受的输入:



AI生成的结果:



2.2.2 提出具体的模块需求


我们在实现大多数模块需求的时候,通过是针对这个模块进行CRUD(增删查改)的代码编写,这个代码通过会加入一些异常判断或者实体类转化等操作,所以无法避免还是会产生一些重复的工作量,这个不需要脑力的重复操作也可以交给AI完成。比如我需要完成一个用户标签模块的curd的时候:



结果:


Controller层:



Service层:



ServiceImpI层:



Mapper层:



可以看出其完整的编写关于用户标签的业务模块的代码,虽然业务逻辑很简单,但是我们可以在提示词中告诉他更多业务相关的判断逻辑,那么他就可以生成复杂的业务逻辑代码。


我曾经利用这套提示词的复杂版本在晚上空闲时间写了10多个接口,并且成功运行。

 

 2.2 对传统开发流程的影响


虽然我没有展示全部的个人使用场景,但是上述的两个使用事例已经可以表达出AI应用对于目前传统开发者的影响力。那么这个影响力是不是扩展到传统的开发流程上呢?


现在企业里用的很多的开发流程之一当属敏捷开发流程,即传统的开发方法通常依赖团队的高效协作、持续的反馈循环以及迭代式的交付。



上述是敏捷开发的正常流程,那么AI应用可以在哪些步骤上给我们提速呢?


需求收集与分析:在这个环节中,开发团队是需要与客户不断进行会议,通过口头交流、文档撰写、绘制图表等方式来明确项目的需求。那我们利用多模态大模型的特点,接收与客户交谈中的语音、文本、图片,视频等输入,自动根据我们提供的需求模版提取出大多数关键需求以及衍生需求等等。让项目团队管理者能够迅速捕捉客户的需求,并通过自动化工具整理和分析这些信息,减少了人工误差和沟通成本。


计划会议:即节省会议之后的纪要数据整理与分析环节时间,让AI应用自动进行记录与总结,并且支持相关人员进行会议关键字提取以及要点汇总。使得团队能够更专注于核心任务,减少后续沟通中的不必要摩擦。


迭代开发过程:AI应用能够根据简单的业务描述快速生成高质量的代码片段,包括控制器、服务层和数据访问层的实现。这不仅减少了手工编码的时间,还显著降低了代码中的潜在错误,减少了后续Bug的产生,从而缩短了修复时间。开发者可以将更多的精力集中在业务逻辑的优化和创新上,而不是重复性任务的执行或不断修复Bug。这种效率的提升,使得项目开发周期大大缩短,质量也得到了显著提高。


三.传统程序员的角色转变与未来发展路径


在我看来传统程序员在角色转化上最重要的就是去拥抱AI,不要害怕AI对我们的改变,要去深入理解AI的使用和运行原理。


第一阶段:真正会使用AI。


掌握提示词工程(Prompt Engineering),即如何与AI进行高效互动。提示词的设计直接影响AI输出的质量,所以我们需要知道如何构建精确且具有指导性的提示词,以便AI能够生成符合我们预期的代码、文档或解决方案。


第二阶段:了解AI能够以及不能做什么


当我们掌握了一定程度的提示词工程后,下一步可以深入理解AI的能力边界。了解AI能够做什么,以及它的局限性。我推荐熟悉RAG(检索增强生成)和Agent(智能体)的概念,比如RAG如何做到结合外部知识库来增强AI的表现以及如何设计能够自主决策和任务执行的Agent智能体。只要掌握他们,我们就能够更精准地利用AI来处理复杂的业务场景,同时避免因AI的局限性而产生的风险。


第三阶段:体验AI应用开发


在深入了解AI的能力之后,对AI产生兴趣的同学们,可以去体验AI应用开发。在这个阶段,将使用如LangChain、扣子coze和dify等工具,亲身参与到以AI驱动的应用程序开发。通过实际的项目开发,不仅能够更好地理解AI的应用场景,还能探索如何将AI技术无缝集成到现有的业务系统中。这一过程将帮助我们进一步提升技能,适应AI时代的开发需求。


第四阶段:了解大模型架构


最后,我认为在角色转化的过程中最后等待我们的,并且难度很高的内容就是需要深入学习AI的底层原理,尤其是大模型的架构。理解如Transformers等关键架构对于掌握AI的工作机制至关重要。这一阶段主要是研究模型的训练过程、参数优化以及如何对模型进行微调。这更加有助于我们理解AI的运行逻辑,还能让我们具备定制和优化AI模型的能力,在实际项目中可以更好地应用AI技术。


四.写代码的必要性


尽管大模型在代码生成和优化方面表现如同演示中一样出色,但是复杂的业务逻辑、代码质量与可维护性仍然是一个不可忽视的问题。


而且在我看来,完全依赖大模型自动生成代码必然存在一定的风险,尤其是在复杂的业务场景中。大模型生成的代码虽然可以快速搭建出初步的业务逻辑,但最终的质量和可维护性仍需通过人工review和优化来保证。


最关键的是我认为创新和个性化需求是我们程序员的独特优势。大模型虽然可以生成高质量的代码,但在处理复杂的创新性需求时,仍然无法完全替代人类的创造力和判断力。


  五.结论


尽管大模型的崛起对传统程序员带来了不小的冲击,但写代码的核心技能对于我们来说仍然至关重要。尤其在特定的业务场景和行业中,程序员的专业知识和经验依然不可替代。


然而,随着AI技术的不断发展,程序员需要主动拥抱这一变化,通过学习新技能和技术,提升自己的竞争力。同时,探索人机协同带来的效率提升,也是程序员未来发展的重要方向。


总之,在大模型时代,传统程序员不仅需要坚守传统的编程技能,还需不断创新,以适应未来的发展需求。




智见AGI
围绕生成式AI技术的交流社区,与开发者和合作伙伴共同探究有深度的生成式AI技术前沿洞见、技术迭代、案例解析、方法和实践,助力企业的数字化转型
 最新文章