软件工程初次作业记录
| 这个作业属于哪个课程 | https://edu.cnblogs.com/campus/gdgy/Class56-Grade2024-CS |
|---|---|
| 这个作业要求在哪里 | https://edu.cnblogs.com/campus/gdgy/Class56-Grade2024-CS/homework/15692 |
| 这个作业的目标 | 围绕以下几个方面展开: 搭建个人博客和GitHub仓库,作为学习成果的展示平台; 在实际操作中熟悉Markdown的写作方式、Git的日常使用流程; 理解软件工程的基本规范和工作方法; 通过阅读资料和亲身实践,不断调整优化,最终形成属于自己的学习计划。 |
一、自我介绍与博客开通
大家好,我是邱启涵,目前在广东工业大学计算机学院就读。这是我第一次在博客园上发布文章。
学习软件工程的过程中,我们不但要训练编写代码的本领,还要学会清晰地表达想法、记录开发过程中的得失、管理代码的不同版本,并遵守团队约定的工作规范。写博客确实需要付出额外的时间,但如果能长期坚持下去,对于培养良好的学习习惯会有很大帮助。
说到个人特点,我觉得自己比较擅长把零散的知识点整理成有条理的系统。
我一直觉得每个人都有自己的长处,只是有时候自己没有意识到。除了专业课程之外,一个人的兴趣爱好、生活习惯和人生经历,同样可以成为自己的独特优势。
二、现状分析、经验总结与行动计划
(一)为什么选择这个专业以及如何提升自己
我选择计算机专业,是因为对互联网行业的发展前景很感兴趣。
现在的信息技术变化很快,一个合格的软件开发人员不光要会写代码,还需要懂得如何设计系统架构、如何与团队成员配合、如何安排项目进度,以及如何持续学习新知识。
仔细分析之后,我认为自己距离一名合格的软件工程专业毕业生还有不小的差距,主要在以下几个方面:对编程的整体理解还不够深入,阅读别人代码时经常感到吃力,自己实现功能时效率不高,对测试环节不够重视,写出的代码质量有待提高,对常用的开发工具和语言掌握得不够熟练,设计方面的基础知识也比较薄弱。
根据自我评估的结果,我选出了几项最需要提升的能力,并制定了具体的目标和行动计划:
| 能力项 | 当前水平(0-9) | 学期目标 | 提升方法 |
|---|---|---|---|
| 编程能力 | 3 | 6 | 坚持刷题、认真完成课程项目 |
| 系统设计能力 | 2 | 5 | 多读设计类书籍、参与实际项目 |
| 版本管理能力 | 1 | 5 | 在日常开发中主动使用相关工具 |
| 算法基础 | 3 | 6 | 每周固定时间练习算法题 |
| 项目经验 | 1 | 4 | 积极加入团队开发项目 |
| 阅读他人代码能力 | 4 | 7 | 研究优秀的开源项目 |
我的具体计划包括:
- 每天安排固定时间写代码
- 按时完成每一门课程的作业
- 经常阅读高质量的代码,学习其中的优点
- 主动参与小组项目,承担实际开发任务
- 多向老师和同学请教,不懂就问
(二)对课程学习的思考
为什么要在意这门课?
上大学不光是为了拿到毕业证书,更重要的是培养自己分析和解决实际问题的能力。
软件工程这门课尤其需要动手实践,如果只听老师讲课而不自己去写代码、做项目,很难真正理解软件开发是怎么一回事。
所以,我希望通过这门课学会用工程化的方式去思考问题,而不是仅仅把作业做完就了事。
关于老师和学生的关系,以及遇到困难怎么办
我觉得比较好的师生关系应该是互相启发、一起进步的。
老师的作用不只是把知识教给我们,还应该在学习的道路上给我们指引方向;而我们学生也应该主动去学,不是等着老师往我们脑子里塞东西。
要是作业特别难,我会这么做:先自己努力琢磨,然后向老师和同学请教,多花一些时间,想办法把作业做完。
因为在学习软件工程的过程中遇到困难是很正常的,真正重要的是在解决问题的过程中学到东西。
参考别人的做法和抄袭有什么不同?
这两者听起来有点像,但实际上完全不一样:
- 参考,是先理解别人是怎么做的,从中吸取有用的思路,然后用自己的方式去实现
- 抄袭,是不管三七二十一,直接把别人的成果复制过来,当成自己的交上去
以后做软件开发,肯定要站在前人的肩膀上前进,所以学会正确的借鉴方法非常重要。
(三)毕业后的打算
我希望能成为一名不错的软件工程师,以后参与到真正的产品开发中去。
跟身边很多同学比起来,我觉得自己并没有什么明显的优势。
主要的问题在于:
- 做过的大项目太少
- 花在编程上的时间还不够多
- 对行业的真实情况了解得比较有限
针对这些问题,这学期我决定:
- 认真对待软件工程课程的每一个环节
- 每天多写一些代码,增加练习量
- 学会使用版本控制和项目管理方面的常用工具
- 花时间研究一些知名的开源项目
(四)这门课的时间投入
我很想通过这门课体验到真实的开发过程,不光是为了拿到一个好成绩,更希望真正领会软件工程背后的思想。
到现在为止,我总共大概写过六十八行代码。
如果想进入好的互联网公司,光看代码数量是不够的,更重要的是代码写得好不好、有没有实际项目经验、遇到问题能不能高效解决。
这学期我打算每周在这门课上花大约七个小时。
我的想法是:比之前的任何一门课都要用功,直到达到自己定下的目标为止。
三、目标规划
我的愿望
希望通过软件工程这门课,提高自己动手做项目的能力,最终独立完成一个完整的软件。
如果愿望实现了
那我应该能够:
- 搞清楚软件开发从头到尾是怎么做的
- 编程水平明显提高
- 获得跟别人一起做项目的宝贵经历
- 为以后找工作打下一些基础
可能会遇到的困难
- 管不住自己,容易偷懒
- 做事拖拖拉拉,总把任务留到最后
- 编程的基本功还不够扎实
怎么应对
如果发现自己又开始拖延,那就提前把每天要做的任务列出来,逼着自己当天完成。
如果遇到不会的东西,先自己上网查资料,查不到再问老师和同学。
如果代码写到一半卡住了,就把大问题拆成几个小问题,一个一个解决。
四、读了教材之后的一些想法
想法一:流程是不是一定要严格执行?
书上说开发软件需要有规范的流程来保证质量。
但我想问的是:如果只是做一个很小的小工具,是不是也得把那些繁琐的步骤全部走一遍?
我现在的看法是,大项目和小项目应该采用不同的做法,灵活一点可能更实际。
想法二:自己写代码厉害和懂得团队合作,哪个更重要?
做软件肯定要靠大家一起干,但每个人自己的技术水平也很关键。
我一直在琢磨:一个编程特别厉害的人,是不是也必须花很多时间去学习团队里的各种规则和流程?
想法三:花时间做测试会不会耽误进度?
测试肯定要多花一些功夫。
我想知道的是:当时间已经很紧的时候,应该怎么在赶进度和保证测试质量之间找到平衡?
想法四:创新一定得是全新的东西吗?
书上讲到创新对行业发展很重要。
我在想:创新是不是一定得搞出一个从来没人做过的新技术?把已经有的几种技术结合起来解决新问题,算不算也是一种创新?
想法五:书上的经验是不是到处都能用?
不同的项目,做的内容不一样,团队也不一样。
我有点怀疑:书里说的那些方法,是不是真的适合所有类型的软件开发?
关于给老师反馈这件事,我打算有想法就及时说出来,一个学期至少提三个问题,认真填反馈表。这样既能帮老师改进教学,也能逼着自己多动脑子。
五、从别人那里学到的东西
文章一:《IT小小鸟的故事》
链接:
https://book.douban.com/subject/4006425/
看完之后的感受:学计算机不能光靠上课听讲。就算你是科班出身,要是平时不动手写代码,也很难真正把专业知识掌握好。所以大学这几年要主动一点,多写程序,多攒一些实际项目的经验。
文章二:偏科生自学摸索的道路
链接:
https://www.cnblogs.com/xiaozhi_5638.html
这篇文章让我明白了一个道理:在学校里不能只盯着考试分数。以后找工作的时候,公司更看重的是实际能力,主要包括:
- 写代码的水平怎么样
- 有没有做过完整的项目
- 遇到新东西学得快不快
所以,我要趁着还在学校,尽量把自己的综合能力提上去。
https://github.com/QQH1115/QQH1115/


浙公网安备 33010602011771号