代码改变世界

第一次作业(周小迪-201731062533)

2019-03-21 19:16  MarkarovZ  阅读(279)  评论(1编辑  收藏  举报

<课程的链接>:https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2

<作业要求的链接>:https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2/homework/2706

<写上目标>:掌握软件设计‘开发能力,学习团队管理与协同开发。’

<写上具体方面>该课程可以帮助我获得以下提升:

1.了解一名软件工程师的成长历程,弄清了发展方向。

2.学习如何进行团队协作开发以及团队管理。

3.学会需求分析,软件测试等技能,提升个人技术水平能力。

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

自我介绍:我不知道我自己是不是真的比别人蠢,但是我知道我肯定不比别人聪明。我喜欢游戏,但讨厌编程。

阅读与思考

(1)回想一下你初入大学时对软件工程专业的畅想

  • 当初你是如何做出选择软件工程专业的决定的?
  • 你认为过去两年中接触到的课程是否符合你对软件工程专业的期待,为什么?
  • 你觉得软件工程是你喜欢的领域吗,它是你擅长的领域吗?
  • 将来你会选择从事软件开发相关的工作吗?是的话给出你想去的城市、公司和岗位,否的话给出原因

 

  • 我从小学开始就非常沉迷电子游戏,从初中开始就萌生了要自己做游戏的想法,高中前两年也浑浑噩噩的在沉迷游戏中度过了,刚进高三的时候,我的成绩连本科线都达不到。进入高三之后,某次在班主任的一本关于大学专业说明的书上面看到中国传媒大学有游戏开发专业,于是就开始刷题学习,想要报考中传,当然最后差中传好多分,然后就选了西柚的软件工程,因为我觉得这个专业可以学到关于游戏开发的技术。
  • 在入学前的那个暑假,我已经通过购买的学习资料了解了一些专业相关的知识,入学学校所开设的专业内容也非常符合自我期待,但有许多其他意料之外的课程。
  • 经过两年的学习后,我觉得软件工程并不是我喜欢的领域,我也不擅长该领域。
  • 我想我会从事软件开发相关的工作。我想留在成都,去成都育碧担任游戏程序员一职。

    (2)即将大三的你,对照前人们走过的路和描述未来发展,现在的你

    • 自我感觉你已经具备的专业知识、技能、能力有哪些?已经写过的代码量是多少?
    • 离成为一个合格的软件工程专业本科毕业生,在专业知识、技能、能力上还差距哪些?
  •  
  • 我觉得我已经掌握了基础的C/C#语言编程能力,记忆并理解了一些常用算法,有比较程序的winform桌面程序开发能力,数据库程序开发能力,基于Unity游戏引擎的基础游戏开发能力以及机器学习入门。代码量应该在3W左右,有效代码不过1W。
  • 比起一名合格的软件工程专业本科毕业生,我在操作系统,计算机体系结构,编译原理,计算机网络,数据结构,需求分析,团队管理,合作开发等等能力、知识、技能上还远远不够。

(3)大三是一个人生选择的十字路口,考研、工作、考公、出国,不同的选择在大三就有不同的努力方向。而无论考研还是工作的每条路径,也有许多不同的分支。

  • 对照以上你阅读的前人们的经历,你的选择是什么?
  • 在这种选择下,你认为你相比其他同学来说有何优势,有何劣势?
  • 针对你的选择,你给自己的大三设定的规划安排是什么?
  • 目前第一选择是就业工作。
  • 我认为在专业知识与能力的学习与锻炼上,我领先于本专业大部分同学,毕竟用心去学的人本就没几个,大家都有各自的未来规划。我最大的劣势在于自身性格与习惯上的缺陷。
  • 在大三,我会主攻应聘的笔试与面试阶段终点要求的操作系统,编译原理,数据结构三个基础知识集,同时全力参加能力范围内的各种比赛,为简历打下基础。

提有质量的问题

关于书中第六章所讲到的敏捷开发流程,我有以下几个问题:

1.进行敏捷开发的团队需要有至少一名经验、知识已经技能高于其他团队成员的成员作为团队核心存在,为其他成员进行任务的划分以及必要时的指导与帮助。作为经验、技术都非常缺乏的在校学生,虽有也有能力超出平均水平的突出者,但也不足以承担起这一职责,那么我们该如何去尝试敏捷开发呢?

2.敏捷开发摒弃了传统开发方式的重要组成部分-设计文档,那么当项目工程相当复杂并且工作量庞大的时候,应该如何确保开发工作有条不紊的进行?

3.在敏捷开发过程中,要把开发内容拆分成清晰可见的每天都要完成的具体功能要求。那么在这种情况下,像设计核心算法等工作量大于一天的工作该怎么安排分配?

4.敏捷开发要求开发团队成员频繁地开会交流,这样会不会打断开发人员的开发思路或者工作流程,或是造成时间上的浪费,导致不必要的额外开销与成本?

5.敏捷开发可以不断更改或者增加需求的这一特性,会不会导致过大的工作量?我现在对敏捷开发的概念是一群不断加班,不断加班的程序员。

了解和调查源程序版本管理工

Git优点:
(1).开源免费,让系统得到更好的进化,免费则吸引了更大的用户群体,形成一个良性循环。
(2).分布式系统,可以让用户有更大的主动性和发挥空间,对服务器依赖降低到最低限度。
(3).速度快体积小,复制黏贴占用空间大,而Git采用快照方式,创建和切换分支速度非常快。
Git的缺点:
Git的缺点就是学习成本有一点点高,作为一款工具的使用肯定不会比一门开发语言要难。
Git初学时候感觉简单,但是会越来越感觉内容较多,并且有一定难度。
-----------来自百度蚂蚁部落admin摘抄
Bugzilla 优点:
强大的检索功能,强大的后端数据库支持, 丰富多样的配置设定等;
Bugzilla 缺点:
安装需要Perl和配置MYSQL数据库,过程比较繁琐,修改配置文件比较麻烦;
英文版的,能汉化但是汉化后容易出现乱码;
资源地址:http://www.bugzilla.org
Trac的优缺点:
优点:非常灵活,可以随心所欲控制可以和SVN集成
缺点:功能不是很强大