第一周作业
| 这个作业属于哪个课程 | 广东工业大学软件工程课程班级 |
|---|---|
| 这个作业要求在哪里 | 第一周作业要求 |
| 这个作业的目标 | 通过自我介绍、博客写作、GitHub 使用和学习规划,建立软件工程课程的学习基础 |
GitHub

博客园

一、很高兴认识你,请这样认识一下我
大家好,我是计算机科学与技术专业的一名大三男生,目前就读于广东工业大学。这是我第一篇技术博客,希望能够通过这个博客的内容,记录自身技术成长历程与思考。
我之前并没有写过专门的技术博客,只是有时候会发一些自己乱七八糟的思考与理解。不得不说,写博客在短期意义上看确实是个麻烦且复杂的事情,但长期来看,写博客的过程中可以帮助我们捋清技术思路,提高我们对技术的理解,同时也能积累个人的技术作品,这些对我们长久的职业发展有深远的意义。
目前对于因果算法的发展比较感兴趣。
我认为我比较擅长的是篮球与声乐,同时这两项也是我的爱好,我接触它们基本都已经有了 5 年以上的时间,期间重复的练习与反思是必不可少的。我很感谢这些经历给我带来的在压力下决策的能力以及坚持不懈的毅力,让我意识到,能力并非天生固定的,而是可以通过长期的努力和持续的积累取得。
二、我的专业选择与能力现状
2.1 为什么选择这个专业
我选择计算机专业的原因十分功利,只是听说这个行业比较高薪,同时也觉得这个行业未来的职业发展前景比较广阔。基于年轻的时候应该先选一条往后选择较多的路的思考,我便选择了计算机专业。
不足
目前,我对编程有一定了解,但还存在一些不足:
- 编程练习不够持续,代码量较少;
- 数据结构和算法基础不够扎实;
- Git 和 GitHub 使用不熟练;
- 缺少完整项目开发经验;
- 遇到问题时分析和解决问题的能力还需要提高。
2.2 技能水平评估
| 技能 | 当前水平 | 课程结束目标 | 提升方法 |
|---|---|---|---|
| 编程基础 | 3 | 5 | 坚持编程练习,完成课程作业 |
| 数据结构与算法 | 2 | 5 | 每周练习 LeetCode 算法题并总结 |
| Git/GitHub | 2 | 5 | 练习提交、分支和版本管理 |
| 软件工程实践 | 2 | 5 | 参与项目,了解开发流程 |
| 技术文档写作 | 1 | 4 | 坚持写博客和学习总结 |
我计划通过以下方式提升自己:
- 每周安排固定时间编程练习;
- 完成至少一个个人项目;
- 学习并熟练使用 Git 和 GitHub;
- 阅读技术资料和优秀代码;
- 每周进行一次学习总结;
- 继续深入学习因果算法。
2.3 阅读材料后的心得
(1)我为什么要认真上课
阅读文章后,我认识到认真上课不仅是为了完成考勤或取得成绩,也是在训练自己的专注力、理解能力和学习习惯。大学课程不一定每一部分都能立刻看到实际用途,但基础知识往往需要经过一段时间的积累,才能在之后的学习和工作中体现价值。
我来上软件工程课,是希望了解软件项目从需求分析、设计、编码到测试和维护的完整过程,提升自己的工程化、结构化思维,而不仅仅是学习如何写几段代码。课堂学习能够帮助我建立比较系统的知识框架,老师的讲解和反馈也能让我少走一些弯路。
因此,我会尽量认真参与课堂,按时完成作业,遇到问题主动思考和提问,而不是只在截止日期前临时完成任务。
(2)我希望建立的师生关系
过去的大学学习中,我体验到的师生关系更多是老师讲课、学生听课,双方交流比较有限。
我希望这门课能够建立一种类似“教练与学员”的师生关系。老师负责提出要求、设计练习、给予指导和反馈,学生则需要主动学习、认真练习,并对自己的学习结果负责。老师不应该替学生完成任务,学生也不能只依赖老师讲解。
如果作业比较困难,我会选择 C:向老师和同学请教,花更多时间,把作业尽量完成。具体来说,我会先自己阅读题目、查找资料并尝试解决;如果仍然无法完成,再向老师、助教或同学请教,同时记录自己的问题和解决过程。这样既能保持独立思考,也能利用他人的帮助提高效率。
(3)我对引用、借鉴和抄袭的理解
在学习和软件开发过程中,参考别人的资料、论文、代码或开源项目是不可避免的。合理的引用和借鉴应该建立在明确标注来源、理解原理和加入自己工作的基础上。比如使用一个开源框架或参考一段代码时,应当了解它的作用,并按照要求注明来源和许可证。
抄袭则是直接复制别人的文字、代码或结论,不注明来源,甚至把别人的成果当成自己的成果提交。即使只是对原文进行少量修改,只要没有真正理解并隐瞒来源,也可能属于不当引用或抄袭。
通过阅读这些文章,我认识到,学习的目的不只是完成作业,更重要的是形成诚实、负责和持续改进的学习习惯。以后我会在遵守学校规定的基础上完成作业,遇到问题主动寻求帮助,而不是通过抄袭来暂时解决问题。
2.4 我的未来发展方向
我未来比较倾向于从事 AI 解决方案售前相关工作。这个岗位不仅需要了解人工智能、大模型和软件系统等技术,还需要能够理解客户需求,并将技术方案转化为客户能够理解和认可的解决方案。
我认为,AI 解决方案售前需要具备以下能力:
- 一定的编程和技术基础;
- 了解人工智能和大模型的基本原理;
- 能够分析客户需求;
- 能够设计和讲解解决方案;
- 具备良好的沟通、表达和汇报能力;
- 了解项目实施过程和软件工程方法。
与纯技术开发岗位相比,AI 解决方案售前不仅要懂技术,还要能够连接客户、产品和研发团队。因此,我需要在学习编程的同时,提高自己的表达能力、需求分析能力和沟通协作能力。
目前我的不足主要是技术基础还不够扎实,对 AI 相关技术和实际项目的了解还不够深入,表达和方案设计能力也需要继续提升。本学期我计划认真学习软件工程知识,掌握 Git 和 GitHub 的基本使用方法,完成一些 AI 相关的小项目,并通过写博客和进行演讲来提高自己的表达能力。
我希望通过不断积累技术知识和实践经验,逐步具备独立分析问题、设计方案和向客户清晰讲解技术方案的能力,为将来从事 AI 解决方案售前工作打好基础。
2.5 我对本课程的计划
我希望通过软件工程课程了解软件项目的基本开发流程,同时提高自己的代码规范、团队协作和项目实践能力。
我计划做到以下几点:
- 认真完成每次课程作业;
- 每周安排固定时间进行编程练习;
- 学习并使用 Git 和 GitHub;
- 遇到问题时先独立思考,再查找资料或请教他人;
- 记录每周学习情况,及时总结和改进;
- 尝试完成一个 Python 或人工智能相关的小项目。
目前我主要使用 Python,累计代码量约为 5000 行。课程结束时,我计划新增约 3000 行代码,每周平均完成 150—200 行代码。
我计划每周投入大约 8 小时学习这门课,包括上课、阅读资料、编程练习、完成作业和总结复盘。
关于担任助教,目前我更希望先把自己的课程学习和专业能力提升好,暂时没有明确的助教计划。今后如果自己的能力和时间允许,我也愿意在力所能及的范围内帮助同学。
2.6 使用 WOOP 制定学习计划
Wish:我的愿望
我希望在课程结束时掌握软件工程的基本方法,熟练使用 Git 和 GitHub,并完成一个 Python 或人工智能相关的小项目。
Outcome:实现后的结果
如果实现这个目标,我将能够更加规范地编写代码,了解软件项目的基本开发流程,并为以后从事 AI 解决方案售前工作积累技术和项目经验。
Obstacle:可能遇到的困难
我可能遇到的困难包括:
- 编程基础不够扎实;
- 对人工智能知识了解不够系统;
- 时间安排不合理;
- 遇到问题时容易拖延;
- 缺少完整项目经验。
Plan:我的解决方法
针对这些问题,我计划提前安排学习时间,按时完成课程作业。遇到问题时先自己查找资料和分析,再向老师、助教或同学请教。同时坚持记录学习过程,每周进行一次总结,及时调整自己的学习计划。
三、提出有质量的问题,给认真的反馈
快速阅读《构建之法》后,我发现软件工程不仅是写代码,还包括需求分析、团队合作、测试和创新。结合自己的学习情况,我提出以下问题。
问题一:什么时候应该开始测试?
相关章节:第 2 章“个人技术和流程”——单元测试。
书中提到测试可以尽早发现问题。但在实际项目中,需求可能还会不断变化。如果过早编写大量测试,后期可能需要反复修改。
我的问题是:需求还不明确时,应该先测试,还是先完成一个简单的原型?我认为可以先测试比较稳定的功能,需求确定后再逐步完善测试。
问题二:结对编程适合所有任务吗?
相关章节:第 4 章“两人合作”——结对编程。
结对编程可以提高代码质量,也有助于交流经验。但对于简单任务,两个人一起完成可能会降低效率。
我的问题是:应该根据什么标准决定是否采用结对编程?我认为复杂功能和关键模块适合结对编程,普通功能可以由一个人完成,再进行代码评审。
问题三:敏捷开发如何避免不断改需求?
相关章节:第 6 章“敏捷流程”——迭代开发。
敏捷开发能够适应需求变化,但如果客户不断增加需求,项目范围可能越来越大,影响原来的计划。
我的问题是:新需求应该立即加入当前迭代,还是留到下一个迭代?我认为应该根据需求价值、开发成本和时间安排来决定,不能所有需求都马上加入。
问题四:如何判断客户的真实需求?
相关章节:第 8 章“需求分析”。
客户有时会直接提出技术方案,例如想使用大模型,但这不一定是他们真正要解决的问题。AI 解决方案售前需要先了解客户的实际场景和困难。
我的问题是:如何区分客户的真实需求和客户提出的技术方案?我认为应该先了解客户的问题,再决定是否使用人工智能以及采用什么技术。
问题五:使用新技术就算创新吗?
相关章节:第 16 章“创新”。
我认为使用大模型并不一定代表创新。如果一个方案不能解决实际问题,或者成本太高,也没有真正的价值。
我的问题是:评价 AI 项目时,技术新颖性和实际应用价值哪个更重要?我认为应用价值应该是主要标准,技术创新最终应该服务于实际需求。
认真反馈
对于课程反馈,我选择 C:有问题就问,至少一学期提三个问题,认真按时填写反馈。
我认为反馈应该具体说明自己在哪个知识点、哪项作业上遇到了困难,而不是简单地写“很好”或“太难了”。本学期我会主动提出问题,并认真填写课程反馈,帮助自己改进,也为老师调整教学提供参考。
四、前车之鉴
4.1 学会安排时间,及时调整方向
参考文章:辜新星:时刻调整方向 找到人生的蓝海
文章中提到,可以把每天要做的事情分为四类:
- A:紧迫且重要;
- B:重要但不紧迫;
- C:紧迫但不重要;
- D:不紧迫也不重要。
我觉得这种方法对我很有帮助。以前我有时会先处理一些简单但不重要的事情,导致真正重要的学习任务被拖到最后。以后我会优先完成课程作业、编程练习等重要任务,再处理其他事情。
文章还提到,人在学习和成长过程中需要不断调整方向。这让我想到自己未来想从事 AI 解决方案售前工作,不能只学习技术,也要提高沟通、表达和需求分析能力。
4.2 学习计算机要重视实践和基础
参考文章:一直在路上——记我从初中到本科近十年的学习成长历程
文章作者原来的编程基础并不突出,但通过自学、查资料和不断实践,逐渐提高了自己的编程能力。他提到,学习编程不能只看书,还要亲自动手编写和运行代码。
这让我认识到,学习 Python 和人工智能时,不能只停留在看视频和记概念上,还需要多写代码、多做项目。同时,数据结构、算法和计算机基础也很重要,不能只追求热门技术。
文章作者还提到,实习经验并不是唯一重要的事情,扎实的基础和自学能力同样重要。对我来说,当前应该先打好编程基础,积累项目经验,再逐步了解 AI 解决方案售前需要的行业知识和沟通能力。

浙公网安备 33010602011771号