云原生计算时代硬件知识的衰退

云原生工具和重度抽象让软件的构建与部署更容易了,但也在削弱工程师对硬件、操作系统和网络基础的熟悉度。许多评论者认为,这种专长收窄会导致系统脆弱、成本更高,以及更难排障或优化性能;也有人反驳说,专精化和更高层次的关注是自然甚至值得鼓励的演进。其背后是一个更大的问题:在大多数基础设施都已虚拟化、托管化并隐藏在 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 开发者得以在应用代码低效的情况下蒙混过关。
  • 反方观点是:现代数据库极其快;真正造成瓶颈的是糟糕的使用方式,而不是数据库本身。批处理和缓存都被过度忽视。
  • 更广泛的担忧是:“开发者时间优先于效率”会导致算力、电力和热量上的全球浪费,不过也有人认为先做原型、必要时再优化是合理的。