当前位置:  开发笔记 > 程序员 > 正文

程序员有更深入了解CPU的任何价值吗?

如何解决《程序员有更深入了解CPU的任何价值吗?》经验,为你挑选了3个好方法。

最近我想到我(我认为大多数人)从Visual Basic开始学习计算机编程.我开始怀疑,如果现在更容易,我们是否先从较低级别开始.

您是否认为作为程序员理解CPU的工作方式,基本指令以及类似的东西是否有价值?我的意思是,毕竟不是我们最终真的在谈论它吗?

如果我们从CPU级别开始并从那里开始教授,我们可能会发现我们可以更容易地理解如何在高级别操作它.



1> Daniel LeChe..:

它有两种方式.

例如,许多从更高层次开始的人不知道为什么班次比乘法和除法快得多,或者分支的影响等等.

因此,他们经常编写速度较慢的代码,但普通人更容易理解.(请注意,对于某些应用程序,更快的速度比易于理解更重要)

了解幕后发生的事情(不同操作需要多少个时钟周期,CPU管道如何工作,缓存的影响等)的人通常可以编写非常快的代码,但对很多人来说可能很难理解/维护.(在"优化"没有可感知的优势且可维护性更重要的应用中,这尤其困难)

就个人而言,我觉得知道"下面发生了什么"至少让我有能力知道我正在做出的决定的影响.

老实说,在这一点上,我不介意将很多低级细节/优化留给编译器.它可能比我做得更好:]



2> David Z..:

我已经学到了很多关于低级编程的知识,我认为它对我编写的每一段代码都非常有帮助.甚至高级语言也有一些版本,比如基本的同步原语(互斥/锁,条件,信号量); 他们仍然需要从磁盘或网卡上读取; 他们仍然需要将字节从内存中的一个位置复制到另一个位置,依此类推......重点是,你使用高级语言并不意味着知道这些东西是如何运作的.如果您了解计算机如何在最低级别运行,那么无论您的平台如何抽象,您都可以始终应用该知识来编写更高效和/或更少错误的代码.对低级操作的了解甚至可以教你一些你可能从未学过的东西 - 没有更好的方法来学习如何正确使用类似互斥的东西,而不是必须实现一个.(好吧,也许这有点夸张,但你明白了我的意思)

最重要的是,我想说是的,对于各个抽象层次的程序员来说,了解基础知识绝对是一个好主意.但我不认为这是必然这样一个好主意,开始与基本面.汇编语言水平的程序众所周知难以理解,我认为试图在初学者编程时强调这一点可能会让他/她感到沮丧.我提到理解基本操作将帮助您编写更高效和/或更少错误的代码,但根本不需要编写代码.所以在我看来,大多数人可能最好从中间的某个地方开始,他们仍然可以在熟悉编码过程的同时熟悉对象等熟悉的概念.经过该领域的一些经验,CPU的东西是公平的游戏;-)



3> Giovanni Gal..:

我希望我的医生知道我的心脏是如何工作的(但不一定能够进行心脏手术),我希望我的机械师知道我的引擎是如何工作的(但不一定能够建立一个引擎),我希望我的程序员知道CPU是如何工作的(但不一定能够建立一个CPU,或写在组装的企业应用程序.但是,CPU高速缓存或看到一些汇编代码的讨论不应该送他跑向山上其一).

我们是专业人士.即使我们通常不在那个级别工作,我们也应该知道事情是如何工作的.

推荐阅读
mobiledu2402851323
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有