这门课的名字听起来像把三门硬课塞进一个包里,容易让人误以为又是那种"学完就能造编译器"的速成班。先说结论:它不适合指望靠它转行做底层开发的人,但适合一类很具体的读者——工作两三年,写业务代码写得还行,却总觉得对"程序到底怎么跑起来的"这件事心里没底,想找一门不太贵、不用啃完四本砖头书的课补一补。

它解决的其实是一个"补课"需求

编译原理、操作系统、图形学,是计算机专业最容易被"学过就忘"的三门课。当年上课时对着书本推导 LR 分析表,考试完就还给老师了,工作后写 CRUD 也从来用不上。可一旦遇到实际问题,缺口就露出来了:线上排查内存泄漏,看不懂虚拟内存和页表在做什么;做前端动画卡顿,说不清渲染管线里哪一步在拖后腿;看到正则表达式引擎的实现讨论,只能绕道走。

这门课的价值就在这个位置。它不是培养编译器工程师的,而是把这三块知识里"跟日常开发真正相关"的部分拎出来讲清楚,让你下次遇到这类问题时,脑子里至少有一张可用的地图,而不是一片空白。

学完能独立做到什么

  • 看得懂一段简单汇编,能手动把一个递归函数(比如求阶乘)翻译成汇编指令,理解栈帧、参数传递和返回地址是怎么回事。
  • 说清楚一个进程从创建到调度到销毁,操作系统在背后做了什么,进程、线程、内存管理之间的边界在哪里。
  • 建立图形学的基本坐标系概念,理解一个三角形从模型空间到屏幕像素大致经历了哪些变换。
  • 对编译流程有整体认识,知道词法、语法、语义、代码生成各自在干什么,能看懂相关技术文章的术语。

注意这些都是"理解层面"的产出。课程里有编码环节,但目的不是让你写出一门语言或者一个渲染器,而是通过动手把抽象概念落到具体代码上,避免停留在背诵定义。

资料结构和使用顺序

课程主体是十七个章节的视频,配套两份课件资料,一份偏理论梳理,一份偏实践素材。视频节奏偏慢,属于边讲边演示的类型,适合一倍速甚至零点七五倍速跟着敲。

使用上建议按章节推进,但不必强求全部看完。如果你的痛点主要在操作系统,可以集中啃对应章节;如果只是想搞懂编译流程有个大概印象,挑词法和语法分析部分先过一遍即可。图形学部分相对独立,搁到最后看也不影响前面的理解。

汇编那一章建议一定要动手,哪怕只是照着把递归函数写一遍、用调试器单步走几轮。这类内容的门槛不在"看懂",而在"自己碰过",不碰就容易看完即忘。

适合谁,不适合谁

适合:有至少一门语言的实际编程经验、能读懂 C 或 Java 级别代码的上班族;计算机专业毕业但基础课学得含糊、想重新捡起来的人;转行进来、知识结构有洞、想补一块基础的人。

不适合:完全零基础、还没写过完整程序的人,会听得很吃力;已经有扎实底层功底、想深入做编译器或图形引擎的人,这门课的深度不够。

最后提醒一句,这类"三门课打包"的形式,好处是省钱省事,代价是每门都做不到特别深。把它当补基础的入门砖用,心态会顺很多;指望它一步到位,多半会失望。

课程目录

