软件工程第一周作业
| 这个作业属于哪个课程 | 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工具,如果我解决不了会去请教老师与同学。
四、前车之鉴
读了这篇文章,最触动我的是主人公的起点很低,初中辍学、端过盘子、理过发,第一次上课连U盘是什么都不知道,但是她从月薪800走到了年薪40万。
关键不在于她遇到了谁,而在于她自己想改变。她天天哭,但哭完会继续做,做完了才走;入职后主动向HR坦白学历造假,说不想欺骗公司。这两件事让我印象很深。她不怕丢脸,怕的是没有进步的机会;以及诚实有时不会让你失去机会,反而让你赢得信任。
作者说了一句话:
我看人从来不看起点,只看一个人是不是努力。
起点比她高的人太多了,但大多数人都没达到她的高度。我经常觉得自己基础差,但看了这篇文章,我觉得这根本不是借口。
读完这篇职业规划的文章,有几点让我印象很深。
第一是关于浪费的时间。他在银行待了两年,清闲、稳定、收入不错,但他觉得完全白费了。因为那和他想要的东西完全不匹配。稳定和成长,有时候是冲突的。他选择离开,去了上海,从零开始补课,一年看了四五十本书。这种决断力不是每个人都有。
第二是职业规划就像软件工程。需求不明确,设计就是空谈;需求频繁变更,项目就会失控。他列了十五个认识自己的方面,我觉得最核心的问题是:你擅长什么?你喜欢什么?市场需要什么? 这三个问题的交集,就是应该去的地方。
第三是技术不是主要的。他说技术只要下功夫就能掌握,真正拉开差距的是沟通、表达、理解用户需求、管理团队。
五、要求
- 博客后台编辑页面截图

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


浙公网安备 33010602011771号