课程所属 | https://edu.cnblogs.com/campus/xnsy/Autumn2019SoftwareEngineeringFoundation |
作业要求 | https://edu.cnblogs.com/campus/xnsy/Autumn2019SoftwareEngineeringFoundation/homework/4517 |
课程目标 | 掌握软件开发的基本思想,学习软件工程的基本理论 |
这个作业在哪个具体方面帮助我实现目标 | 通过阅读他人的优秀博客和回答问题时的自我思考两方面提升自己对软件工程开发思想和基本理论的理解 |
参考文献 | 百度百科 |
我的博客地址 | https://www.cnblogs.com/star1024/ |
作业正文:
1.自我介绍
我叫黄可辛,来自计算机科学与技术2018级一班。在我看来,我是一个多愁善感但又时刻保持自信、讨厌麻烦但又乐于助人、随心所欲但又循规守矩认真负责完成自己工作和学习的普通大学生。刚入大学时的我对所学的专业一无所知,了解了一下之后也没有产生多少的兴趣,但是我觉得我的闪光点就在于此,我不会甘心于平静的生活,相反,我会积极的进取,去努力做好自己的工作,高质量完成自己的学业,因为我认为这样才能让自己变得更加优秀,才能既平凡又不平凡。对于编程我只想说这方面的兴趣还有待开发,尽管有时我会很懒惰,但是我认真起来的时候我觉得我无所不能。
2.阅读和思考
(1)回想一下你初入大学时对你所在专业的畅想
- 当初你是如何做出选择你所在专业的决定的?
当初选择这个专业的原因有三方面吧,第一是这个专业的分刚好可以让我的分不浪费太多,第二是这个专业的就业前景比较好,第三就是自己比较喜欢玩电脑,同时对人工智能比较感兴趣,所以想多了解一些与计算机有关的。
- 你认为过去一(两)年中接触到的课程是否符合你对你自己所在专业的期待,为什么?
大部分是与期待相符合的,因为我一开始就知道这个专业神通广大,但是要灵活运用却不容易,实际接触后我也确实发现了学好这个专业的不容易,但是它能实现的东西也都是我所期待的,所以我会迎难而上,不辜负自己的选择。
- 你觉得你所在的专业是你喜欢的领域吗,它是你擅长的领域吗?
算是我喜欢的领域,因为我一直对人工智能挺感兴趣的,所以想多了解这个领域的其他方面;但在我一年的学习之后我发现我并不是特别擅长这个领域,在一些概念的理解上存在问题,可能这也是我自身的思维定势导致的,不过由于自己的数学还不错,所以实际的构造和运用上我还是基本能跟上老师的节奏。
- 将来你会选择从事和你专业相关的工作吗?是的话给出你想去的城市、公司和岗位,否的话给出原因
我觉得会,前期应该会从事一些编程方面的工作,但最后还是想从事些管理方面的工作,毕竟自己不是很喜欢一直盯着电脑敲代码。城市的话就想留在成都,不想去外地,公司没想好,只要毕业后能找到心仪的就行。
(2)对照前人们走过的路和描述未来发展,现在的你
- 自我感觉你已经具备的专业知识、技能、能力有哪些?已经写过的代码量是多少?描述你做的最复杂的项目/作业。
真正来说的话我觉得自己现在不具备任何技能和能力,因为我认为没学多少,所以还不能称得上是技能或者能力;专业知识的话也就只具备C语言和数据结构两方面的;已经写过的代码量在一千左右,做过最复杂的作业应该是上学期的程序设计综合实践,在老师的适当指导下做了个贪吃蛇,当时做的时候对函数和指针还不是很熟悉,所以碰了很多次壁,幸好有室友和老师的指导,让我的程序最后成功跑了起来,虽然功能不是特别多,但是我也很开心能够用自己的双手创造这么一个程序,让我感受到了代码的强大。
- 离成为一个合格的本科毕业生,在专业知识、技能、能力上还差距哪些?
我觉得我现在什么都缺,而且很多课程比如汇编、组成原理、操作系统这些也都还没开,大一一学年因为其他事情很多导致没时间去熟悉和学习专业方面的知识和技能,以致现在我的编程能力都十分薄弱,所以我觉得我需要在大二强化训练,把基本功练扎实,再慢慢的增强我专业方面的能力。
(3)目前是一个人生选择的十字路口,考研、工作、考公、出国,不同的选择在大三就有不同的努力方向。而无论考研还是工作的每条路径,也有许多不同的分支。
- 对照以上你阅读的前人们的经历,你的选择是什么?
我决定考研,因为我觉得要参加工作我这大学四年的所学的知识和技能是没有任何竞争力的,所以我想考研继续学习,继续丰富的自己的知识库,提升自己的专业能力和技能,为我的后面参加工作打好基础。
- 在这种选择下,你认为你相比其他同学来说有何优势,有何劣势?
优势是我的上进心吧,我是一个不甘比别人差的人,所以我会努力进取,为了目标而奋斗;劣势就是我的自制力不够,很容易静不下心学习,不过我相信我能慢慢改变。
- 针对你的选择,你给自己的大三设定的规划安排是什么?
大三就是在学好自己专业课,做好自己学生工作的同时准备考研。
- 你对于实现自己的梦想已经做了或者计划做什么样的准备?
我正在努力备战下次六级考试,同时一改上学期的状态,重新开始做回那个曾经认真进取的自己。
3.提有质量的问题
因为粗读无法很好的理解书中内容,所以所提问题可能会缺乏很多考虑,敬请见谅。
(1)P48 过早优化:书上说过早优化会让工程师因为陷入一个局而导致缺乏对全局的考虑,但是过早优化就一定是不可取的吗,我觉得只要不是一股脑钻到某个方面,而是在考虑全局的同时某方面适当优化,这样不仅不会影响全局,还能提升软件给用户的初体验,何乐而不为呢。
(2)P72 代码复审:代码复审真的在哪里都适用吗?我觉得应该根据是实际情况灵活处理,开发人员自身肯定要保持一种学习的态度,自己敲的代码自己要负起责任仔细查看和审核,避免代码复审带来的人力物力的浪费。
(3)P96 Code and fix写了再改模式:写了再改确实可以极大缩短编程的时间,但是写完代码开始改的时候不会出现问题太多以至于要重新编码的情况吗,要是这样的话还不如边写边改,让代码一直处于一个较为正确的状态,即使这样会多花些时间。
(4)P151 需求分析:软件工程师怎么将人们的个性化需求具体在代码中实现呢?获取需求很容易,但是分析需求以及把需求联系到代码中所需要运动的数学模型确实很复杂的。
(5)P257 不让用户犯简单错误:软件工程师为了让用户有更好的体验都会给软件制作一些说明书或者在其控制器上标识清楚,就比如书上例子里面的飞机遥控器,但是即使有标注也会有使用者犯错,那么怎样优化界面才能让使用者注意到软件的一些特殊功能以防止误点呢?这是否需要运用到设计学呢?
四.了解和调查源程序版本管理工具
工具 | 优点 | 缺点 |
Git | 运行速度快,灵活且适合分布式开发,同时可以离线工作 | 保密性差,不常规 |
GitHub | 支持多人共同完成一个项目,功能丰富 | 对熟练度要求较高,需要使用者多尝试多使用,同时也要具备一定的英语基础 |
Apple X Code | 方便快捷,节约时间,实用性强 | 不适用于window系统 |