计算机组成原理对于职业生涯的作用?

2020-06-21 22:04:11 +08:00
 fengsien1999

除了应付考研,不搞硬件的人,计算机组成原理这门课还有别的用吗?

6154 次点击
所在节点    问与答
40 条回复
786375312123
2020-06-21 22:08:29 +08:00
没什么用处,我是学电的。我现在还记得上大学时候老师教的 NAND 如何组成的,一步步推导硬件上如何实现基础的逻辑或与非,到最后的数字加减。
结果几年了,再也没用到这些东西。就是懂计算机底层是如何实现的,无非就是偶尔能装逼
yangzhezjgs
2020-06-21 22:22:05 +08:00
kop1989
2020-06-21 22:26:33 +08:00
如果以后搞 it 软件工程,没用。
但是这门课解答了你计算机的基本原理。即便你不记得细节了,你也会大概明白计算机是怎么运转起来的。
万一你以后需要造更高效的轮子呢?这时候有这门课打底,你最起码知道该去学什么。
gadsavesme
2020-06-21 22:47:48 +08:00
面试有大用
felixcode
2020-06-21 22:48:40 +08:00
培训班出来的越多,这种基础性的东西越是稀缺的资源,基本也决定很多人技术能力的上限在哪里。
peachpeach
2020-06-21 22:53:46 +08:00
我一个在苏宁的大学同学,做 java 开发的,底层知识一点都不懂,甚至装系统都不会。
也照样写程序。
而我是个苦逼的嵌入式,组成原理是必备的基础。
vk42
2020-06-21 22:54:59 +08:00
如果只是做基础搬砖工也许用不到,但组成原理和体系结构这类知识其实决定了 CS 相关从业者的瓶颈,所谓知其然知其所以然的关系吧
ljpCN
2020-06-21 23:03:40 +08:00
让你拥有常识。知道变量在内存里,知道程序最终变成指令输入到 CPU 电路。从事软件开发,无非是在这些东西的封装上再做开发,总会有某个时刻,你发现你运用的这一层封装还残存或是暴露出或是运用了底层的概念。
就像学习物理有什么用?让你拥有常识。知道力是物体运动状态改变的原因。知道不存在永动机。这让你对世界的判断有明确的依据了。
没那么多神奇的事情。计算机和整个世界,都是在这样的规则上运行。基本规则知道得越全面,你就越有把握运用好这个世界暴露出的 API 。
CEBBCAT
2020-06-21 23:12:56 +08:00
在写 Go,最近看了些并发相关的文章。如果没学过计算机组成原理,该怎么理解原子操作呢?
mreasonyang
2020-06-21 23:14:24 +08:00
了解其中的概念即可,不需要深究细节。另外和楼上几位观点不同,我觉得和上学时很多其他学科比这科并不会成为软件工程师的生涯瓶颈
klesh
2020-06-21 23:14:54 +08:00
以前 js 的数据还没有 contains 方法的时候,知道组成原理的人会用~indexOf 来代替
blless
2020-06-21 23:21:43 +08:00
为啥会没用呢,虽然有些章节过时了,我看完就感觉醍醐灌顶。现实世界真正的构成很难,但是学完计算机原理至少程序世界是如何运作,也知道很多语言限制在哪里了,比如浮点数计算之类的。
adadada
2020-06-21 23:55:15 +08:00
本科教材上的一般都是非常基础的内容,多少知道一下应该没有坏处。我认识的一个研究生时搞数论的人,现在在做处理器设计相关的工作。可能我们很难预见职业“生涯”中会做什么,所以就时刻做好准备呗。
May725
2020-06-22 00:15:40 +08:00
我的看法是:这对从事软件行业,肯定有用。
虽然上层软件日新月异,但万变不离其宗。
就比如,如果懂汇编,就大概知道编译器这个东西干了什么事。
如果了解冯诺依曼结构体系,就可以分析你的程序运行慢,是慢在哪里。
fishCatcher
2020-06-22 00:19:41 +08:00
有幸去 ucb 交换过一学期,选了 cs61c,认真学下来感觉硬件和软件有了很强的联系,而且感叹计算机真的太棒了。
miyuki
2020-06-22 00:45:59 +08:00
赞同 #8 的观点,比如前几天的“双层循环 ij 比 ji 更快”问题

golang 面试题之 为什么这种更快呢?
https://www.v2ex.com/t/677996
anguiao
2020-06-22 01:03:56 +08:00
找一本经典教材,仔细看一遍就行了。
有多大好处说不上,反正不会有坏处。以后和人吹逼,肚子里也有料。
KunMinX
2020-06-22 01:10:28 +08:00
组成原理提供了计算机的背景认知,或者说前置知识。

有了组成原理做铺垫,后续想学编译原理什么的都能轻松入门。

可以有选择地学,可以只学语言相关的那部分。

之前看过某平台的一位老师讲的挺好的,顺道分享给有需要的人。

http://gk.link/a/10j4A
jessehzj
2020-06-22 01:28:57 +08:00
看了#16 的帖子,更加说明不知道底层的也能过得好好的。看过一遍 csapp 不会不知道 locality
Perry
2020-06-22 01:32:04 +08:00
有必要,不过当码工的话学点基础感觉就够了,本科也学的啊

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/683564

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX