思考 - AI 时代, 程序员真正的护城河: 科学素养
AI 时代, 如何提升程序员的科学素养, 特别是ROS工程师的科学素养
——以 ROS 工程师为例的系统性成长路径
引言
在过去很长一段时间里,软件工程师的核心竞争力主要体现在两个方面:编码能力与工程经验。然而随着 AI 编程工具、大模型代码生成系统以及自动化开发框架的迅速成熟,软件工程领域正在经历一次结构性变化。
今天,一个程序员仅仅具备“实现能力”已经不再足够。因为从技术趋势来看,实现正在被快速自动化,而理解仍然稀缺。
换句话说: 未来程序员真正的价值, 不再是“写代码”,而是“理解系统并建立模型”
这种能力的核心,就是科学素养 (scientific literacy)
对于 ROS 工程师而言,这一点尤为明显。机器人系统本质上是一个高度跨学科的复杂系统工程: 它同时涉及动力学、控制理论、概率统计、计算机视觉、嵌入式系统、实时通信以及软件架构设计。如果缺乏科学思维,仅依赖经验式工程方法,很难在这一领域走得足够深入。
在实际工程团队中,一个经验丰富的机器人工程师与普通开发者之间的差异,往往不体现在代码量上,而体现在问题的抽象方式与系统建模能力上。
本文尝试从工程与科学交叉的角度讨论四个问题:
- 为什么 AI 时代更需要科学素养
- 新手工程师如何逐步建立科学素养
- 科学素养与“小模型思维”的关系
- ROS 工程师的长期职业成长路径
1. 为什么 AI 时代更需要科学素养
在 AI 出现之前,软件开发的日常工作往往集中在以下几类活动:
- 编写业务逻辑
- 调试程序错误
- 阅读 API 文档
- 解决工程集成问题
这些活动本质上属于实现层面的工作
然而随着 AI 编程工具的发展, 大量实现层任务正在被自动化. 例如:
- 自动生成函数与模块代码
- 自动生成测试用例
- 自动补全 API 调用
- 自动进行代码重构
这意味着一件非常重要的事情正在发生: 单纯的编码能力正在逐渐失去稀缺性.
但与此同时,有一类能力依然难以被 AI 替代:
- 如何定义问题
- 如何抽象系统
- 如何构建模型
- 如何验证假设
这些能力正是科学训练的核心
1.1. 机器人领域尤其依赖科学素养
ROS 工程师实际上处在多个学科的交汇点。一个典型机器人系统往往同时涉及以下领域:
| 学科 | 工程问题 |
|---|---|
| 线性代数 | 坐标变换、姿态表示 |
| 概率论 | SLAM、定位、传感器融合 |
| 控制理论 | 机械臂控制、运动稳定性 |
| 机器人学 | 运动学、动力学 |
| 计算机视觉 | 环境感知 |
| 网络系统 | 分布式机器人通信 |
因此, 在机器人工程实践中, 问题的性质往往不是“代码问题”, 而是系统模型问题.
举一个非常常见的例子: 当机器人轨迹出现抖动时, 工程师可能会产生两种完全不同的思考路径.
经验式思维
- 可能是代码写错了
- 改改参数试试
系统模型思维
- 控制频率是否稳定
- 传感器噪声是否影响反馈环
- 系统延迟是否导致闭环震荡
- 滤波器参数是否合理
这种差异,本质上就是: 代码视角 vs 系统视角
在复杂机器人系统中, 绝大多数问题都属于后者.
2. 新手如何逐步建立科学素养
科学素养并不是通过阅读几本教材就能获得的,它本质上是一种思维方式训练。对于工程师而言,可以通过四个阶段逐步建立。
2.1. 第一阶段
从经验编程到系统建模很多初级程序员解决问题的方式是: 问题 → 搜索 → 复制代码 → 修改 → 能运行即可
这种模式在短期内能够提高开发效率,但长期来看会限制工程师对系统的理解深度
科学思维的第一步: 学会用系统模型描述程序
任何工程系统都可以用三个基本元素描述:Input → Processing → Output
例如一个 ROS 感知节点:Camera → 图像处理 → 目标位置
一个机器人控制系统:Sensor → Filter → Controller → Actuator
当工程师习惯用系统框图理解程序时, 本质上就已经开始进入科学建模的思维方式
2.2. 第二阶段
建立数学建模能力机器人系统是典型的数学驱动工程, 其中最核心的数学基础主要包括三类:
线性代数 - 机器人学的基础
ROS 中广泛使用的坐标变换系统, 例如:
- 旋转矩阵
- 齐次变换矩阵
- 坐标系变换
- Eigen 数值计算库
理解这些概念之后, ROS 的 tf 系统会变得非常直观
概率论与统计
机器人系统必须面对一个现实: 传感器数据永远是不完美的; 因此机器人必须处理不确定性
典型模型包括:
- 贝叶斯估计
- Kalman Filter
- Particle Filter
SLAM, 定位, 传感器融合 - 本质上都是概率建模问题
控制理论
机器人本质上是一个动态系统。
常见控制方法包括:
- PID 控制
- 状态空间控制
- Model Predictive Control (MPC)
这些方法背后的理论基础来自: 微分方程与系统动力学
2.3. 第三阶段
训练实验科学能力很多程序员在调试系统时依赖“直觉修改”, 例如:
- 改参数
- 再试一次
- 看看有没有效果
而科学方法强调:
- 提出假设
- 设计实验
- 收集数据
- 验证假设
例如机器人定位漂移问题, 可以提出多个假设:
- IMU 噪声导致误差
- 激光匹配不稳定
- 时间同步问题
然后设计实验逐一验证
这种方法在复杂系统调试中极其重要
2.4. 第四阶段
形成系统思维工程师必须学会从整体系统理解问题:
一个典型机器人系统包括:感知 → 定位 → 规划 → 控制 → 执行
这些模块共同构成一个复杂的闭环系统
理解这种结构之后, 工程师对系统问题的定位能力会显著提升
3. 科学素养与“小模型思维”
AI 时代出现了一个非常重要的趋势: 工程系统正在演化为“大模型 + 小模型 + 规则系统”的组合结构
例如在机器人系统中:
| 功能 | 模型类型 |
|---|---|
| 视觉识别 | 大模型 |
| 控制系统 | 数学模型 |
| 运动规划 | 算法模型 |
| 系统逻辑 | 规则系统 |
这意味着未来工程师的重要能力之一是: 为不同问题选择合适的模型
而不是简单地将所有问题都交给 AI
从工程实践来看,很多问题反而更适合用简单而稳定的小模型解决,例如:
- PID 控制
- 轨迹优化
- 状态估计
这些模型虽然简单, 但具有可解释性、稳定性和可控性.
4. ROS 工程师的职业成长路径
机器人领域工程师通常会经历四个阶段
第一阶段:工程实现者(0–3 年)
特点:
- 熟悉 ROS 框架
- 能开发基本节点
- 能完成系统集成
重点能力:
- Linux
- C++ / Python
- ROS 通信机制
- 机器人基础知识
第二阶段:系统工程师(3–5 年)
特点:
- 能设计复杂系统
- 能解决跨模块问题
需要掌握:
- 控制理论
- 概率机器人学
- 网络系统
- 实时系统
这一阶段的工程师通常开始承担系统集成与技术方案设计的角色。
第三阶段:算法工程师(5–8 年)
此阶段开始深入核心算法领域,例如:
- SLAM
- 轨迹规划
- 视觉感知
- 机器人控制
工程师在这一阶段逐渐进入真正的算法设计与系统建模层面。
第四阶段:机器人架构师(8–15 年)
最高级别的工程师需要具备:
- 系统架构设计能力
- 跨学科整合能力
- 工程与算法统一能力
他们能够设计完整的机器人系统架构,例如:
- 硬件平台
- 控制系统
- 感知算法
- AI 系统
- 软件架构
这一层级的工程师通常承担技术方向制定与系统架构设计的角色。
5. AI 时代工程师需要额外补充的能力
在传统机器人技术之外,AI 时代的 ROS 工程师还需要逐渐理解三个新的技术方向:
5.1. 数据驱动系统
未来很多机器人能力将通过数据驱动方式获得, 例如:
- 视觉识别
- 抓取策略学习
- 行为学习
因此工程师需要理解:
- 数据集构建
- 训练流程
- 模型评估
5.2. 仿真系统
现代机器人开发越来越依赖仿真平台, 例如:
- Gazebo
- Isaac Sim
- Webots
仿真系统不仅用于测试, 还可以用于:
- 算法验证
- 数据生成
- 强化学习训练
5.3. 系统工程能力
随着机器人系统复杂度不断增加, 工程师必须具备更强的系统工程能力, 例如:
- 模块化架构设计
- 分布式通信
- 实时系统设计
- 软件可靠性设计
这些能力将决定工程系统是否能够长期稳定运行
结语
AI 正在改变软件工程的工作方式, 但它并不会取代工程师
真正发生变化的是: 程序员的价值正在从“写代码”转向“理解系统”
对于 ROS 工程师而言,这种转变尤为明显。
机器人系统本质上是一个科学问题与工程问题交织的领域。只有具备扎实的科学素养,工程师才能真正理解系统、设计系统,并推动技术的发展。
因此,在 AI 时代,一个程序员最重要的投资或许不是学习更多框架, 而是重新回到那些看似“古老”的基础:
- 数学
- 物理
- 控制理论
- 概率统计
- 系统科学
这些学科不会因为技术浪潮而过时, 反而会成为未来工程师最坚固的护城河.