软件工程本科生宝典
首页/四年规划/大三下学期
第 3 学年 · 第 2 学期

大三下学期学习规划

补全编译原理、软件测试与体系结构,全力冲刺暑期实习,为秋招锁定入场券

本学期主题

补全编译原理、软件测试与体系结构,全力冲刺暑期实习,为秋招锁定入场券

🧭总览

大三下是就业与升学路径正式分岔、并且最能拉开差距的学期。核心任务:一,学完编译原理、软件测试、软件体系结构等专业核心课,补齐软件工程知识体系的最后拼图;二,选修人工智能/机器学习导论,为想走算法方向的同学打开大门;三,全力寻找并拿下暑期实习——这是秋招前最重要的一次「带薪面试训练」,也是很多大厂转正的入口;四,同步确定毕业去向(就业/保研/考研/出国)。时间分配:专业课30%、实习与求职40%、项目与刷题20%、其他10%。目标水平:有一份实习offer(至少一段实习经历)、专业课不挂科、简历上有2到3个能深入讲的项目。常见错误:不重视实习、错过最佳投递时间;编译原理觉得难而放弃;求职时简历堆砌没有重点。

📘课程安排与学习重点

共 6 门。每门课的完整学习引导(教材、网课、实践、面试考法)可在课程库中查看。

编译原理

专业核心3学分/48学时
📌 课程定位

编译原理讲解高级语言如何被翻译成机器可执行代码,涵盖词法分析、语法分析、语义分析、中间代码生成与优化、目标代码生成。它是计算机理论的高峰,也是理解语言本质、写好DSL、做静态分析、以及应对大厂「为什么代码能跑」类深挖问题的基础。

✅ 必须掌握
  • 词法分析与有限自动机(NFA/DFA)
  • 上下文无关文法与语法分析(LL/LR)
  • 语法制导翻译与语义分析
  • 中间代码生成与基本优化
  • 符号表与作用域管理
✍️ 怎么学(含目标分数与刷题量)

教材用《编译原理》(龙书)或陈火旺《程序设计语言编译原理》。重点:词法分析(正则与有限自动机)、语法分析(递归下降、LL、LR)、语法制导翻译、语义分析、中间代码与简单优化。尽量动手实现一个简易编译器(如把算术表达式或迷你语言编译成中间代码)。目标:掌握词法与语法分析的核心算法,能解释编译各阶段职责。

📖 推荐教材
编译原理(龙书)(Aho, Lam等)
程序设计语言编译原理(陈火旺)
🔗 在线资源
中国大学MOOC(搜索「编译原理」,推荐哈工大等课程)
Compiler Explorer(在线查看C++编译后的汇编,直观理解编译过程)

软件测试

专业核心3学分/48学时
📌 课程定位

软件测试研究如何系统性地发现缺陷、保证质量,涵盖黑盒测试(等价类、边界值、因果图)、白盒测试(语句/分支/路径覆盖)、单元测试、集成测试、系统测试、自动化测试与性能测试。它是软件工程中就业方向明确的岗位,也是开发岗面试中的常考点。

✅ 必须掌握
  • 黑盒测试用例设计(等价类、边界值、判定表)
  • 白盒测试覆盖率(语句、分支、路径)
  • 单元测试框架(JUnit/Pytest)
  • 集成测试与系统测试流程
  • 自动化与性能测试基础
✍️ 怎么学(含目标分数与刷题量)

教材用《软件测试》(朱少民)或《软件测试的艺术》。重点:各种测试方法设计用例、测试覆盖率、单元测试框架(JUnit/Pytest)、自动化测试(Selenium)、性能测试(JMeter)。务必动手:给本学期的项目写单元测试与测试用例。目标80分以上,能用JUnit/Pytest为一个模块写出覆盖率较高的测试。

📖 推荐教材
软件测试的艺术(Myers)
软件测试(朱少民)
🔗 在线资源
菜鸟教程(了解测试相关工具基础)

软件体系结构

专业核心3学分/48学时
📌 课程定位

软件体系结构研究大型软件系统的整体结构设计:分层、微服务、事件驱动、SOA等架构风格,以及如何根据质量属性(性能、可用性、可扩展性、安全性)做架构决策。它是你从「写模块」跃升到「设计系统」的关键一课,也是进阶工程师与架构师的分水岭。

