第一次作业(阅读与准备)

这个作业属于哪个课程 课程的链接
这个作业要求在哪里 作业要求的链接
我在这个课程的目标是 学习一些与软件工程相关的基础知识以便于能够更好的编写程序
这个作业在哪个具体方面帮助我实现目标 能够提出一些自己不清楚的问题,并能让自己主动去思考

既然你知道路远,那么从明天开始你就要早点出发。

我的博客地址:https://www.cnblogs.com/sl1999/

一.自我介绍——粟磊

我是来自计算机科学与技术1班的粟磊,就是咱四川本地人。由于从其它专业转来所以不能说自己由太精通编程,可以说是一个刚进程序员行列的小萌新吧。其实呢我个人的兴趣爱好是打乒乓球和游泳。个人的闪光点,其实我自己以为我身上从来就没闪过光(笑哭)。如果非要想一个的话我想就是喜欢一个人独立思考吧(因为在很多时候我发现,在课堂上有很多同学的时候有时候老师提一个问题我就不能很清楚的思考清楚其中的缘由,但是当我一个人坐下来静静的思考的时候很复杂的问题我也会知道解决它的方法。)如果要说通过何种努力得到这种技能的话,可能就是从小到大很多时候都喜欢一个人独处。渐渐的就形成了这种一个人思考的能力。

二.阅读与思考

(1)回想一下你初入大学时对你所在专业的畅想

当初是如何做出选择你所在专业的决定的

我仍然还记得当我还没进大学时我心里总在想:去到大学后我一定要转专业到计算机,说直白一点我当时对于转专业到计算机心里想的就是程序员的工资可能会比其他的工作工资要高一点。所以进到大学后也就一直坚持要转到计算机。还有就是我自己认为我是一个热爱动手的人,所以感觉自己比较适合工科专业。当时就有两个理想的专业一个是计算机类,另一个就是机械类。最后经过再三的思考选择了计算机类。

你认为在过去一年你所接触到的专业课程是否符合你对自己所在专业的期待

对于过去的一年在计算机专业的学习我觉得可能和我在没进计算机专业之前所期待的有一点出入吧,因为在以前我总认为我们可能敲代码的时间多一些即会很注重实践,对于理论性的东西可能花的时间会少一些。但是当我真正学的时候我却发现讲理论的时间却更多,当然可能也是我自己太懒了,下来之后敲代码的时间太少。所以才会这么觉得。在我个人的认知中当老师讲一个算法时老师可能会亲自动手写代码然后运行,可能这就是我期待的和现实中不一样的地方吧。

你觉得你所在的专业是你喜欢的专业吗,并且是你擅长的专业吗

首先我敢肯定的是这个专业肯定是我喜欢的专业,但是说不上非常喜欢。当然擅长肯定是不敢说的,因为我写代码的能力并不算太强,实践能力不行。虽然就目前来说可能并不是我擅长的专业但是我会通过不断的上手和学习向我擅长去靠拢的。

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

将来从事和我专业相关的工作我想这是必然的因为要学以致用嘛。如果要选出我想去的城市的话最好的当然是留在成都,公司的话我自己是想去字节跳动的(当然我知道这对于我来说是几乎不可能的)。我理想中的工作岗位是算法工程师或者是软件工程师(前端)吧。当然我与我想从事的岗位之间的差距是巨大的,所以现在我只能尽自己所能去了解和学习与这方面相关的知识。

(2)和前人相比现在的我与他们之间的差距

具备的专业知识我想可能目前的我可能就是懂一点编程语言吧,自学的Java可能也才刚入门。而且对于所学的专业知识数据结构也只是简单的掌握并没有去深入理解。技能也就是会一点简单的编程。已经写过的代码即代码量是很少的,加上作业实验报告这些可能有三四千的样子。就我个人而言我认为我所做的最复杂的项目可能就是程序综合实践中的推箱子和打气球这两个游戏吧,当时为了做这两个游戏是废了很大的力气的。当时由于是转专业的C语言也才刚开始学对于C语言的掌握都算不上好,所以当做游戏的时候基本上是边看书边敲。有时候会问同学让他们帮我看一下哪里出现了错误,有一次还是请老师来帮我找的错误。

对于要成为一个合格的本科生我还有很大的差距,首先正如上面所说我目前掌握的知识只是一些浅显的东西并没有理解到其中的精髓。而且就我的编程能力而言也还有很大的不足,有现在才刚刚大二本来所学的知识就很少所以很多的专业知识都还没有掌握。

(3)就我自己而言将来的选择,与其他人相比优势、劣势,为此所做的规划和准备

到大三时我自己的选择还是考研吧。要说与其他人相比我有什么优势的话,我不知道其他人的自学能力怎么样反正我自己觉得我的自学能力挺强的。还有一个就是善于思考吧。对于我自己的劣势我还是挺清楚的,思考的时间太多花在动手操作上的时间太少了。还有就是因为我的选择是考研嘛,所以我还有一个最大的劣势就是外语能力太差了。

