“程序员”这个职业会不存在吗?
转贴- 2024-03-13 09:43:29
- 来源:
- 微信公众号
- 777
前两天,几位互联网大佬聊人工智能(AI)上了热搜,一些观点比较犀利,在软件行业掀起了大范围的热议,其中一大热点是:“程序员”这个职业会不会存在?去年就有惊人的观点:谷歌工程主管:程序员的职业生涯将在 3 年内被AIGC终结
其实,我5年前就写过一篇文章:未来两年:人机结对编程(MMPP)将成为现实。当时,我过于乐观,但也不算乐观:2020年北京大学推出了aiXCoder 2.0(版本到了2.0,说明产品相对成熟了,其工作始于2013年),可以完成代码补全、代码评审等,开始实现人机结对编程。
今天的大语言模型(LLM)是一个概率模型、一个不确定模型,我甚至说过(见:软件工程3.0实践之路(一)最后一段):因为LLM的不确定性,有幻觉/幻想,倒是不适合做编程助手,更适合帮我们在一些不确定事务(股票投资、风险管理等)上做决策、可以获得最大的赢率。LLM也更适合参与我们的头脑风暴活动、文化创意、设计等活动,这时幻觉/幻象成了优点、有创造性,例如挖掘用户的需求、应用场景、海报生成、视频创作、音乐创作等。
今天,我们确实越来越多地将LLM应用于代码补全、代码生成、代码理解、代码解释等工作中(见:软件工程3.0实践之路(六):LLM驱动编程,银弹快来了吗?),它也可以生成单元测试脚本、测试用例。但所有生成的结果都不能直接采用,需要人工review。如果你的能力弱,就无法判定结果对与错,review的效果就不理想。如果你只懂英文和中文,而不懂计算机编程语言,那根本无法review。对,像其他同学说的,你还要懂操作系统、懂数据库、懂通信协议、懂架构、懂算法和数据结构......这些都是软件开发的基础。
但是否有可能:生成的代码不需要人工review呢?在某些情况下也是有可能的,我的设想是:
- 事先分别构建独立的开发LLM(更多是代码正例)、测试LLM(语料更多是反例,如缺陷报告、测试脚本、测试运行日志等)、业务/需求LLM等。
- 让LLM帮我们实现BDD那样的需求(GWT格式,即需求足够明确),这个过程还是人机交互的,需要业务需求专家确认结果,确保结果是正确的(相对的,不是绝对的)。
- 从基于BDD的需求出发,开发LLM生成产品代码,测试LLM生成测试代码,两者独立工作,相互博弈、相互验证(类似AlphaZero,之前也有微软的论文做了局部验证)。这种情况下,几乎不需要人工参与(但很有可能是少量参与),让LLM相互验证,确保结果运行正确、通过测试。
- 业务/需求LLM 会参与全过程来验证,包括针对运行的程序进行验证。
- 谷歌广告中,开始集成进大量的生成式AI功能。
- 谷歌的聊天机器人,可以帮人们浏览大量的广告产品。
- 谷歌的某AI系统,可以根据广告购买者给出的预算和目标,自行制作图像和文本。
- 过去,提供销售指导、创建艺术资产、决定文本和布局这些工作都是人类做的,但是现在,AI完成起这类任务可以每秒做一千次。
不过,面对AI的冲击,绝大多数(70%)的开发者认为,AI辅助工具能够帮助他们更好地完成工作。尤其是在以下这几个方面:
- 编程辅助、代码自动补全与生成,例如用ChatGPT、GitHub Copilot、CodeArts Snap等。
- 学习与答疑,不懂的问题找大模型。
- 文档润色和生成,需求文档润色、个人总结和测试报告生成等。
在这之中,有大约67%的开发者表示,自己已经将AI作为工作的一部分了。所以,我们可能会说,你的能力越强越安全,同时,你必须拥抱AI、拥抱LLM,不会用AI/LLM工具的人会被熟练使用AI/LLM工具的同行所淘汰。
- 根据国内招聘网站统计数据(以下相同)显示,机器视觉的薪资差距最大——达到了62.44%。其中,要求AIGC技能的机器视觉招聘平均年薪为48.45万,而无此要求只有29.83万元。
- 售前技术支持、大客户销售和平面设计这三个职位,是否具有AIGC技能也将带来超过50%的薪资差异。
- 对于企业来说,在同等条件下,有57.04%会优先考虑那些具备AIGC技能的候选人。
- 被开聊次数最多的是注明具有AIGC技能的算法工程师,高达15.72次,比未注明的同等职能多6.21次。
- 从行业分布来看,新发职位主要集中于互联网、计算机软件、人工智能三大行业,占比为29.65%、12.7%、9.96%。好消息是:说明互联网/软件职位在增长,软件定义世界、数字化转型,会带来更多的互联网/软件职位。
鉴于此,我们要尽早着手学习使用AIGC工具,从而增强自己的职场竞争力和求职议价权。
原文作者:Test Ninja