第一次阅读作业
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass1/homework/2713 |
这个作业要求在哪里 | https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass1/homework/2713 |
我在这个课程的目标是 | 学习什么是软件工程,开发软件需要注意什么,怎么才能成为一个合格的软件工程师。 |
这个作业在哪个具体方面帮助我实现目标 | 这次作业让我们自觉阅读相关书籍,加深对软件工程的理解,解决以前一些不知道的问题,并自我审视在软件工程方面自己现在具备些什么还需要什么 |
作业正文 .... |
|
其他参考文献 ... |
|
一.建立博客并介绍自己
1,我的博客:https://home.cnblogs.com/u/luopl/
2,我叫罗鹏磊,来自西南石油大学17级软件工程,喜欢玩一些网络游戏看动漫和电影,在运动方面比较喜欢羽毛球,也比较喜欢下象棋但是下的不怎么好。在性格方面,我我是一个比较内向不爱说话的人,也是一个爱钻牛角尖的人,也正是因为这个性格,让我在认定一件事情之后不管事情对错我都会继续下去很难回头。
二,阅读与思考
(1)回想一下你初入大学时对软件工程专业的畅想
<1>当初你是如何做出选择软件工程专业的决定的?
软件工程这个专业我在高中时期就有一些了解,知道这个专业是学编程学开发软件的,我个人很喜欢电脑,高中那时候比较天真认为学好这个之后可以一个人开发一些大型软件,所以高考完后我填写志愿的时候就是冲着这个专业去的。
<2>你认为过去两年中接触到的课程是否符合你对软件工程专业的期待,为什么?
从刚刚上大学到现在已经两年了,通过这两年的学习对我既有打击也有激励,打击我的是软件开发是一个艰难而比较漫长的事情,激励的是这两年学到了很多东西,了解了很多关于软件工程的相关知识,就编程方面而言最让我受益的就是数据结构,在没学数据结构之前根本不知道数据可以有这么多的存储方式,在这些数据结构中最感兴趣的一个就是线段树,这种数据结构帮我解决了很多算法题目。总的来说我对这两年学习的课程还是满意的。
<3>你觉得软件工程是你喜欢的领域吗,它是你擅长的领域吗?
软件工程对于我来说不仅现在是我喜欢的领域,而且在未来几年内我对其应该还是兴趣满满的。其实以我现在的能力只能说对软件工程有所涉猎称不上擅长,但与其他专业技能相比还是称得上擅长的。
<4>将来你会选择从事软件开发相关的工作吗?是的话给出你想去的城市、公司和岗位,否的话给出原因
我选择软件工程的目的就是为了从事相关工作,本人的目标就是成为一个比较优秀的软件工程师。以后可以的话我希望在成都本地工作,因为我家就在成都,不想以后工作离家太远。
(2)即将大三的你,对照前人们走过的路和描述未来发展,现在的你
<1>自我感觉你已经具备的专业知识、技能、能力有哪些?已经写过的代码量是多少?
经过前两年的课程学习,我觉得直接已经会一些基本的c,c#语言,因为在学习算法大一基本上每天都在用c语言写代码,所以在c语言的运用上面会比较熟练,在代码量上也不算太少。
<2>离成为一个合格的软件工程专业本科毕业生,在专业知识、技能、能力上还差距哪些?
我觉的我距离一个合格的软件工程本科毕业生还差的比较远,我至今没有产于开发过一些简单的软件,写没有写过一些后台程序,我觉的今后一年我应该努力学习面向运用面向对象编程语言,着手参与一些简单软件的开发,后台程序的编写,把自己对编程语言的现实应用能力提升上去。
(3)大三是一个人生选择的十字路口,考研、工作、考公、出国,不同的选择在大三就有不同的努力方向。而无论考研还是工作的每条路径,也有许多不同的分支。
<1>对照以上你阅读的前人们的经历,你的选择是什么?
虽然很多人多说考研有多好,我也知道考研的好处,但是我还是会选择工作,我一开始选择这个专业的目的就是为了能够尽快的工作。
<2>在这种选择下,你认为你相比其他同学来说有何优势,有何劣势?
优势的话应该是能够尽早参加工作积累工作经验,踏入社会积累社会经验。劣势在于会少学很多专业知识,在职场竞争时比不上考研的同学,也可能会面临找不到工作危机。
<3>针对你的选择,你给自己的大三设定的规划安排是什么?
我对自己大三的安排就是在顾全大学课程的同时,把其余的绝大多数时间都拿来着手做项目,积累项目经验,软件开发经验,为以后找工作做准备。
三.提有质量的问题
1,第四章两人合作中第4.5结对编程
结对编程旨在一对程序员一起平等的进行开发工作,若想两人结对编程有较高的效率就必需要求这两个相互了解,互相激励,在遇到配合不默契的程序员时两个人一起编程或多或少会产生一定的冲突,这样反而使效率更加低下,在面对这样的情况时是否应该采用分工的方式,让每个人自己完成编程?
2,第五章团队和流程中第5.3开发流程
通过对各种开发流程的学习,我了解到了各个开发流程的优缺点,文中也有提出什么什么流程适合什么类型的软件,但在现实中软件需求都很复杂,该怎么确定客户需求的软件是什么类型,用什么流程才能使得收益最大化?在遇到很复杂的情况时我们是否可以多种模式相结合?如果能,那又该这么结合呢?
3,第六章敏捷流程
通过对这章的学习,对于敏捷流程我所了解到就是不时的提出新想法,新要求,新优化,可以时时刻刻发现并解决错误,总的来说我对其的理解就是变数很多,这就造成了一个问题,对该项目在时间上的预估可能跟实际相差较大,对于敏捷流程我们需要对其进行预估吗?还是敏捷流程就适用于没有预估的项目?
4,第六章敏捷流程
在敏捷流程中每个人包括顾客都可以随时题出新的想法新改进,在每个人都发表意见的情况下会不会造成冲突从而拖慢了软件开发进度,甚至使软件开发失败?若发生了冲突应该怎么办?
5,第七章实战中的软件工程中第7.2.4各司其职,对项目共同负责
在这一小结中提到团队中的每个角色都有自己的职责,如果出了问题,这个角色就要负责,当项目某一模块出现问题时,该负责该项目模块的人员能力有限或者已经离开公司,此时责任应该由谁来负责?
四.了解和调查源程序版本管理工具
优点:代码可以共享,不受语言限制,可供 5 个团队成员免费与 TFS Express 搭配使用,可以使用无限制专用存储库对代码进行存储并协作编写代码,集成了项目管理、版本控制、BUG 跟踪,可以清楚的了解到项目需求以及项目进度。
缺点:对硬件要求较高,维护时十分麻烦。
2,git
优点:上手快,易于学习,占地面积小,分布式版本控制系统,免费,操作基本为本地实行速度快,能时刻保持数据完整
缺点:安全性差,代码容易泄露,模式很复杂
3,github
优点:集代码审查、项目管理、集成、操作、团队管理、社交编码、文档、代码托管于一身是一个十分强大的工具,大小项目都可以用其来管理,支持多人在同一页面交流共同完成同一个项目,代码不需要本地保存,还可以对项目进行保存备份。
缺点:需要学习写命令,用命令控制,在一些情况会非常麻烦。