软件工程第一周作业

这个作业属于哪个课程 https://edu.cnblogs.com/campus/gdgy/Class78-Grade2024-CS
这个作业要求在哪里 https://edu.cnblogs.com/campus/gdgy/Class78-Grade2024-CS/homework/15710
这个作业的目标 建立个人技术博客与GitHub账号,完成自我介绍,练习如何写博客,制定课程学习计划

一、介绍自己,建博客

我是广东工业大学24级计算机科学与技术8班的一名学生,平时喜欢看书和打游戏。

我以前从来没写过博客。总觉得把时间花在写文章上不太值当。但认真读了几篇关于提问和沟通的文章之后,我换了个角度想这件事。写博客是在检查自己的思路。有时候我觉得一个概念差不多理解了,可当我把它用文字写出来,就会发现中间有断层,写的过程中,哪里不通自己马上就能感觉到。所以我打算从这门课开始,试着写起来。

二、现状、经验和计划

1.现状与计划

根据https://www.cnblogs.com/xinz/p/3852177.html,我认为对我特别重要的技能以及我的自我评估如下:

Skills技能 课前评估(0~9) 课后评估(0~9)
Programming:Comprehension(程序理解) 3 6
Programming:Design(架构,模块化,接口设计) 3 5
Programming:Implementation(模块实现) 2 5
Programming:Performance(效能分析和改进) 1 4
Personal Software Process:估计,记录工作量,并逐步提高 1 4

针对以上技能,我的提升计划如下:

  • 把课程大作业当作真实项目来做,从需求到设计到实现到测试完整走一遍。
  • 每周花1小时回顾本周学了什么、写了哪些代码、遇到什么问题。
  • 每学一个新知识点,尝试在博客或笔记本上用自己话复述一遍。
  • 在GitHub上找star高且文档完善的项目,挑一个小模块精读,学习别人的命名、注释、异常处理和代码组织结构。
  • 每完成一个功能模块,写清楚接口说明和使用示例。

2. 阅读心得

a). 阅读https://www.scalerstalk.com/816-attention,挺有感触的。大一大二我也经常以课太水,听了没用为由走神不听课,现在回头看,这不过是为自己的懒惰找借口。文章里说:

认真听讲是一种能力,需要像肌肉一样训练。

这话点醒了我,连45分钟都坐不住,以后怎么能专注做项目、读文档?

b). 在以前我体验到的师生关系大概是路人甲/路人乙保姆/幼儿,大课上,老师上完课就走,一个学期下来连我名字都叫不出。而另一些课,老师把知识点掰开揉碎、一步一步喂到嘴边,作业也有标准答案和固定步骤,这又接近保姆模式,课很轻松,但确实没学到多少真正的能力。

对于这门课,我希望是健身教练/健身学员的关系,如同https://www.cnblogs.com/xinz/archive/2011/05/16/2048044.html文中所说,教练不会代替学员流汗,但会提供训练计划、及时纠正动作、给出反馈。我希望老师能像教练一样——提出有挑战性的任务,让我们在实践中碰壁、反思、改进,而不是直接把答案告诉我们。作为学员,我也会带着明确的目标来上课,主动练习,积极提问。

面对困难的作业,我选择C: 向老师和同学请教,花更多时间,把作业全部完成。我会先尝试自己解决,卡住太久的话,我会带着具体的问题去请教老师同学。

c). 阅读https://www.cnblogs.com/xinz/p/5593762.html,我也知道了:

在工作中,我们经常需要引用文献、参考别人的资料、在别人工作的基础上继续开发,这些是正常的学术和工程实践。而抄袭、剽窃则是未经授权地使用他人的成果并将其冒充为自己的。两者核心区别在于是否注明来源、是否经过自己的思考与加工、是否符合使用许可。

我也承诺在本课程中,我会做到:

  • 所有引用和参考的资料,在博客或文档中标注来源。
  • 使用他人的开源代码时,遵守协议要求。
  • 课程项目的核心代码独立完成。
  • 不将自己的作业代码提供给他人抄袭。

3. 未来规划与选择

  • 未来我像进入互联网做后端开发或全栈开发方向的工作。我很享受写代码解决实际问题的过程——把一个想法变成可用的系统,这个过程本身就很有成就感。

  • 相比于其他同学的优劣势

    • 优势:学习新知识比较快,遇到不熟悉的技术栈不会畏难;另外,心态比较稳,不会因为一时的困难而轻易放弃。
    • 劣势:没有竞赛经历,技术视野不够开阔。平时更多是在完成课程要求,缺少主动探索技术前沿的习惯。团队协作经验偏少,在大规模项目中的沟通和分工能力还需要锻炼。
  • 本学期的具体规划
    (1) 学好软件工程这门课,把完整的开发流程从头到尾走一遍——需求、设计、编码、测试、部署,不留盲区。
    (2) 完成至少1个有完整功能、可演示的个人项目,作为求职作品集。
    (3) 熟练使用Git分支管理,学会做基本的部署。
    (4) 坚持每周写技术博客,把学到的知识用自己的话讲清楚。

