第一次作业
这个作业属于哪个课程 | 18软件工程设计 |
---|---|
这个作业要求在哪里 | 《第一次个人作业:阅读与准备》 |
我在这个课程的目标是 | 用Markdown如何做一个好软件 |
这个作业在哪个具体方面帮助我实现目标 | 用Markdown来写博客并记住软件的开发流程 |
其他参考文献 | 软件开发流程与程序 |
1.个人介绍
我叫刘沁昆,是一个来自陕西西安的小孩。从小就对文学很感兴趣,6岁受母亲的影响每天中午守在电视机旁看百家讲坛,家里的书大多被我翻出了褶皱。初中迷上了游戏,参加过陕西省的u14青训队,由于家人的原因最终还是选择了继续读书。在高中分科时因为对文学的喜爱而选择了文科,但理智告诉我文科终究不是一条明智的路,于是又转头奔向理科的学习。最擅长的莫过于题诗作文,多次登上过华商报的首页,即使很久没有再写过一篇短文,但仍对看书读报有着浓厚的兴趣,想做一个像胡适一样的人,坚定但有个性。
2.阅读与思考
## 1)回想一下你初入大学时对你所在专业的畅想
1)当初你是如何做出选择你所在专业的决定的?
当时填志愿时更倾向于找一个将来就业面广,符合发展趋势的专业,思前想后只有自动化和计算机比较符合,但是我的物理不太好,搞不懂很复杂的电路,就选择了计算机专业,很幸运的被录取了。
2)*你认为过去一(两)年中接触到的课程是否符合你对你自己所在专业的期待,为什么?*
个人感觉还是比较符合的。虽然我学的并不是很好,但也基本了解了我们平常进行的指令是怎么运行的(比如电脑自带的计算器功能)以及电脑的基本构造和内存。
3)你觉得你所在的专业是你喜欢的领域吗,它是你擅长的领域吗?
我很喜欢计算机专业,每次坐在电脑前都有种亲切感(可能以前游戏打多了)。我不能说很擅长这个领域,但只要肯学肯练就一定能从青涩到成熟。
4)将来你会选择从事和你专业相关的工作吗?是的话给出你想去的城市、公司和岗位,否的话给出原因
我一定会从事与我专业相关的工作。特别想去广州闯一闯,因为我的叔叔正在广州大学做人工智能方面研究,我因此了解了不少关于人工智能的信息,很希望能自己设计出一个像样的机器人,他并不是计算机出身却能从零学起,我相信我也能做的更好!
2)对照前人们走过的路和描述未来发展,现在的你
*1)自我感觉你已经具备的专业知识、技能、能力有哪些?已经写过的代码量是多少?描述你做的最复杂的项目/作业?
学会了c语言,数据结构的基本知识,能编写一些小功能(电话谱,医院排队系统等等),能用代码给妈妈写一个生日祝福(很开心)。写过的代码大概1000行左右。做过最复杂的作业是贪吃蛇,调用各种没见过的函数的确考验了我的自学能力(至今收益匪浅)。
2)离成为一个合格的本科毕业生,在专业知识、技能、能力上还差距哪些?
在专业知识上至少要再掌握一门自学语言,能够自己写一个让很多人受用的程序才算合格。遇到任何问题都可以很快的上手,而不是一头雾水不知所措。最需要弥补的就是条件反射式的思路,还需要大量练习才行
3)目前是一个人生选择的十字路口,考研、工作、考公、出国,不同的选择在大三就有不同的努力方向。而无论考研还是工作的每条路径,也有许多不同的分支。
1)对照以上你阅读的前人们的经历,你的选择是什么?**
我更倾向于于考研,受到我叔叔的影响以及对未来就业的考虑,考研是增加自己机会和能力最好方式,并且能提高自己的层次而不局限于底层的境界。
*
2)在这种选择下,你认为你相比其他同学来说有何优势,有何劣势?*
优势在于能接触到更高层次的领域,劣势在于不能很好的积累工作经验,无法提前锻炼自己的实战能力。
*
3)针对你的选择,你给自己的大三设定的规划安排是什么?*
把学过的知识全部理解消化,尤其是基础的概念和理论,注意身体锻炼,合理饮食。
*
4)你对于实现自己的梦想已经做了或者计划做什么样的准备?*
准备学一门新的语言,多读关于人工智能的书,最重要的是消化已经学过的知识。
3.我的问题
1.p52专和精的关系?
当我们在组队写一个程序的时候,一定会有一个领导的人,是团队的大心脏,并且对于突发的状况都有合适的解决方案,想成为这样的人必须要做到专且精,对于自己的水平有足够的自信与灵活的反应力。
2.p96写了再改模式?
这个模式固然对于开发者来说是方便且无压力的,但我认为应该对待每个程序都需要足够的认真和仔细,才能培养认真严谨的态度。
3.p171找出估计后面的假设?
这个问题主要告诉了我们一个项目也许并不能像预期的那样圆满完成,但可以大约估计他的范围。但我觉得先用一两个原型来进行操作效果会更好。
4)p260情感设计?
这个问题说明了往往用户在意的是产品的本来特性,但当产品附加功能与用户使用偏好产生矛盾时,应该怎么做呢?
5)p394重大问题由“猪”决定?
这个问题告诉我们往往产品的方向由开发者定夺,鹦鹉过多会影响整个流程的进展,但如果将鹦鹉的评价置之不理,又会发生什么呢?
4. 源程序版本公共管理工具
git:
git是一种开源的分布式的vcs(version control system)版本控制系统。优点是分布式的版本管理,对比集中式的版本管理系统来说不会出现中心服务器死机就影响工作,而是可以先存储在本地,等服务器修改好还可以接着进行工作,并且git的社区灵活,拥有丰富的资料来进行学习查阅,并且git是开源的,它强调个体,并且对于公共服务器压力不会太大,大小项目均可管理,拥有良好的分支机制,git的分支只要不提交合并,对其他人没有任何影响,并且git是统一管理元数据,存放在称为.git的文件目录里面。git的版本之间的兼容性不好,可能在上个版本的项目内容放到另一个git版本会出错。
TFS:
利用存储在不同系统中的定量数据,深入了解有关软件开发项目的组合执行、遵守战略目标和资源利用率方面的最新情况。
通过常用数据和商定的度量标准,自动实施跨团队的项目信息共享,并改进使用不同方法(如瀑布图分析和敏捷过程)的团队之间的协作。
支持开发和项目管理团队使用熟悉的工具(如 Visual Studio、Microsoft Project 和 SharePoint 产品)开展协作以及沟通项目日程表和进度。
bugzilla:
1.界面。 BugZilla的几面几乎可以说惨不忍睹,鼎鼎大名的开源软件,界面居然是这样。呵呵。真想不通。相对而言Mantis的界面则要友善的多了。操作也相对更加人性化一点。
2. 功能。 就功能来说,BugZilla的定制功能的确更强,能满足更多用户差异化的需求。而Manits的好多设置还得通过修改代码来实现,相比麻烦了很多。
3. 本地化。 Mantis本身就提供了十几国的语言可以供用户直接选择。很不错的哦。而BugZilla本身只有英文,网站提供的多国语言包,看起来也是Sourceforge上其他项目组完成的,更新的节奏也比英文版慢了一年半年的。不爽的很。
4. 知名度,呵呵。这个BugZilla和Mantis没得比了。Linux,Eclipse,NASA(美国宇航局居然也用开源的???)...等等知名的厂商都在用。而Manits的使用者大多都是一下不知名的小公司了。
5. 安装。 平心而论BugZilla的安装确实比Mantis简单。CheckSetup.pl替用户省了不少心。