软件工程第一周作业
| 这个作业属于哪个课程 | https://edu.cnblogs.com/campus/gdgy/Class78-Grade2024-CS/ |
|---|---|
| 这个作业要求要求在哪里 | https://edu.cnblogs.com/campus/gdgy/Class78-Grade2024-CS/homework/15710 |
| 这个作业的目标 | 开通个人技术博客并写下第一篇自我介绍;对照合格软件工程师的标准审视自身差距并制定课程学习计划;练习 Markdown 排版与 Git/GitHub 的基本使用;养成认真提问、反馈与反思的习惯。 |
1.自我介绍
我是广东工业大学 24 级计算机科学与技术专业的一名学生。客观来说,我的专业能力比较普通,还有很多知识需要慢慢打磨。写博客对我而言是一次全新的体验,刚开始动笔的时候,也真切感受到写博客并不是一件轻松的事。
2.现状、经验和计划
(1)选择的缘由以及技能调查表
选择专业时是为了考公,较为功利。
| 技能 | 目前水平 | 课程结束后期望水平 | 提升方式 |
|---|---|---|---|
| 对编程整体的理解 | 1 | 4 | 吸收老师教导的知识,并且在课后进行实践 |
| 自主学习的能力 | 2 | 5 | 通过各种方式搜寻有关的知识,比如网课和AI |
| 程序理解 | 1 | 3 | 看Github上的项目,并且将别人的项目下载下来进行实现以及操作 |
| 程序设计 | 1 | 4 | 自己动手敲代码 |
| 个人源码管理 | 0 | 2 | 多使用Github保存自己的项目 |
(2)阅读相应博客后的心得
(a) 关于大学生为何需要上课并认真参与的思考
课堂是师生互动交流的重要场所。现如今获取知识的渠道十分丰富,网课、文档、视频都可以用来学习,但面对面的课堂交流依旧无法被替代。如果仅仅依靠网课自学,只完成课后作业,缺少和老师同学的沟通,很多理解上的误区很难被发现,个人能力也很难得到真正的锻炼。
课堂上向老师提问、和老师探讨问题,本质是把自己脑海里的理解输出出来,不再只是被动接收知识。老师可以及时指出自己理解的偏差,带来新的思考角度。文章提到,专注已经成为这个时代十分稀缺的能力,上课认真听讲,本身就是在锻炼自己的专注力。就像自己写博客的时候,总会忍不住想去刷手机、想做别的事情,能不能沉下心完成手头的任务,正是专注力的体现。因此我认为,上课并且认真参与课堂,对大学生而言是十分有必要的。
(b) 关于师生关系的思考
正如课程 PPT 中提到,老师与学生的关系,如同健身教练和健身者。健身者向教练咨询动作规范、训练计划,教练纠正错误动作,给出适配的训练方案,帮助健身者真正掌握动作要领。
放到师生之间也是同理。遇到不懂的知识点、搞不懂的任务,学生应当主动向老师请教,获取针对性反馈。之后结合自身理解去实践,实现自我提升。面对难度很高的作业与任务,不应该逃避退缩,要敢于直面困难,多向老师与同学求助,尽自己最大努力完成任务,在这个过程中得到成长。
(c) 关于抄袭与借鉴的思考
读完博文,我意识到抄袭最大的问题在于缺少独立实践,完全无法实现个人能力的成长。生活中模仿他人的行为本身很常见,但在输出作业、项目成果的时候,如果直接照搬别人的内容,不标注来源,就属于抄袭。
借鉴则完全不同:参考他人的成果获得思路启发,吸收一部分代码或者想法,结合自己的思考改造,融入自己的项目,同时清晰标注原作者与参考文献。抄袭只是简单搬运,不会产生新的思考;借鉴是站在巨人的肩膀之上,借助别人的成果,生成属于自己新的理解。
(3)关于未来方向的选择
我目前的规划是备考公务员。对比身边同学,我自身没有突出的优势。在考公这件事上,计算机专业的学生相比文科学生并不占优,信息检索、辨别筛选信息的能力也并非计科学生独有,任何人都可以后天训练,所以我清楚考公这条路并不轻松。
(4)关于软工课程的计划
我希望借着软件工程这门课程,全方位锻炼自身各项能力。课程包含个人项目、双人合作项目、小组团队项目,可以很好的锻炼编码、协作、项目实践能力。以我目前的专业水平,距离助教的能力要求还有不小差距,因此不考虑申请助教。
3.《构建之法》读后感
(a) 对软件工程的重新理解
过去我一直简单认为软件工程就等同于写代码,只要代码可以运行,任务就算完成。读完《构建之法》之后我才意识到,软件不只是程序代码,完整的软件还包含需求分析、设计、测试、维护、文档等一系列工作。软件开发是系统性工程,编码仅仅是其中一小部分环节。
作为普通学生,我平时写练习程序只追求功能跑通,忽视注释、结构与可维护性。书中让我明白,真正面向实际场景的软件,要考虑用户、迭代更新、后期维护,不能只满足当下可以运行。这改变了我看待编程的固有认知。
(b) 关于个人开发流程的感悟
书中介绍了个人软件的开发流程,从需求获取、设计、编码、测试到记录复盘。反观我自己写代码,大多想到什么就写什么,缺少前期规划,经常写一半发现逻辑漏洞再回头大改,效率很低。
书中强调,就算是个人项目,也应当做好规划,不要上来就直接敲代码。完成编码之后,测试、整理文档同样不可省略。同时要做好版本管理,利用 Git、Github 保存每一步改动,方便回溯修改。对照前面的能力表格,我个人源码管理能力几乎为零,这也是我接下来需要重点补齐的短板。
(c) 关于双人合作与团队协作的思考
软件开发很多场景不是单打独斗,双人合作、小组团队开发是常态。结对编程、代码审查这些概念,是我之前很少接触的。以前写作业大多独立完成,很少体会多人协作的难点。
团队开发最大的难点并不全在技术,而在于沟通、分工、冲突处理。每个人编码习惯、思维方式不一样,如果没有统一规范,项目很容易变得混乱。遇到分歧不能一味逃避,要理性沟通,互相反馈。今后课程会有双人项目、小组项目,我也需要提前做好心理准备,学会和同学配合完成任务。
(d) 看待迭代开发与 “足够好” 的思想
我以前写程序总想着一次性写出完美版本,追求一步到位,总想把全部功能一次性实现,结果往往因为目标太大,迟迟无法完成可用版本。
书中提到的迭代思想给我启发:不用追求一开始就做到完美,可以先完成最小可用版本,再不断迭代完善。软件没有绝对完美,只有 “足够好”,根据需求持续更新优化。先把核心功能落地,再逐步增加新功能,这种思路很适合学生做课程项目,避免陷入过度完美主义,迟迟交付不出成果。
(e) 对学生学习的启发与今后实践
读完这本书,我意识到计算机专业学生不能只埋头敲代码,还要建立工程思维。不能满足课堂作业完成即可,要主动去实践软件工程的理念。
后续学习中,写项目时要提前思考需求,写简单注释,重视测试;主动使用 Github 管理代码;小组任务积极参与沟通,练习团队协作。虽然目前我的专业水平普通,很多工程实践还做不到位,但我可以一点点去模仿练习,把书本上的理论转化为自己的实际能力。
4.阅读参考博客读后感
(1)https://book.douban.com/subject/4006425/discussion/22803733/
辜新星:时刻调整方向 找到人生的蓝海
读完这篇博客我开始回顾大学的学习生活,在不同阶段我都有着不一样的目标。无论是学习专业知识,还是规划未来发展,当发现自己偏离目标,或是前进节奏不尽人意时,我会反思自我,借鉴身边人的经验,及时调整状态,少走弯路,一步步向着目标靠近。
大学只是人生的一个阶段,未来还有新的环境与新的挑战。我会不断调整自己前进的方向,也祝愿和我一样的同学,在学习生活中持续校准方向,像骑单车一般,坚定且快乐地奋力向前。
(2)https://book.douban.com/subject/4006425/discussion/22802960/
徐宥:掉进读书的兔子洞
读完这部分,我明白大学很多学习看似当下没有回报,并非就是无用。作者回顾大学经历,曾经花大量时间钻研的知识,申请、工作时没有立刻派上用场,但这些积累不会完全消失,会在未来某个不经意的时刻发挥价值。
同时文中也给到很实在的教训:学习切忌浅尝辄止,与其泛泛读很多书、学得一知半解,不如精读少数书本,把知识真正吃透。
大学就像一个 “兔子洞”,埋头读书的同时,也不要忽略生活本身。除了书本知识,和同学相处、生活里的经历同样构成完整的大学生活。读书带来迷茫、挫折,也带来奇遇与收获,那些沉浸书本的瞬间,都是独属于自己的珍贵回忆。
5.所需截图以及地址链接
Markdown 后台编辑器设置截图

GitHub 同名仓库截图

博客后台编写截图


浙公网安备 33010602011771号