gpt4 book ai didi

hardware - 普通开发人员应该对裸机了解多少?

转载 作者:行者123 更新时间:2023-12-03 18:24:39 25 4
gpt4 key购买 nike

前几天让我感到震惊的是,我对我希望我的软件运行的硬件几乎一无所知。我已经做了大约 5 年的开发人员,但自从我离开大学后,我就没有研究过硬件理论/设计。我什至不再制造我自己的机器了,因为说实话,我宁愿多花几 block 钱,让 Comp Sci 退出来为我制造它。

虽然对底层发生的事情有一个很好的理解显然很重要,但作为开发人员,它离我们太远了,我们真的不需要关心 Programmed I/O 的复杂性。或 Memory-Mapped I/O ETC,..

还是我们?

请注意,我在这里谈论的是您的日常 LOB 开发人员,而不是专门的裸机人员。

所以,定义“平均”你将如何但总体而言,一个称职的程序员应该能够潜入多深?

最佳答案

这取决于你的开发水平有多高。

  • 如果您为嵌入式系统开发,这意味着大量的硬件知识(接近 EE 级别)。
  • 如果您在某些专业领域,例如游戏的低级 3D 图形编程,您应该了解特定显卡的来龙去脉。
  • 如果您正在做 Web 或桌面应用程序,可能不会那么多。

  • 但在所有开发中,您可能应该了解基础知识。例如。,
  • 冯诺依曼架构的瓶颈在哪里。
  • CPU 缓存如何工作(在多线程中很重要)。
  • 单处理器多处理器 CPU 上的操作系统调度将如何不同(同样,在多线程中很重要)。
  • IO 的工作方式以及写入文件的原因并不一定意味着您的数据会立即持久化。
  • IO 有多慢以及为什么大多数数据库应用程序都是 IO 绑定(bind)的。
  • 为什么网络比 IO 更慢、更不可靠(无线网络更是如此)。

  • 另一方面,我不认为了解内存映射 IO 是什么等细节,或者了解 NAND 和 NOR 闪存之间的区别对于普通*(桌面/Web)开发人员来说真的很重要。即使是现代 CPU 架构的知识本身也可能成为一门科学,看看它们在过去几年里变得多么复杂,更不用说 code emitted by modern compilers is becoming more difficult to predict 了。 (链接的文章表明,现在在低级优化上比编译器更难)。就像几十年前做汽车修理工一样容易,今天没有多少人会尝试自己修理汽车。

    **“平均”的定义可能有所不同。*

    关于hardware - 普通开发人员应该对裸机了解多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1859078/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com