前言
无论是在行政办公、科学研究,还是在众多专业领域中,AI 正逐渐成为改变我们生活与工作方式的重要力量。
特别是在程序员这个行业,由于其高度的数字化特性,AI 所带来的影响尤为深远。
那 AI 时代,作为程序员,我们应该如何适应这一变革,又该怎样提升自我,以保持竞争力呢?
个人观点
在聊具体内容前,先表明个人观点。
我是"AI协同编程"重度用户,最常用 Cursor,最近在同步用 Trae,支持国产嘛。
我不认为现阶段的 AI 能够颠覆程序员这个行业,但是我认为现阶段的AI已经可以替代一些初级工程师了。
核心竞争力
个人认为工程师最重要的能力是"解决问题"的能力。
放到编程界也是一样的,个人理解可以分解为:业务领域知识、通用编程思维、具体编程工具。
- 业务领域知识和技术关系不大,是你要解决的问题(需求、特性、bug)所处的背景知识,如果不懂,你将很难准确地理解需求,更别提设计合适的解决方案了。
- 通用编码思维是通过编程手段解决问题通用的技能,都是计算机基础支持,操作系统原理、数据结构、计算机网络,掌握这些,才能很好的将问题在计算机领域进行建模,进而去实现。
- 具体编程工具就是具体某个项目中选择的语言、框架、IDE之类的,都是工具,现阶段AI在这一块提效、替代效果最明显。
传统研发 VS AI协同
那以上能力在实际场景中是怎么样呢?
传统研发
客户拥有业务领域知识的能力,一些销售、商务、售前也算是这方面的一员,毕竟客户和你不是一方的,还得自己人会,而产品经理的出现原本是为了成为业务和研发之间的"翻译",但目前来看,大部分还做不到。
架构师、主程、高级工程师承担了通用编码思维部分的工作,然后将"体力工作"分配给中级、初级程序员,让他们使用具体编程工具实现功能。
AI协同
架构师不说了,离程序员稍微远了点,主程、高级工程师通过AI辅助,单位时间内可以完成原本好几个中级程序员、初级程序员的工作,并且引入bug的几率还小了很多。
这种情况下,个人感觉上面三种能力的角色划分会变得越来越不明显,原本合作的模式会朝着"AI超级个体"的模式转变。
如何提升
那作为中级程序员、初级程序员,具体应该如何做呢?
首先,拥抱 AI 协同,让自己比其他人前进一些,虽然比较残忍,但AI协同的大势不会因为你不去适应而停止。
其次,学习更加靠近客户方向的能力,不要纠结于"我是程序员,不需要了解业务"的困境。AI 协同下,个人能力会极大拓展,分工应该不会像原来那么细,越往后,只会有越多的人竞争这个转变的机会。
再次,在学习AI辅助编程上,也不要仅仅学习如何使用Cursor,如何使用Trae,而是要学习更加共性的内容,比如提示词的设计理念,比如AI的能力边界在哪里。因为,你掌握的某些Cursor使用技巧,可能在后续的某个版本就被一个特性优化了。
结语
以上就是我对 AI 时代,程序员提升自我的一些思考和想法。
尽管这些想法可能还处于初级阶段,但依然希望上述内容可以为大家提供一些有价值的思考和启示。