AI 时代,程序员的出路在何方?

2023-08-01 15:12:37 - AI科技大本营

本文将重点谈论两个话题:AI时代,程序员真的要被淘汰了吗?在AI时代,如何才能提高竞争力?

作者|明明如月(CSDN博客专家)    

责编|夏萌

出品|CSDN(ID:CSDNnews)

AI 时代,程序员的出路在何方?

前言

随着ChatGPT的横空出世,给全球带来了巨大冲击,各种大语言模型如雨后春笋不断出现。国外如谷歌Bard、Anthropic的Claude,国内如百度文心一言、阿里通义千问、讯飞星火认知大模型、昆仑万维天工大模型等。

现在的大语言模型比以前的模型的代码生成、代码解释能力有了质的飞跃,很多程序员已经开始使用大语言模型编写代码,因此很多人认为“程序员将会被AI所取代”。

本文将重点谈论两个话题:

AI时代,程序员真的要被淘汰了吗?

在AI时代,如何才能提高竞争力?

AI 时代,程序员的出路在何方?

程序员将被淘汰?

“程序员将被取代”这个话题并非在最近AI火爆之后才被提出。之前低代码的出现,很多人就已经开始讨论程序员是否被淘汰了。然而,低代码虽然可以提高编程效率但并不能满足复杂场景、不够灵活甚至不够安全,并无法真正取代大多数程序员。

AI 时代,程序员的出路在何方?

我认为,目前说“程序员将会全面被AI所取代”也为时尚早,但仅会CRUD的程序员或将面临被淘汰。如果你是打字员,如果AI不断发展,AI的语音转文字的识别正确率比一些初级的打字员还高,那么初级打字员就面临淘汰。现在AI代码生成能力已经很强,简单的 CURD或将被AI完全取代,因此如果你仅会CRUD其他能力都很弱,很容易被淘汰。

但从目前看来也会存在多种因素导致很多高级程序员还不会轻易被取代。

首先,目前大模型代码生成能力仍然有限。现在大模型虽然具备生成代码、解释代码甚至优化代码的能力。但是目前主要停留在“函数”维度,尚不能很好地生成类维度、模块维度、项目维度的代码。而且生成的代码也会存在各种问题,比如存在错误无法运行,使用了过时的类库,存在一些潜在的BUG等。生成的代码依然需要人去优化、去部署验证等。复杂的任务,还需要人去拆分成大语言模型能够轻松胜任的粒度。

其次,数据安全的限制。很多公司,尤其是大厂特别重视数据安全,不允许将公司的业务机密泄露给外部大模型,不允许用户将公司代码暴露到外部环境中,因此大模型在大厂的应用受限。通常只用来生成一些简单的类似工具类的代码或者其他没有业务属性的代码。

再次,自研模型能力限制。虽然现在很多大厂已经开始自研大模型,但是目前不管是数据、还是GPU资源还是模型能力和国外大模型相对还有很大差距,目前即使开放给员工使用,虽然可以提效,还很难形成足够的生产力。

最后,编码只是整个软件生命周期的一环。软件开发还包括需求分析、技术方案设计、编码、测试、运维等环节。很多时候决定软件成败的是编码前,需求的提出和分析,技术方案设计。尤其是需求阶段,涉及大量的人际沟通,需要人去排优先级,需要人去争取资源,需要人去和产品经理反复对焦需求,编写好的代码需要人去验证,写好的程序需要测试去验收,需要运维去部署等。

AI 时代,程序员的出路在何方?

路在何方?

3.1趋势不可逆,尽早掌握工具提高效率

现在AI时代已经来临,就像工业革命出现了蒸汽机、发动机一样,必将对诸多行业产生深远影响,已经呈不可逆转之势。

很多人会说现在大模型存在很多缺点,比如存在幻觉问题、推理能力还比较弱等问题,但就像驾驶汽车也可能发生事故一样,我们并没有因此放弃开车,因为我们能够意识到他给你带来的便利。而且恰恰是因为大语言模型的不完美,我们才没那么容易被淘汰。如果有一天产品经理设计好需求文档,AI就可以自动写代码,自动修复问题,自动部署,或许程序员真的就要失业了。如果有一天AI可以产出比产品经理更好的需求文档,或许产品经理也将被取代。

AI 时代,程序员的出路在何方?

现在身边已经有很多人开始使用大语言模型来学习技术,编写代码,寻找思路、辅助解决问题,也有很多业务团队开始用大模型解决业务问题。AI极大缩短了掌握知识的路径,一些需要读很多书、看很多专栏才能搞懂的知识点,让AI 工具给你举例子,给你用通俗易懂的语言来解释,可以快速、系统地掌握。一些看似并不复杂的代码,如果你自己去写可能要写半小时,AI则可能一两分钟就搞定,而且BUG还更少。很多之前苦思冥想,找不到解决办法的问题,AI可以快速提供很多候选方案,帮助做出更完善的方案。以前排查十几分钟,几个小时甚至几天都解决不了的难题,有了AI的加持,很可能几分钟就解决。