4.本课程计划

  • 对课程的期待:我希望在这门课中不只是学到理论知识,而是能完整经历一个软件项目,我想知道一个完整的软件是怎么做出来的。

  • 代码量统计
    (1) 当前代码量:约2000行。
    (2) 想入职一流互联网公司至少需要1万行以上的代码累计。
    (3) 我打算平均每周拿出10~12小时在这门课上。
    (4) 对于时间投入我选择D: 比以前课要多很多,直到达到目标为止。
    (5) 我计划在本课程结束时,完成5k代码量,每周应完成300行代码量。

  • WOOP
    (1) Wish/确定愿望:课程结束时能独立完成一个完整的前后端分离Web应用,并部署上线。
    (2) Outcome/确定结果:拥有一个能写在简历上的真实项目,掌握从零到一的工程能力。
    (3) Obstacles/找出障碍:注意力不集中易走神、基础薄弱、其他课程压力大。
    (4) 最可能的失败因素:自我约束力不足。
    (5) Plan/使用“if then”做风险防范计划:最开始将专注时长缩短,先从25分钟开始,逐步再往上增加;在学习新知识的同时解决知识盲区;充分利用周末时间平衡各个课程,不落后任何一科。

三、提有质量的问题,给认真的反馈

快速阅读《构建之法》后,我有以下5个问题:

  • Q1:如何衡量“足够好”的软件?

在概论中,书中提到软件工程的目标是创造“足够好”的软件,但这个“足够好”如何定义?因为在需求方、用户、开发团队、管理层之间,标准往往不一致。是技术强的软件好还是说市场接受的软件好?

  • Q2:如何把握创新的时机?

在16章,书中指出了创新的种种迷思,在具体的项目中,到底何时选择新技术?我在做项目时总是优先使用自己熟悉的技术栈实现,而不是去思考创新技术。

  • Q3:专精与广博的平衡点在哪?

在17章中,书中提到不少成功开发者既有深厚的技术专长,也有广泛的技术视野,这是很理想的状态。但学生的时间是有限的——深入一个方向需要花大量时间;广博涉猎意味着每个方向只能浅尝辄止,可能最后什么都不精。

我看过一些大厂招聘的要求,上面写着“熟悉至少一门编程语言”的同时,又列出了十几项技术要求。这种情况该怎么平衡?

  • Q4:结对编程中如何更好地合作与分工?

在第4章中,书中介绍了结对编程——两个人用同一台电脑写代码,一个当“驾驶员”敲代码,一个当“导航员”审阅和思考,并且建议定期互换角色。这个模式听起来很理想,但在实际操作中,我有不少困惑。

两个人该如何分工,有没有具体的、可执行的职责划分?而两人水平差距较大该如何合作?另外角色互换的节奏又该怎么掌握?我希望能了解到一些真实团队验证过的且可落地的方法。

  • Q5:团队项目中如何公平评估个人贡献?

在17章中,书中讨论了软件工程师的职业发展、绩效评估等内容。那么在团队项目中,该如何公平地评价每个人的贡献?

  • 认真反馈:我会优先考虑自己解决或者借助AI工具,如果我解决不了会去请教老师与同学。

四、前车之鉴

  1. https://news.cnblogs.com/n/531362/

读了这篇文章,最触动我的是主人公的起点很低,初中辍学、端过盘子、理过发,第一次上课连U盘是什么都不知道,但是她从月薪800走到了年薪40万。

关键不在于她遇到了谁,而在于她自己想改变。她天天哭,但哭完会继续做,做完了才走;入职后主动向HR坦白学历造假,说不想欺骗公司。这两件事让我印象很深。她不怕丢脸,怕的是没有进步的机会;以及诚实有时不会让你失去机会,反而让你赢得信任。

作者说了一句话:

我看人从来不看起点,只看一个人是不是努力。

起点比她高的人太多了,但大多数人都没达到她的高度。我经常觉得自己基础差,但看了这篇文章,我觉得这根本不是借口。

  1. https://blog.csdn.net/haoel/article/details/1688104

读完这篇职业规划的文章,有几点让我印象很深。

第一是关于浪费的时间。他在银行待了两年,清闲、稳定、收入不错,但他觉得完全白费了。因为那和他想要的东西完全不匹配。稳定和成长,有时候是冲突的。他选择离开,去了上海,从零开始补课,一年看了四五十本书。这种决断力不是每个人都有。

第二是职业规划就像软件工程。需求不明确,设计就是空谈;需求频繁变更,项目就会失控。他列了十五个认识自己的方面,我觉得最核心的问题是:你擅长什么?你喜欢什么?市场需要什么? 这三个问题的交集,就是应该去的地方。

第三是技术不是主要的。他说技术只要下功夫就能掌握,真正拉开差距的是沟通、表达、理解用户需求、管理团队。

五、要求

  1. 博客后台编辑页面截图

7eb4739d0683855e128f90872ad095a4

  1. GitHub地址:https://github.com/666F1E88/666F1E88

287bf365fc502416c5228fa2eb98de61

posted @ 2026-09-05 17:33  666F1E88  阅读(18)  评论(0)    收藏  举报