关注【智践行】,我们一起成长

技术革新从不以人的意志为转移,但却能因个人的选择而重铸职业轨迹,AI崛起的当下,程序员的命运之笔正握在自己手中。

今年春节前后,AI界热闹非凡,各种大模型的新突破、超强的新能力、全自动新工具的消息像海啸一样扑面而来。可以说各行各业的牛马们都在瑟瑟发抖,时刻有被替代的风险。生文、生图、生视频各种能力刷刷的往上涨。再加上越来越多裁员和招聘卡年龄的信息,真不知该对技术进步心生欢喜,还是该心生畏惧。

作为一个DOS时代干起的40+大龄程序员,这20多年的工作中经历过不少新旧更替,从DOS开发到Windows开发、从单机到联网开发、从PC到功能手机开发、从功能机到智能机APP开发,从APP到跨平台SDK开发,我始终在学习新事物。然而,这一次变革不太一样。以前的技术更替,主要是学习新的平台,新的系统,掌握新的开发工具。而现在则是AI大模型工具、自动化生成式编程和AI Agent可以直接替代程序员。特别是manus这种全能AI Agent出现后,不再需要这么多程序员,程序员的出路在哪里呢?

上周,我用Cursor做了一个简单的微信小程序,一共两个Tab页面。一个页面根据最新热门电影的json数据显示电影列表,另一个支持选择电影进行评价,并在提交后显示提交成功。整个过程,除了搭建开发测试环境和微调,我没有写一行代码,测试用的json数据,也是DeepSeek从豆瓣热榜抓取的。这次实践让我深刻体会到,只要指令清晰准确,AI开发效率非常之高。这既让我为AI技术的进步感到兴奋,这将减轻了很多码农手搓的基础性工作,大大的提升效率;同时也让我不禁思考,未来程序员的工作方向在哪里?基础编程知识还重要吗?C/C++程序员又该何去何从?

最近,我一直在思考这些问题,关注相关资讯,看了许多直播,读了很多文章。直到看了CSDN直播“建忠研思:AI时代如何做一名硬核程序员?”,才逐渐理清思路。结合业内大神们的观点,汇总一下我的理解:

一、向上成长

目前AI大模型特别是后面AI Agent的发展,会把偏前端和中层也就是应用层的程序员逐步替换掉,那么对于这部分程序员来说,应该向架构师和产品经理方向的转换。从更高层次把控程序走向。而大部分基础性细节和实施可以交给AI大模型来完成。比如我上周用cursor做的那个小程序,你就需要有产品思维,知道客户需要什么,要做成什么样子用户操作更方便,更喜欢用;然后就是需要有架构师的思维,规划整个APP的架构,不要堆出一个又一个屎山。尽管有人认为可以不关注代码,只需要不停的重新生成,但是目前对于复杂的项目,AI来说还是比较难以一次性理解和生成,全都重新生成代价也比较高。不停地根据需求重新生成,完全不管整个工程的架构的模式,可能更适合原型。

二、向下深入

另一个发展方向是向下,成为系统级偏底层的程序员,构建AI运行的支撑环境,也就是李建忠所说的硬核程序员。从事系统级开发,需要熟悉AI依赖的硬件系统和平台,从以CPU为中心的架构转向以GPU/NPU为中心的神经网络架构,从以串行为主转变为以并行为主。这条路径对C++程序员较为友好。

