软件工程本科生宝典
首页/课程学习引导
课程学习引导

课程学习引导 · 全 40 门

不告诉你「要努力」,而是告诉你每一门课读哪本书的第几章、看哪个网课、写什么代码、面试会被问什么。

共 40 门课程,按类别分组。每门课包含:课程定位、为什么必须学好、核心知识清单、学习方法、真实教材、公开课、网站、GitHub 仓库、实践任务、面试考法与期末应试点。

🔍
数学基础5 门
📐
高等数学 Advanced Mathematics (Calculus)

高等数学以极限为基石,系统讲授一元与多元微积分、无穷级数与常微分方程,是整个理工科知识体系的地基。它训练的是用连续量刻画变化的思维方式:导数描述瞬时变化率,积分把无…

大一上重要 ★★★★★难度 ★★★★
📘
线性代数 Linear Algebra

线性代数研究向量、矩阵与线性变换,是数据、图形、优化、信号处理共同的语言。课程主线是:用矩阵统一表示线性方程组,用行列式判断解的存在与唯一,用向量空间的基与维数理解…

大一上重要 ★★★★★难度 ★★★
📐
离散数学 Discrete Mathematics

离散数学研究离散结构:集合与关系、数理逻辑、组合计数、图论与代数结构,是计算机科学的数学基础课,也是唯一一门与计算机对象直接同构的数学课。它把无限与连续换成有限与可…

大一下重要 ★★★★难度 ★★★★
📘
概率论与数理统计 Probability Theory and Mathematical Statistics

概率论与数理统计研究随机现象的规律:从随机事件与概率公理出发,建立随机变量及其分布,研究多维随机变量、数字特征与极限定理,再进入统计推断、参数估计与假设检验。它把不…

大二上重要 ★★★★★难度 ★★★★
📊
数值分析 Numerical Analysis

数值分析研究用计算机求解数学问题的近似方法与误差控制:包括误差与条件数分析、非线性方程求根、线性方程组与矩阵分解的数值解法、插值与拟合、数值积分与微分、常微分方程数…

大三上重要 ★★★难度 ★★★★
计算机基础7 门
🚀
计算机导论 Introduction to Computer Science

计算机导论是全专业的入口课,负责画出整张地图:计算机发展史与冯诺依曼体系结构、数据的二进制表示与编码、数字逻辑与硬件层次、操作系统与软件的层次关系、算法与程序的基本…

大一上重要 ★★★难度 ★★
💡
数字逻辑电路 Digital Logic Circuits

数字逻辑电路讲授计算机硬件的最底层:数制与编码、布尔代数与逻辑门、组合逻辑电路的分析与设计、时序逻辑电路(触发器与状态机)、以及可编程逻辑器件与硬件描述语言入门。它…

大一下重要 ★★★难度 ★★★
🌲
数据结构与算法 Data Structures and Algorithms

数据结构与算法研究数据如何组织、算法如何设计才能高效运行:线性表、栈与队列、串与模式匹配、树与二叉树、堆与优先队列、图、查找结构(哈希表、平衡树、跳表)以及排序与分…

大二上重要 ★★★★★难度 ★★★★
🔌
计算机组成原理 Computer Organization

计算机组成原理回答计算机是怎么造出来的:以冯诺依曼结构为主线,讲运算器与浮点运算、指令系统与寻址方式、CPU 的数据通路与控制器(硬布线与时序逻辑)、流水线与指令级…

大二下重要 ★★★★★难度 ★★★★★
🧮
算法设计与分析 Design and Analysis of Algorithms