✅ 必须掌握
  • 常见架构风格(分层/MVC/微服务/事件驱动)
  • 架构质量属性(性能、可用性、可扩展性)
  • 模块化设计与解耦
  • 架构决策与权衡
✍️ 怎么学(含目标分数与刷题量)

教材用《软件体系结构:实践者的研究方法》或《架构整洁之道》。重点:架构风格(分层、MVC、微服务、事件驱动)、质量属性与架构权衡、模块化与解耦、常见的架构设计模式。建议结合你做的项目分析其架构优劣,尝试用微服务思想重构部分模块。目标80分以上,能画架构图并解释设计取舍。

📖 推荐教材
架构整洁之道(Robert Martin)
软件体系结构(覃征)
🔗 在线资源
Spring官方指南(学习企业级架构实践)

人工智能/机器学习导论

专业核心3学分/48学时
📌 课程定位

这门课带你进入AI世界:机器学习基本概念、监督与无监督学习、线性回归、逻辑回归、决策树、聚类、神经网络与深度学习入门。它是算法方向的核心敲门砖,也是理解当下技术浪潮的必备知识。即使不做算法岗,懂AI也会大幅增加你的竞争力。

✅ 必须掌握
  • 机器学习基本范式(监督/无监督)
  • 线性回归、逻辑回归与梯度下降
  • 决策树、集成学习(随机森林)
  • K-means聚类与PCA降维
  • 模型评估(交叉验证、过拟合、正则化)与神经网络基础
✍️ 怎么学(含目标分数与刷题量)

教材用《机器学习》(西瓜书,周志华)或《统计学习方法》(李航),网课推荐吴恩达机器学习(Coursera/B站)。重点:监督学习(线性/逻辑回归、决策树、SVM)、无监督学习(K-means、PCA)、模型评估(交叉验证、过拟合与正则化)、神经网络基础。务必用Python+scikit-learn动手实现模型。目标:能用sklearn完成一个完整的分类/回归任务并评估效果。

📖 推荐教材
机器学习(周志华(西瓜书))
统计学习方法(李航)
机器学习实战:基于Scikit-Learn、Keras和TensorFlow(Aurélien Géron)
🔗 在线资源
吴恩达机器学习(最经典的机器学习入门课)
scikit-learn官方文档(Python机器学习工具库文档)
Kaggle Learn(免费实战课程与数据集)

生产实习/企业实习

实践4学分/8周
📌 课程定位

实习是把课堂知识转化为职场能力的唯一途径,也是秋招最有力的筹码。一段大厂或优质公司的实习,往往能让你在校招中占据巨大优势,甚至是转正的直达通道。它的价值远超任何一门课。

✅ 必须掌握
  • 简历撰写与STAR法则表达
  • 笔试常见算法题
  • 面试八股(语言/网络/OS/数据库)
  • 职场协作与沟通
✍️ 怎么学(含目标分数与刷题量)

时间线:大三上期末(12月-1月)就要开始投递暑期实习,很多大厂提前批在2到3月开启。准备:一份打磨过的简历、刷题(笔试用)、项目复盘、常见八股(语言/网络/操作系统/数据库)。渠道:牛客网实习专场、公司官网、Boss直聘、学长学姐内推。目标是拿到一段至少2到3个月的实习,并有具体产出(能写进简历的功能或优化)。即使没进大厂,一段中小公司实习也远好过零实习。

📖 推荐教材
剑指Offer(何海涛)
🔗 在线资源
牛客网(实习内推、笔试真题与面经聚集地)
Boss直聘(直接与招聘方沟通,适合找实习)
📌 课程定位

各校在大三下会开设方向选修,如云计算与虚拟化、大数据技术(Hadoop/Spark)、Android/iOS开发、网络安全等。选择与你就业方向一致的课程,能让你的技能树更聚焦。

✅ 必须掌握
  • 所选方向的核心技术栈
  • 至少一个该方向的完整实践项目
✍️ 怎么学(含目标分数与刷题量)

跟着就业方向选:走后端/云原生选云计算与容器(Docker/K8s);走数据选大数据;走客户端选移动开发;走安全选网络安全。认真完成课程项目,让它成为你作品集的一部分。目标:产出一个小型的、能展示的方向项目。

📖 推荐教材
Docker技术入门与实战(杨保华)
🔗 在线资源
菜鸟教程(各技术方向速查入门)

💪本学期必须练出的技能

🎯

实习求职能力

目标:拿到至少一段暑期/日常实习offer

