这个作业属于哪个课程课程链接这个作业要求在哪里作业要求我在这个课程的目标是明白实践软件工程的方法和工具,去明白其中的优缺点,找对正确的方法,正确的使用工具,了解正确的软件工程这个作业在哪个具体方面帮助我实现目标对博客的工具的使用,以及于别人的博客比较找出自己的漏缺点,学习并改正。个人博客主页https://www.cnblogs.com/1916955160hxf/
一. 自我介绍
我是一名比较普通的学生,从选择这门专业起,我本来并没有多少兴趣的,但是当我接触后,我的兴趣被提升了很多,我觉得学习和敲代码是非常有趣的,仿佛打开了一扇新世界的大门。我的爱好不多,喜欢跑步喜欢运动,作为一名程序员,我觉得身体健康是相当重要的,所以运动健身是必不可少的。娱乐时间喜欢玩玩游戏,听歌,看电影。学习是劳逸结合的事,学习和娱乐正如生活和工资要分的开。现在大三,更多时间花在实践上,我的专业技能能力方面还不够过硬,后面会继续努力。
二. 阅读与思考
1. 回想一下你初入大学时对你所在专业的畅想
· 当初你是如何做出选择你所在专业的决定的?
高中毕业填志愿时,我对计算机方面的认知可以算是毫无认知,在网上了解到计算机互联网是当今的热门,学习计算机方面的知识肯定是相当有用的,并且也对此有着极大的兴趣。在当今的信息爆炸时代,学习这方面的知识无疑是相当有用的,且本人更倾向于软件方面的东西,所以选择了软件工程。
· 你认为过去一(两)年中接触到的课程是否符合你对你自己所在专业的期待,为什么?
我觉得是相当符合的,大一大二时打地基的重要阶段,无论是学习的C语言还是数据结构等都是相当重要的基础,通过我的了解,我知道大三大四才是知识拓宽与专业核心知识学习阶段。不仅如此,在学习教学课程时,我也都应该接触更多关于我们专业的东西,也正是如此我才了解到我们学到的东西是多么浅薄,还需要更多的努力,基础同样相当重要。
· 你觉得你所在的专业是你喜欢的领域吗,它是你擅长的领域吗?
实话说,这并不是我擅长的领域,但是我却很喜欢,我对它很有兴趣,每学到一点新的知识,解决一个问题我都会很开心。
· 将来你会选择从事和你专业相关的工作吗?是的话给出你想去的城市、公司和岗位,否的话给出原因
将来会选择从事相关的工作,以后打算在成都或者在四川周围的城市,本人并不是想跑很远,除非远一点地方的公司发展前途更好的话也可以考虑,我目前还是倾向于从事软件测试相关职位,因为我本身的代码能力并不是特别强,当然我也不会落下,填好这一短板。
2. 对照前人们走过的路和描述未来发展,现在的你
· 自我感觉你已经具备的专业知识、技能、能力有哪些?已经写过的代码量是多少?描述你做的最复杂的项目/作业。
这两年学的东西挺多,但很多都不精,主要学了C#,C++,以及web前端方面的一些知识,以及C++算法,目前有涉猎数据分析方面,但我知道,很多东西在精不再国,多了反而制约自己的发展,我主要现在还不清楚自己到底该专攻哪一方面,也在慎重考虑决定自己以后的发展方向。能力目前来说感觉还是远远不够的,需要多加努力。目前做过最复杂的项目就是springboot + Mybatis + Maven等做后端,BoostStrap框架 + html + css + js等做前端的购物网站项目。
· 离成为一个合格的本科毕业生,在专业知识、技能、能力上还差距哪些?
专业知识上我的知识储备还不太足,对很多东西都还没有一个比较系统的规划,简单来说有点散乱。技能方面那就是自己的代码能力还不是很强,需要更加的努力和练习。总的来说还差一些系统性的知识还有缺陷。
3. 目前是一个人生选择的十字路口,考研、工作、考公、出国,不同的选择在大三就有不同的努力方向。而无论考研还是工作的每条路径,也有许多不同的分支。
· 对照以上你阅读的前人们的经历,你的选择是什么?
对于这个问题其实我想了很久了,鉴于很多原因,选择的还是毕业工作,考研可能并不适合现在的自己。找对现在适合自己的路很重要,我想先积累下自己一点经验,找到自己的不足,一点点去提升自己。如果条件允许的话,我也会再打算考研,选择更进一步。
· 在这种选择下,你认为你相比其他同学来说有何优势,有何劣势?
相对考研的同学来说,等他们毕业后,由于文凭的原因,一部分人社会对他们的门槛会相对降低且收入会比我们刚工作时高,他们的眼界技术是比我们宽阔的,这点是我恶魔你所不能比及的。但同时我们也有我们自己的优点,先工作的我们,会积累一定的工作经验,这对我们的工作帮助是相当大的,而且在公司学到的东西有可能比学校学的更加有用。
· 针对你的选择,你给自己的大三设定的规划安排是什么?
学习计算机网络,Linux内核,以及操作系统的知识,MySQL数据库的学习也不能落下,同时还要再空余时间多做一些力扣上的算法题,算法是相当重要的。并且要着手布置以后工作需要的项目经历了。
· 你对于实现自己的梦想已经做了或者计划做什么样的准备?
积极了解一些公司的信息,提前确定自己的目标,着手项目的布置,做好简历上的相关准备。
三. 问题提出与思考
· 问题1
在第五章,我看到软件团队的模式当中有一个叫“秘密团队”,其中的好处:“团队内部有极大的自由,较高的热情,没有外界的干扰,这样的团队容易发挥高效率完成看似不可能的任务”。而我认为,在这样的条件下,不用介绍项目进展,也不用听领导指示,但这样真的不会产生更大的问题吗?比如,不用介绍项目进展会让团队没有紧迫感,没有计划感,只是在做,但是有成效吗?不用听领导指示,如果有新的要求转变或者原来的计划有误,这样是否又会造成更大的损失?不同的团队之间有不同的特点,秘密团队模式下的工作是否高效还真的难说。而且我感觉这种模式的限制非常大,值适用于一些特别的项目,那么又是否能有一个比较这种的办法或者方式能将这种模式的缺点改善后扩大使用呢?
· 问题2
第六章,敏捷步骤中,第三步冲刺阶段,有个每日立会,每日立会强迫每个人向同伴报告进度,迫使大家把问题摆在明面上。那么,如果每个人进度不均,然后还有些人说昨天在写代码,今天继续写,昨天的问题没弄完今天又甩来一堆问题,这样流于形式的立会,真的会让冲刺阶段冲刺成功吗?
· 问题3
第十章,书上内容说:“设计/开发者”往往会以自己使用产品的习惯和对软件行业的熟悉程度出发设计,忘记了我们的软件是给千千万万不那么会用电脑的人使用的“,软件开发者的思维真的会制约他们的客观思维吗?我不太同意这个观点,作为一个软件软件开发或者设计者,他们的眼光或者说需求总是以用户方面来考虑的,而不是以自己的主观思想来考虑的,他们更多主要负责开发,同时也正是因为他们是开发者或者说设计者,他们更清楚如何去设计,不同的人有不同的观点,这是无法统一的,就像一句话所说”一千个人的眼里就有一千个人的哈利波特“,用户很难同意他们的观点,而程序设计者的思维则更加客观,更加理性,设计也更加合理。
问题4
第十一章,我看到在一个例子当中,说到要尽量减少非开发时间,不要动不动就开”全体会议“,甚至当中有一些优秀团队规定一周有一天不能开会,那么这与前面的敏捷流程的每日立会到底是否是互相矛盾呢?
问题5
第十二章,p251说到产品要从用户的角度考虑问题,这需要同理心,那么我们如何才能平衡很多的用户提出的不同的需求?保持着同理心会不会制约了软件开发的特色?
四. 源程序版本管理工具--有些没有管理工具用过,优缺点摘抄于网络。
1. GitHub--百度百科
GitHub是一个面向开源及私有软件项目的托管平台,为了更好地管理linux内核开发而创立的分布式版本控制/软件配置管理软件。
优点:
1. GitHub是一个集成了git的服务,它可以以网页或者客户端的形式,帮助用户把git本地的数据提交到远程的服务器里。
2. 在GitHub,用户可以十分轻易地找到海量的开源代码
3. 可以多人合作完成项目,方便简单。
4. 可以在任何终端上,随时随地的共享你的代码、评论或着其他有意义的信息
缺点:
1. 对代码修改,没有较清楚的更新日志,有可能会造成开发者对项目的误读
2. 没有版本还原机制,如果不小心把错误的项目代码上传,很有可能被创博向更多的人
3. 对于新手则需要花较多时间去了解熟悉
2. Microsoft TFS-百度百科
优点:
1. 可以与Visual Studio无缝结合,方便开发者进行源代码管理
2. 支持代码审阅与讨论
3. 自带很多管理工具(测试管理器、反馈客户端、界面设计工具等等)
4. 任务版上能将需求、项目进度一览无余
缺点:
1. 能应用起来的团队、公司的数量极少
2. 安装较为辛苦,比较麻烦
3. 价格不低
4. 搭建、维护tfs比较复杂,硬件要求也比较高。
3. Trac--百度百科
优点:
1. 非常灵活,可以随心所欲控制可以和SVN集成
2. Trac的权限体系是比较完备的设计
3. Trac做一个SCM配置管理平台,意味着它有良好的扩充性
缺点:
1. 不支持多项目开发
2. 核心功能较少,不安装插件的话基本没啥用
3. 中文化不完整,美术人员接触起来困难重重
转载于:https://www.cnblogs.com/1916955160hxf/p/11488641.html
相关资源:JAVA上百实例源码以及开源项目