有了AI的加持,有极少编程经验的人,通过提示词就可以“写出”比很多初级工程师更优秀的代码。有了AI的加持,一些非英语语言的国家的人,也可以写出地道的英文文章。AI 在这个时代,给很多行业带来无限可能。

因此,在我看来,“不是AI取代人类,而是使用AI的人淘汰不会使用AI的人,善用AI的人取代不能善用AI的人。”如果把我们比作马车夫,那么大模型可以看做是汽车,我们不应该抵制汽车,而应该学好驾驶技术,成为一名“老司机”,用它来为生活和工作提效,用它来赚钱。

3.2警惕“物极必反”

先思考再问大模型

很多人都有这种体会,自从学校毕业之后很少直接动手写字,生活和工作中更多地是通过键盘打字甚至语音交流,经常会“提笔忘字”。这就是所谓的“用进废退”。

AI 时代,程序员的出路在何方?

同时,很多人也已经观察到,现在越来越多的人开始沉迷于抖音、快手无法自拔,主要是因为这些平台具有强大的推荐算法,通过分析你的喜好,推送更多你喜欢的内容,让你只沉迷其中,同时也在强化你的“偏见”,值得警惕。

如果我们很多事情,不能够先思考而是过度依赖大语言模型,那么我们的思考能力会下降。然而,人相对于AI 更具优势的能力就是创造力、提出问题的能力等等。如果思考能力下降,我们很容易被AI所左右。

因此,当你遇到问题时,建议首先自己去思考如何处理,如果自己短时间内解决不了,再尝试问AI,再解决不了再去请教其他人。当你需要做一些设计时,一定是先自己去思考方案,然后再去让AI给你一些建议,不断丰富你的方案,这样才能形成良性循环。

提高信息辨识能力

以前“遇事不决,问谷歌”,现在是“遇事不决,问AI”。自从用了一些先进的AI工具后,我已经很少再使用搜索引擎了。之前的搜索引擎更多的是充当检索工具,给你一堆相关的资料让你去提取、分析,效率较低。而现在的AI更多的是真正回答你的问题。

AI 时代,程序员的出路在何方?

但是现在大语言模型也存在“毒性”和“幻觉”问题。如果大模型生成的一百句中掺了一句假话,如果大模型生成看起来非常正确的内容,假如我们缺乏专业知识,缺乏辨别意识和能力,很容易给我们造成负面影响。

很多人会说:“AI时代来了,不需要深入学习计算机理论了”,我认为恰恰相反,只有学好计算机相关的理论和技术,才能够提高对AI生成信息的辨识能力,才能享受AI带来效能提升的同时,降低其负面影响。

3.3抓住风口,思考如何和业务更好地结合

正如第一部分拿汽车举例一样。AI时代虽然已经来临,现在大家都知道AI是一个风口,都领略了AI的巨大效率提升,但是人们的设计理念还停留在上个世代,都在将AI生搬硬套在原有的产品体系中,就像直接把发动机安装在手推车上或者直接安装在自行车上一样。

当我们思考如何将大模型和业务结合时,不能无脑地直接将AI套到业务上,需要去思考哪些任务适合使用大语言模型,哪些任务工程化的方式会比大模型成本更低而且效果更好。就像飞机、高铁更快,但是自行车、汽车、地铁依然应用很广泛一样,不同的技术用各自擅长的领域,对于复杂任务通常需要多种方式相结合。

AI 时代,程序员的出路在何方?

另外把大模型和业务相结合时,需要去思考一种更创新的模型和业务的融合方式。如果把模型比作发动机,我们在做融合时,不应该思考“怎么为自行车直接安装上发动机”,而应该重塑框架,去“发明汽车”,给汽车配上“导航”,加上“空调”,从手动挡升级到自动挡,甚至加上“辅助驾驶”、“自动驾驶”等功能。

在落地大模型和业务相结合时,需要尽早制定大模型可开始工程化的标准,不断优化模型并验证效果,当达接近这个标准时再去开发工程化链路,可以少走很多弯路。

