这个作业属于哪个课程 |
<课程的链接> |
这个作业要求在哪里 |
<作业要求的链接> |
我在这个课程的目标是 |
了解软件开发流程 如何成为软件开发者 |
这个作业在哪个具体方面帮助我实现目标 |
认识了解自己 |
一.建立博客并介绍自己
我的博客地址:https://www.cnblogs.com/qi-li/
一名来自软件工程专业的大二学生,学过很多东西,却并没有特别擅长的,在空闲的时候比较喜欢看书,听歌,看电影,在书中可以寻找一片宁静之地。从大一下学期开始坚持运动,晚上没事喜欢去操场跑跑步,发现它是一个很好的解压方式。
二、阅读与思考
阅读以上材料,并回答下面几个问题:
(1)回想一下你初入大学时对软件工程专业的畅想
- 当初你是如何做出选择软件工程专业的决定的?
说实话,软件工程并不是我的第一选择,刚开始选择志愿的时候更想学习经济方面的知识,读这个专业也算得上是阴差阳错吧,但是在大一下学期有转专业的机会时并没有选择转专业,一是更加擅长于理工科的思维方式,二是觉得像手机上的、电脑上的软件等很想知道它们是如何呈现给我们的。
- 你认为过去两年中接触到的课程是否符合你对软件工程专业的期待,为什么?
还算符合吧,学习了一些基本知识,老师在课堂上主要侧重于思想方法的讲解,具体实现过程还是要自己去勤加思考,动手操作。
- 你觉得软件工程是你喜欢的领域吗,它是你擅长的领域吗?
喜欢的程度如果有等级的,只能算作中等。擅长肯定是否定的,写的代码量不够,理解思想方法但并没有动手去实操,觉得都是空谈。
- 将来你会选择从事软件开发相关的工作吗?是的话给出你想去的城市、公司和岗位,否的话给出原因
也许会,也许不会。想去的城市肯定是北京。
公司肯定希望能进腾讯百度这样的大企业,这些公司应该是每个学习计算机的人共同的梦想,岗位其实没有什么太大的要求。
(2)即将大三的你,对照前人们走过的路和描述未来发展,现在的你
- 自我感觉你已经具备的专业知识、技能、能力有哪些?已经写过的代码量是多少?
从刚入学学习的c语言到数据结构再到面向对象语言c#,数据库,学习了一部分相关知识,坦白讲,觉得自己并没有特别熟练的掌握,所有东西都浮于很浅显的表面,没有实战项目的经验,也没有深入的了解研究,写过的代码量可能也只是为了完成老师留的作业,在寒暑假自己随便练习的一些东西,并没有什么实质性意义。
- 离成为一个合格的软件工程专业本科毕业生,在专业知识、技能、能力上还差距哪些?
差的很多吧,比如说最基础的,编代码的能力,对各种计算机语言的理解不仅只指了解它们的语法问题,还有一些更高层次的问题以及计算机相关知识的储备太少。
(3)大三是一个人生选择的十字路口,考研、工作、考公、出国,不同的选择在大三就有不同的努力方向。而无论考研还是工作的每条路径,也有许多不同的分支。
- 对照以上你阅读的前人们的经历,你的选择是什么?
在很大一部分情况下会选择考研,继续深造,知识是无穷尽的,给自己更多的时间去学习,研究。
- 在这种选择下,你认为你相比其他同学来说有何优势,有何劣势?
考研能学习到更多的知识和研究型问题,也许会比本科阶段对计算机,软件等了解的更加透彻,自我感觉有较强的自律性。
选择工作有三年的时间积累工作经验,在胜任一些岗位上会更有优势。
- 针对你的选择,你给自己的大三设定的规划安排是什么?
改变现有的生活状态,增强自主学习能力,多学点知识,包括但不仅限于学校开设的专业课程,在大三下学期着手准备考研的事情。
三、提有质量的问题
问题一:3.2软件工程师的思维误区
书本上提到“过早优化是一切罪恶的根源”,那什么时候开始对程序进行优化才是比较恰当的时候?
问题二:4.5结对编程
结对编程对两个人有没有什么要求,比如性格方面,代码风格上面,它与两人合作有什么相似或者不同之处?
问题三:5.2软件团队模式
团队模式有很多种,该如何选择一种正确的、高效的团队模式进行软件开发,以及不同的团队模式对软件开发的影响大小?
问题四:第13章软件测试
第二章中提到好的单元测试必须由最熟悉代码的人编写,我觉得这一点毋庸置疑,但是作者是最熟悉的代码的人,会不会出现思维局限?
是否还需要专门的测试人员对这方面进行测试?需要的话会不会造成多余?
问题五:14.1软件的质量
软件的开发过程有三个主要的特性:“好”“快”“便宜”,如何在这三者之间寻求平衡?后文提到软件开发过程的可见性差,如何衡量软件的“好”?
四、了解和调查源程序版本管理工具
引用:https://blog.csdn.net/qq_38191191/article/details/79843535
Git优缺点
优点:
1、适合分布式开发,强调个体。
2、公共服务器压力和数据量都不会太大。
3、速度快、灵活。
4、任意两个开发者之间可以很容易的解决冲突。
5、离线工作。
缺点:
1、学习周期相对而言比较长。
2、不符合常规思维。
3、代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。
引用:http://www.cnblogs.com/yinhaijiao/p/5276783.html
Bugzilla优缺点
优点:
1、检索功能强大。
2、审核机制安全。
3、网络用户界面友好
4、配置设定丰富多样。
5、安全策略细致和产品分类方案完备。
缺点:
只能管理缺陷。
Apple XCode优缺点
优点:
1、可以自动创建分类图表。
2、自动提供撤消、重做和保存功能,无需编写任何编码。
缺点:
更新版本后,某个插件可能会失效。
引用:http://www.cnblogs.com/gao666/p/5277775.html
TFS(Team Foundation Sever)优缺点
优点:
1、是一个工作流协作的引擎,允许一个团队使用他们自定义的流程,并使用在项目历史中实时收集起来的一个集中的数据仓库。
2、集成性。版本控制系统和工作项存储器在注册时集成在一起。当注册时,可以将其与一个或多个工作项关联。
缺点:
能应用起来的团队和公司的数量极少,多数真正用起来,也就是源代码管理这部分,也仅仅是TFS极小部分功能。