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

大三上学期学习规划

攻克计算机网络、算法设计与软件工程,把方向项目做精,开始为实习与就业预热

本学期主题

攻克计算机网络、算法设计与软件工程,把方向项目做精,开始为实习与就业预热

🧭总览

大三上是课程含金量与就业紧迫感同时拉满的学期。核心任务:一,学透计算机网络(TCP/IP、HTTP、路由、网络编程)与算法设计与分析(分治、动态规划、贪心、图算法、NP),这两门是大厂笔试面试的重灾区;二,深化软件工程,学会团队协作与项目管理;三,围绕技术方向做一个有技术深度的项目(如微服务、高并发、分布式),并开始准备简历;四,同步关注实习信息,为明年初的春招实习做准备。时间分配:网络20%、算法20%、方向项目与Web开发30%、软件工程15%、其他15%。目标水平:能解释从输入网址到页面显示的完整过程、能独立解中等难度算法题、拥有至少两个可以讲20分钟的项目。常见错误:网络只背八股不抓原理;算法刷题三天打鱼两天晒网;项目同质化且没有亮点。

📘课程安排与学习重点

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

计算机网络

专业核心4学分/64学时
📌 课程定位

计算机网络讲解数据如何在网络中传输,涵盖OSI与TCP/IP分层、物理层到应用层、TCP可靠传输、IP路由、HTTP、DNS等。它是后端开发、网络安全、云计算、分布式的共同基础,也是面试中考察原理深度的核心科目(三次握手、四次挥手、拥塞控制、HTTP与HTTPS几乎必问)。

✅ 必须掌握
  • OSI与TCP/IP分层模型
  • TCP三次握手、四次挥手、状态机与拥塞控制
  • IP地址、子网划分与路由选择
  • HTTP/HTTPS协议与请求响应过程
  • DNS解析与Socket网络编程
✍️ 怎么学(含目标分数与刷题量)

教材用谢希仁《计算机网络》(国内主流)或《计算机网络:自顶向下方法》。重点:分层结构、TCP三次握手与四次挥手、可靠传输与拥塞控制、IP与子网划分、路由算法、HTTP/HTTPS、DNS、Socket编程。务必动手写Socket程序、用Wireshark抓包分析。目标85分以上,能把「输入网址到显示页面」讲成完整链路。

📖 推荐教材
计算机网络(谢希仁)
计算机网络:自顶向下方法(Kurose, Ross)
🔗 在线资源
小林coding图解网络(中文图解网络与系统,面试复习神器)
中国大学MOOC(搜索「计算机网络」跟课学习)

算法设计与分析

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

这门课超越基础数据结构,系统讲解算法设计的范式:分治、动态规划、贪心、回溯、分支限界、随机化,以及复杂度分析与NP完全性。它是计算机专业思维的高峰,也是大厂笔试面试拉开差距的关键,动态规划与图算法几乎每场必考。

✅ 必须掌握
  • 算法复杂度分析与递归式求解
  • 分治法与归并/快速排序
  • 动态规划(背包、LCS、编辑距离、区间DP)
  • 贪心算法与正确性证明
  • 图算法(Dijkstra、Floyd、最小生成树、拓扑排序)
  • 回溯与NP完全性基本概念
✍️ 怎么学(含目标分数与刷题量)

教材用《算法导论》或王晓东《计算机算法设计与分析》。重点:分治(归并、快排)、动态规划(背包、LCS、编辑距离、区间DP)、贪心(活动选择、哈夫曼)、图算法(最短路、最小生成树)、回溯与分支限界。配合LeetCode中等题与《代码随想录》系统刷题。目标80分以上,能独立完成中等难度DP与图论题。

📖 推荐教材
算法导论(CLRS)
labuladong的算法小抄(付东来)
🔗 在线资源
力扣 LeetCode 中国(按算法专题刷题,重点攻克DP与图)
代码随想录(系统刷题路线与题解)

Web开发技术/全栈开发

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

Web开发是就业面最广的技能,涵盖前端(HTML/CSS/JS/框架)、后端(接口、鉴权、数据库)、以及前后端如何协作。它把操作系统、数据库、网络的知识融会贯通到一个具体应用里,也是你项目落地的主战场。

