对于程序员来说,计算机组成原理相关知识重要吗?
不知道大家有没有发现各个大学计算机系的培养计划,它们都有差不多十来门核心课程。其中,“计算机组成原理”却是入门和底层知识的第一课。
为什么这样说?想象一下,一名赛车手不知道赛车的内部构成和工作原理,你觉得他能驾驭赛车,在专业赛事中夺冠吗?
同样的道理,要成为一名优秀的软件工程师,写得一手好程序,就要了解计算机是怎么工作的,深入计算机组成原理。
我们直接用肉眼来看,计算机是由 CPU、内存、显示器这些设备组成的硬件,而大部分人工作后从事的是软件开发,显然,在硬件和软件之间需要一座桥梁,而“计算机组成原理”就扮演了这样一个角色,它既隔离了软件和硬件,也提供了让软件无需关心硬件,就能直接操作硬件的接口。
简单地说,你只需要对硬件有原理性的理解,就可以信赖硬件的可靠性,安安心心用高级语言来写程序。无论是写操作系统、编译器这样的硬核代码,还是写 Web 应用、手机 App 这样的应用层代码,你都可以做到心里有底。
如上图,学习组成原理之后,向下,你可以学习数字电路相关的课程,向上,你可以学习编译原理、操作系统这些核心课程。它会让你真正对计算机的知识有一个全局的了解。
当然,这门课还可以直接解决你在并发编程、性能优化中经常遇到的一些困惑,比如 CPU Cache 的原理是什么,CPU 和 I/O 之间是如何通信的,虚拟内存是要解决什么问题。
如果你看过倚天屠龙记,会发现张无忌几个时辰,就把别人几十年没有练成的乾坤大挪移学会了,最根本的原因,是他有“九阳神功”练就的内功底子!
同样的,深入学习这门“底层知识”,就是在练扎马步、核心肌肉力量,提升你自己的“根骨”和“资质”,从而拔高你发展的上限。
在很早之前,极客时间的编辑找到我,想让我开一个**计算机组成原理的课程,在考研统考的 4 门核心基础课程中,极客时间已经出了数据结构与算法、操作系统,计算机网络相关的 3 门很受欢迎的计算机基础课程,这是第 4 门也是非常重要的第一课,**等你做了多年开发以后,会发现,原来这么多年就是围绕这 4 门课程打转。
我身边想打好这门“硬核内功”的工程师很多,大都是买了资料,前面 100 页已经发黄了,后面 500 页从来没有打开过;不少非科班出身的程序员,直接说“这些书根本看不懂”,典型的“买书如山倒,读书如抽丝”。
总结大家的学习体验就是:很底层,很重要,但是太抽象,概念多,难理解,不好学以致用。
基于此,我和极客时间共同打磨了《深入浅出计算机组成原理》专栏,不同于学校的课程和市面上的其他资料,在这个专栏构思之初,我就给自己定了一个交付目标:
我会结合自己多年硬件研究和软件开发经验,通过日常工作实际场景+硬件发展历史+软件开发案例,深入浅出的为你讲解计算机组成原理的核心知识,教你真正看懂、学会、记住,从源头理解软、硬件的共同之处,洞悉性能问题的本质,学以致用。
我是谁?
我是徐文浩,一个目前正在创业的工程师。如果从 7 岁第一次在少年宫写程序开始算起,到今天,我的码龄快有 30 年了。2005 年上海交通大学计算机系毕业后,在 Trilogy Software 写过各种大型企业软件;曾任 MediaV 技术总监,从零开始搭建支撑每天百亿流量的广告算法系统,提升了十倍以上的广告收入和 ROI;2016 年底进军人工智能领域。我创办的 BotHub.AI,是唯一进入 F8 大会开发者代表的中国公司。
为了方便大家的学习,我特地整理了一份学习脑图,希望你对将要学习的内容有个总纲的了解,做到心中有数。
你能获得什么?
1.学以致用的计算机底层知识
在专栏中,我将以日常开发中的真实案例,让你理解计算机的各个组件是怎么运作的,遇到问题的根源是什么,从知识→应用→知识,形成闭环,学以致用。
比如说,CPU 里面的冒险和分支预测的策略,就好像在接力赛跑里面后面几棒的选手早点起跑,如果交接棒没有问题,自然占了便宜,但是如果没能交接上,就会吃个大亏。
2.30+计算机组成原理核心要点
知识点琐碎难记?没关系,我会把整个的计算机组成原理通过指令、计算、CPU、存储系统和 I/O 串起来,以一个程序的执行过程进行逐层分解,从历史视角讲清楚“是什么”,结合案例讲清楚”怎么做“,带你搞懂计算机组成原理中最核心、最重要的内容。
3.洞悉性能问题的本质
学习计算机组成原理,其实就是理解计算机是怎么运作的,以及为什么这么运作。在此基础上,我们才能又快又准地优化性能,提升效率。而我们想要解决性能问题,其实就是在此基础上,去关注时钟周期时间、每条指令的平均时钟周期数 CPI、指令数。
4.组成原理在工业界的实际应用
理解了计算机各个组件的运作之后,最后我将手把手带你实操。利用存储器层次结构设计大型 DMP 系统,并通过 Disruptor,跟你一起感受 CPU 的风驰电掣,让你真正学有所用。
总之,学好这门“硬核内功”,会让你在整个软件开发领域中,看到更加广阔的天地,它还会为你带来更多的职业发展机会,比如像我自己的团队里,有个小伙伴开始是做算法应用开发的,因为有扎实的计算机基础知识,后来就转去开发 TVM 这样的深度学习编译器了,是不是很厉害?
现在订阅有什么福利?
1、限时优惠 ¥68~~(原价 ¥99)~~,2 杯咖啡的价格,助你打好这门“硬核内功”;分享海报,邀请好友订阅即可获得¥24 的返现,多邀多得,上不封顶,APP 内立即提现。
2、订阅专栏后,在留言区里聊聊「你对计算机组成原理是如何认识的?在工作中有什么应用?」,点赞第 1 名,可获得极客时间 99 元任意课程,活动截止 4 月 25 日 24:00。
3、今日订阅,还可加入「计算机组成原理学习小组」,仅限前 500 人,还可免费领取 2019 极客时间 50G 程序员进阶资料包,在「极客时间」服务号后台对话框,回复【计算机】领取!
专栏详细目录
“练拳不练功,到老一场空”。越早弄清楚计算机的底层原理,在你的知识体系中“储蓄”起这些知识,也就意味着你有越长的时间来收获学习知识的“利息”。长久的”复利效应“,会让你的未来走的更远更轻松。
评论