个人第1次作业:阅读与准备作业
这个作业属于哪个课程 | 课程链接 |
---|---|
这个作业要求在哪里 | 作业要求 |
我在这个课程的目标是 | 1.学习软件开发的过程 2.了解并掌握项目构建的基本方法和使用工具 3.锻炼自己团队合作能力 4.能够独自开发一些较为简单的软件 |
这个作业在哪个具体方面帮助我实现目标 | 1.通过阅读博文可以掌握到基本的编译知识 2.练习写博客 3.可以了解到几种常用的源程序管理工具的优缺点并学习使用方法 4.可以阅读教材,了解课程内容 |
一、建立博客并介绍自己
1.个人博客地址:链接
2.个人介绍:我是一名普通的地理信息科学大三学生,平时喜欢电竞、动漫、打篮球和音乐,我学了6年钢琴并且也过了10级,最喜欢的事就是跟喜欢的人去旅游,走遍各个地方。
二、阅读与思考
1.回想一下你初入大学时对地理信息科学专业的畅想
-
当初你是如何做出选择你所在专业的决定的?
地理信息科学并不是我高考志愿所填的专业,我是被调剂过来的,可以说是被选择的,但是通过一学期的学习我发现地理信息科学与我想学的计算机专业有很多相通之处,所以我就留在了地理信息科学,再者就是我在高中就对地理方面的知识感兴趣,所以我就选择了地理信息科学这个专业。
-
你认为过去一(两)年中接触到的课程是否符合你对你自己所在专业的期待,为什么?
通过在这个专业两年的学习,我越来越喜欢GIS,它包含计算机的方面与地理的方面,我觉得我们专业不管是在军事还是民用方面都有极大的潜力,发展前景也特别好,这很符合我对我的未来的规划。
-
你觉得你所在的专业是你喜欢的领域吗,它是你擅长的领域吗?
地理信息科学他包含了地理学科与计算机学科,是我喜欢的学科,但因为我高中学的是理科,所以不是很擅长。
-
将来你会选择从事和你专业相关的工作吗?是的话给出你想去的城市、公司和岗位,否的话给出原因
毕业后我会选择与我专业相关的工作,我想在天津、北京工作,实在不行的话在成都也行,我想先去超图公司,做软件方面的工作。
2.对照前人们走过的路和描述未来发展,现在的你
-
自我感觉你已经具备的专业知识、技能、能力有哪些?已经写过的代码量是多少?描述你做的最复杂的项目/作业。
我会最基础的c语言与c#语言,学习了数据结构,会初步使用arcgis,但还需要更多联系,写过的代码倒是不多,有很多的是c语言和c#语言的作业,我觉得做过最复杂的作业就是计算机制图的作业,运用的代码有很多,用代码写出复杂的3D图。
-
离成为一个合格的本科毕业生,在专业知识、技能、能力上还差距哪些?
我觉得我在专业知识上还有差距,还有计算机能力都还不行,没有独自写过任何程序,所有的作业都是在同学和老师的帮助下完成的,并且很多原来的专业知识都遗忘了很多,成为一名合格的本科毕业生我还有很多要去学。
3.目前是一个人生选择的十字路口,考研、工作、考公、出国,不同的选择在大三就有不同的努力方向。而无论考研还是工作的每条路径,也有许多不同的分支。
-
对照以上你阅读的前人们的经历,你的选择是什么?
我想继续深造,继续学习GIS的有关方面,也就是读研。
-
在这种选择下,你认为你相比其他同学来说有何优势,有何劣势?
优点:可能在专业知识方面我可以领先他们,在学历方面能够更加领先。缺点:因为读研又要几年的时间,我就少了几年工龄,也少了几年社会工作的经验。
-
针对你的选择,你给自己的大三设定的规划安排是什么?
努力学习,复习以前的知识,为考研做好准备。
-
你对于实现自己的梦想已经做了或者计划做什么样的准备?
已经复习了数学知识与英语知识。
三、提有质量的问题
-
问题一:【第1章,1.2软件工程是什么】p17上说市面上有这么多不完美的的产品,软件团队为什么还要把这些不完美的软件发布出来呢?为什么不能等到它们完美之后再发布?对于这个观点,我觉得每种软件都不是完美的,有BUG也是肯定的,因为在人们使用过程中会产生各种各样的问题,100个人心中有100个哈姆雷特,每个人使用情况不同,就会有各种各样的问题,软件工程师也只是能尽到自己的最大努力优化这个软件,这个世界不存在完美的软件。
-
问题二:【第5章,5.2团队模式】p92上写到了主治医师模式、明星模式,这都是在一个团队里,将1个人的个人能力发挥到极致。我想问的就是如果在一个团队中,一个人的能力就算再全面,也达不到完美的地步,如何就团队来说,是使用个人的能力为主,还是团队的能力为主?
-
问题三:【第8章,8.1软件需求】p152上写到了我们在制作软件之时需要找到软件的利益相关者,了解和挖掘他们对软件的需求,引导他们表达真实的需求。我想问的是就是一个人或一个团队在做一个软件时他们是依靠自己对这方面的兴趣制作软件还是在顺从人们对某种软件的需求在制作软件,比方说某些独立游戏制作人,他们制作的独立游戏是特立独行的,在此之前没有任何相关的类型,他们完全是依靠自己对游戏的理解制作独立游戏,但是他们依旧能够获得成功,我的问题是如何平衡制作团队需求以及用户需求?
-
问题四:【第12章,12.1.6用户体验和质量】p260上写到了好的用户体验当然是所有人都想要的,如果它和产品的质量有冲突,怎么呢班?牺牲质量去追求用户体验,用户能接受吗?我的问题就是对于一个软件甚至是对于一个软件开发团队来说,用户体验和软件质量到底应该如何平衡?
-
问题五:【第14章,14.1.2软件工程的质量】p303上写到了在软件发布之后,需要长期加班修复用户提出的问题,我的问题就是,如果某一个软件开发完毕,并且发布之后,但发布过后用户体验很不好,并且bug有很多,用户开发团队修复这些bug,但就团队来说这个bug有益于收入,并没有修复,当用户习惯了这个bug过后并且觉得这个bug就是这个软件的一部分时,我们还应不应该修复这个bug呢?
四、了解和调查源程序版本管理工具
- Github:GitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名GitHub。
优点:
1、适合分布式开发,强调个体。
2、公共服务器压力和数据量都不会太大。
3、速度快、灵活。
4、任意两个开发者之间可以很容易的解决冲突。
5、离线工作。
缺点:
1、学习周期相对而言比较长。
2、不符合常规思维。
3、代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。 - MicrosoftTFS
优点:
1、在用户习惯上,开发人员容易上手。
2、TFS高度继承主流的开发工具和常用的办公工具。
3、高度继承研发团队的工作项目。
4、支持分布式代码库。
缺点:
能应用起来的团队、公司的数量极少,多数真正用起来,也就是源代码管理这部分,这也仅仅是占TFS极小部分功能。 - Trac:Trac是一个为软件开发项目需要而集成了Wiki和问题跟踪管理系统的应用平台,是一个开源软件应用。Trac以简单的方式建立了一个软件项目管理的Web应用,以帮助开发人员更好地写出高质量的软件;Trac应用力求不影响现有团队的开发过程。
优点:
Trac非常的灵活,可以和SVN集成。
缺点:
功能不是很强大。 - Bugzilla:Bugzilla 是一个开源的缺陷跟踪系统,它可以管理软件开发中缺陷的提交,修复,关闭等整个生命周期。
优点:
1、强大的检索功能。
2、用户可配置的通过Email公布Bug变更。
3、历史变更记录。
4、通过跟踪和描述处理Bug。
5、强大的后端数据库支持。
缺点:
1、快速搜索功能不准确。
2、只能管理缺陷。