第一次作业-201731081716

课程链接:https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2/

作业要求链接:https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2/homework/2706

课程目标:了解软件工程原理,将之前所学知识转化为实际问题解决,将我们平常的零散代码利用软件工程思想整合为一个系统的工程,了解程序从一个想法真实实现为一个程序的全过程,由内而外的认识软件工程模式,学习一个合格的软件工程师所需要具备的能力以及品质,学习团队合作,学会合理分配工程任务以及团队交流,为将来成为一个优秀的软件团队成员打下基础。

具体实现方向:听从老师的亲身经历,思考书中众多的真实案例,反思自身有何不足以及将来所需要提高的能力,了解优秀程序员所必备的职业素养,学习优秀软件团队合作技巧,通过多次实践,在实践中逐渐提高。

 

正文:

一、自我介绍

1、我的博客地址:https://www.cnblogs.com/reganmian/

2、我是汪海鑫,是一个湖北人,刚来学校的时候人生地不熟,甚至都听不懂四川话,一切都很陌生,但是又很新奇,未来没有方向,大概就是上课听讲,课后完成作业,并且把大量的时间花在手机上,我原本是土木工程专业的学生,但随着我组建的学习,发现这个专业的未来方向与我追求的职业生涯相差很远,于是,我做出了转专业的决定,一切又重新开始了,甚至我处在一个负的起跑线上,但是这是我所选择的,我愿意为我的选择做出努力,即使是不断的追赶,但我相信,我终究会追上他人的脚步。

二、阅读与思考

 

(1)回想一下你初入大学时对软件工程专业的畅想

  • 当初你是如何做出选择软件工程专业的决定的?
    • 大一刚入学,每个人都会修一门必修课,那就是个人职业规划,但在我的规划里,我的职业似乎与我的憧憬相违背,于是我选择转专业,一向对各种手机APP以及电脑软件感兴趣的我,义无反顾以及理所当然的选择了软件工程专业,梦想着将来成为一名优秀的软件工程师,将一排排代码转变为可以方便生活,充满乐趣的各种软件,在创造价值的获得乐趣。
  • 你认为过去两年中接触到的课程是否符合你对软件工程专业的期待,为什么?
    • 符合,目前所学已经不再仅仅是在电脑中在键盘上敲出各种符号与字母,而是结合实际问题,做出实际可行的简单程序,虽然目前所学还很浅薄,但是今后将会学习更多可以解决与我们日常生活息息相关各种更加复杂问题的解决方法。
  • 你觉得软件工程是你喜欢的领域吗,它是你擅长的领域吗?
    • 是我喜欢的,但是目前还不够擅长,我喜欢它的奇妙,喜欢一行行代码在指尖出现,喜欢一个个软件极大的方便我们的生活,这种感觉很奇妙,这是我的价值。
  • 将来你会选择从事软件开发相关的工作吗?是的话给出你想去的城市、公司和岗位,否的话给出原因
    • 会,一定会的,我理想的城市是家乡的武汉,最近很多新兴的互联网公司在武汉有了分公司,希望将来我会成为其中某家公司中很寻常但是又不太寻常的一名高级软件工程师吧。

(2)即将大三的你,对照前人们走过的路和描述未来发展,现在的你

  • 自我感觉你已经具备的专业知识、技能、能力有哪些?已经写过的代码量是多少?
    • 初步掌握了C语言、C#语言的使用方法,可以简单运用sql数据库为我的程序提供数据服务,知道了各类数据的种类以及数据的结构,可以融入团队,乐于成为团队中的一员,同时自我学习的积极心是我很重要的一项能力。
  • 离成为一个合格的软件工程专业本科毕业生,在专业知识、技能、能力上还差距哪些?
    • 目前所学都是很浅显的东西,考试中考的也是平常老师反复提到过的“重点”,这当然不足以支撑起我未来的工作,要想成为一个合格的软件工程专业毕业生我必须继续钻研更深层次的计算机科学和软件科学,同时我们在取得一些成绩的时候不能固步自封,应该与时俱进,不断学习更新的计算机语言,如-Python,Java等。