打磨简历、刷笔试题、准备八股、通过牛客/Boss投递并复盘每次面试

🎯

机器学习实践

目标:能用Python+sklearn独立完成一个完整的ML任务

在Kaggle做Titanic或House Prices入门赛,走完数据处理到模型评估全流程

🎯

编译原理动手能力

目标:能实现一个简易的词法/语法分析器

跟着课程或网课实现一个迷你语言的编译器前端

🎯

面试表达与复盘

目标:能把项目用STAR法则讲清楚并回答追问

每次面试后写复盘,记录被问倒的问题并补上短板

🛠️项目实战(写进简历的素材)

🛠️

毕业设计预研项目/方向深化项目

时间:第3周到第18周

围绕未来毕设或就业方向做一个有技术含量的项目,例如:基于Spring Cloud的微服务系统、基于Spark的数据分析平台、基于PyTorch的图像分类应用或一个带自动化的测试框架。要求:有清晰的技术选型理由、完整的文档、可演示的效果,并能讲清楚遇到的难点与解决方案。验收标准:项目能跑通并演示,有架构或实验报告,托管到GitHub并写清README。它将直接成为你毕设的铺垫与秋招简历的核心。

Spring Cloud/Spark/PyTorch等(按方向选择)
🛠️

为已有项目补全测试与CI

时间:第6周到第12周

选择你之前的一个项目,为它补齐单元测试(JUnit/Pytest)和集成测试,配置GitHub Actions或Gitee Go做持续集成(自动构建+跑测试),并补充README与API文档。验收标准:测试覆盖率报表可展示、CI能自动运行、有缺陷修复记录。这一步能让你的项目从「学生作业」提升到「工程实践」的层次,面试时非常加分。

JUnit/PytestGitHub ActionsGit

⏱️时间分配建议

专业核心课(编译/测试/体系结构/AI)28%
实习与求职(投递/笔试/面试)37%
方向项目与刷题22%
英语与通识6%
运动与休息7%

每周课外投入32到40小时,是就业冲刺学期。专业核心课(编译原理、软件测试、体系结构、AI导论)占约30%,保证不挂科并掌握核心考点。求职与实习占约35%:从开学第一周就把投递简历作为固定任务(每周投递+跟进),刷题与八股准备穿插进行,接到面试后优先准备。项目与刷题占约25%,主要用于补全测试/CI与深化方向项目。第6周后若已入职实习,则把重心转向实习产出与转正机会,同时保证课程与实践学分。每周日晚复盘:投递了多少家、面试进度、课程是否掉队。

💎本学期推荐资源

📖 书单

机器学习(西瓜书)周志华

AI方向必读中文经典

编译原理(龙书)Aho等

编译原理权威

软件测试的艺术Myers

测试思想经典

剑指Offer何海涛

面试算法题必备

🎬 视频课程

编译原理中国大学MOOC / 哔哩哔哩
吴恩达机器学习Coursera / 哔哩哔哩
软件测试中国大学MOOC
面试八股与算法冲刺哔哩哔哩 / 牛客网

🌐 网站与文档

实习/校招信息、笔试真题与面经

机器学习实战与竞赛

机器学习工具文档

🐙 GitHub 仓库

后端面试与知识体系

算法刷题路线

算法实现参考

✅学期末检查清单

✔️ 做到了就算合格
  • 拿到至少一段暑期或日常实习offer
  • 编译原理掌握词法与语法分析核心算法
  • 能用Python+sklearn独立完成一个ML任务
  • 为项目补全单元测试并配置CI流水线
  • 明确毕业去向(就业/保研/考研/出国)并制定计划
  • 累积面经复盘,形成个人的面试知识清单
⚠️ 常见坑
  • {'坑': '不重视实习,认为大四再找也来得及', '破解': '暑期实习是大厂转正与秋招的入场券,务必在大三上期末就开始投递,错过时间窗口代价极大'}
  • {'坑': '编译器难度高就彻底放弃', '破解': '至少掌握词法分析(NFA/DFA)与语法分析基本方法,能读懂并实现简易前端即可,不必追求全部精通'}
  • {'坑': '简历堆砌但不突出亮点,面试讲不清项目', '破解': '每个项目用STAR法则准备1到2分钟的讲解,并预判会被追问的技术点'}
  • {'坑': '求职只看大厂,一次失败就心态崩', '破解': '把面试当训练,广撒网并复盘,中小公司实习同样是宝贵经历'}