✅ 必须掌握
  • HTML/CSS/JavaScript基础与响应式布局
  • 前端框架(Vue/React)组件化开发
  • 后端RESTful接口设计与鉴权
  • 前后端分离与跨域处理
  • 基础部署(Nginx/云服务器)
✍️ 怎么学(含目标分数与刷题量)

前端掌握HTML/CSS/JS与一个框架(Vue或React),后端掌握Spring Boot或Node/Express,理解RESTful接口、鉴权(JWT/Session)、跨域、部署。做一个完整项目贯穿始终。目标:能独立开发并部署一个带用户体系的全栈应用。

📖 推荐教材
JavaScript高级程序设计(Matt Frisbie)
深入理解计算机系统(CSAPP)(Bryant)
🔗 在线资源
MDN Web Docs(Web开发最权威文档)
Vue官方文档(前端框架首选中文文档)
菜鸟教程(Web前端速查)

软件工程(团队项目实践)

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

本学期把软件工程从理论推向实践:以团队形式完成一个真实项目,走完需求、设计、开发、测试、交付全流程,学会用Git协作、写文档、做代码评审、按敏捷迭代推进。它直接模拟了企业里真实的开发方式。

✅ 必须掌握
  • 需求规格说明书与设计文档编写
  • Git团队协作流程(分支、PR、代码评审)
  • 敏捷迭代与任务管理
  • 测试用例设计与缺陷跟踪
✍️ 怎么学(含目标分数与刷题量)

以4到6人小组做一个完整项目,使用Git分支协作、任务看板(如GitHub Projects或TAPD)、代码评审。重点掌握:需求规格说明书、概要设计、详细设计、测试用例编写、迭代计划。目标:团队项目按期交付,你个人在其中有清晰的分工与贡献,并会写规范的提交记录。

📖 推荐教材
代码整洁之道(Robert Martin)
Git中文电子书(Pro Git)
🔗 在线资源
Git中文电子书(系统学习Git协作)
GitHub(用真实平台管理团队项目)

概率论/数值分析(专业选修方向课)

专业基础3学分/48学时
📌 课程定位

很多学校在大三开设数值分析、计算方法或进一步的数学选修,为算法/数据方向学生提供数值计算、误差分析、线性方程组求解、插值拟合等工具。想走AI/算法/图形学方向的学生务必重视。

✅ 必须掌握
  • 误差分析与数值稳定性
  • 插值(拉格朗日、牛顿)与最小二乘拟合
  • 数值积分与微分
  • 线性方程组迭代解法
✍️ 怎么学(含目标分数与刷题量)

重点:误差与稳定性、插值与拟合、数值积分、线性方程组的数值解法、常微分方程数值解。用Python(NumPy)实现算法加深理解。目标80分以上,为后续机器学习课程打好数值基础。

📖 推荐教材
数值分析(李庆扬)
🔗 在线资源
NumPy官方文档(用Python实现数值算法)

大学英语(部分学校已结课)

通识2学分/32学时
📌 课程定位

若英语已结课,则转为自主维持:每天读英文技术文档、坚持背单词,为实习面试与外企机会做准备。英语是长期资产,不能因为课程结束就断档。

✅ 必须掌握
  • 英文技术文档阅读
  • 技术场景下的听说能力(面试)
✍️ 怎么学(含目标分数与刷题量)

每天固定20到30分钟英文技术阅读(英文官方文档、技术博客)。有出国或外企意向者准备托福/雅思。课内若有则保持80分以上。

📖 推荐教材
—
🔗 在线资源
MDN Web Docs(练习英文文档阅读)

💪本学期必须练出的技能

🎯

算法进阶与笔试准备

目标:能独立解LeetCode中等题,笔试通过率明显提升

按专题(DP、图、字符串、贪心)系统刷题,累计400题以上

🎯

全栈项目开发

目标:能独立设计并开发带用户体系的全栈应用

完成一个前后端分离项目并部署上线,涵盖鉴权、数据库、接口

🎯

网络原理与抓包分析