(3)大三是一个人生选择的十字路口,考研、工作、考公、出国,不同的选择在大三就有不同的努力方向。而无论考研还是工作的每条路径,也有许多不同的分支。

  • 对照以上你阅读的前人们的经历,你的选择是什么?
    • 考研,大学本科并不代表这就是终点,学业无止境,在更高的境界学习更深层的知识,开拓自己的眼界,这是我一直以来所梦寐以求的,同样的,不管是出于对学习的热爱,还是朝着未来的职业来考虑,考研也代表着更高的起点,以及更高的上限,因此,我将继续追求,朝着梦想,坚定考研的目标。
  • 在这种选择下,你认为你相比其他同学来说有何优势,有何劣势?
    • 因为我是转专业来到软件工程专业的,所以对于其他人来说,我曾见识过不同学科不同行业,我可以用更宽的视野思考同一个问题,对于其他人,我可能可以用一个不同的角度提出我的意见;我的劣势同样是,因为我转专业,我的软件工程起点比较晚,一直在追赶,追赶的途中对于很多问题只是一知半解,有很多遗漏,但是我现在将会逐渐一步步弥补,重新拾起的路上,我会收获更多。
  • 针对你的选择,你给自己的大三设定的规划安排是什么?
    • 与自己战斗,抵御诱惑,一步一个脚印的完成所指定的学习计划,规律自身,坚持到底。

   

三.提有质量的问题,快速看完整部教材,列出你仍然不懂的5到10个问题,发布在你的个人博客上。注明是哪一章哪一节。要有观点、有证据或分析。字数不是直接的考核标准,但是要求篇幅长到能把观点表述清楚。

1.第十六章中提到了很多经典案例,其中索尼公司的另辟蹊径获得成功和Nokia由巅峰迅速衰败,我不由提出一个问题,到底怎样才是创新,怎样又是投机呢?如何最大程度的分辨真正的创新和虚幻的泡沫,也许我所一直坚持的方向,终点等待我们的却是一条严严实实的死胡同。

2.第二章中介绍了软件工程师度量模型PSP,它根据很多方面综合评价一名软件工程师是否合格,但是,从个人能力以及效率上来看,这个人可能是合格的,但是做出来的东西是否会被用户认同,以及这名工程师个人能力优秀,但是在团队中有扮演什么样的角色呢?会不会出现个人能力很强,但是却破坏团队的情况呢?

3.第三章第五节说到了学习区,书上提到很多人学了一些皮毛就想追求最深层次的问题,最终胡因为没有能力,心理准备也不够,从而导致“拖延症”此类现象的产生,我觉得我们现在很多人真的是这样,包括我自己都有过类似的经历,但是,如何根据书中所提构建适合自己的学习区并且慢慢的将学习区变成自己的舒适区呢?

4.第164页,需求分析这一章节,感性决定勾起了我的好奇心,当我们被分配去干某个任务的时候,我们可能真的是下意识的觉得,既然分配到我了,那么我就去做,但是分配到某个人这件事情是如何决定的呢,现代软件工程中,成本是很重要的一部分,人力又是其中很重要的组成,那么如何分配可以讲礼仪最大化,成本最小化呢?真的是理性决定的吗?

5.第六章,敏捷流程,为何是敏捷流程,而不是优化流程,在敏捷流程中那些点体现了与优化流程的不同?

 

四.了解和调查源程序版本管理工具

上网调查一下目前流行的源程序版本管理软件和项目管理软件都有哪些,列举至少三个或以上的版本管理软件各有什么优缺点? (提示:搜索一下Microsoft TFSGitMercurialGitHubBitbucketTracBugzillaRationalApple XCode

 

1.

Git的优点:

1、适合分布式开发,强调个体;

2、公共的服务器压力和数量都不会太大;

3、速度快, 成熟的架构,开发灵活;

4、任意两个开发者之间可以很容易的解决冲突;

5、离线工作,管理代码成本低,不需要依赖服务器;

6、部署方便。基本上下个命令就可以用;

7、良好的分支机制,可以让主干代码保持干净。

 

Git的缺点:

1、资料少,学习成本比较大,学习周期比较长,要求人员素质比较高;

2、不符合常规思维;

3、代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。
---------------------
原文:https://blog.csdn.net/bmicnj/article/details/78413058

 

2.

Microsoft TFS:

优点:任务版上能将需求、项目进度一览无余,对于小团队而言,比甘特图更有用,集成了项目管理、版本控制、BUG 跟踪,能有效实现 SCRUM,能与 VS 无缝接合。

缺点:搭建、维护tfs比较复杂,硬件要求也比较高。

 

3.

Apple XCode:

优点:可以自动创建分类图表。

        自动提供撤消、重做和保存功能,无需编写任何编码。

缺点:更新版本后,某个插件可能会失效。

 

posted @ 2019-03-21 00:44  Via。  阅读(213)  评论(2编辑  收藏  举报