算法设计与分析在数据结构之上更进一步:以算法设计范式为骨架,系统讲授分治、动态规划、贪心、回溯与分支限界、随机化与近似算法,并配以正确的证明与渐近分析(主定理、摊还…

大二下重要 ★★★★难度 ★★★★★
🔩
汇编语言 Assembly Language

汇编语言是机器指令的人类可读形式,课程以 x86(或 MIPS/RISC-V)为主线,讲寄存器与寻址方式、数据传送与算术逻辑指令、标志位与条件跳转、子程序与调用约定…

大三上重要 ★★★难度 ★★★★
⚙️
编译原理 Compiler Principles

编译原理研究如何把源程序翻译成目标代码,主线是前端与后端两段:词法分析(有限自动机与正则表达式)、语法分析(上下文无关文法、LL 与 LR 分析、自顶向下与自底向上…

大三上重要 ★★★★难度 ★★★★★
系统与网络5 门
🐧
Linux系统与Shell Linux System and Shell

Linux 系统与 Shell 是最贴近工程日常的一门课:Linux 文件系统与权限模型、常用命令(文件、文本处理、进程、网络、压缩)、Shell 脚本编程(变量、…

大一下重要 ★★★★难度 ★★★
🖥️
操作系统 Operating Systems

操作系统研究如何管理硬件资源并向上提供抽象:进程与线程、CPU 调度、同步与互斥(信号量、管程、经典同步问题)、死锁的检测与避免、内存管理(虚拟内存、分页与分段、页…

大三上重要 ★★★★★难度 ★★★★★
🌐
计算机网络 Computer Networks

计算机网络以分层体系为主线,讲清数据如何在世界范围内可靠传递:应用层(HTTP、DNS、SMTP)、传输层(TCP 与 UDP、可靠传输、流量与拥塞控制)、网络层(…

大三上重要 ★★★★★难度 ★★★★
🗄️
数据库系统原理 Database System Principles

数据库系统原理研究数据如何被可靠、高效地组织与访问:关系模型与关系代数、SQL 语言(查询、连接、聚合、子查询、视图)、数据库设计与规范化(函数依赖、范式、ER 建…

大三上重要 ★★★★★难度 ★★★★
☁️
云计算与分布式系统 Cloud Computing and Distributed Systems

云计算与分布式系统研究多台机器如何协同完成单机做不到的事:分布式系统基础模型与时钟与一致性问题、CAP 与 BASE、复制与共识(Paxos 与 Raft)、分区与…

大三下重要 ★★★★难度 ★★★★
软件工程10 门
🌿
Git与版本控制 Git and Version Control

Git 与版本控制是最早需要掌握的职业基本功:版本库与工作区与暂存区三区模型、提交与历史查看、分支与合并(fast-forward 与三方合并)、冲突解决、变基与挑…

大一下重要 ★★★★难度 ★★
🧱
面向对象分析与设计(UML) Object-Oriented Analysis and Design (UML)

面向对象分析与设计讲授如何把需求转化为可实现的软件结构:以 UML 为表达语言,学习用例图、类图、时序图、活动图、状态图、组件与部署图;以对象职责分配为核心思想,掌…

大二上重要 ★★★★难度 ★★★
🏗️
软件工程导论 Introduction to Software Engineering

软件工程导论回答一个问题:如何把一个人的编程变成一群人的工程。内容包括软件生命周期与过程模型(瀑布、迭代、敏捷与 Scrum)、需求获取与分析、软件设计(体系结构与…

大二下重要 ★★★★难度 ★★★
📝
软件需求工程 Software Requirements Engineering

软件需求工程聚焦项目最昂贵也最容易出错的环节——需求:需求获取与启发技术(访谈、观察、问卷、原型、工作坊)、需求分析与建模(用例、场景、数据流、状态建模)、需求规格…

大三上重要 ★★★★难度 ★★★
🧪
软件测试 Software Testing

软件测试讲授如何系统性地发现缺陷并建立质量信心:测试的基本概念与原则(测试显示缺陷存在而非不存在)、测试层次(单元、集成、系统、验收)、黑盒方法(等价类划分、边界值…

大三上重要 ★★★★难度 ★★★
🖱️
人机交互 Human-Computer Interaction

人机交互研究人与计算系统之间的交互设计:以用户为中心的设计流程(用户研究与需求、任务分析、概念设计、原型、可用性评估)、交互设计原则与启发式规则(一致性、可见性、反…

大三上重要 ★★★难度 ★★★
🧩
设计模式 Design Patterns

设计模式总结面向对象设计中反复出现的解决方案:以 GoF 二十三种模式为框架,涵盖创建型(单例、工厂方法、抽象工厂、建造者、原型)、结构型(适配器、装饰器、代理、外…

大三上重要 ★★★★难度 ★★★★
📘
软件体系结构 Software Architecture

软件体系结构研究系统的高层结构与关键决策:架构的定义与作用、质量属性(性能、可用性、可修改性、安全性、可测试性)与场景分析、经典架构风格(分层、管道与过滤器、事件驱…

大三下重要 ★★★★难度 ★★★★
🔧
重构与代码质量 Refactoring and Code Quality

重构与代码质量关注代码长期可维护性:以坏味道(重复代码、过长函数、过大类、长参数列表、发散式变化、霰弹式修改、依恋情结、数据泥团、switch 语句、临时字段、异曲…

大三下重要 ★★★★难度 ★★★
📊
软件项目管理 Software Project Management

软件项目管理讲如何让项目在时间与资源约束下按质交付:项目启动与章程、范围管理与工作分解结构(WBS)、进度计划(网络图、关键路径、甘特图、里程碑)、成本估算与预算(…

大四上重要 ★★★难度 ★★★