作业课程 | 18级软件工程基础 |
---|---|
作业要求 | 阅读与准备工作 |
我在这个课程的目标是 | 对软件工程有深一步的了解 |
这个作业那些方面帮助我实现目标 | 培养了我的阅读能力和思考能力 以后遇见工程难题能有所作为 |
我的博客地址 | https://www.cnblogs.com/yeyeah/ |
参考文献 | SVN和Git 介绍,区别,优缺点,适用范围总结 Mercurial 有哪些优点?适合怎样的开发者或团队使用? |
参考文献 | Trac 经验谈之(1)杂谈篇 Problems with Trac? Switch to FSFS |
1.自我介绍
我是计科一班的叶昊,本地人,原来身为软件工程专业的我转来了计算机科学与技术专业,如今却又在学习软件工程基础,不禁感叹世道的无常(笑)。当初院内转到计算机系主要是为了学习更多的东西,我觉得只学习软件还是有太多的局限。计算机科学与技术是一个大门,我觉得软硬兼修更有利自己未来的发展。但学习了一年的计算机,我觉得自己仍有很多不足。算法呀数据结构都是马马虎虎,所以这门课对我来说门槛是很高的,但这也激励我更加努力的学习。平时也没什么爱好就会画画,学点其它国家的语言。今年7月日语已经过了n2,也算为以后多铺一条路。除了考研也许能考虑出国。
2阅读与思考
1)回想一下你初入大学时对你所在专业的畅想
当初你是如何做出选择你所在专业的决定的?
最初的我其实很现实,因为计算机这方面比较容易找到工作,薪资待遇相对于其它工作比较高,但是既然这样为什么我又会从软件工程转到计算机呢,因为我也在考虑今后的事,我可能会继续学习考研呀出国呀,而相对于软件工程,计算机科学与技术可能更加全面,所以做了这个决定。而且现在我也觉得我找到了自己的目标,我想学习如何制作游戏,多亏小时候亲戚给我带来了任天堂的gba,nds游戏掌机,让我认识了任天堂这家伟大的游戏公司,他们不遗余力的向制作游戏的终极目标“好玩“前进,一次又一次的创造电子游戏界的历史。我也幻想自己能努力有一天能进入任天堂就职,虽然这也就是白日梦而已,但我会一直向着这个目标前进。
你认为过去一(两)年中接触到的课程是否符合你对你自己所在专业的期待,为什么?
我觉得比较符合,先是c语言程序设计基础开始学起,然后学习程序结构,从最基础的开始学习编程,平时也有老师布置的作业,实验这些的。帮助我在课上所学的知识有更好的了解。但我感觉自己有点不争气,学完之后没有很好的练习和复习。进入了大学要花更多的功夫在课下,不能指望老师用单单几节课时间让我们对所学的知识融会贯通,印象深刻。
你觉得你所在的专业是你喜欢的领域吗,它是你擅长的领域吗?
我还是比较喜欢的,毕竟这才刚开始,我的梦想和抱负也是想成为一名不错的游戏开发者,但我确实说不上擅长,但我会继续努力的为了我的梦想。
将来你会选择从事和你专业相关的工作吗?是的话给出你想去的城市、公司和岗位,否的话给出原因
会,我想去日本京都的任天堂本部参与ゲーム開発(游戏开发)的工作,我真的想去电子游戏界的顶端看看。去见识一下电子游戏界灯塔一般的存在。
2)对照前人们走过的路和描述未来发展,现在的你
自我感觉你已经具备的专业知识、技能、能力有哪些?已经写过的代码量是多少?描述你做的最复杂的项目/作业。
我具备的专业知识也许就是c语言的程序设计基础和上学期学习的数据结构,技能也就是些基础的玩意,比较复杂的一些问题还是比较棘手,能力还是有限,深感自己的不足,感觉代码量也就一千行左右吧,最复杂的作业也就是上学期做了一个非常劣质的俄罗斯方块游戏,但认真的说俄罗斯方块借鉴的地方还是有些多。所以还得加油。
离成为一个合格的本科毕业生,在专业知识、技能、能力上还差距哪些?
首先还有很多必修课没学习,这里是有差距的,还有就是自己平时没有太努力,就只是完成了老师布置的任务,代码量还远远不够,编码能力还需要自己课下的勤加练习。而且我感觉自己大一没有好好利用充足的课余时间学习练习,实在是很遗憾,别人课下在学习各种语言,巩固基础的时候我却在玩耍,所以从现在开始要尽量把差距缩小,平时要好好利用课余时间复习巩固和学习练习。
3)目前是一个人生选择的十字路口,考研、工作、考公、出国,不同的选择在大三就有不同的努力方向。而无论考研还是工作的每条路径,也有许多不同的分支。
对照以上你阅读的前人们的经历,你的选择是什么?
我还是想考研深造,如果有机会考到国外(日本)去当研究生就更好了,这样离我梦想的公司就更近了一步。
在这种选择下,你认为你相比其他同学来说有何优势,有何劣势?
我觉得优势在于能学习到更多的东西为以后工作打好基础,而且学历的升高也有助于就业时的简历,而且外语能力也不会轻易的荒废掉。
劣势也在于别人会领先我几年工作经验,而且更早的踏入社会能很好的磨练一个人,会让这个人的内在外在得到待在学校里得不到的提升。
针对你的选择,你给自己的大三设定的规划安排是什么?
在课堂我也许会学习去计算机图形学,在课余时间学习其它计算机语言,学好本科课程提高绩点,努力保研的同时,准备托福托业,尽自己的力量去和国外的教授套磁,看能不能让自己出国学习。但在课余时间也不能忽视了自己的精神花园,我会读一些课外书和玩一些优秀的游戏丰富自己的生活。
你对于实现自己的梦想已经做了或者计划做什么样的准备?
首先我已经让自己努力通过了日语n2考试,接下来会在课余时间挤出时间备战n1的考试,我的英语能力方面也只是过了六级,希望在备考托福托业的时候英语能再有所提高。再然后就是自己的专业技能的学习安排,我必须得多加练习,巩固所学的知识,并且学习些课外的有关游戏开发的课程。希望自己以后能考自己的力量做出一款让大家开心的游戏。
3.问题
1)技能的反面究竟具体指什么?
出自本书第三章第四节,就看到了作者提到所谓技能的反面,可是通篇看下来我就觉得这不就正是技能的精通吗,为什么会提到是技能的“反面”,我对这个反面的说法有点迷惑。何不直接叫做技能的精通。
2)敏捷流程对于传统的流程来比敏捷在哪里?
本书第六章大谈了敏捷流程,感觉敏捷流程变化性强,软件的开发中客户与开发者,开发者与开发者都在进行着交流,所谓的敏捷就只体现在它的随机应变吗。
3)关于功能说明书中一些好功能的副作用,我们应该如何发现它们?
本书第十章第三节提到的功能说明书中提到了一些好功能的副作用,可是副作用又是如何发现的,如何界定的呢,不是每一个人都有长远的目光,难道只能等东窗事发后才来弥补吗。
4)情感设计中的情感具体是什么?
本书第十二章第一节的第七小点在讲用户体验的时候提到了情感设计,但是情感到底指什么方面的情感,是人文关怀,还是指客户本能的感性。
5)人们究竟喜欢不喜欢创新?
本书第十六章第一节,作者提到了很多关于创新的迷思,其中有一点让我有些困惑,大家都喜欢创新这点上,作者的态度是反对的,说大家不喜欢创新,但是我们一般人平时的生活中其实就算是算不上有多喜欢,也不会怎么讨厌。作者的观点和大众观点有点向背,至少我认为大家还是喜欢优质的创新。
4.了解和调查源程序版本管理工具
Git的优缺点
优点
对程序源代码进行差异化的版本管理,代码库占极少的空间。
易于代码的分支化管理。
缺点
不支持中文,图形界面支持差,使用难度大。不易推广。
Mercurial的优缺点
优点
跨平台。毕竟是基于Python,Mercurial现在跨Mac、Windows、Linux。
封装好。相比git,Mercurial很少暴露一些实现内的细节,比如rebase,比如gc。整体上看Mercurial需要掌握的命令比Git少很多,学习门槛相对低。
缺点
分支管理不灵活。Mercurial的branch管理和git相比不是不方便,而是非常不方便。基本的一条是branch出来就删不掉。
支持社区略差。
Trac的优缺点
优点
界面干净。
它整齐地集成了一个wiki,一个简单的bug跟踪器和一个Subversion存储库浏览器。
缺点
需求和缺陷没有分离,
用 wiki 来替代 Word 等工具编写文档对于产品策划来说门槛太高了,
中文化不完整,美术人员接触起来困难重重,
不显示中文名,本地化做得很差,
核心功能很少,不安装插件基本上没法用。