计算机基础学习路线开篇和计算机组成原理学习方法
#计算机基础# #学习指南# #教程# #经验#
大家好,我是柠檬哥。
加入星球有一周多,有幸认识优秀的鱼皮,有幸作为嘉宾加入咱们优秀的编程导航星球。
考虑到咱们星球有非常多编程初学者和大学鱼友们,这段时间翻看星球里同学们的讨论和已有的资源,发现计算机基础学习这块内容还可以继续补充和完善。
先说下我的学习经历,我是电子信息工程专业的老学长,算是半个科班。其实在我 2010 年上大学那会,最火的不是计算机,反而是土木工程和机械,选电子信息工程这个专业纯粹是觉得自己小时候修理过自家收音机,感觉自己有点电子的天赋哈哈,阴差阳错赶上了移动互联网爆发,计算机火了。
众所周知电子信息工程是个万金油专业,软件和硬件都要学,和电子计算机沾边的技术都蹭一蹭,这就让很多刚上大学的同学包括我摸不着方向了,没办法,那就软件硬件都去尝试下,在校期间和团队同学拿下了电子设计大赛省赛一等奖和国赛二等奖。
经过比赛的锤炼,发现相比于硬件设计,我更喜欢和擅长软件,而要做纯软件开发的话,计算机专业的学习内容无疑是更合适的,因此我自学从电子信息转码了,对于计算机基础的学习有一些经验和方法论,毕竟通过自学计算机基础,挨过了大厂技术面试的层层拷问,成功入职过几家头部互联网公司。
今天来开篇计算机基础学习路线篇和计算机组成原理部分。
计算机基础是什么
不管你是后端开发还是前端开发,说到底我们所有的软件开发都是在计算上编写程序,虽然对于大部分人来说,真正开始写代码的时候很少会让你去解决计算机底层的问题,不接触不代表不重要,计算机基础是最重要的。
后端开发工作中经常用到 Java、C++、Python、Golang 这些语言称为高级编程语言,称为高级是它们接近我们日常交流的自然语言,而离计算机底层远。
所有的高级语言最终都会转换成汇编->机器码->计算机指令->控制流操控计算机硬件,所以学习计算机构成和工作原理、操作系统这些基础知识,能够加深我们对高级语言的理解。
那我们一直说的计算机基础到底是什么?计算机科学技术 CS(Computer Science)作为一门专业课程,就和其他工科课程一样有自己的理论体系,如果你是计算机专业的同学不用我来教该学什么,计算机专业大学四年学校教的那些就是基础,别小看你在学校学的那些看起来没啥用的课程。
这有一份中中科大的计算机技术本科主要课程结构安排。

一流大学的计算机专业要学什么可以对照着看下,从学科数学理论基础、计算机体系结构、软件工程方法等等维度展开。
那如果你不是计算机相关专业的想转行,也不要被吓到了,毕竟这是人家四年时间的学习内容,本科的培养目标不仅仅是培养出一个软件工程师,本科学习还是面向硕士博士的基础培养,注意是计算机科学专业,名字里有个词叫「科学」,我这篇文章要说的可以认为是「工学」方向,更多的是服务于工程开发。
如果只是面向开发和工作面试,或者你是非计算机专业想转行,已经工作了没有太多时间去学习大学那些理论课程,那帮你把计算机基础的范围缩小到下面这 4 门专业课:计算机组成原理、计算机网路、操作系统、数据结构。