课程目录156 集
  • 📁 大学计算机必修课新讲--编译原理+操作系统+图形学(17章完整版) 📁 课件 课件必看.zip
  • [1.8 MB] 资料-新.zip
  • [4.0 MB] 📁 第2章 计算机理论引导(理解计算机) 第2章 计算机理论引导(理解计算机)必看.zip
  • [1.8 MB] 2-6 我的第一个汇编程序——实现一个求阶乘的递归函数(coding).mp4
  • [219.6 MB] 2-5 我的第一个汇编程序——实现一个求阶乘的递归函数(思路部分).mp4
  • [52.0 MB] 2-4 指令入门(2)——寻址模式、浮点数和指令分类.mp4
  • [37.0 MB] 2-1 什么是计算机.mp4
  • [42.9 MB] 2-7 中断和中断向量.mp4
  • [28.5 MB] 2-3 指令入门(1)——指令的组成部分.mp4
  • [25.4 MB] 2-2 CPU的工作原理——内存、寄存器和ALU.mp4
  • [42.1 MB] 📁 第10章【操作系统】调度算法入门(理解任务调度的模型) 第10章【操作系统】调度算法入门(理解任务调度的模型)必看.zip
  • [1.8 MB] 10-1 调度问题概述.mp4
  • [24.5 MB] 10-4 实战哲学家就餐问题.mp4
  • [41.3 MB] 10-2 补课——优先级队列.mp4
  • [22.3 MB] 10-3 调度算法选讲.mp4
  • [15.2 MB] 📁 第5章【编译原理】语法分析(实现一个语法分析器) 第5章【编译原理】语法分析(实现一个语法分析器)说明.png [493.5 KB] 5-17 拾遗——那些穿插在迭代中的重构.mp4
  • [178.9 MB] 5-
  • 16 (编程 parser05 javascript)语法分析整体程序(下).mp4
  • [172.5 MB] 5-
  • 14 (编程 parse05 java)语法分析整体程序(下)-.mp4
  • [169.5 MB] 5-9 (编程 parser
  • 03 javascript) TinyScript表达式解析.mp4
  • [171.4 MB] 5-18 补课——大批递归来袭之应对.mp4
  • [46.9 MB] 5-6 (编程parser02 javascript——实现最简Parser.mp4
  • [151.8 MB] 5-
  • 15 (编程 parser05 javascript)语法分析整体程序(上).mp4
  • [242.6 MB] 5-
  • 13 (编程 parse05 java)语法分析整体程序(上)-.mp4
  • [182.5 MB] 5-5 (编程parser02 java)——实现最简Parser.mp4
  • [165.8 MB] 5-19 词法语法部分总结——领域驱动视角.mp4
  • [9.6 MB] 5-4 最简表达式分析过程.mp4
  • [25.8 MB] 5-1 数据结构引导——树和抽象语法树.mp4
  • [62.8 MB] 5-8 (编程 parser
  • 03 java) TinyScript表达式解析.mp4
  • [263.2 MB] 5-2 (parser
  • 01 java) 定义抽象语法树.mp4
  • [87.1 MB] 5-12 语法分析的整体程序.mp4
  • [15.7 MB] 5-
  • 10 (编程 parser
  • 04 java) 树的后序遍历——表达式验证.mp4
  • [109.6 MB] 5-3 (parser
  • 01 javascript) 定义抽象语法树.mp4
  • [62.1 MB] 5-
  • 11 (编程 parser
  • 04 javascript) 树的后序遍历——表达式验证.mp4
  • [106.4 MB] 5-7 TinyScript表达式解析——优先级和去左递归.mp4
  • [36.8 MB] 📁 第11章【操作系统】内存管理(内存分配回收全面解答) 第11章【操作系统】内存管理(内存分配回收全面解答)资料.zip
  • [1.8 MB] 11-6 垃圾回收算法选讲——标记、扫地、整理.mp4
  • [38.2 MB] 11-2 地址空间——存储器模型的抽象.mp4
  • [35.6 MB] 11-5 垃圾回收算法选讲——基于引用计数的内存回收算法.mp4
  • [33.6 MB] 11-3 虚拟内存、页表和mmu.mp4
  • [54.6 MB] 11-7 垃圾回收算法选将——分代算法.mp4
  • [17.3 MB] 11-1 内存部分导学.mp4
  • [26.4 MB] 11-4 java,go和js为什么这么玩——理解OS和语言对内存管理的异同.mp4
  • [52.3 MB] 📁 第1章 学前导学(要有准备有目标的学) 第1章 学前导学(要有准备有目标的学)必看.png [493.5 KB] 1-1 学前方向标 (2).mp4
  • [36.8 MB] 1-2 课程中的工具以及学习方法.mp4
  • [112.5 MB] 📁 第6章【编译原理】语法制导翻译(实现中间语言翻译器) 第6章【编译原理】语法制导翻译(实现中间语言翻译器)必看.png [493.5 KB] 6-
  • 10 (编程 trans 03 java)翻译的整体过程和表达式.mp4
  • [146.3 MB] 6-5 (编程trans
  • 01 javascript) 实现符号表.mp4
  • [133.3 MB] 6-2 构造三地址代码——基于SDD的翻译.mp4
  • [28.7 MB] 6-1 综合部分序章——三地址代码.mp4
  • [28.3 MB] 6-8 (编程 trans02 javascript)三地址代码的表示.mp4
  • [98.3 MB] 6-12 翻译——作用域的处理.mp4
  • [15.3 MB] 6-
  • 13 (编程 trans 04 java)翻译——作用域和整体程序.mp4
  • [192.1 MB] 6-6 三地址代码的表示.mp4
  • [8.1 MB] 6-3 词法作用域和符号表.mp4
  • [38.9 MB] 6-
  • 11 (编程 trans 03 javascript)翻译的整体过程和表达式.mp4
  • [121.9 MB] 6-7 编程 trans
  • 02 java) 三地址代码的表示.mp4
  • [87.9 MB] 6-9 翻译的整体过程和表达式.mp4
  • [11.9 MB] 6-
  • 14 (编程 trans 04 javascript)翻译——作用域和整体程序.mp4
  • [337.4 MB] 6-4 (编程trans
  • 01 java) 实现符号表.mp4
  • [188.6 MB] 📁 第7章【编译原理】程序运行环境(实现一个虚拟机) 第7章【编译原理】程序运行环境(实现一个虚拟机)资料.png [493.5 KB] 7-6 (编程 java vm 03)虚拟机—— 指令的编码和解码.mp4
  • [150.8 MB] 7-8 课程总结——如何做一个优秀的架构师.mp4
  • [14.8 MB] 7-4 (编程 java vm 02)指令翻译过程讲解.mp4
  • [123.4 MB] 7-1 冲刺——用虚拟机执行TinyScript程序.mp4
  • [35.4 MB] 7-3 生成器——将三地址代码转化成指令.mp4
  • [37.8 MB] 7-7 (编程 java vm 04)虚拟机执行程序.mp4
  • [140.8 MB] 7-5 (编程 java vm 02)补课——神奇的位运算.mp4
  • [15.9 MB] 7-2 (编程 java vm 01)指令和程序表示.mp4
  • [126.8 MB] 📁 第3章【编译原理】概述(理解编译器) 第3章【编译原理】概述(理解编译器)说明.png [493.5 KB] 3-2 编译原理——研究翻译的科学.mp4
  • [31.8 MB] 3-3 编译器和解释器.mp4
  • [31.9 MB] 3-4 编译器的工作流程.mp4
  • [33.8 MB] 3-1 编译原理课程介绍.mp4
  • [29.0 MB] 📁 第4章【编译原理】词法分析(实现一个词法分析器) 第4章【编译原理】词法分析(实现一个词法分析器)文档.zip
  • [1.8 MB] 4-12 (编程lexer04 Java)——完整的词法分析器.mp4
  • [152.3 MB] 4-10 (编程lexer03 Javascript)——有穷状态机实现词语提取(上).mp4
  • [108.1 MB] 4-5 (编程Lexer02 Javascript)——实现流的peek和putBack操作.mp4
  • [123.3 MB] 4-3 编译器基础能力设计——实现流的peek和putBack操作.mp4
  • [18.1 MB] 4-9 (编程lexer03 Java)——有穷状态机实现词语提取(下).mp4
  • [226.5 MB] 4-4 (编程Lexer01 Java)——实现流的peek和putBack操作.mp4
  • [158.8 MB] 4-1 词法分析器简介.mp4
  • [8.2 MB] 4-13 (编程lexer04 Javascript)——完整的词法分析器.mp4
  • [117.3 MB] 4-2 (编程lexer01)词法分析器的接口(Java和Js).mp4
  • [60.8 MB] 4-11 (编程lexer03 Javascript)——有穷状态机实现词语提取(下).mp4
  • [179.8 MB] 4-7 词法相关理论和正则.mp4
  • [33.5 MB] 4-8 (编程lexer03 Java)——有穷状态机实现词语提取(上).mp4
  • [169.8 MB] 4-6 tips:坚持编写测试用例.mp4
  • [8.4 MB] 📁 第8章【操作系统】概述(历史和核心概念) 8-1 课前导学——学好操作系统要注意什么.mp4
  • [14.6 MB] 8-3 操作系统的历史.mp4
  • [119.7 MB] 8-2 什么是操作系统.mp4
  • [30.2 MB] 8-4 内核和内核设计.mp4
  • [45.0 MB] 📁 第12章【操作系统】文件系统(底层数据结构设计与抽象) 12-1 文件系统和磁盘.mp4
  • [45.3 MB] 12-2 文件和文件的表示.mp4
  • [37.3 MB] 12-3 共享文件和目录.mp4
  • [28.7 MB] 12-5 场景思考100W并发——epoll,select和poll.mp4
  • [49.7 MB] 12-4 虚拟文件系统(VFS)和基于日志的文件系统.mp4
  • [18.1 MB] 📁 第17章【图形学】游戏开发(一起实现一个射击类的3D游戏) 17-2 构造游戏地图——2.5D网格和基础架构.mp4
  • [608.0 KB] 17-3 为角色创建AI——Agent设计模式.mp4
  • [78.9 MB] 17-5 多状态切换——战斗效果.mp4
  • [51.7 MB] 17-6 图形学总结和后续学习建议.mp4
  • [45.3 MB] 17-4 多个GLSL之间切换和Framebuffer.mp4
  • [93.8 MB] 📁 第13章【图形学】概要(小白学图形学第一步) 13-4 向量的世界.mp4
  • [71.9 MB] 13-7 矩阵的乘法(1).mp4
  • [96.5 MB] 13-5 圆的世界.mp4
  • [37.5 MB] 13-6 向量的点乘和叉乘.mp4
  • [98.8 MB] 13-3 图形学历史概述.mp4
  • [107.0 MB] 13-9 渲染图形——从顶点到视区(1).mp4
  • [13.1 MB] 13-8 三角形网格(1).mp4
  • [40.7 MB] 13-2 图形学的基本概念和应用场景.mp4
  • [42.2 MB] 13-1 图形学部分导学.mp4
  • [19.0 MB] 📁 第14章【图形学】 图形渲染流程和WebGL初探(从helloworld逐渐深入) 14-9 简单三维变换和模型的封装.mp4
  • [92.2 MB] 14-9 简单三维变换和模型的封装.mp4_慕课网 2020-07-01 09_12.mp4
  • [92.2 MB] 14-10 3D观察——眼睛和摄像头_慕课网 2020-07-01 09_15.mp4
  • [23.5 MB] 14-8 3d观察——投影和透视.mp4
  • [162.8 MB] 14-7 2d变换和实战(下).mp4
  • [89.5 MB] 14-4 传递数据给GLSL——Buffer管理.mp4
  • [172.0 MB] 14-3 WebGL图形渲染管道.mp4
  • [64.0 MB] 14-10 3D观察——眼睛和摄像头.mp4
  • [23.5 MB] 14-5 绘制3d图形——旋转的立方体.mp4
  • [54.0 MB] 14-2 webgl的第一个程序(下).mp4
  • [133.3 MB] 14-1 webgl的第一个程序(上).mp4
  • [57.0 MB] 14-6 2d变换和实战(上).mp4
  • [115.8 MB] 📁 第16章【图形学】光照和光线追踪(理解世界最核心的——光) 16-3 点光源.mp4
  • [83.3 MB] 16-4 制作手电筒效果.mp4
  • [60.6 MB] 16-1 光照部分导学.mp4
  • [13.7 MB] 16-2 为模型增加直线光源.mp4
  • [116.8 MB] 16-5 光线追踪介绍.mp4
  • [17.2 MB] 📁 第15章【图形学】GLSL(多例子教你用着色器) 15-4 制作一个游戏角色(上)——模型组合.mp4
  • [127.7 MB] 15-6 制作一个游戏角色(下)—— 实现动画.mp4
  • [57.8 MB] 15-2 纹理入门——给图形增加纹理.mp4
  • [107.0 MB] 15-1 GLSL基础语法.mp4
  • [18.3 MB] 15-5 制作一个游戏角色(中)—— 多纹理的原理和处理.mp4
  • [25.9 MB] 15-3 手把手制作球面贴图——地球仪和笑脸.mp4
  • [100.5 MB] 📁 第9章【操作系统】进程和多线程(多线程算法全解和实战高并发) 9-1 应用程序的抽象——进程.mp4
  • [54.1 MB] 9-8 信号量(Semaphore)和互斥量(Mutex).mp4
  • [38.6 MB] 9-6 解决竞争条件的算法——严格轮换法和Peterson算法.mp4
  • [24.3 MB] 9-4 线程——轻量级的进程.mp4
  • [41.9 MB] 9-5 竞争条件和临界区.mp4
  • [16.3 MB] 9-2 进程的三态和中断响应.mp4
  • [21.2 MB] 9-3 多道程序设计和CPU利用率.mp4
  • [11.0 MB] 9-9 总结——万变不离其宗(1).mp4
  • [20.6 MB] 大学计算机必修课新讲--编译原理+操作系统+图形学(17章完整版)文档.png [493.5 KB] 适合人群 计算机专业学生 IT从业者 编程爱好者 学习收获 掌握编译原理基础 理解操作系统原理 学习图形学知识 祝您学习愉快! 学有所成,前程似锦!