在软件行业历经的二十年岁月之中,我们这一辈程序员目睹了从拨号上网迈向移动互联,从单体架构演进至云原生,直至眼下AI席卷全部的各一番潮流。倘若将一名开发人员的职业生涯起始置于上世纪九十年代末,彼时的同行们尚在运用汇编语言同硬件开展交互,运用Fortran语言开展纸带穿孔的作业,这些也并非与我们相隔太过遥远。而现今,我们正伫立在又一回范式转移的门前——这一回的主角,乃是人工智能。
回头看历史,每一回技术革命都在重新塑造人类工作的景象,工业革命把人力从农田吸引到工厂,蒸汽机取代了肌肉力量,却催生了机械师和工程师的新阶层,信息革命使计算机从科研机构的庞大之物进入寻常百姓家,互联网连接起整个世界,程序员的职业正是在这场革命里诞生并蓬勃发展,如今,AI革命的浪潮汹涌而来,它不再只是替代体力劳动,甚至不再只是替代重复的脑力劳动,而是开始触碰“创造”本身的边缘。
于是,“AI会取代程序员”这样的论调,变得甚嚣尘上起来。这种担忧并非毫无根据,特别是在初级程序员的工作范畴内,那些数量众多的CRUD、基础的接口拼接、文档撰写工作,AI确实完成得比人类更快,也更标准。就如同当年纺织机致使无数手工织工失去工作,自动驾驶让司机们产生焦虑一样,每一次技术的跃迁,都会带来岗位结构的剧烈震荡。
不过呢,历史也同样向我们表明了这样的情况,那就是,技术所消灭掉的是“岗位”,然而并非是“职业”,它所淘汰的是“工具型人才”,但并不是“创造型人才”。
最初处于工业革命时期,那些熟练的纺织工人被机器给替代掉了,然而紧接着出现的是对于机械设计、维护以及管理方面的极大需求。在信息革命阶段,打字员这个职业差不多快要消失了,可是却由此催生众多数以百万计的软件工程师岗位。AI时代同样不会是另外的情况。当编码自身变得价格低廉的时候,程序员的真正价值将会从“怎样去实现”转变至“实现的是什么”以及“为什么要实现”。
这恰恰是资深程序员核心优势的所在之处。二十年的职业生涯给予我们的,并非是背诵多少种设计模式,而是怎样在复杂业务里识别本质问题,怎样在技术选型时做出权衡,怎样在团队之中推动共识。这些能力,源自对人类需求的理解、对商业逻辑的洞察、对系统复杂性的驾驭,它们可不是大模型的“概率性输出”能够替代的。AI能够生成堪称完美的代码片段,然而它没办法理解代码背后所蕴含的用户情感,不能够感知出一个功能在真实场景当中有可能引发的连锁反应,并且也无法为一个产品注入灵魂。
对于才从校园走出来的年轻程序员而言,这个时代既是挑战又是机遇,挑战之处在于,入门门槛正被AI拉平,以往需要三五年才可掌握的技能,如今或许一年就足够了,机遇在于,成长路径被大幅缩短,聪慧的年轻人能够把AI当作“超级导师”,让其帮忙阐释晦涩的源码、生成测试用例、重构丑陋的代码,进而将精力聚焦在更高层次的思考上,当然,要是把AI工具当作前行的拐杖而一味依赖,那么也许永远都无法独立行走。
怎样能够迅速成长成为资深开发者呢?我的建议是这样的:不要去跟AI进行竞争,而是要去驾驭AI。
首先,将AI当作“超级实习生”,使其去处理那些琐碎的任务,而你来掌控方向以及质量。这一过程本身便是对抽象思维与判断力的训练,同时也要求年轻的开发者拥有更为扎实的逻辑思维以及对代码质量的深刻理解。
紧接着,深入钻研“领域知识”,代码仅仅是表面现象,业务才是根本核心。尽快挑选出一个自己感兴趣的领域,像是金融,或者医疗,亦或是电商等之类的领域,去弄明白其中的运行逻辑以及关键痛点所在,从而成为那种“懂得业务的程序员”,而不是仅仅作为“只会编写代码的工具人”。
最终,特意去练习诸如沟通、共情以及系统思考这般的“元能力” ,这些属于AI难以去复制的“人性壁垒” ,并且还是你穿越技术周期的切实护城河。
以历史的视角来看,每一回技术革命都在延展“人”的可能性,工业革命使我们从繁重的体力劳作里解脱,信息革命让知识以及创造力变为核心资产,AI革命则有希望把我们从重复的脑力劳动中解放出来,进而去思索更具本质性的问题,程序员不会消逝,恰似工业革命之后工匠并未消失,而是演化为了设计师与工程师。
将来的软件开发,不会再是“人书写机器指令”这种情况了,而是“人去指导机器生成”的模式。我们所具备的价值,会体现在能够提出正确问题的那种能力上,体现在构建优雅架构的那种能力上,还体现在凭借技术创造美好事物的那份初心之上。
从“建造者”到“定义者”,这条成长之路,才刚刚开始。
