97

深入浅出计算机组成原理:计算机底层知识第一课

 5 years ago
source link: http://blog.coursegraph.com/深入浅出计算机组成原理-计算机底层知识第一课?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

对于程序员来说,计算机组成原理相关知识重要吗?

不知道大家有没有发现各个大学计算机系的培养计划,它们都有差不多十来门核心课程。其中,“计算机组成原理”却是入门和底层知识的第一课。

为什么这样说?想象一下,一名赛车手不知道赛车的内部构成和工作原理,你觉得他能驾驭赛车,在专业赛事中夺冠吗?

同样的道理,要成为一名优秀的软件工程师,写得一手好程序,就要了解计算机是怎么工作的,深入计算机组成原理。

我们直接用肉眼来看,计算机是由CPU、内存、显示器这些设备组成的硬件,而大部分人工作后从事的是软件开发,显然,在硬件和软件之间需要一座桥梁,而“计算机组成原理”就扮演了这样一个角色,它既隔离了软件和硬件,也提供了让软件无需关心硬件,就能直接操作硬件的接口。

简单地说,你只需要对硬件有原理性的理解,就可以信赖硬件的可靠性,安安心心用高级语言来写程序。无论是写操作系统、编译器这样的硬核代码,还是写Web应用、手机App这样的应用层代码,你都可以做到心里有底。

z6NF3au.png!web

如上图,学习组成原理之后,向下,你可以学习数字电路相关的课程,向上,你可以学习编译原理、操作系统这些核心课程。它会让你真正对计算机的知识有一个全局的了解。

当然,这门课还可以直接解决你在并发编程、性能优化中经常遇到的一些困惑,比如CPU Cache的原理是什么,CPU和I/O之间是如何通信的,虚拟内存是要解决什么问题。

如果你看过倚天屠龙记,会发现张无忌几个时辰,就把别人几十年没有练成的乾坤大挪移学会了,最根本的原因,是他有“九阳神功”练就的内功底子!

同样的,深入学习这门“底层知识”,就是在练扎马步、核心肌肉力量,提升你自己的“根骨”和“资质”,从而拔高你发展的上限。

如何系统的学习?

作为计算机底层知识第一课,当然不那么好啃,概念多,太抽象,难理解,不好学以致用。我身边不少想打好这门“硬核内功”的工程师,大都是买了资料,前面100页已经发黄了,后面500页从来没有打开过;不少非科班出身的程序员,直接说“这些书根本看不懂”,典型的“买书如山倒,读书如抽丝”。

在这里特别推荐个靠谱的学习资料,极客时间的新专栏《深入浅出计算机组成原理》,在考研统考的4门核心基础课程中,极客时间已经出了数据结构与算法、操作系统,计算机网络相关的3门很受欢迎的计算机基础课程,这是第4门也是非常重要的第一课,等你做了多年开发以后,会发现,原来这么多年就是围绕这4门课程打转。

这个课的作者是徐文浩,一个目前正在创业的工程师。7岁开始接触代码,近30年的码龄,毕业于上海交通大学计算机系,在 Trilogy Software 写过各种大型企业软件,也曾任 MediaV 技术总监,从零开始搭建支撑每天百亿流量的广告算法系统,提升了十倍以上的广告收入和 ROI;2016年底进军人工智能领域,创办 BotHub.AI,成为唯一进入 F8 大会开发者代表的中国公司。

为什么推荐这门课程?

极客时间平台我本身一直都很认可和信任,更重要的是我看了目录和内容,感觉确实不错,为了针对性的解决大家学习中的困难,徐文浩在专栏中结合自己多年硬件研究和软件开发经验,通过日常工作实际场景+硬件发展历史+软件开发案例,深入浅出的为你讲解计算机组成原理的核心知识,教你真正看懂、学会、记住,从源头理解软、硬件的共同之处,洞悉性能问题的本质,学以致用。

为了方便大家的学习,徐文浩老师特地整理了一份学习脑图,希望你对将要学习的内容有个总纲的了解,做到心中有数。

3Aji63z.png!web

你能获得什么?

1、学以致用的计算机底层知识

专栏会以日常开发中的真实案例,帮你理解计算机的各个组件是怎么运作的,遇到问题的根源是什么,从知识→应用→知识,形成闭环,学以致用。

比如说,CPU里面的冒险和分支预测的策略,就好像在接力赛跑里面后面几棒的选手早点起跑,如果交接棒没有问题,自然占了便宜,但是如果没能交接上,就会吃个大亏。

2、30+计算机组成原理核心要点

作者会把整个的计算机组成原理通过指令、计算、CPU、存储系统和IO串起来,以一个程序的执行过程进行逐层分解,从历史视角讲清楚“是什么”,结合案例讲清楚“怎么做”,带你搞懂计算机组成原理中最核心、最重要的内容。

3、洞悉性能问题的本质

学习计算机组成原理,其实就是理解计算机是怎么运作的,以及为什么这么运作。在此基础上,我们才能又快又准地优化性能,提升效率。而我们想要解决性能问题,其实就是在此基础上,去关注时钟周期时间、每条指令的平均时钟周期数CPI、指令数。

4、组成原理在工业界的实际应用

理解了计算机各个组件的运作之后,还将手把手带你实操。利用存储器层次结构设计大型 DMP 系统,并通过 Disruptor,跟你一起感受 CPU 的风驰电掣,让你真正学有所用。

“练拳不练功,到老一场空”。做一个真正的工程师,越早弄清楚计算机的底层原理,在你的知识体系中“储蓄”起这些知识,也就意味着你有越长的时间来收获学习知识的“利息”。长久的“复利效应”,会让你的未来走的更远更轻松。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK