云原生计算时代硬件知识的衰退
云原生工具和重度抽象让软件的构建与部署更容易了,但也在削弱工程师对硬件、操作系统和网络基础的熟悉度。许多评论者认为,这种专长收窄会导致系统脆弱、成本更高,以及更难排障或优化性能;也有人反驳说,专精化和更高层次的关注是自然甚至值得鼓励的演进。其背后是一个更大的问题:在大多数基础设施都已虚拟化、托管化并隐藏在 API 之后的时代,软件工程师究竟还应保留多少低层知识。
“硬件知识”如今指的是什么
- 几位评论者认为,文章主要描述的是操作系统层面的技能(syscall、
strace、网络),而不是真正的硬件(总线、触发器)。 - 也有人将“硬件知识”扩展为更深层的 OS 内部机制、网络栈和 syscall,而不只是电子学。
虚拟化、容器与有泄漏的抽象
- 虚拟化将操作系统行为与物理硬件解耦;容器将应用与用户态解耦,但仍然共享宿主机内核。
- 有人指出,很多开发者把容器当作完全隔离的环境,但在内核级问题上这种看法会失效(CPU 数量、IO 行为)。
- 抽象对于大多数工作负载来说被认为是没问题的,但在追求性能或调试古怪故障时就会变得棘手。
成本压力、性能与合理配置
- 云成本削减(例如将 vCPU 减半、缩小数据库实例)会暴露出此前被过度预留掩盖的隐藏低效。
- 一些团队通过实例缩容、读写分离和短暂故障切换来处理数据库降配。
教育、家庭实验室与学习路径
- 关于 CS 与计算机工程的争论:更底层的内容(操作系统、C、汇编、协议)往往在 CE 里,而 CS 更偏高层。
- 很多人说,真正的低层技能来自折腾和家庭实验室;据说最好的 SRE 往往都在家里跑 homelab。
- 有人担心,容器化/云工作流会降低学习抽象层以下内容的动机。
用于教学的 8 位与现代微控制器
- 一派更喜欢 8 位微控制器:时序更简单,心智模型更容易,DIP 封装、容差和汇编更直观。
- 另一派更喜欢 32 位 Cortex-M:能力更强、工具更好,大多数指令是单周期,溢出问题也更少。
- 对于哪一种在概念上对初学者更“简单”,争论仍在继续。
专精化与全栈理解
- 有人接受 Wardley 式的演化:曾经基础的技能会变成小众技能,而这很自然。
- 也有人认为,软件行业对极窄专长的容忍度异常高;他们拿土木/电气工程领域的期望作对比。
- 一些人认为,从硬件到抽象层都很扎实的“又高又瘦”的专家很罕见,但在调试和创新中仍然至关重要。
低层、OS 与网络技能的下降
- 多个轶事:毕业生不会配置静态网络,团队不敢碰内核,对“裸机”含义感到困惑。
- 面试流程 अक्सर更重 LeetCode,而不是操作系统、数据库或 Linux 内部机制,这进一步扩大了差距。
数据库、性能与优化文化
- 一种观点认为:数据库和文件系统本来就是瓶颈,所以 Web 开发者得以在应用代码低效的情况下蒙混过关。
- 反方观点是:现代数据库极其快;真正造成瓶颈的是糟糕的使用方式,而不是数据库本身。批处理和缓存都被过度忽视。
- 更广泛的担忧是:“开发者时间优先于效率”会导致算力、电力和热量上的全球浪费,不过也有人认为先做原型、必要时再优化是合理的。