一个软件专业的学生应该学多少硬件

计算机组成和体系结构,对软件方向的学生来讲再怎么重要都不过分!不!过!分!借用侯捷当年讲过的一句话:如果你懂汽车构造,开车也会比一般人熟练些。更何况作为一个软件工程师,你的定位应该是汽车厂的师傅,而不是坐在后座上吹冷气的那个人。当然,你可以说这个比喻有点过了,那么我这样说:作为一个应用软件开发工程师,你的定位应该是专业的赛车手,而不是周末偶尔开车出去兜兜风的那个人。你觉得专业赛车手对赛车构造的了解,在什么程度呢?至于亲手做一个CPU,或者学习EDA工具这种事,对软件专业的学生来说确实稍微有点过头了。甚至于计算机组成,如果对软件专业的学生和对体系结构的学生,用同一套教材,同一种讲法的话,也会有问题。至于说国内一般大学计算机系老师对计算机组成有多深入的见解,则是更加呵呵的一件事情。但是,这些是教育体制的问题,不是教学内容上,学软件的学生就不需要学硬件知识的理由。“我是学软件的/做软件的” 并不是作为软件专业的学生完全不学甚至排斥硬件课程的原因。写个app,做个网站谁都会,做个淘宝这么高并发的网站和app,就不是会一两种IDE,一两种语言,一两种数据结构这么简单的事情了。工作这么多年,我可以很负责任的说:我见过的“做软件”厉害的人,几乎对计算机系统硬件的了解都远远超过普通的硬件工程师;而整天把“我是做软件的,我对硬件没兴趣/不懂”挂在嘴上的人,软件开发的能力通常也是很渣的。“做软件不需要懂硬件”在某些情况下(比如开发行业应用)可能是对的,但是在大多数情况下,不过是人拿来搪塞自己水平低的借口。当然,如果你对自己的定位就是做点小软件,挣点小钱,混混小日子,那别说学硬件,学软件也没什么太多卵用。
■网友
如果是以程序员角度的话感觉\u0026gt;会很有用,带你从一个程序员的角度看程序在计算机硬件中如何执行。这本书的书名就是a programmer perspective,简单明了,程序员的视角。


    推荐阅读