这几门课程都属于计算机专业非常非常重要的基础课程,其实这几门课程的学习顺序根据每个人学习内容的不同应该是有所变化的,人邮君上面列出的顺序适合大多数的同学。
我们一起具体来看下:
01. 操作系统
之所以将操作系统放在最先的位置,是因为操作系统处于软件和硬件中间的一部分,是计算机的核心总控件,是计算机系统的指挥和管理中心,是计算机系统的灵魂,能够帮助学习的人了解系统资源的调度与分配。
最重要的是,一个操作系统涵盖了计算机的基本原理、数据结构,还有C语言和汇编语言等相关知识。因为涵盖的内容较多,所以有利于大家先比较全面地了解计算机的基础内容,方便在后面的学习中逐一细化。
并且,无论学习什么编程语言都需要和操作系统打交道,例如Java中的多线程,实际上操作系统才是真正负责管理进程和线程的,所以Java里的线程常常要和操作系统里的线程或者进程相对应。
学习操作系统最重要的是:操作系统负责将代码从硬盘加载到内存,再告诉CPU去读取内存代码,这是一切计算机运行的基础。只有学会了操作系统,才能够更好地学习计算机的其他部分内容,包括语言和技术。
学习计算机操作系统,为大家推荐《操作系统导论》这本书。
操作系统导论(异步图书出品)
这是一本关于现代操作系统的书。全书围绕虚拟化、并发和持久性这3个主要概念展开,介绍了所有现代系统的主要组件(包括调度、虚拟内存管理、磁盘和I/O子系统、文件系统 )。
这本书关于操作系统的介绍非常全面,并给出了真实可运行的代码,还提供了相应的练习。在书中更是将计算机系统的内在相似性进行了分析和讲解,从操作系统到文件系统,从虚拟内存到数据库,甚至计算机网络都有着相似的组成和结构,这个部分能给在计算机基础部分学习的同学非常大的启发。
02. 组成原理
从开关到ALU,每个阶段所学习的东西看起来都和“计算机”没什么关系,除了他们都能存储和运算。但是你会很清楚地了解到每个阶段做出来的东西其实完全没有“存储”和“运算”功能。他们只不过是一种电路的状态,或者通过一个信号,控制另一部分电路的状态。由于很简单,很容易弄清楚这个东西是如何工作的。最后把所有东西拼成一块CPU的时候,就像你趴在地上拼拼图,拼完最后一块起身俯视的感觉。会了解到高低电平是如何通过各种门电路变成数据,变成屏幕上花花绿绿的程序的。这就是所谓的“原理”。
这部分的知识内容非常庞杂,关于组成原理为大家推荐《程序是怎样跑起来的》。这本书图文并茂地详细讲解了二进制、内存、数据压缩、源文件和可执行文件、操作系统和应用程序的关系、汇编语言、硬件控制方法等内容,目的是让读者了解从用户双击程序图标到程序开始运行之间到底发生了什么。
图灵程序设计丛书:程序是怎样跑起来的(图灵出品)
03. 计算机网络
看到许多人推荐将计算机网络放在较为靠前的位置学习,人邮君个人的意见相反。首先计算机网络中的内容很多需要组成原理和操作系统的基础,再就是因为计算机网络难度较高,会涉及到大量的技术和算法,所以在学习的路径中将计算机网络放在较为靠后的位置是较为合理的,甚至将计算机网络放在计算机基础的最后部分也是可以的。
在计算机网络的学习中为大家推荐《计算机科学导论》。这本书用大量的篇幅介绍了计算机网络的内容,还详细地介绍了计算机科学目前发展的特点和现状,适合想要学习计算机网络的同学打基础使用。
计算机科学概论(第12版)(异步图书出品)
04. 数据库
数据库的学习无论放在最后还是第三的位置都是可以的,需要注意的是无论选用什么学习路径,人邮君认为都应该将数据库的学习放在操作系统之后,因为数据库的原理涉及到部分操作原理的交互的基础。
学习数据库推荐从SQL语言开始学起,这里为大家推荐《MySQL是怎样运行的:从根儿上理解 MySQL》。这本书采用诙谐幽默的表达方式,对MySQL的底层运行原理进行了介绍,内容涵盖了初步接触MySQL想要了解的大多数知识基础。
MySQL是怎样运行的 从根儿上理解MySQL
对于已经对MySQL有一定基础的同学,为大家推荐《深入浅出MySQL数据库开发、优化与管理维护》。
本书的开发篇详解了类型(存储引擎)的选择、选择合适的数据类型、字符集、索引的设计和使用、视图、存储过程和函数、触发器、事务控制和锁定语句、SQL中的安全问题、SQL Mode及相关问题。
深入浅出MySQL 数据库开发 优化与管理维护 第3版(异步
除了学习路径,人邮君认为更重要的是学习动机。学习动机决定一个人学习的态度,很大程度上决定了学习的上限。只有发自内心的积极参与学习,才能获得最好的学习效果。
如果你决定好了深入学习计算机基础,记得制订好学习计划不要懈怠。
相关标签: