这个作业属于哪个课程 |
|
这个作业要求在哪里 |
|
我在这个课程的目标是 | 了解学习前人的经验结晶, 能够用科学工程化的思想开发软件 |
这个作业在哪个具体方面帮助我实现目标 | 能够综合之前所学的知识, 能够初步的用软件工程思维解决实际问题 |
一.建立博客并介绍自己
2017级软件工程一班,张文豪
• 喜欢阅读,尤其喜爱读文学类,历史类的书籍,能够置身书海,感受不同场景,年代的美好与丑陋。
• 喜欢思考社会问题,感受生活中的温暖与社会上的矛盾。可能因为我是个小愤青的原因吧,内心也比较敏感。
• 我的博客地址:https://www.cnblogs.com/zwh29/
二.阅读与思考
(1)回想一下你初入大学时对软件工程专业的畅想
• 当初你是如何做出选择软件工程专业的决定的?
高考前对计算机比较感兴趣,喜欢硬件方面的知识也想做那些开发的软件,全部报考的计算机相关的专业,然后被第一志愿软件工程录取
• 你认为过去两年中接触到的课程是否符合你对软件工程专业的期待,为什么?
基本符合,学习了基本的编程能力,能够熟练的编写很多基础程序,了解著名的算法
但是相互之间还没有联系,希望今年能够学习到课内或课外的知识整合知识,优化利用所学知识。
• 你觉得软件工程是你喜欢的领域吗,它是你擅长的领域吗?
是的,和最初的想象不出八九。
目前还不擅长,零散的知识很多,但尚不成体系。
• 将来你会选择从事软件开发相关的工作吗?是的话给出你想去的城市、公司和岗位,否的话给出原因
会的,
想去的城市:成都,上海,杭州
公司:以华为,网易为目标吧
理想岗位:软件开发,测试工程师,设计师
(2)即将大三的你,对照前人们走过的路和描述未来发展,现在的你
• 自我感觉你已经具备的专业知识、技能、能力有哪些?已经写过的代码量是多少?
C#,C,C++
对于一些功能函数可以熟练的写出。
准备再重温下数据结构。
代码量大概5000-7000行左右。
• 离成为一个合格的软件工程专业本科毕业生,在专业知识、技能、能力上还差距哪些?软件工程思想尚不成熟
对编程工具调试等功能不熟悉(以及企业版的编程方法)
合作沟通能力不强
(3)大三是一个人生选择的十字路口,考研、工作、考公、出国,不同的选择在大三就有不同的努力方向。而无论考研还是工作的每条路径,也有许多不同的分支。
- 对照以上你阅读的前人们的经历,你的选择是什么?
我选择少数时间实习,多数时间为考研做准备,考研带我真正的走进软件工程这门领域。
- 在这种选择下,你认为你相比其他同学来说有何优势,有何劣势?
经验上可能比不得同学,但是在之后的几年内,我在工作上可能会更容易接受学习一点。
- 针对你的选择,你给自己的大三设定的规划安排是什么?
回顾两年所学知识,阅读相关专业的算法书籍
任何时候都不能放弃英语,同时还要拓展数学领域的相关知识
三.提有质量的问题
• 第三章提到的巴克斯顿说技能的反面是解决问题,但是我认为给出的例子不够鲜明,顾名思义,技能的反面是不具备技能,而书中所讲是面试者只具备编程能力,而不具备整体的编程思想。
• 第四章所说的注释(包括源代码)应该只用ASCII字符,不要用中文或其他特殊字符,否则会极大地影响程序的可移植性。
我认为这里所强调的可移植性没有必要,代码是给机器看的,注释是给编程人员看的,应该更多的简洁明了,而中英转化差异很大,会给人们困扰。
不同的编译器、语言或多或少都有区别,代码不能照抄照搬,需要修改校正,注释给人们功能上的提示。
• 第九章提到的PM中,一直特指讲的是微软的program manager,我想问软件行业的PM都是指program而不是product或者project吗,那PM一般是几个人呢,如果是一个人主管,他出现意外或者跳槽如何紧急应对未完结的项目。
• 第十一章提到的团队闭门造车的模式,这岂不是和前面的秘密团队很相似?是不是可以低成本的以秘密团队方法提高效率?
• 第十五章提到代码发布阶段为什么不可以先发布测试版调整,统计bug类型属性,择重批量修改。重写与逐步修改的先决条件举例也没有说明。
四.了解和调查源程序版本管理工具
上网调查一下目前流行的源程序版本管理软件和项目管理软件都有哪些,列举至少三个或以上的版本管理软件各有什么优缺点?
• Git又称傻瓜内容跟踪器。Git 是用于 Linux内核开发的版本控制工具。与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持,使源代码的发布和交流极其方便。
优点:Git有强大的分支管理,是分布式的版本控制系统,可以不依赖网络做任何事情,对分支和合并有更好的支持,是开发者最关心的地方。
缺点:做简单应用时不如SVN方便
• Rational是提供基于业界开放标准的工具、最佳方案和服务,用于开发商业应用和构建软件产品及系统,包括移动电话和医疗系统等设备使用的嵌入式软件。
优点:它已经涉及到了软件过程的方方面面﹐有效整合了需求﹑开发﹑测试﹑配置﹑管理
缺点:Rational的产品是针对整个软件过程﹐所以整体给人的感觉是很复杂﹐不易使用
• Trac是一个为软件开发项目需要而集成了Wiki和问题跟踪管理系统的应用平台,采用Python语言开发的,需要有Python环境的支持,是一个开源软件应用。Trac以简单的方式建立了一个软件项目管理的Web应用,以帮助开发人员更好地写出高质量的软件。
优点:Trac看起来轻量优雅。它使用基于web的管理界面,而且所有操 作都非常的直觉。另外Trac对SVN subversion有着非常好的支持。
缺点:wiki、ticket 功能少了些,没办法,全面之后难以独专一面。比较有意思的是 Trac 不支持访问远程 Subversion 库。