第一次阅读作业 郭昭杰 201731062608

作业属于课程:https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2

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

我在这个课程的目标是:学习与了解软件工程原理,提高编写、构筑代码的能力,并将其运用在以后的工作中。

这个作业在哪个具体方面帮助我实现目标:通过阅读软件行业优秀前辈们的经验之谈,借助他们的视角开拓自己的眼界,为自己未来的发展方向做好规划。

 

作业正文:

一.建立博客并介绍自己

1.我的博客地址:https://www.cnblogs.com/ashes-g

2.个人介绍:我叫郭昭杰,今年20岁,来自四川成都。我性格较为偏向内向,不太擅长于陌生人交流,只有对相处一段时间较为熟悉的人才能经常交流。我没有户外运动的爱好,喜欢听音乐、玩游戏和看动漫等等。当然,我现在也意识到这样是不健康的,所以我也在努力改变自己,不愿意白白浪费了大学四年的大好光阴。要说闪光点的话,我认为我的学习理解能力比较好,专心做事的时候能很快全身心地投入其中,这对我编写代码也有一定的帮助。

 

二.阅读与思考

阅读以上材料,并回答下面几个问题:

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

当初你是如何做出选择软件工程专业的决定的?

答:原因有两个。第一,我开始接触计算机软件的时间比较早,也因此迷上了游戏,从而对游戏是如何被开发出来的产生了好奇心,对软件工程产生了浓厚的兴趣,在未来如果可能的话也想作为一名程序员参与到游戏的开发中。第二,软件行业正处于新兴的发展阶段,未来就业前景良好(但我选择这个专业前并没有了解这一方面的信息,纯粹是因为自己的兴趣而做出 了这个决定),因此我的父母也没有对我选择这个专业而提出异议。

你认为过去两年中接触到的课程是否符合你对软件工程专业的期待,为什么?

答:实话说过去两年中接触的课程与我高中时憧憬的专业课程完全不同,并没有关于如何开发游戏的课程。不过在实际学习并阅读了推荐的博客之后,我明白了我以前的想法是幼稚可笑的,因为我连开发简单软件的能力都还不具备就想开发游戏实在是好高骛远。

你觉得软件工程是你喜欢的领域吗,它是你擅长的领域吗?

答:虽然这个专业与我想象中完全不同,但我仍然喜欢这个领域,也愿意在未来深入学习。我想,如果我专心学习的话还是能够掌握软件工程的专业知识的,而我编写代码的时候也很容易进入专心致志的状态,从而快速准确的完成任务。但我最大的缺点就是过于懒惰,弄懂了浅显的基本知识后就不愿意继续深入了解,亲自动手实践的时间也很少。

将来你会选择从事软件开发相关的工作吗?是的话给出你想去的城市、公司和岗位,否的话给出原因

答:将来我会从事软件开发相关的工作。我理想中的工作岗位应该就位于成都本地,因为我只是个初出茅庐的菜鸟,所以进入的公司并不需要太大,我希望能在编写代码的岗位上累积经验、深入学习,为将来进一步发展打下基础。

(2)即将大三的你,对照前人们走过的路和描述未来发展,现在的你自我感觉你已经具备的专业知识、技能、能力有哪些?已经写过的代码量是多少?

我已经掌握了C++、C#这两个软件开发工具的基本使用方法,对于数据结构、数据库系统等专业知识有了一定的了解。因为我平时过于懒惰,写过的代码量并不多,只有课程要求的实验和网上练习而已,平时在课外几乎很少动手敲代码。

离成为一个合格的软件工程专业本科毕业生,在专业知识、技能、能力上还差距哪些?

在看过那些技术大佬们在大学时学习的历程后,我深刻地认识到了我与他们的巨大差距。他们在大学时勤奋学习,已经精通多种编程语言,并且深入理解了编程相关的知识。而我最多也只是能够使用两种编程语言,专业知识并没有深刻理解,只能说是一个半吊子。

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

对照以上你阅读的前人们的经历,你的选择是什么?

在这种选择下,你认为你相比其他同学来说有何优势,有何劣势?

优势是我本身对于软件工程具备浓厚兴趣,逻辑思维能力比较强能够理解代码,编写代码时能很快进入状态。

劣势是我平时很懒又贪玩,所以这两年积累的专业知识很少,没有看过课外的关于软件的书籍,编写的代码量也不足。

针对你的选择,你给自己的大三设定的规划安排是什么?

我给自己大三设定的规划安排是改掉平时懒惰贪玩的习性,购买一些软件工程的精品书籍,努力学习软件知识,同时增加自己平时动手敲代码的时间,为自己以后进入工作岗位进一步学习发展打下基础。

 

三.提有质量的问题

1.第三章“软降工程师的成长”P52中提到了“很多中国IT人士认为35岁是程序员的职业终点”,在后文中也介绍了很多职业成长的要求和目标。那么我想知道阻碍程序员35岁之后继续编程的困难有哪些呢?在编写代码的效率和质量上,多年编程累积的经验无法弥补程序员接近中年脑力的下降吗?如果是这样,那么想要成为一个优秀的程序员,我在大学毕业到35岁之前这段时间内应当发展哪些能力呢?在35岁之后程序员的出路又是什么?

2.第五章“团队和流程”中介绍了很多软件的开发流程,每个流程都由很复杂的环节所构成。那在目前的软件行业中被应用得最广泛的开发流程是哪一个呢?另外,作为开发团队中的一员,我在开发过程中需要参与开发流程中的每一个环节吗?

3.第十一章“软件设计与实现”P233中介绍了开发人员的标准工作流程,在“实现设计、编写代码”环节后的多个环节都需要按照是否发现BUG来决定下一个行动是什么,那我想知道如果在代码中存在BUG但又未被发现的情况下会对后续环节产生怎样的影响?另外,从图中可以看出如果发现了BUG将会重复一个很繁琐的过程,那么在实际软件开发过程中实际出现BUG的频率有多高呢?在开发中需要一直重复寻找并修复BUG的过程吗?

4.第十四章“质量保障”P304中提到“软件的开发过程的三个主要特性是‘好’、‘快’、‘便宜’”,但我不理解其中的“便宜”具体是指什么,时间成本应该被归于“快”这一方面,那么一个软件的开发成本还来自哪些方面呢?

5.第十六章“IT行业的创新”中迷思之三中提到“好的主意不一定赢”,作者的观点是如果一个好的创新搞不清楚这个创新能从中得到什么就只能停留在口头阶段,但我不这么认为。我觉得文中提到的两个主意并不能称之为“好主意”,一个真正的“好主意”能够满足用户尚未被满足的需求,这样的主意是必定能取得成功的。

 

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

Git

优点:1.速度快,灵活。

           2.适合分布式开发,强调个体。

           3.能支持离线状态的开发工作。

缺点:1.代码保密性差,开发者把整个库克隆下来就可以完全公开所有代码和版本信息。

           2.学习使用有一定难度。

           3.不同版本之间不能兼容。

SVN

优点:1.对目录的组织的管理更加方便。

           2.保证提交操作的完整性。

           3.整个团队的代码较为一致。

缺点:1.集中管理对服务器的要求较大。

           2.不适合开源开发。

Mercurial

优点:1.每个用户管理自己的代码库,管理员只需协调同步这些代码库。

           2.分布式系统,不会因服务器问题而崩溃。

           3.易于使用,拓展性强。

缺点:采用Python语言,对用户是否能够使用存在要求。

 

posted @ 2019-03-20 20:12  焰烬  阅读(130)  评论(1编辑  收藏  举报