<做业要求的连接>https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2/homework/2706算法
<课程目标>但愿经过本课程更加了解软件工程,清楚软件开发所需的技能和流程,成为一名合格的软件开发师。数据库
在思考做业的问题后,我更加清晰地认识到本身能力上的不足,以及明确本身的将来规划,有利于调整本身的心态和作好充足的知识储备,通读完《构建之法》后,我改变了一些本身之前对软件工程错误的认识,明白一个软件的开发不只仅是靠编程技术,还须要需求分析、测试、协做等等,这都为之后良好的软件开发打下了基础。编程
一.创建博客并介绍本身后端
1.个人博客:https://www.cnblogs.com/joanna1220/服务器
2.我的介绍:大学后才接触编程,因此对编程十分陌生,即便通过一年多的学习,我对编程的认识仍没有提升多少,虽然本身编程技术薄弱,但我以为本身比较喜欢阶段性自我反思,在反问本身的同时了解到自身的不足再加以改进,是一个喜欢对本身进行规划的人,这也是一个可使本身变得更加优秀的优点。反思和总结的习惯应该是从高中三年繁重的学习生活中获得的最宝贵的财富,以前富有压力的环境促使本身学会进步,不断吸取新的知识和技能。工具
二.阅读与思考学习
(1)回想一下你初入大学时对软件工程专业的畅想测试
报考大学志愿时,我根本没有考虑过计算机类的专业,可是在大一上学期,忽然接触到计算机编程并产生了必定的兴趣,促使我选择转到软件工程专业。spa
大多选择软件工程的同窗最初确定都但愿本身经过课程学习后能够作出一个“东西”,或者能解决更多的计算机或软件的问题,但事实上,若是只经过课堂的学习是没法达到本身原有的目标,学校的课程重视基础和引导,甚至有些内容并非如今市面通用的、应用最广的东西,但不能否认再新潮的语言仍是其余工具等都是在原有基础上创新的,因此打好基础十分重要。设计
若是从软件的使用来讲,我以为软件工程是一门很实用的学科,当作出一个成品时的成就感是使人很是愉悦的;虽然本身的编程能力不太出色,但软件工程包含许多方面,我相信总会找到一个本身擅长的领域。
但愿本身能够留在成都,去到腾讯学习和发展,至于岗位可能会选择Web开发相关。
(2)即将大三的你,对照前人们走过的路和描述将来发展,如今的你
虽然已经学习一年多,但本身仍只会一点点编程,知道一点简单的算法;没有统计过本身的代码量但估计不超过一万。
首先专业知识不够扎实,没法利用所学的知识解决问题,其次实际操做时间太少,致使对程序调试和工具使用不熟悉,此外本身没有团队合做的经验,没有按照完整的流程去尝试开发一个项目。
(3)大三是一我的生选择的十字路口,考研、工做、考公、出国,不一样的选择在大三就有不一样的努力方向。而不管考研仍是工做的每条路径,也有许多不一样的分支。
每一个人的人生规划和目标不尽相同,虽然前辈们经过各类途径都取得了成功,但对于我而言,我暂时选择毕业后工做。
直接工做跟考研相比,首先是文凭差别,可能对于选择某些公司的职位会受到限制,其次经过考研你能够选择更加优秀的学校和导师,提高本身的专业技能;一样直接工做的好处是能够积累两年的实战经验,毕竟解决实际问题和书本上理论有很大的差距。
若是选择不考研,在大三上学期,我会夯实专业基础,扩展阅读相关书籍,将知识吃透,而且也会注重实际操做与理论知识相结合,积极参加计算机相关竞赛积累经验;下学期,我会大体肯定本身的就业方向,为暑期实习和大四招聘作准备。
三.提有质量的问题
1.在第二章第二节效能分析中,虽然提到两种分析方法:抽样和代码注入,但对于如何代码注入我仍然不太明白书中的例子,在上网查阅代码注入后发现其不只仅用于效能分析还应用于许多方面,但同时这种方法也存在许大隐患。可是如何在效能分析中正确地使用代码注入呢?
2.虽然在第六章敏捷流程中,详细地介绍了敏捷开发的原则、过程和经验,但对于如何实际地进行敏捷开发,仍然是一个模糊的概念,Scrum Master 的职责和做用到底具体是什么?如何挑选Scrum Master呢?
经过上网查阅相关资料,我进一步了解敏捷开发强调简单、适应变化、能持续性发展,快速反馈、高质量工做等,一个团队的Scrum Master不是一个发号施令的领导,而是一个教练,帮助团队中的每一个人理解和拥抱Scrum的价值观、原则和实践,抱着为你们服务的心态,主动去承担某种责任,或者是主动去作某件事情,帮助团队解决管理问题,解决纷争,让团队专一于价值交付。
3.在第十一章中提到须要每日构建以及每日构建的重要性,但什么是每日构建?什么是构建系统?构建到底须要作哪些事情呢?
据360百科解释,每日构建就是指把一个软件项目的全部的最新的代码从配置库中取出,而后从头进行编译,连接和运行,每日构建另外一个重要功能就是验证软件中各模块关系是否正确,也可称为"每日集成"。而构建系统是用来从源代码生成用户可使用的目标的自动化工具。目标能够包括库、可执行文件、或者生成的脚本等等。
4.在第十一章中也提到实战中的源代码管理,,其中出现许多陌生的词汇,好比文件的锁定、签入签出文件、修改的原子性等,对于以前课程的要求确实没有源代码管理的概念,因此对于这一模块,本身彻底陌生,以及如何实际进行源代码的管理仍不清楚。
5.对于代码复审和测试,我以前都没有清晰的了解,而在读彻底书后,我明白首先测试在代码复审以前,测试按照设计的方法、目的、时机和做用又分为不少不一样的模块,根据具体的程序使用不一样的测试方法,在软件开发过程当中测试占有举足轻重的做用。平时的学习中,本身好像根本没有代码复审过,最多在程序报错后让同伴帮忙找错,但着根本称不上代码复审,代码复审的前提是程序经过编译,而且被测试过,在此过程当中,开发者必须回答复审者的所有问题并负责这些问题获得满意的解释,最后双方达到一致。
四.了解和调查源程序版本管理工具
1.Github
优势:能够做为一个版本控制系统和协做工具,用它来发布工做;支持多人共同完成一个项目;代码不须要保存在本地或者服务器;适用代码跟踪
缺点:可能不是捕捉创意过程和记录创意点子的最佳工具;不是最好的设计跟踪工具
2.Microsoft TFS
优势:不只仅支持源代码管理,还能够实现需求分析,测试等功能
缺点:真正应用全部功能的公司和团队不多,大部分都只是用源代码管理
3.Bugzilla
优势:强大的检索功能,强大的后端数据库支持,丰富多样的配置设定
缺点:安装麻烦,只能管理缺陷
(以上各管理工具优缺点参考百度)