此外,我发现现在搞大模型算法的同学相对紧缺,而且随着大模型开放API,模型的训练平台上手复杂度也越来越低,已经有很多后端甚至前端开发同学打破职能边界,开始学习甚至已经动手对大模型进行训练和调优,来提高模型迭代的速度,更好地服务自己的业务。对开发同学来说是一个很好的机会,但这个过程中,建议一定要有专业算法同学来指导,很多算法问题和工程问题存在很大差异,需要专门学习。举一个简单的例子,在一些模型训练过程中需要一些人工标注样本,然而专业的算法同学眼中常识性的知识:样本量要足够大、样本质量要高、样本最好更多样性、不同类型的样本应该尽可能均衡。对于刚开始接触模型训练的开发同学来说可能并不了解,造成花费大量时间造了大量人工标注样本,但是很多质量不高或者缺乏多样性,事倍功半。

3.4增强不容易被AI取代的能力,至关重要

在 AI时代,很多简单明确的任务将会被AI所取代。

那么,我们将何去何从?

在我看来,在这个AI时代,很多相对简单的任务都将被AI所取代。新的时代需要学习新的能力,想要取得竞争优势,需要我们坚持学习,甚至终身学习。就像我们的父辈,需要“跟上时代”而去学习使用移动支付学习使用微信一样,在AI时代,我们都要学好提示词才能更好地利用大模型解决问题。未来或许不需要写复杂提示词,但也将会有很多新的技术出现,也需要我们持续学习。

当一些曾经需要较大成本学习才能掌握的能力,通过AI可以更高效实现时,低端的“CURD程序员”很快将面临淘汰。因此,我们需要特别加强那些不容易被 AI所取代的能力,才能更不容易被淘汰,才能获得更大的竞争优势。包括但不限于:提示词技巧、产品思维、创造力、泛化推理能力、提出问题的能力、沟通表达能力、复杂问题的分解能力等。

可能很多同学要问,该如何掌握这些能力?

有些能力需要我们在日常的工作中去培养,需要我们去主动思考慢慢积累,比如产品思维、提出问题的能力等。

有些能力可以通过AI快速学习然后通过不断练习来掌握,比如沟通能力、复杂问题的分解能力等。AI时代,我们要学会利用AI来学习。我们可以将资料上传给AI 然后直接通过对话的方式来学习。不懂的知识,也可以直接让 AI给我们解释,让它给我们举例子。比如你想提高工作中的沟通能力,可以让AI介绍一些常见的沟通技巧,可以让AI给你解释什么是“非暴力沟通”;比如你想提高自己的表达能力,可以让AI给你介绍一些表达技巧,让AI给你解释什么是”结构化思维”,以及“如何实践结构化思维”,并在工作中“刻意练习”。

如下面就是针对“如何让自己的表达更加结构化?” 这个问题,AI给出的建议,非常具有参考价值:

要让自己的表达更加结构化,可以遵循以下几个方法和技巧:

1.明确主题:在表达前,先明确你要传达的主题或中心思想。这有助于确保你的内容始终围绕主题展开,避免跑题或拖泥带水。

2.制定大纲:在开始写作或演讲之前,先制定一个简单的大纲。列出要点和主要思路,然后按照这个大纲来组织你的表达。

3.段落分明:确保你的表达以段落为单位,每个段落都应该有明确的主题句,并围绕该主题句展开。

4.使用连接词:连接词能够有效地把你的表达衔接在一起,使内容更加连贯。例如,“首先”、“其次”、“最后”等词语可以很好地引导读者或听众理解你的思路。

5.给予例证:无论你是在写作还是演讲,通过提供具体的例子和案例来支持你的观点。这样可以使你的表达更加有说服力和可信度。

6.避免啰嗦:简洁明了地表达是结构化表达的关键。避免使用冗长的句子或重复的词汇,保持内容精炼。

7.段落过渡:确保段落之间有明确的过渡句,帮助读者或听众理解不同段落之间的联系。

8.注意语法和标点:良好的语法和标点符号使用是表达结构化的基础。请确保使用正确的标点和语法规则,以避免歧义和混淆。

9.反复修改:写作是一个逐步完善的过程。写完初稿后,反复修改和润色你的表达,以确保逻辑清晰,信息有序。

10.练习:结构化的表达需要时间和实践。多进行写作和演讲练习,逐渐培养对结构化表达的习惯。

通过采用这些方法和技巧,你可以逐渐提高自己的表达能力,使其更加结构化、清晰和有条理。

建议大家想培养某个能力时,直接问AI知道它是什么,为什么,知道该怎么做,并且在工作中灵活运用即可。

到这里,细心的网友可能早就发现了,本文就是一个遵循上述结构化原则的一篇文章。

AI 时代,程序员的出路在何方?

总结

现在的AI大致是汽车的自动挡或者辅助驾驶阶段,更多的作为一个提效助手。

不要抱怨AI的不完美,正是AI的不完美,我们不那么容易被淘汰。

你认为AI时代,我们如何抓住这个风口?我们还需要增强哪些能力?

今日热搜