那么,系统级程序员需要具备哪些能力?建忠老师总结了以下几个方面:

  1. 语言能力:掌握C++和python,再加上一些Rust。而且不光要熟悉语法,也要培养机器思维,理解代码背后内存结构、运行时变化、编译器转换及运行时机制,了解这些的最终目的是提升代码效率。同时,还要具备设计模式、组件封装、接口设计和架构设计这些抽象思维。特别是接口设计尤为关键,它抽象类运行时接口设计和C++20的Concept编译时接口设计,还要遵循良好的设计规范。
  2. 系统知识:仅有语言能力不够的,还需要学习所处技术栈的系统级基础设施技术。如果你是在Linux上开发,需熟悉Linux操作系统;如果你进行GPU编程,就要掌握GPU/NPU等系统计算机架构层面的知识,如CUDA并行编程模型。
  3. 算法理解:一方面要快速理解经典算法,重点掌握算法能干什么,输出是什么,它在什么场景下是最优化的选择,而不要跳入细节的海洋。另一方面,是算法策略的学习,这个需要结合系统来理解。例如,DeepSeek近期开源的项目,需要在深入理解CUDA等系统层知识的基础上,对经典算法和AI算法策略进行优化,以充分发挥算力。
  4. 抽象设计:抽象思维贯穿设计始终,设计模式、组件封装、接口设计和架构设计都属于抽象范畴,日常需要注重锻炼抽象思维能力。

此外,建忠老师还提到,机器人领域,特别是当下热门的具身智能,比较适合C++程序员发展。据我了解,目前机器人领域主要依赖Linux和ROS系统。据说最新的ROS2更加优秀。

综上所述,未来程序员要么向上发展负责产品和架构,要么是向下发展成为系统级程序员。无论如何,基础知识不可或缺,要不然就会成为屎山制造机了。

我个人来说可能系统级层面的东西更感兴趣,后面也准备去学习并持续更新笔记。当然,也会兼顾产品知识的学习,毕竟“人人皆可成为产品经理”。


面对 AI 冲击,无论你是纠结于转型方向的资深程序员,还是初入行业感到迷茫的新人,都别慌。关注【智践行】,我们一同探讨应对之策,在这变革时代找到安心的职业发展路径。

40+程序员亲历AI冲击,出路在何方?的更多相关文章

  1. 阿里P8架构师讲述:3—5年程序员的发展和出路在哪里?

    工作3—5年后,程序员们的成长将迈入一个全新阶段.这既是程序员们的黄金时期同时又是最迷茫的时期,因为大家必须要要思考一下今后的职业方向. 3—5年程序员的发展和出路在哪里? 是继续做技术人,还是向管理 ...

  2. 人才需求之Java程序员与AI程序员

    据100offer报告显示:2018年Java人才市场「高开低走」的动荡局势.整体求职难度变大,且全年波动更剧烈,淡旺季区别明显.企业发出的Java面邀总数几个季度连续下跌,Q4 甚至比去年同期下降了 ...

  3. 程序员体验AI换脸就不要用ZAO了,详解Github周冠军项目Faceswap的变脸攻略

    本文链接:https://blog.csdn.net/BEYONDMA/article/details/100594136       上个月笔者曾在<银行家杂志>发文传统银行如何引领开放 ...

  4. 社群公会GangSDK:程序员入行AI领域需要哪些技能?

    作为一名Android开发工程师,身边总有些同行很焦虑,看着人工智能越来越火,总是担心Android要不行了,所以,我们需要转行么?Android还能走多久?其实,无论是对于Android还是iOS开 ...

  5. 程序员们,AI来了,机会来了,危机也来了

    程序员们,AI来了,机会来了,危机也来了 1.人工智能真的来了 纵观古今,很少有计算机技术能有较长的发展寿命,大部分昙花一现,比如:昔日的DOS.windows3.2.foxpro.delphi.80 ...

  6. 程序员"青春饭"问题之我见

      程序员"青春饭"问题之我见 声明:转载请注明出处.http://www.cnblogs.com/hzg1981/ 1. 问题描述 问题1: 什么是程序员? 在本文中程序员的定义 ...

  7. 【转】程序员"青春饭"问题之我见

    1. 问题描述问题1: 什么是程序员?在本文中程序员的定义为: 拥有编程技能,在IT.互联网公司打工的IT从业人员.程序员与很多行业最大的不同是该行业的形成时间短:1954年第一台计算机才诞生,而中医 ...

  8. 做个清醒的程序员之拥抱AI

    阅读时长约 13 分钟,共计约 3100个字. 昨天我体验了AI自动生成短视频,具体说来,首先我在域名为FreeGPT的免费网站,向它提问,然后生成一段文字.之后呢,再用剪映里面的"图文成片 ...

  9. 程序员的出路在哪里?挣钱的机会来了续-福利来了,仿QQ界面,放出全部源码,打造创业框架及实现思路

    上一篇:程序员的出路在哪里?挣钱的机会来了!, 原来搞技术,挣钱,不一定非得要多高精尖,有时候抓住小白用户,解决他们一个很小但是很常用的功能,也是一条很好的出路. 其实很多软件产品,要实现出来没有你想 ...

  10. Kotlin 喧嚣过后,谈谈 Java 程序员未来的出路

    http://blog.jobbole.com/111422 Java 生态圈 Java 的生态环境开放.自由,在Sun/Oracle.Google.Apache.Eclipse基金会等各大厂商,还有 ...

