为什么每个软件工程师都应该学习计算机架构。
介绍
我认为成功与两件事息息相关:你如何看待世界,以及你对世界的真正理解程度。软件工程也是如此;计算机架构是软件工程的精髓,如果你足够理解它,那么软件工程将会变得轻而易举。
什么是计算机体系结构?
根据维基百科:
计算机体系结构是描述计算机系统功能、组织和实现的一组规则和方法。
一些体系结构的定义将其定义为描述计算机的功能和编程模型,而非特定的实现。
简而言之,CA 基本上是控制硬件和软件如何相互作用的一组规则。
为什么要学习计算机架构?
计算机架构能帮你超乎想象。
比如,大多数F1赛车手都非常了解他们的赛车引擎,他们甚至比工程师更早发现引擎的任何问题!
他们还了解物理学和空气动力学,因此这有助于他们在 Pitstop 中向机械师发出精确的指令,例如调整车头或车轮,从而让他们赢得更多比赛。
那么,这一切和CA有什么关系呢?它们的概念是一样的!当你理解并掌握了软件工程的基石后,你就知道如何更高效地处理问题并实现目标。
为什么要学习计算机架构:
- 您很可能会在余生中一直使用它。
- 计算机体系结构是计算机科学中最基础的学科之一。没有计算机,计算机科学领域就不会存在。
- 您需要了解指令和操作实际上是如何工作和交互的,以使您的软件变得更好;因为无论您做什么,无论什么,它都在 CA 之上。
- 计算机架构将帮助您设计、开发和实现更好、更快、更便宜、更高效、更易于使用的应用程序,因为您将能够做出明智的决策,而不是猜测、估计和假设。
计算机架构如何影响您的编码方式的示例:
分支预测:假设你在一列火车上,你的工作是观察路线,并且你正位于一个铁路枢纽:
你必须选择一条路,但你不知道该走哪条路;所以你要么选择正确的路,要么选择错误的路。如果你选择了正确的路,你就会继续走下去;然而,如果你选择了错误的路,你就会回头选择另一条路。所以,如果你一直选择正确的路,你就不用再回头了;如果你选择了错误的路,你就不得不不断地来回走,
明白吗?
现在你是一个处理器,你看到一个分支,你不知道要走哪条路,所以你必须输入。
- 如果你猜对了,执行就永远不会停止。
- 如果猜错了,您将花费更多时间返回并重新开始执行。
那么,我们每次如何做出更好的选择呢?
我们观察。如果过程通常向左,我们就猜向左。如果过程大多数时候向右,我们就猜向右。如果过程交替进行,我们也交替选择。
这或多或少就是分支预测的工作原理。
结论
学习计算机架构,成为一名更好的软件工程师。
文章来源:https://dev.to/voider/why-everyone-software-engineer-should-learn-computer-architecture-2nb2特别感谢审阅者 Rawan Attia。