目标:能用Wireshark抓包分析TCP握手与HTTP请求

自己用Socket写客户端服务端,用Wireshark分析真实流量

🎯

简历初稿制作

目标:产出一份可用于投递实习的简历

整理项目经历与技术栈,控制在1页,找学长学姐或老师帮忙review

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

🛠️

在线商城/论坛系统(含高并发初步实践)

时间:第4周到第17周

在大二博客项目基础上做技术升级:实现用户、商品/帖子、订单/评论、搜索等模块,后端用Spring Boot + MySQL + Redis做缓存,前端用Vue,加入JWT鉴权和简单的限流。要求写清架构图、接口文档,并用压测工具(如JMeter)测试接口QPS并做初步优化(加缓存、加索引)。验收标准:功能完整、有压测数据、能讲清楚缓存与索引如何提升性能、代码托管并写清部署文档。这是一个能体现技术深度的简历核心项目。

Spring BootMySQLRedisVueNginx
🛠️

Socket网络编程实验:简易聊天室

时间:第8周到第14周

配合计算机网络课程,用Java或Python实现一个支持多客户端并发的聊天室,服务端用多线程或IO多路复用处理连接,客户端能发送消息并广播给所有人,并抓包分析TCP连接建立与数据传输过程。验收标准:多个客户端能并发通信、能演示三次握手与四次挥手抓包截图、代码有注释。它能让你把网络原理真正落到代码上。

Java/PythonSocketWireshark

⏱️时间分配建议

计算机网络18%
算法设计与分析18%
方向项目与Web开发30%
软件工程与团队协作14%
就业准备与刷题12%
英语与其他8%

每周课外投入32到38小时,是就业导向学习正式起步的学期。计算机网络与算法各占约18%,建议各固定每周3个晚上的学习区间并配合实验。方向项目占约30%,第4周起持续推进,周末整块时间用于项目开发与部署。软件工程以团队项目形式融入其中。第10周起开始整理简历与关注实习信息,每周花2小时研究目标公司的招聘要求。刷题保持每天1到2题(以中等题为主)。英语每天20分钟维持。每周日晚复盘:核心课掌握程度、项目进度、简历与实习准备进展。

💎本学期推荐资源

📖 书单

计算机网络:自顶向下方法Kurose, Ross

网络最佳教材

算法导论CLRS

算法深入参考

深入理解计算机系统(CSAPP)Bryant

理解系统级编程

代码整洁之道Robert Martin

工程素养必修

🎬 视频课程

计算机网络中国大学MOOC / 哔哩哔哩
算法设计与分析中国大学MOOC
Spring Boot全栈实战哔哩哔哩
MIT 6.824 分布式系统MIT 公开课(进阶)

🌐 网站与文档

图解网络与操作系统,面试必备

算法刷题主战场

笔试真题与面经,找工作必看

Web开发权威文档

🐙 GitHub 仓库

算法刷题系统路线

Java后端面试与知识体系

计算机学习资源大全

✅学期末检查清单

✔️ 做到了就算合格
  • 计算机网络能讲清从URL到页面显示的全过程
  • 算法能独立解中等难度DP与图论题,累计刷题400+
  • 拥有一个含缓存/索引优化、能讲架构的全栈项目
  • 完成Socket聊天室与Wireshark抓包分析
  • 产出第一版可用于投递的简历
  • 开始关注并筛选目标企业与实习岗位信息
⚠️ 常见坑
  • {'坑': '计算机网络只背八股不抓原理,面试一问深就露馅', '破解': '坚持边学边抓包、边写Socket,把每个协议的报文和流程亲手验证一遍'}
  • {'坑': '算法刷题缺乏系统,随缘刷题难以提升', '破解': '按专题系统刷(DP、图、字符串),每类集中攻克并写题解总结规律'}
  • {'坑': '项目同质化、只有CRUD没有亮点', '破解': '主动引入缓存、索引优化、并发等技术点,并记录性能数据作为亮点'}
  • {'坑': '只顾学习不关注就业,到大四才发现简历空白', '破解': '第10周起开始整理简历、研究招聘JD,让学习目标与就业要求对齐'}