计算机组成原理学习
这门课程让你了解计算机的组成和工作原理,要学习的内容包括:
- 数据在计算机中的表示和运算(计算机不识数,只认得高低电平,所以数据在计算机内部都用二进制的0和1表示)
- 存储系统(数据和程序指令都要存储下来,学习计算机的存储层次,内存、外存、高速缓存、虚拟存储技术)
- 指令系统(写的代码最终都要被翻译成计算机指令,指令格式和寻址方式有多种,控制器来控制指令执行)
- 中央处理器(也就是 CPU 计算机的大脑,主要构成是运算器和控制器)
- 总线(计算机的血管动脉,连接计算机各功能组件,用来传输数据、地址信号、控制信号)
- 输入输出系统(Input/Output 也叫 IO 系统,连接和管理各种外部设备比如键盘、显示器等等)
书籍推荐
不建议初学者一上来就去啃那些大部头经典的图书,也就是我们常说的黑皮书,那些书好是好,但非常容易劝退。推荐先看以下 3 本入门的计算机网络书籍:
《计算机是怎样跑起来的》
《程序是怎样跑起来的》
《网络是怎样连接的》
这三本是一套计算机科普图书,图文并茂,读起来不枯燥的同时还把相关概念讲的清清楚楚,深入浅出对初学者比较友好。
看完上面这几本之后,就可以开始看下面这些经典书了。
《深入理解计算机系统》
《计算机组成与设计:硬件 / 软件接口》
《计算机组成:结构化方法》
《计算机体系结构:量化研究方法》
公开课推荐
计算机科学速成课
对于完全零基础的小白,或者是大一之前的暑假想提前了解计算机课程的同学,极力推荐 b 站的《计算机科学速成课》,这个课程是国外老师录制的,讲真国内类似这样的计算机学科先导课程几乎是没有的!
这门课程从计算机基本组成聊到人工智能,而且内容尽力做到浅显易懂,视频的动画很精美,没有接触过计算机或者对计算机感兴趣想了解的同学,一定不能错过这门课程,看过绝不后悔系列!
视屏链接:https://www.bilibili.com/video/BV1EW411u7th/
清华大学陈渝教授操作系统
清华大学陈渝教授《操作系统》公开课介绍操作系统的基本概念、原理和实践的课程,由陈渝教授和向勇教授共同授课。这门课程涵盖了操作系统的启动、内存管理、进程管理、设备管理、文件系统等主要内容,同时结合了清华大学自主研发的ucore OS实验,让学生能够通过动手实践来加深对操作系统的理解。
这门课程在网易公开课和哔哩哔哩上都有视频资源,受到了很多学习者的好评。有些人认为这门课程是国内最好的操作系统公开课,因为讲师深入浅出,案例丰富,实验有趣。老师讲的也非常细心,如果你上课听不懂学校老师的讲解,不妨去听听陈教授的操作系统。
由于B站上的课程链接会经常失效,我找到了这门课程在网易公开课的链接,你可以随时在线学习:
课程链接:https://open.163.com/newview/movie/courseintro?newurl=ME1NSA351
哈工大计算机组成原理
哈尔滨工业大学“计算机组成原理”课程是国家级精品课程,以国家级教学名师唐朔飞教授编写的“十二五”规划教材为基础,将教学课件、学习指导与习题解答、试题库等一系列辅助教学组成一体,学习路径包括“为什么用计算机→计算机能做什么→要有什么样的结构→结构如何细化为模块→实现模块需要解决的问题→如何解决”。
分为上线两篇:
计算机组成原理(上):
计算机组成原理(下):
哈佛 CS 50 计算机导论
哈佛大学 CS 50 计算机导论公开课是一门非常受欢迎的课程,它涵盖了计算机科学的基本知识,基础算法,常见的编程语言等内容,还会介绍最新的计算机科学领域的成果。这门课程的特点是讲课形式生动有趣,鼓励学生发散性思维,培养编程兴趣和能力。很多编程小白都可以通过这门课程快乐地入门计算机科学。
课程主要特点:
- 内容丰富而有趣。该课程不仅介绍了计算机科学的基本知识,还展示了计算机在各个领域的应用和创新,如游戏、艺术、社会等,激发了学生的兴趣和好奇心。
- 形式多样而互动。该课程不仅有视频讲座,还有实验室练习、项目作业、在线测试等多种形式,让学生能够通过动手操作和实践来巩固和深化理解。同时,该课程还提供了在线社区和助教支持,鼓励学生之间的交流和合作。
- 难度适中而有挑战。该课程虽然面向初学者,但并不简单。它要求学生掌握多种编程语言(如 C、Python 等),并解决一些复杂而有趣的问题(如密码破解、人脸检测等)。这些问题既能锻炼学生的编程能力,又能提高学生的自信心。
CS 50 计算机导论公开课是一门优秀的计算机科学入门课程,值得推荐给想要了解或进入这个领域的人。
课程链接:哈弗CS 50
CSAPP CMU 15-213 斯坦福CSAPP 的视频课
CSAPP 的视频课程全程英文,英语好的同学可以直接看视屏学习。当然,英语不好也没关系,现在 B 站已经有同学帮我们做了中文字幕,也可以无障碍聆听斯坦福大学名校老师的课程,四舍五入等于出国读了个CS
CSAPP(深入理解计算机系统)是一本经典的计算机教材,由CMU的教授编写,介绍了计算机系统的基本概念和原理,包括数据表示、程序结构、处理器体系结构、优化编译、链接、加载、内存层次结构、虚拟内存、动态内存管理、系统级I/O、网络编程和并发编程等。
这门公开课是基于这本书的一门核心课程,要求学生阅读书中的内容,并完成一系列的实验和项目,以加深对计算机系统的理解和应用。斯坦福大学也开设了基于CSAPP的公开课,由斯坦福的教授讲授,视频可以在网上免费观看。这门公开课与CMU的15-213课程有很多相似之处,但也有一些差异,比如使用不同的编译器和工具链,以及涉及不同的扩展主题。
公开课地址:https://www.bilibili.com/video/BV1iW411d7hd
END
今天分享计算机基础和计算机组成原理学习路线,适合初学计算机基础没有方向或非科班转码不知从何学起的同学,当然,科班的同学觉得学校老师讲的听不懂,也可以按我推荐的学习路线去学习。
如果觉得有帮助,轻轻点个小拇指鼓励下,这也会决定我后续的分享方向~
更多干货内容,关注后续分享,我是柠檬哥,我们下期再见👋🏻
