40+程序员亲历AI冲击,出路在何方?
关注【智践行】,我们一起成长
技术革新从不以人的意志为转移,但却能因个人的选择而重铸职业轨迹,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++程序员较为友好。
那么,系统级程序员需要具备哪些能力?建忠老师总结了以下几个方面:
- 语言能力:掌握C++和python,再加上一些Rust。而且不光要熟悉语法,也要培养机器思维,理解代码背后内存结构、运行时变化、编译器转换及运行时机制,了解这些的最终目的是提升代码效率。同时,还要具备设计模式、组件封装、接口设计和架构设计这些抽象思维。特别是接口设计尤为关键,它抽象类运行时接口设计和C++20的Concept编译时接口设计,还要遵循良好的设计规范。
- 系统知识:仅有语言能力不够的,还需要学习所处技术栈的系统级基础设施技术。如果你是在Linux上开发,需熟悉Linux操作系统;如果你进行GPU编程,就要掌握GPU/NPU等系统计算机架构层面的知识,如CUDA并行编程模型。
- 算法理解:一方面要快速理解经典算法,重点掌握算法能干什么,输出是什么,它在什么场景下是最优化的选择,而不要跳入细节的海洋。另一方面,是算法策略的学习,这个需要结合系统来理解。例如,DeepSeek近期开源的项目,需要在深入理解CUDA等系统层知识的基础上,对经典算法和AI算法策略进行优化,以充分发挥算力。
- 抽象设计:抽象思维贯穿设计始终,设计模式、组件封装、接口设计和架构设计都属于抽象范畴,日常需要注重锻炼抽象思维能力。
此外,建忠老师还提到,机器人领域,特别是当下热门的具身智能,比较适合C++程序员发展。据我了解,目前机器人领域主要依赖Linux和ROS系统。据说最新的ROS2更加优秀。
综上所述,未来程序员要么向上发展负责产品和架构,要么是向下发展成为系统级程序员。无论如何,基础知识不可或缺,要不然就会成为屎山制造机了。
我个人来说可能系统级层面的东西更感兴趣,后面也准备去学习并持续更新笔记。当然,也会兼顾产品知识的学习,毕竟“人人皆可成为产品经理”。
面对 AI 冲击,无论你是纠结于转型方向的资深程序员,还是初入行业感到迷茫的新人,都别慌。关注【智践行】,我们一同探讨应对之策,在这变革时代找到安心的职业发展路径。
40+程序员亲历AI冲击,出路在何方?的更多相关文章
- 阿里P8架构师讲述:3—5年程序员的发展和出路在哪里?
工作3—5年后,程序员们的成长将迈入一个全新阶段.这既是程序员们的黄金时期同时又是最迷茫的时期,因为大家必须要要思考一下今后的职业方向. 3—5年程序员的发展和出路在哪里? 是继续做技术人,还是向管理 ...
- 人才需求之Java程序员与AI程序员
据100offer报告显示:2018年Java人才市场「高开低走」的动荡局势.整体求职难度变大,且全年波动更剧烈,淡旺季区别明显.企业发出的Java面邀总数几个季度连续下跌,Q4 甚至比去年同期下降了 ...
- 程序员体验AI换脸就不要用ZAO了,详解Github周冠军项目Faceswap的变脸攻略
本文链接:https://blog.csdn.net/BEYONDMA/article/details/100594136 上个月笔者曾在<银行家杂志>发文传统银行如何引领开放 ...
- 社群公会GangSDK:程序员入行AI领域需要哪些技能?
作为一名Android开发工程师,身边总有些同行很焦虑,看着人工智能越来越火,总是担心Android要不行了,所以,我们需要转行么?Android还能走多久?其实,无论是对于Android还是iOS开 ...
- 程序员们,AI来了,机会来了,危机也来了
程序员们,AI来了,机会来了,危机也来了 1.人工智能真的来了 纵观古今,很少有计算机技术能有较长的发展寿命,大部分昙花一现,比如:昔日的DOS.windows3.2.foxpro.delphi.80 ...
- 程序员"青春饭"问题之我见
程序员"青春饭"问题之我见 声明:转载请注明出处.http://www.cnblogs.com/hzg1981/ 1. 问题描述 问题1: 什么是程序员? 在本文中程序员的定义 ...
- 【转】程序员"青春饭"问题之我见
1. 问题描述问题1: 什么是程序员?在本文中程序员的定义为: 拥有编程技能,在IT.互联网公司打工的IT从业人员.程序员与很多行业最大的不同是该行业的形成时间短:1954年第一台计算机才诞生,而中医 ...
- 做个清醒的程序员之拥抱AI
阅读时长约 13 分钟,共计约 3100个字. 昨天我体验了AI自动生成短视频,具体说来,首先我在域名为FreeGPT的免费网站,向它提问,然后生成一段文字.之后呢,再用剪映里面的"图文成片 ...
- 程序员的出路在哪里?挣钱的机会来了续-福利来了,仿QQ界面,放出全部源码,打造创业框架及实现思路
上一篇:程序员的出路在哪里?挣钱的机会来了!, 原来搞技术,挣钱,不一定非得要多高精尖,有时候抓住小白用户,解决他们一个很小但是很常用的功能,也是一条很好的出路. 其实很多软件产品,要实现出来没有你想 ...
- Kotlin 喧嚣过后,谈谈 Java 程序员未来的出路
http://blog.jobbole.com/111422 Java 生态圈 Java 的生态环境开放.自由,在Sun/Oracle.Google.Apache.Eclipse基金会等各大厂商,还有 ...
随机推荐
- Maven配置代理
Maven配置代理 找到settings.xml文件: 通常位于Maven安装目录下的conf文件夹中.或者位于用户目录下的.m2文件夹中(例如:$HOME/.m2/settings.xml). 编辑 ...
- Doris BloomFilter原理
1.Bloom Filter的核心是一个[m]位的bitset和[k]个hash函数. 初始时bitset中所有位的值都设置为0,假设取[m = 10],[k = 3],用蓝色表示某位为0,红色表示为 ...
- P1081 [NOIP 2012 提高组] 开车旅行 题解
传送门 前言 爆肝到半夜,中间假了一次,最终调过了两个样例,交上去过了. 题解 思路 首先进行预处理. 用一种你喜欢的数据结构维护每个城市的海拔,容易求出从每个城市出发,小 \(A\) 和小 \(B\ ...
- Vue实现企业微信扫码登录
Vue实现企业微信扫码登录 企业微信扫码登录原理 构建企业微信登录二维码 获取访问令牌access_token 请求方式:GET(HTTPS)请求URL:https://qyapi.wei ...
- 最优化算法动量法Momentum
动量法的结论: 1.动量方法主要是为了解决Hessian矩阵病态条件问题(直观上讲就是梯度高度敏感于参数空间的某些方向)的. 2.加速学习 3.一般将参数设为0.5,0.9,或者0.99,分别表示最大 ...
- 凌晨三点救火实录:Java内存泄漏的七个神坑,你至少踩过三个!
引子:那个让运维集体加班的夜晚 "凡哥!线上服务响应时间飙到10秒了!"凌晨1点,实习生小李的语音带着哭腔. 监控大屏上,JVM堆内存曲线像坐了火箭--刚扩容的16G内存,30分钟 ...
- python进程 - 调试报错 you are not using fork to start your child processes
在走这段代码的时候报错了,记录一下我的调试过程,感觉有个思路来走就挺好的. 1.报错与解决 文件名字:ClassifierTest.py import torch import torchvision ...
- C# 委托Action和Func
Action和Func是微软已经定义好的的两种委托类型,区别是Action是没有返回值的,而Func是需要返回值的. 1 //Action内置委托的实例化及调用 2 //不带参数 3 Action m ...
- Jsoncpp的安装与使用方式
JsonCpp 是一个C++库,用于解析和生成JSON数据.它支持解析JSON文件或字符串到C++对象,以及将C++对象序列化回JSON格式. 安装Jsoncpp 我们可以输入以下命令安装jsoncp ...
- 【Python】ini解析ERROR:没有实例属性‘__getintem__’
abaqus python 搭配ini 时,出现AttributeError: ConfigParser instance has no attribute 'getitem' 20230404 ed ...