AI时代,想靠编程“混口饭”?我这30年老程序员的“逆耳忠言”:门槛可能更高了!(内附应对之道)
作者:微信文章大家好,我是大铭。
最近AI这阵风刮得是真猛啊!写文章、画画、做视频,感觉啥都能干了,现在连写代码这种以前听着特“高大上”的活儿,AI也能唰唰地给你整出来。
这时候,不少朋友,特别是想入行学编程的,或者刚学了点皮毛的小白,心里就开始打鼓了: “AI这么牛,我是不是随便学学就能当个厉害的程序员了?” 或者反过来想:“完了完了,AI把活儿都干了,程序员这行是不是要黄了?现在学了也白搭?”
嘿,我这个在编程这行里摸爬滚打了30年,从一线代码写到大厂架构师,也带过不少项目和新人的“老家伙”,得跟你们掏句心窝子,说点可能不太中听的大实话:
AI的出现,对于那些真心想把编程这门手艺学精,想靠它在这个时代好好安身立命、有所成就的人来说,那道看不见的“门槛”,不但没降,反而可能悄悄地变高了!
这话听着是不是有点反常识?“AI不都让事情变简单了吗?怎么门槛还高了呢?” 别急,给我几分钟,我给你们好好盘盘这背后的道道,也聊聊咱们普通人,尤其是刚起步的或者想进这行的新人们,到底该咋办。
AI时代的反常识:编程的“隐形门槛”为何不降反升?
我之前在一次和朋友的交流里就提到过:
“从一个只会写代码的‘码农’(Coder)进化到能独立思考、解决复杂问题的‘程序员/工程师’(Programmer),中间是有一个隐形的门槛的。AI的出现,可能会导致这个门槛变高,你想跨过去的难度会变大。”
可能有人还是会问,AI都能帮着写代码了,怎么门槛反而高了呢?
揭秘“隐形门槛”之一:沟通的鸿沟与AI的“高效”冲击
要理解这点,咱们得先琢磨琢磨软件开发里一个特别让人头疼的事儿——沟通。行内有本几十年前就很出名的经典老书叫《人月神话》,不知道大家听说过没?
“它里面其实就在阐述一个问题,在软件项目里,有大量的成本,并不是花在具体的技术实施上,而是耗费在了沟通上。”
你想想,是不是这么回事?一个需求过来,
“你会发现沟通这件事儿的成本,会像滚雪球一样越滚越大,甚至是以指数级的速度爆炸。最后导致的结果就是,我可能在这头,比如你是提需求的那方,你脑子里想的是个雄伟的前门楼子,结果传到我这儿,我理解的可能已经变成了个胯骨轴子了。信息完全变形,太常见了。”这沟通要是出了岔子,需求理解歪了,那后面写的代码再漂亮,也全是白费功夫。
那这和AI有什么关系呢?
“AI出现之后,它有一个最大的好处是,我在做很多事情的时候,如果AI能干,我就不需要和‘人’进行那么多复杂的沟通了。AI员工直接就给我干活了,还听话。”
现在,如果我是一个经验稍微丰富点的程序员或者项目负责人,我可能会这样做:
“并且在这个过程中,我会不断地去问我的AI助手:‘你明白我的意思了吗?如果你不明白,或者你明白了,你就把我刚才说的再复述一遍,我看看是不是我想要的。你觉得我说的哪点不清晰,你都给我指出来。’我会跟我的AI工具反复地这样去确认和打磨…”
你看,
“当我和我的AI沟通效率大幅度提升的时候,也就意味着我会减少和‘人’,尤其是初级程序员协作的需求,对吧?”
揭秘“隐形门槛”之二:新手“升级路”为何被AI“截胡”?
关键的来了,这直接影响到初级程序员的成长机会。
“以前初级程序员(Coder)的成长,很大一部分原因是在真正落地干活的时候,那些高级程序员(Programmer)精力有限,没办法所有活儿都自己干。所以他们或主动或被动地,总得带带新人。”这种“带人”的过程,“你就自然而然地有点像以前的‘师徒制’。老师傅会把自己的经验传授给你,并且你是真的在面对一个实际的业务问题。你遇到了困难,你去思考,你去反馈,然后老师傅再来指导你。”
这是非常宝贵的实战和学习机会,是书本上学不到的真功夫。
“但现在,有大量的初级程序员可能已经没有这么好的机会了。因为我不跟他沟通,我跟AI沟通,效果可能更好,成本还低。那我干嘛非要跟他费劲沟通呢?所以,他就丧失了大量被实际工作锤炼、被有经验的人指导、在遇到问题时去独立思考并解决问题,以及在解决问题的这个过程中犯错、反思、成长的机会。”
“当他丧失了这个成长的机会的时候,就又回到了我刚才说的那个观点——门槛其实是提高了,或者说,初级程序员想成长为能独当一面的高级程序员,难度变大了。”
简单打个比方,以前很多新手程序员,就像是武侠小说里的小徒弟,总能在师父“不耐烦”的指点、各种“被麻烦”去处理实际问题的过程中,以及在解决各种小bug、小需求的“笨拙”尝试中,一点点把武功练起来。但现在,AI可能把这些“打杂”和“初级任务”都接管了,老师傅也更倾向于和更“听话”、沟通成本更低的AI协作。这就好比新手村的那些小怪,还没等你出手,直接被一个路过的高等级NPC(AI)一招清场了,你让新手玩家怎么打怪升级、积累经验?
面对被AI“垫高”的门槛,路在何方?(老兵的四条“笨”建议)
那么,面对这个被AI“垫高”的门槛,咱们想成长、想进步的Coder们,就真的没路走了吗?
也不是这么悲观。挑战确实变大了,但路永远是人走出来的。我这老家伙也结合自己的经验,琢磨了几个坎儿,和一些或许能帮大家迈过去的“笨办法”,或者说更实在的努力方向:
主动“找茬”,啃硬骨头,别怕“笨拙”的练习
既然“喂到嘴边”的练习机会少了,那就得自己主动出击,给自己“加戏”。别老想着让AI帮你把所有代码都生成了,然后复制粘贴一把梭哈就完事儿。可以试试:
刻意练习基础功:一些基础的算法、数据结构、设计模式,AI能帮你写出来,但你得逼着自己去理解它为什么要这么写,手动去实现一遍,甚至尝试用不同的方法实现,然后比较它们的优劣。这是内功,AI给不了你。给自己加码:做个小项目,别满足于功能跑通就完事。主动给自己提更高的要求,比如怎么让程序跑得更快(性能优化)?怎么让代码更容易看懂和修改(可读性、可维护性)?怎么让它以后更容易增加新功能(可扩展性)?多琢磨怎么让它更像一个能拿得出手的“产品”,而不是一个自己玩的“玩具”。参与开源项目:这是个非常好的“实战训练营”。你能看到全世界的优秀程序员是怎么写代码、怎么协作的,也能在解决真实问题的过程中得到锻炼。哪怕一开始只是帮忙改个小bug,或者写点说明文档,都是宝贵的经验。
把AI当成“超级私教”和“智能陪练”,而不只是“万能拐杖”
AI是个非常强大的工具,用好了绝对能加速你的成长。关键在于你怎么用它:
让AI解释它写的代码:别满足于它给出的结果,要像个好奇宝宝一样追问它:“你为什么这么写?”“还有没有其他方法?”“这种写法的优点和缺点分别是什么?”把AI当成一个24小时在线、不会疲倦、知识渊博的私人老师。让AI给你做“代码审查”(Code Review):自己写完一段代码,可以让AI帮你看看,有什么可以改进的地方,有什么潜在的风险或者bug。这能帮你养成良好的编码习惯,少走弯路。用AI辅助学习新东西:想学一门新技术、一个新框架?除了看官方文档,也可以让AI给你生成一些入门的示例代码,帮你解释核心概念,甚至让它给你出点相关的练习题来巩固。
死磕“沟通”和“理解”这些AI短期内替代不了的软技能
我前面花了不少篇幅说沟通成本是软件开发里的大头。AI能帮你写代码,但它很难完全替代人与人之间,特别是与客户、与团队其他成员之间那种微妙又复杂的沟通和理解。
多问“为什么”:接到一个开发需求,别急着一头扎进去就开始写代码。先花时间琢磨透:“用户到底想要解决什么问题?”“这个功能背后真正的目的是什么?”。多和提需求的人聊,反复确认,确保你的理解和他们是在一个频道上,别怕问得细,这能避免后面大量的返工。锻炼你的表达能力:怎么把一个复杂的技术问题,用简单易懂的话给非技术背景的人讲明白?怎么在团队里清晰、准确地表达自己的想法和方案?这些都是硬核竞争力,需要刻意练习。可以尝试多写技术文档、博客,或者在小团队里做一些技术分享。深入理解业务:记住,技术永远是为业务服务的。你越懂你做的这个产品或项目所在的行业知识、业务逻辑,你就越能写出真正有价值的代码,也就越不容易被那些只会“执行命令”的工具所替代。
向上捅破天花板,追求“程序员/工程师”的思维高度
简单来说,初级的“Coder”更关注怎么把功能实现出来,而一个成熟的“Programmer”或者“Engineer”会更关注整体的设计、系统的架构以及更高层次的抽象和取舍。
培养系统性思维:不要只盯着自己手头那块代码,要学着从整个系统、整个产品的角度去看问题。思考不同模块之间是怎么关联的,数据是怎么流转的,未来系统要扩展的话,现在应该怎么设计才能更从容。学习架构知识:了解常见的系统架构模式、软件设计原则,看看那些经验丰富的架构师是怎么做技术选型、怎么设计复杂系统的。关注技术趋势,但更要形成自己的独立判断力:新技术层出不穷,保持学习的热情是好事,但更重要的是理解这些技术到底能解决什么样的问题,适合用在什么样的场景,而不是盲目地追逐潮流。要有自己的思考和判断。
写在最后:挑战与机遇并存,关键在于自身修行
说到底,AI时代,对我们程序员来说,挑战和机遇是并存的。那些简单重复的、缺乏深度思考的“体力活”,可能会被AI逐渐取代,这是趋势。但与此同时,那些需要深度思考、复杂判断、良好沟通、创造力以及工程经验的工作,其价值反而会更加凸显。
想跨越这道被AI“垫高”的门槛,关键还是在于咱们自己是否愿意下那些“笨功夫”,是否能主动去拥抱这些变化,并且有意识地去培养那些AI在可预见的未来都难以企及的核心竞争力。
路漫漫其修远兮,与各位走在这条路上的朋友们共勉吧!
要不,加个微信聊聊吧
页:
[1]