软件工程第一周作业

这个作业属于哪个课程 https://edu.cnblogs.com/campus/gdgy/Class78-Grade2024-CS
这个作业要求在哪里 https://edu.cnblogs.com/campus/gdgy/Class78-Grade2024-CS/homework/15710
这个作业的目标 介绍自己完成博客;表明现状、经验与计划;学会提出问题与反馈;领略前车之鉴

1. 介绍自己,建博客

我是shl,这是我第一次在博客园写博客,建博客的目的是练习三件事:怎么写博客、怎么上传代码版本管理、遵守博客格式

写博客是一件花时间的事,从构建格式到细化完善要用很长的时间,但这其中往往会引发我的很多思考,收获很多感悟,所以我觉得这是一件很有意义的事情。


2. 现状、经验和计划

(1)为什么选择这个专业

我对计算机一直有好奇心,喜欢自己亲手写代码构建出一个东西的成就感。

技能调查表

技能 当前水平 (0-9) 课程结束目标 (0-9) 提升手段
编程理解 3 6 多写多理解代码,查阅资料
需求分析 2 5 联系分析案例
项目管理 1 5 在实践中学习掌握
团队协作 1 6 加强沟通能力,多与人交流
软件测试 3 5 全面多方面的测试思考
学习能力 3 5 严肃认真要求自己

以上分数是我对自己的评估。

(2)阅读心得

a) 为何要来上课并且认真参与


大学课堂与以往中小学的课堂不同,大学的课堂更多的是为了自己发展专业能力学习的平台。除此之外,认真听课的收获不只是知识本身,还在与老师和同学交流中领悟的思维方式、同学讨论产生的碰撞。

b) 师生关系与作业

在大学里我体验到的师生关系:大多是老师讲、学生听,课后交流很少,作业交了只有分数没有反馈。我希望这门课是“教练与学员”的关系,老师指出我的问题,我反复修改,直到做对为止。

如果老师布置的作业对我来说有些困难,我的选择是:C —— 向老师和同学请教,花更多时间,把作业全部完成。

c) 引用参考和抄袭剽窃的区别

我们引用文献、参考别人的资料、在别人工作的基础上继续开发,这些是合理借鉴;而抄袭、剽窃是把别人的成果当作自己的成果

我们在开发中可以合理引用参考,但应标注出处。

(3)未来发展选择:优势、劣势、本学期规划

未来我的选择是:毕业后先进入软件行业做开发,积累 2–3 年经验后再决定是否继续深造

  • 我的优势:动手意愿强,愿意花时间研究问题。
  • 我的劣势:基础不扎实,能力较弱。
  • 针对该选择,我本学期的规划:以这门课为主线,把工程能力补起来——认真完成每次作业和团队项目;每天固定刷 1–2 道算法题;学习 Git 并保持 GitHub 活跃;期末前做出一个可以放进简历的个人项目。

(4)这门课的计划、代码量、时间投入、WOOP 计划

对课程的期待与规划

我期待这门课能让我体验一个完整的软件项目流程:从需求分析、设计、开发、测试到发布,而不仅仅是写代码。

是否想当助教:想当助教,因为讲解能逼自己理解得更深,也能帮助同学。

目前的代码量

语言 代码量(行)
C / C++ 约 2000
Python 约 500
Java 约 800
合计 约 3300

时间投入

我打算每周拿出 12 小时 在这门课上。前两年我确实浪费了不少时间,现在要赶上,我的态度是:D —— 比以前课要多很多,直到达到目标为止。

代码目标

课程结束时,我计划累计完成 约 15000 行代码(含作业与项目),平均每周 约 600 行

WOOP 计划

第一步,Wish:课程结束时,我能独立完成一个有完整功能的软件项目,通过课程面试水平的技术考核,博客留下有价值的记录。

第二步,Outcome:想象愿望实现——我在答辩时自信地演示自己的项目,代码逻辑清晰、测试完备,老师同学认可;简历上多了一段拿得出手的经历,我对找实习有了底气。那种"我真的做出来了"的感觉,是我最想得到的。

第三步,Obstacles拖延,总想"明天再写";静不下心,写代码时脑子里想的是游戏和短视频;基础差,看不懂就烦躁放弃。

最可能导致我达不到目标的一项因素不能长期自律——一开始热血沸腾,三周后松懈,最后期末前突击。

我的克服办法:不靠意志力硬扛,靠制度和环境——把手机放在够不到的地方;固定每天 19:00–21:30 为编程时间并写进日程;找一位同学互相监督;每周日晚在博客上写本周复盘,公开承诺下周目标。

第四步,Plan(If–Then 预案)

  • 如果我想在写程序的时候刷手机,那么我就把手机放到床上,到书桌前继续写。
  • 如果我一晚上写不出代码、烦躁想放弃,那么我就去操场跑 3 圈,回来把问题拆成更小的步骤,从最简单的第一步开始。
  • 如果某周其他课作业太多挤占时间,那么我就提前和小组同学调整分工,保证这门课每周至少 12 小时底线投入。

