标签归档:徐文浩

Deep Learning Specialization on Coursera

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

极客时间刚刚上线了一门新课: 深入浅出计算机组成原理 ,作者徐文浩老师上来就告诉大家他是做自然语言处理创业的,很有意思,其实我心理想,敢开这些CS基础课的,都是牛人,能学这些课程的同学,都在夯实地基,我就想看看他是如何深入浅出讲这门课的。

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

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

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

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

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

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

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

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

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

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

如何系统的学习?

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

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

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

为什么推荐这门课程?

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

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

你能获得什么?

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

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

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

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

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

3、洞悉性能问题的本质

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

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

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

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