三.提出问题

(1)什么是断言(assert)?断言和错误处理之间的关系

第四章第三小节关于错误处理中指出的错误处理可以用的方法

快速读了这部分后发现我并不理解断言的含义和其与错误处理之间的关系,所以我在网上查了资料对于断言的定义为在我们写代码时我们会对某种假设条件进行检查,断言就是对这些假设进行捕捉的。断言表示为一些布尔表达式。断言可以快速发现并定位软件问题,同时对系统错误进行自动报警。断言和错误处理之间的关系:其实断言可以看作错误处理的一种高级形式。

(2)敏捷的具体含义到底是什么

第六章敏捷流程,整个第六章都在说敏捷但我读后并没有理解其具体含义

书上对于敏捷的解释为:敏捷是一股思潮,或者说一种价值观。它涵盖了好几种软件开发的方法论;这些方法论又是建立在许多行之有效的最佳实践方法之上的。在查阅资料后我对于敏捷的理解是敏捷更多的强调的是一种思想,具体的就是要具备这种思想。所要具有的是要能自管理、自我组织和多功能型。

(3)当团队成员对于需求有切身体会要怎样才能把用户需求变成成员可以直接操作的开发工作

第十章典型用户和场景

在第十章中指出当团队成员对于需求没有切身体会可以用FDD(功能驱动的设计)把用户需求变成成员可以直接操作的开发工作,但并没有指出用何种方法实现党没有切身体会时怎样才能把用户需求变成成员可以直接操作的开发工作。所以对此我查询相关资料后对于这个问题我目前也没有找到确切的答案我想对此可能是用SCRUM(Scrum是迭代式增量软件开发过程,通常用于敏捷软件开发。Scrum包括了一系列实践和预定义角色的过程骨架。Scrum中的主要角色包括同项目经理类似的Scrum主管角色负责维护过程和任务,产品负责人代表利益所有者,开发团队包括了所有开发人员。虽然Scrum是为管理软件开发项目而开发的,它同样可以用于运行软件维护团队,或者作为计划管理方法:Scrum of Scrums——来自百度百科)

(4)啥是每日构建

来自第十一章第五小节关于每日构建的小故事

在这个小故事中指出了每日构建的重要性,但对此我却并不了解每日构建的具体含义。查阅资料后“每日构建”大概指的是每天自动的完整的构建整个代码树(source tree),具体含义为将整个项目源代码的目录、子目录、文件的位置尽可能事先固定下来,这样在开发过程中各个模块间,各个文件间的相对位置都不会混乱。以上可能就是每日构建的基本含义吧。

(5)为什么大部分先行者并不能成为成功的创新者

第十六章迷思之四:创新者都是一马当先

大家都听了很多创新者的故事,可能就会想他们真了不起,第一个想出了这些美妙的想法。但其实大部分的先行者都不能成为成功的创新者。那这其中的原因究竟是什么呢?我想这其中可能的原因是虽然他们是先行者但是很多时候他们只是在单方面进行了创新,而作为他们的后来者可能不仅在技术上进行了创新同时也可能打破了传统的商业模式、构建了新的商业生态,借助这些综合手段取得了成功。

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

(1)Git

Git是一个开源的分布式版本控制系统用以有效、高速的处理从很小到非常大的版本管理。Git是为了帮助Linux内核开发而开发的一个开放源码的版本控制软件。

优点:适合分布式开发,强调个体。公共服务器压力和数据量都不会太大,任意两个开发者之间可以很容易的解决冲突同时还可以离线工作。

缺点:里面的相关资料较少,学习周期相对而言比较长。不符合常规思维。代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。

(2)Buzilla

Bugzilla是Mozilla公司提供的一款开源的免费Bug(错误或是缺陷)追踪系统,用来帮助你管理软件开发,建立完善的BUG跟踪体系。

优点:拥有强大的检索功能,用户可配置的通过Email公布Bug变更。可以通过跟踪和描述处理Bug,具有完备的产品分类方案和细致的安全策略,安全的审核机制,强大的后端数据库支持,友好的网络用户界面,丰富多样的配置设定,同时还可以版本间向下兼容。

缺点:界面设计的太差,Bug本身只有中文版,即使有多国语言包,更新也较缓慢。所以可读性较差。

(3)Trac

Trac是一个为软件开发项目需要而集成了Wiki和问题跟踪管理系统的应用平台,是一个开源软件应用。Trac以简单的方式建立了一个软件项目管理的Web应用,以帮助开发人员更好地写出高质量的软件;Trac应用力求不影响现有团队的开发过程

优点:Trac有良好的扩充性,Tra的权限体系设计的较完备。能够根据个人的需求进行定制。

缺点:Trac是采用Python语言开发的,因此Trac的在运行的时候,需要有Python环境的支持。功能不是特别强大。

猜你喜欢

转载自www.cnblogs.com/sl1999/p/11479447.html