3. 提有质量的问题,给认真的反馈

快速读完《构建之法》后,我提出 5 个问题。以下是读后不理解的,并附上我的分析和依据。

问题1

我的问题:项目、程序比较复杂时,怎样高效理解程序?
结合自身经验:读大段代码经常容易理不清逻辑。
困惑:有没有简单可落地的方法快速读懂复杂项目代码。

问题2

我的问题:初级软件工程师,是掌握更多领域好,还是深耕某一方向更好?
结合自身经验:不知道学习该广撒网还是专注一点。
困惑:两种发展路线分别适合什么样的情况。

问题3

我的问题:用户自己都说不清真实需求时,该怎么做需求分析?
结合自身经验:设想的功能和实际使用会出现偏差。
困惑:如何分辨伪需求和真实需求。

问题4

我的问题:项目工期紧张,测试时间不足应当如何取舍?
结合自身经验:赶进度时经常压缩测试环节。
困惑:如何平衡开发进度与测试质量。

问题5

我的问题:普通学生做软件项目,一定要做出创新点吗?
结合自身经验:大部分作业项目都是复刻现有功能。
困惑:没有创新的项目是否同样具备价值。

关于课程反馈,我会怎么做:

我的选择是 D —— 经常提问题,平时就经常给老师和助教提反馈

理由:我既然把老师当"教练",就应该经常问"为什么我的代码还是有问题""这个练习为什么要做"。有问题当场问,反馈按时认真填,老师和助教才能知道我们哪里没懂,教学才能改进。


4. 前车之鉴

前人走过的路,留下了很多经验教训。我选了 3 篇阅读,写下具体感想。

感想一:把每天的事情分成 ABCD 四类

文章链接:https://book.douban.com/subject/4006425/discussion/22803733/

这篇文章提出把每天要做的事分成四类:A-紧迫且重要,B-重要不紧迫,C-紧迫不重要,D-不重要不紧迫。核心观点是:很多人整天忙忙碌碌,其实都在做 C 和 D,而决定人生走向的 B 类事情(重要但不紧迫,比如学习、锻炼、读书)反而一直被拖延。

读完我很有感触。我以前就是典型的"C 类忙碌者":每天被作业、通知、临时任务追着跑,感觉累得要死,但期末回头看,真正重要的积累(算法、英语、项目)几乎没做。这篇文章点醒我:"忙"不等于"有价值"

感想二:把胡思乱想记在笔记本上,作为思维快照

文章链接:https://book.douban.com/subject/4006425/discussion/22802960/

这篇文章建议:把每天胡思乱想的东西记在一个笔记本上,作为"思维快照",并常常翻回去自省,看看过去和现在的变化。

我以前觉得"胡思乱想"是浪费时间,应该努力不想。但这篇文章让我意识到:记录思维的过程,其实是在训练元认知——你开始观察自己在想什么、为什么这么想。 翻旧笔记时看到自己三个月前纠结的问题,现在看根本不是问题,这种"看见自己成长"的感觉很奇妙。

感想三:速成的培训班和打基础的大学教育

文章链接:https://www.cnblogs.com/geniusalex/p/4928713.html

这篇文章讨论培训班和大学教育的区别,回应了很多同学"大学老师按部就班地教课,我看视频也能学会,为何要来听课"的疑问。

作者的观点是:培训班教的是"怎么用"(短期见效),大学教的是"为什么"(打基础、建立体系);前者让你能立刻上手干活,后者让你在遇到新问题时不慌,因为你知道底层原理。很多同学(包括之前的我)觉得大学课程"没用",其实是因为还没到需要那些基础的层次

我对这个观点基本认同,但想补充一点:大学教育也应该更早让学生"用起来"。 只有"为什么"没有"怎么用",学生容易失去兴趣;只有"怎么用"没有"为什么",天花板会很低。所以我对这门课特别期待——它讲软件工程的理论,又用团队项目让我们真刀真枪地做,这正是我想要的平衡。看完这篇,我决定老老实实听课,同时用项目验证所学,两者互相促进。


5. 附录:GitHub 练习与截图

Github 仓库地址:https://github.com/RettoST/Retto

截图:

博客园 Markdown 编辑器设置截图
图片

GitHub 仓库截图
GitHub 仓库截图


结语

这篇博客从"认识自己"开始,到"规划学期"结束。写下来才发现,很多问题我以前只是模糊地想过,从没有认真落笔。这可能就是老师让我们写博客的意义--写作是最好的思考方式

接下来的一个学期,我会用这篇博客当成是我的起点,以后回来再看,看看自己走了多远。也欢迎大家评论、反驳、指正,一起进步。

posted @ 2026-09-05 14:39  Retto  阅读(15)  评论(0)    收藏  举报