软件工程课程第一周作业
个人介绍与软件工程课程学习规划
| 这个作业属于哪个课程 | https://edu.cnblogs.com/campus/gdgy/Class78-Grade2024-CS |
|---|---|
| 这个作业要求在哪里 | https://edu.cnblogs.com/campus/gdgy/Class78-Grade2024-CS/homework/15710 |
| 这个作业的目标 | 搭建个人博客,完成课程随笔作业;梳理个人现状、制定学习计划;阅读《构建之法》提出高质量问题;阅读前人博客吸取经验教训,建立软件工程学习思维 |
介绍自己
我是广工计算机专业大三学生,后续会在这里记录软件工程课程作业、项目实践、学习思考。写博客需要长期坚持,我会持续更新,也欢迎同学们提出不同意见,理性反驳我的观点,在交流中互相进步。
希望博客可以沉淀我的技术成长,记录踩坑与收获,长期复盘自己学习过程。
现状、经验和计划
(1) 专业现状与技能差距
我选择计算机专业,是因为对软件系统如何从想法变成可用产品充满好奇。但是距离一名合格 IT 毕业生,我还有不少能力短板。
| 技能 | 目前水平 | 课程结束目标 | 提升手段 |
|---|---|---|---|
| 程序编写与 bug 调试 | 3 | 6 | 完成课程个人、结对、团队项目,遇到 bug 主动分析,记录调试笔记 |
| Git 版本控制 | 2 | 6 | 所有课程项目使用 Git 管理,练习提交、分支、合并、冲突处理 |
| 需求分析与软件设计 | 2 | 5 | 研读《构建之法》,参与项目前期设计,练习撰写需求文档 |
| 软件测试 | 2 | 5 | 学习单元测试,给自己写的代码补充测试用例,做完项目做测试复盘 |
| 团队项目协作沟通 | 3 | 6 | 积极参与结对、团队项目,主动沟通分工,参与小组讨论 |
| 文档撰写能力 | 2 | 5 | 坚持写博客随笔,练习项目说明、需求文档的写作 |
(2) 阅读博客心得
a) 你为何要来上课并且认真参与
网上有大量免费教学视频,看似自学就可以学会写代码。但是自学容易碎片化,只学会敲示例代码,缺少完整软件工程思想,很难体验工业界真实团队开发流程。课堂可以搭建完整知识体系,结对编程、团队项目是自学很难获得的实战机会。同时课堂和博客的交流,能够看到其他人不同思路,发现自己认知盲区,所以我会认真参与课程学习。
b) 师生关系与作业困难处理
大学师生是引导者与主动探索者的关系。老师负责讲授知识、指引方向,学生主动思考提问,不是被动等待灌输。
当作业难度超出我的能力,我选择C:向老师和同学请教,花更多时间,把作业全部完成。遇到难题先自己查阅资料尝试解决,实在无法解决,主动找同学讨论、向老师提问,分配更多时间尽力完成任务,不直接放弃或者索要及格分。
c) 引用、参考资料与抄袭剽窃的区别
合理引用参考:借鉴他人资料,清晰标注来源,在别人成果之上做独立修改、拓展创新,属于正常学习行为。
抄袭:直接复制粘贴别人的文字、代码,不标注出处,直接当做自己的产出。
剽窃:盗用他人成果,少量修改,隐瞒原始来源,冒充自己原创。
本课程我严格遵守学术规范,凡是参考的代码、文章都会标注来源,作业坚持独立思考,杜绝抄袭。学校对于抄袭行为有相应处分,我会时刻提醒自己。
(3) 未来方向选择、优劣势、本学期规划
几年之后,我的目标是从事软件开发工程师岗位。
- 优势:能够长期坚持做一件事,遇到问题愿意反复调试复盘;有主动学习的习惯,愿意接触新的技术;可以适应团队协作。
- 劣势:大型项目实战经验匮乏,工程思维薄弱,代码积累量不足,对完整软件开发生命周期不熟悉。
本学期规划:
- 认真完成软件工程全部作业:博客随笔、个人项目、结对项目、团队项目;
- 读完《构建之法》,做好阅读笔记,输出思考问题;
- 积累项目实战经验,熟练 Git 工具,练习各类项目文档撰写;
- 每周复盘本周学习,及时补齐薄弱知识点。
(4) 本课程学习计划,时间、代码量
我目前总代码量约3000 行,主要语言为 C、Java。
想要入职一流软件企业,不只是追求代码行数,更看重代码质量、完整项目实战经验。
我计划每周投入课程8 小时(包含上课)。
如果前两年浪费很多时间,我选择D:比以前课要多很多,直到达到目标为止。
课程结束计划新增代码量:2400 行,每周完成170 行有效代码。
WOOP 计划
- Wish(愿望):课程结束掌握完整软件工程开发流程;独立完成个人项目,参与团队项目;熟练 Git 工具;博客持续输出课程随笔,建立工程化思维。
- Outcome(结果):能够独立完成小型软件项目,掌握需求分析、设计、编码、测试、发布完整流程;博客有多篇高质量随笔;GitHub 存放完整课程项目,为后续实习打下基础。
- Obstacles(障碍)
内部障碍:写代码遇到复杂 bug 容易烦躁拖延;容易被手机娱乐分散注意力;多任务来临时优先做简单任务,把软工任务向后推迟。
外部障碍:其他课程挤压时间;项目遇到卡点找不到解决思路。
最可能失败因素:任务拖延堆积,临近截止日期仓促应付作业。 - Plan(If‑Then 风险防范)
- 如果写代码时忍不住刷手机:立刻关闭娱乐软件,先完成 30 分钟编码任务,再休息。
- 如果长时间调试 bug 没有进展:记录自己尝试过的方案,不盲目死磕,及时向同学、老师求助,不搁置任务。
- 如果多门课程任务冲突:做好任务优先级排序,软件工程任务绝不拖到截止前一天,拆解为每日小目标。
3. 提有质量的问题,给认真的反馈
阅读《构建之法》,提出 5 个问题:
- 第 3 章 软件工程师的成长:书中提倡工程师使用 PSP 记录个人开发流程。对于学生小型课程项目,任务简单,记录 PSP 会消耗不少额外时间,对于新手来说 PSP 带来的收益是否会小于记录成本?
我看到了这一段文字:学生也可以用 PSP 记录自己的开发过程。我有这个问题:简单课程小项目,花大量时间记录 PSP,性价比高吗?根据我的实践,小项目开发周期很短,记录各项数据会占用不少开发时间。但是我还是不太懂,课程作业场景下,我们应该多大程度严格执行 PSP?
- 第 5 章 团队和流程:书中介绍了多种团队模式。课程学生团队每个人技术水平差距较大,我们是否需要完全照搬工业界成熟团队模式,还是需要做适配修改?
我看到了这一段文字:不同团队模式适用不同场景。我有这个问题,学生课程项目团队,技术参差不齐,怎么选择合适团队模式?根据我的实践,小组内同学能力差距明显。我的困惑是,学生团队直接照搬工业团队模式会不会水土不服?
- 第 8 章 需求分析:书中大量讲解面向真实用户的需求获取方法。但是课程项目大多面向老师评分,没有真实用户,这种情况下我们如何模拟真实的需求分析?
- 第 11 章 软件测试:对于学生开发的小型项目,多高的测试覆盖率才算合格?过度编写单元测试会不会造成时间浪费?
- 第 16 章 创新:书中划分不同等级创新。普通学生缺少资源,在课程项目中,如何做出真正有价值创新,而不只是简单复刻已有功能?
课程反馈态度
选择D:经常提问题,平时就经常给老师和助教提反馈。学习过程遇到概念困惑、作业难点主动提问;对于课程体验有想法,及时反馈老师助教,帮助课程迭代优化。
4. 前车之鉴
感想一
链接:https://book.douban.com/subject/4006425/discussion/22803961/
标题:你是否也觉得自己是科班,但没学懂计算机?
读后感:很多科班学生考试可以拿到不错分数,但是动手做项目的时候却感觉无从下手。课本学习偏向理论,缺少动手落地训练,知识点是碎片化的。读完之后我意识到,不能仅仅满足考试及格,要主动给自己创造实践机会。软件工程课程的作业、项目就是非常宝贵机会,要主动把课堂理论落实到代码实践,不能只听课背书。
感想二
链接:https://book.douban.com/subject/4006425/discussion/22802960/
标题:把每天胡思乱想的东西记在一个笔记本上,作为思维快照,并常常翻回去自省,看看过去和现在的变化。这样的习惯呢?
读后感:文章提到 “思维快照”,记录自己的想法、困惑,定期回看复盘。很多时候当下想通的知识点,一段时间之后就遗忘。写博客随笔就是数字化的思维快照。不仅仅是完成作业,我也会在这里记录自己真实困惑,隔一段时间回看,看清自己认知的成长变化。
编辑页面:

Giehub仓库:

浙公网安备 33010602011771号