💡 这是作者本人自学计算机基础课程的学习记录,主要包含计算机基础四门课,在此之外也新增了其他一些工具基础课。在学习过程中,本人采用费曼学习法,利用输出来强化学习效果,整理输出该文档。
🚩 学习过程开启于2022年9月初,中间断断续续,一直持续更新记录。
✅ 可以为自学计算机课程者,提供一份学习路径参考与内容借鉴。
🔑 建议学习过程:
数据结构和算法 -> 计算机操作系统 -> 计算机网络 -> 计算机组成原理,也并非要求一定严格有前有后,因为彼此之间内容有可能有所交叠。
📺 参考:
主要参考王道系列辅导视频,对笔记内容进行了重新归类整理,并重新绘制了清晰美观的图片(主要还是个人对美学要求较高,喜欢配色统一、养眼舒服的插图),除此以外也纳入一些其他的开源文库补充。
💻 代码:
作者独立手敲,经过编译运行验证(待单独归档)。
💡 思考:
计算机基础知识相当重要,当然完成基础之后,还需要根据细分方向了解其他知识。例如Linux
基本操作、编译构建、docker
、面向对象、设计模式、数据库等等。学海无涯,学无止境 🤣。
📓 整体篇幅:
课程 | 📃文档 doc | 🏴行数 lines | ✍🏻字数 words | 🌄插图 graph | ✏️当前进度 progress |
---|---|---|---|---|---|
✅ 数据结构和算法 DataStructure & Algorithm |
40 | 8k | 180k | 350 | ◾◾◾◾◾◾◾◽◽◽ |
✅ 操作系统 Operating System |
12 | 3k | 100k | 160 | ◾◾◾◾◾◾◾◽◽◽ |
✅ 计算机网络 Computer Network |
◽◽◽◽◽◽◽◽◽◽ | ||||
✅ 计算机组成原理 Principles of Computer Composition |
◽◽◽◽◽◽◽◽◽◽ |
目前持续更新中...
数据结构和算法,是计算机入门的基础的重中之重,是在完成一门编程语言(例如C语言)后可以掌握的基础课程。由于C语言是一门语法稍微简单,并且多数使用作为编程入门的语言。因此,本内容采用C语言作为数据结构和算法实现的语言。
前置需求:
- C语言中基本数据类型、表达式、变量;
- 分支、循环;
- 函数调用与被调用;
- 数组、指针,字符串,结构体,重定义;
具体章节:
- README
- 01 绪论与概要
- 02 顺序表
- 03 单链表
- 04 双链表、循环链表与静态链表
- 05 链表逆置(补充)
- 06 栈与栈的应用
- 07 队列与队列的应用
- 08 串
- 09 串的模式匹配 -- BF与KMP
- 10 树与二叉树
- 11 二叉树遍历
- 12 二叉树线索化
- 13 树和森林的遍历
- 14 哈夫曼编码、并查集
- 15 二叉排序树BST与平衡二叉树AVL
- 16 红黑树
- 17 B树、B+树
- 18 图与图的存储方式
- 19 图的基本操作
- 20 图的最短路径问题
- 21 图的拓扑排序和关键路径
- 22 顺序查找、二分查找
- 23 分块查找、散列查找(哈希查找)
- 24 C语言的哈希实现 uthash库
- 25 排序算法概要、冒泡排序
- 26 插入排序
- 27 希尔排序
- 28 快速排序
- 29 选择排序
- 30 堆与堆排序
- 31 归并排序
- 32 基数排序
- 33 外部排序、败者树
- 34 常用算法 - 单调栈
- 36 常用算法 - 贪心
- 39 常用算法 - 回溯法
- 38 常用算法 - 分治
- 37 常用算法 - 前缀和
- 35 常用算法 - 单调栈
- 40 常用算法 - 动态规划
🔗课程链接:数据结构_王道_哔哩哔哩_bilibili
操作系统是控制管理计算机系统的硬软件,分配调度资源的系统软件,向上为上层软件提供接口,向下控制管理系统资源,是整个应用软件层和硬件层的中间过渡。操作系统课程分为四个部分:进程管理、内存管理、文件管理、I/O管理。 理解操作系统的功能和细节,常常需要将操作系统和现实世界联系起来,在这个课程中,我常常会摒弃掉一些无比复杂和专业性的词语、工整排比的特征分析,通过以现实世界的例子来理解,操作系统究竟干了哪些事情。
具体章节:
- README
- 41 操作系统概要、功能特征与发展演变
- 42 操作系统运行机制、中断与异常、系统调用、体系结构
- 43 进程管理1-进程切换、进程组织和管理
- 44 进程管理2-进程间通信、多线程
- 45 进程管理3-进程调度
- 46 进程管理4-调度算法
- 47 进程管理5-进程互斥、进程同步机制
- 48 进程管理6-生产者与消费者问题
- 49 进程管理7-死锁
- 50 内存管理1-覆盖、交换、内存分配
- 51 内存管理2-分页存储
- 52 内存管理3-分段存储
- 53 文件管理
- 54 IO 管理
🔗课程链接:操作系统_王道 哔哩哔哩_bilibili
具体章节:
🔗课程链接:
具体章节:
🔗课程链接:
同步发布: 知乎:非科班CS之路
本文档采用Obsidian、VScode工具编写,可以较好进行文档编辑以及结构化展示等效果。
本仓库致力于对计算机基础知识的总结和回顾,由本人在学习时总结,也同步期待其他学习者能够一并协助,共同归档维护。
参考贡献文档:CONTRIBUTING
双985的天坑专业,自学计算机上岸,现为大厂程序员。
工作方向:云计算、网络传输、SDN、DPDK、容器、C/C++