NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

计算机底层知识第一课,你搞懂了吗? | 极客时间

  • 2019-04-23
  • 本文字数:2416 字

    阅读完需:约 8 分钟

计算机底层知识第一课,你搞懂了吗? | 极客时间

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


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


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


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


我们直接用肉眼来看,计算机是由 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 程序员进阶资料包,在「极客时间」服务号后台对话框,回复【计算机】领取!


专栏详细目录


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


文章出自极客时间《深入浅出计算机组成原理》专栏


2019-04-23 15:2218589

评论

发布
暂无评论
发现更多内容

什么是DevOps监控以及如何在组织中实施?

互联网工科生

DevOps 运维工具

六步带你体验EDS交换数据全流程

华为云开发者联盟

云计算 后端 华为云 华为云开发者联盟 企业号 7 月 PK 榜

AI成为“老师傅”,1份图谱揭露资产故障真因

用友BIP

AI

浅谈生成式人工智能

天翼云开发者社区

人工智能

Debian11系统编译安装Nginx教程。

百度搜索:蓝易云

nginx 云计算 Linux 运维 Debian

Debian11系统编译安装PHP教程。

百度搜索:蓝易云

php 云计算 Linux 运维 Debian

IPQ6010 and IPQ6018 what's the difference?|802.11AX WIFI6 Solution|DR6018

wallyslilly

DevOps | 产研协同效能提升之评审、审批流、质量卡点

laofo

DevOps 研发效能 持续集成 持续交付

灵活预算,畅享高性能!月付香港主机助你建设理想网站!

一只扑棱蛾子

香港主机

探索学习Hypermesh的有效方法

智造软件

CAE CAE软件 Hypermesh 结构分析软件 学习教程

亚马逊云科技与英矽智能合作,利用人工智能技术加速新药研发

Lily

如何通过三级缓存解决 Spring 循环依赖

江南一点雨

Java spring

微信朋友圈广告代理 朋友圈广告 信息流广告加盟

陈老师讲创业

信息流 微信朋友圈广告代理

等保测评包过是真的吗?安全吗?

行云管家

等保 等级保护 等保测评

一文了解什么是ISO 9001认证,以及在静态分析和代码质量领域有哪些通过此认证的工具

龙智—DevSecOps解决方案

代码扫描 静态代码分析 代码分析

大型民营集团如何构建全面预算管理体系?

用友BIP

全面预算

识别led显示屏扫描方式及常见分类指南

Dylan

分类 识别 扫描 LED显示屏

一文了解JNPF低代码开发平台

高端章鱼哥

低代码 低代码开发 JNPF

补齐OLAP引擎短板!ByteHouse 是如何实现流批一体的?

字节跳动数据平台

数据库 大数据 云原生 数仓 企业号 7 月 PK 榜

Perforce Helix Core新版本推出资源压力感知功能,提升服务器可用性,助力大规模开发

龙智—DevSecOps解决方案

版本控制 版本控制系统

今年值得学习的五种最吸金的编程语言

这我可不懂

Python JavaScript 编程语言

程序员「求生宝典」!AI大发展下的程序员求生指南,干货满满

Openlab_cosmoplat

大模型时代,科技企业入局能源行业需要新范本

TE智库

新能源 特斯联

用友BIP:助力企业数智化转型,实现数智化国产替代

用友BIP

国产替代

数智底座成竞争焦点,用友能否再创辉煌?

用友BIP

数智底座

何为低代码?何为高代码?

互联网工科生

软件开发 低代码 JNPF 高代码

为什么强调数智底座能力?

用友BIP

数智底座

计算机底层知识第一课,你搞懂了吗? | 极客时间_语言 & 开发_徐文浩_InfoQ精选文章