随机推荐

  1. 爬虫无限Debugger解决方案

    爬虫无限Debugger解决方案 在应对网站中的debugger语句以防止爬虫被调试时,一些网站会在代码中插入这些断点以干扰调试行为. 一种极端但直接的方法是通过禁用浏览器的断点激活功能来绕过所有de ...

  2. 你知道PCB走线可以过多大的瞬态电流吗?

    相信很多同学在PCB Layout设计过程中,都有过这样的疑问:网口要做8KV浪涌防护,PCB走线应该走多宽呢? 有经验的硬件工程师可能此时就会说了,那还不简单,表层走线按照1mm/A,内层走线按照2 ...

  3. Mac安装Charles抓包工具

    一.下载安装 地址1:官网 下载地址: https://www.charlesproxy.com/download/ 激活信息 Registered Name: https://zhile.io Li ...

  4. Openlayers 距离环绘制

    思路:利用layer的StyleFunction 来使地图移动或者放缩的时候,使圆保持在地图中心 /** * 绘制距离环 * @param {number} distance 每环间隔距离,单位:米 ...

  5. autMan奥特曼机器人-自建autMan插件市场

    一.自建市场配置 配置参数 二.上架设置 设置哪些插件上架,哪些不上架 三.检测是否成功 怎样检查是否成功了?订阅一下自己,然后看应用市场上是否显示 四.用户怎样购买插件 用户想买自建市场作者的插件, ...

  6. hbase - [02] 分布式安装部署

    一.角色规划 主机名 node01 node02 node03 node04 Zookeeper ○ ○ ○   NameNode ○ ○     JournalNode ○ ○ ○   DataNo ...

  7. Flink学习(一) 行情介绍

    想进大厂,必须掌握 Flink 技术!!! 随着大数据时代的发展.海量数据的实时处理和多样业务的数据计算需求激增,传统的批处理方式和早期的流式处理框架也有自身的局限性,难以在延迟性.吞吐量.容错能力, ...

  8. 如果服务器是 PHP,并且 GET 请求可以接收到数据,但 POST 请求接收不到数据,可能是以下原因之一

    如果服务器是 PHP,并且 GET 请求可以接收到数据,但 POST 请求接收不到数据,可能是以下原因之一: PHP 未正确解析 POST 请求体:PHP 需要通过 $_POST 或 php://in ...

  9. 终于写完轮子一部分:tcp代理 了,记录一下

    24年终自己立了flag: 25年做些轮子玩(用于浪费生命,赚不了钱) 所以25年就准备用c#写一个网络代理NZOrz(nginx知道吧,就那玩意儿干的事),包含 udp/tcp/http1 2 3, ...

  10. Selenium Javascript 滚动条操作

    js在selenium有许多应用,最主要的有滚动条操作. 实现功能:进入百度搜索结果页->滚动条分别滚到到顶部.底部及指定元素位置. 使用格式: driver.execute_script('w ...