“程序员”这个职业会不存在吗?

敏捷开发
• 阅读 309

前两天,几位互联网大佬聊人工智能(AI)上了热搜,一些观点比较犀利,在软件行业掀起了大范围的热议,其中一大热点是:“程序员”这个职业会不会存在?去年就有惊人的观点:谷歌工程主管:程序员的职业生涯将在 3 年内被AIGC终结

我先亮出自己的的观点:“程序员”这个职业会存在,未来人机结对编程是常态。也就是说,程序员会和基于大模型的编程助手/编程Copilot协同工作,以更高效的方式完成程序/软件的开发。见我的软件工程3.0宣言(附演讲PPT)的第一句:

“程序员”这个职业会不存在吗?

其实,我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淘汰的。《24年技术招聘现状》显示,已经有21%的程序员担心失业。而IMF(国际货币基金组织)报告显示,AI会影响全球40%的岗位,但同时它对每个人来说也是一个巨大的机会。例如:

  • 谷歌广告中,开始集成进大量的生成式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工具,从而增强自己的职场竞争力和求职议价权。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
海军 海军
3年前
程序员如何摆脱内卷?
前言你知道到目前为止国内程序员有多少吗?对于这个问题,似乎没有一个准确的答案,不过据IDC保守估计500w作用。据网站创始人蒋涛透露,CSDN注册会员超过2500万,其中活跃用户超过800万(3个月内登录的),这其中30%是学生,60%是和一线开发相关人员,也就是说差不多500万。在当下互联网中流行的一个词语"内卷",引起了广泛的热议。在这个万
Wesley13 Wesley13
3年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Wesley13 Wesley13
3年前
BERT
!(https://oscimg.oschina.net/oscnet/2b4081795228200941c8e0d28cc01316f90.gif)向AI转型的程序员都关注了这个号👇👇👇机器学习AI算法工程  公众号:datayxTensorflowsolutionofNERtaskUsingBi
Stella981 Stella981
3年前
Jenkins 插件开发之旅:两天内从 idea 到发布(上篇)
本文首发于:Jenkins中文社区(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fjenkinszh.cn)!huashan(https://oscimg.oschina.net/oscnet/f499d5b4f76f20cf0bce2a00af236d10265.jpg)
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
11个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这