文章
2023-12-12 18:44:12
5年后,ChatGPT会替代底层程序员吗?
先上答案:一定不会。
这个问题有两个关键词:5年,底层。
先说“5年”。如果你平时经常关注那些以大模型为基础的AI应用,那你肯定会觉得,以这样的发展速度,5年?别开玩笑了,5个礼拜我就不认识它了。别说程序员,整个人类估计都得失业。这种感觉很正常。在经济低迷的时候,一个有潜力替代人工的新技术出现,并在短时间内获得了大量关注......人们总会更担心丢掉自己的工作,而不是畅想未来。人们越害怕,反过来就越觉得AI会以当下的速度继续甚至加速发展。
这当然不是事实。实际上,在GPT出现之前,人工智能的发展并不顺利,很多名噪一时的产品最后都草草收场。 IBM的沃森(Watson)就是一个经典的例子。而在GPT出现之后,很多人不知道的是,截至2023年5月,OpenAI的亏损累计高达5.4亿美元。与此同时,ChatGPT的用户数也在下降,许多人还是对聊天机器人能干些什么存在疑虑。SimilarWeb数据称,ChatGPT的用户数从今年6月份的17亿下降到7月份的15亿。
《浪潮之巅》的作者吴军老师就认为,ChatGPT是一个被神化的语言模型的衍生品。今天,ChatGPT使用的语言模型采用了深度学习算法进行训练,但是这几十年发展下来,语言模型还是语言模型,不是什么其他的东西。这就如同今天特斯拉的电动汽车还是汽车,虽然和本茨早期的汽车、福特的内燃机车、丰田的混合动力汽车不同,但它不是飞机。媒体在推波助澜,扮演加速师的角色,在赞扬的同时贩卖恐惧。绝大部分赞誉是炒作,这并不可怕,因为20世纪技术的发展常常伴随着泡沫。但几乎所有的恐惧都是自己在吓唬自己,这才是可怕之处。
真没有那么快。
再来说“底层”。我理解的底层程序员,其实就是这个行业的新人。
你可能听过这个故事:有个技术公司的创始人,给ChatGPT发了一段JavaScript,请它找bug。结果,ChatGPT先是反问,这段代码的意图是什么?然后,根据意图很快就找到了bug在哪,而且还附上了一份相当详尽的文档,包括是哪段代码有问题,可能导致什么样的bug,又该怎么修复,等等。甚至还给出了一段代码示例,把修改的部分,直接批注在里面。这个事一出,好多程序员不服,都上去给ChatGPT出题,结果几乎无一例外,都被解答了。
很多新人听到这个故事都很绝望,ChatGPT能力都这么强了,月薪还比我低,这得卷成什么样才能让老板看上我啊!
其实,作为新人跟ChatGPT较劲,就像刚学习冲浪的人一开始逆着潮头而动,很容易被浪掀翻。要想成为冲浪达人,就得站上浪头,也就是找到自己的机会。
总有些程序员不喜欢AI
新人的机会,首先就来自这些不喜欢AI的程序员。他们有的可能对AI技术缺乏信心,尤其是当他们看到AI工具产生错误或不稳定的结果时(大语言模型的“幻觉”几乎是不可避免的),生怕使用AI会影响他们的工作质量和信誉。
还有些人觉得使用GPT类的AI写代码,要先写大量的提示词,费时费力,还不如自己手撸。
当然,也有很多人担心使用AI时输入的这些数据会泄漏,带来隐私和安全问题。这确实是当下业界最关心的部分。
但是咱就是没包袱,光脚的不怕穿鞋的,敢尝试就是新人的机会!
找准姿势
虽说是新人,但也有不同的岗位和角色,你目前的角色该怎样使用AI工具才最有效呢?我为你梳理了一下:
后端开发工程师
1、从业务实体到数据库的自动创建。输入业务实体描述,AI可以很快生成SQL语句,且省去了自己思考命名的麻烦。
2、从数据库到CRUD代码的自动创建。输入数据库描述,AI可以自动生成基础的CRUD代码。
1、从CRUD代码到业务功能的自动创建。输入CRUD代码以及业务描述,AI自动改写代码(这里人自由发挥的空间很大,AI能起到的作用主要是解答具体问题,有时效果还不如搜索引擎)
2、代码转换。有时候我们需要将一种语言的代码转换为另一种语言,AI在这方面相当强大且精确。
3、确定性的脚本编写。诸如定时任务、数据库备份等等确定性很强的脚本都可以借助AI完成。
4、自动化测试。可以让AI根据现有代码自动生成测试代码(这里其实是事后做的,如果采用TDD方式可能会更好)
前端开发工程师
1.构建基础页面。对于一些基本的页面布局、样式设计和交互元素,AI可以通过代码生成技术自动生成部分代码,从而加快开发速度。使用Cursor这类的IDE工具就可以轻松做到
2.页面排版优化。 有了基础页面,AI就可以自动修改代码,比如调整页面元素的排版和布局以适应不同的显示设备。
3. 数据可视化。结合现有框架,比如element-ui,AI可以自动生成任何图表所需的代码。
4. 自动化国际化处理。AI的翻译能力非常强,国际化处理不是问题。
测试工程师
1、自动编写测试用例。输入业务需求描述,AI可以自动生成测试用例。
2、结合TDD。有了测试用例,就可以考虑从用例生成代码。
3、自动准备测试数据。AI可以根据需求,自动生成大量测试数据。
运维及支持人员
1、使用Claude 2.0之类的工具,将运维相关文档上传,然后与AI对话,可以提高解决问题的效率。
2、目前开源方面已经有一些很强的模型,如果能在开源模型基础上,用公司内部的知识来训练模型,则可以创建一个供运维和支持人员使用的AI助手。比如很多大企业最近都在使用Meta开源的llama2来构建自己的应用。
3、使用AIGC工具,哪怕运维或支持人员不懂编程,也可以写出适合自己需要的简单应用。比如excel宏命令,运维脚本等。
总的来说,目前AI有能力也应该做的是那些“人做起来费时费力,但是又很确定”的工作。而我们在使用AI时候的通用方法是“合理分解任务,小步迭代”。使用“增量式”提问的方法。
鉴于当前AI的特点,可以这么说,它就是为“底层”的程序员准备的!而AI在架构设计、性能调优等方面普遍表现一般,高级工程师在这方面的能力更加突出,所以也不用担心。
分享
2
1
全部评论
加载更多
热门内容