个人作业——软件工程实践总结&个人技术博客

一. 回望

(1)对比开篇博客你对课程目标和期待,“希望通过实践锻炼,增强软件工程专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么?

在几次作业的实践当中,确实学到了很多,包括需求分析、PSP表格、单元测试、其他各种测试等等,深刻意识到了40% 20% 40%的精髓,以前都把大部分时间花在编码上了,轻视了分析和测试的重要性,在稍微大一点的项目当中,这样做容易到项目中后期才发现致命性的问题而导致项目夭折。不足的方面感觉自己在工程管理和进度把控上没有太大的长进,主要原因是因为在最后的团队作业中,对团队所做的小程序开发方面不熟悉,现学的话当时在学其他东西也抽不出时间,错失了一个做项目的机会,比较可惜,不过后面也还有很多实践的机会,相信在本门课程的所学能为我后面的项目带来一定的理论指导。

(2)你在第一次作业的个人简历中描述了这门课程结束后,你预期你将增长的能力、技术、技能,并绘制了学习路线图。对比当前你的所学所得,你达到了当时的预期值吗?

预期值:

工程能力: 能更好的解析需求,分配需求,实现需求

技术技能: 更好地使用Unity引擎,学习更多的AI算法,达到就业要求

通过这几个月的学习算是基本满足了预期,Unity方面学习了GOAP算法的一个框架,还学习了一个FSM的插件PlayMaker,项目方面还有待提升。

(3)哪一次作业让你印象最深刻?为什么?

第二次和结对作业我印象都挺深刻的,最深刻的话应该是第二次作业-疫情统计,因为算是这门课第一次的程序作业,学到了很多东西,第一次提前设计了PSP表格,第一次理解规范的单元测试,也是第一次在写代码之前做如此多的分析,而且那次的作业要求,我一开始并不理解命令行的那个操作,花了一些功夫研究,最后代码写完了还因为环境问题引发了一系列的bug,好在最后都解决了,花费的时间没有结对作业多,但是感觉更累,也因此学到的更多。

(4)在课程问卷中,我们统计了你在课程上花费的精力和提升;现在请你再次将这些数据罗列出来,作为个人的记录。包括以下内容:

作业名称 花费时间/h
第一次寒假作业 2h
第二次寒假作业 25h
结对第一次作业(原型设计) 10h
团队作业第一次-种子队伍选拔和团队展示 3h
结对第二次作业-疫情可视化实现 35h
团队作业第二次-团队Github实战训练 5h
团队作业第四次-项目系统设计与数据库设计 2h
个人作业-软件测评 3h
Alpha冲刺 30h
Beta冲刺 10h
个人作业- 软件工程实践总结&个人技术博客 4h
  • 累计花了多少个小时在软工实践上?平均每周花多少个小时?

这个有时候忙有时候闲,不太好估计,忙的时候一天除了吃饭都在做,闲的时候可能就晚上才有做。

  • 学习和使用的新软件

原型设计:墨刀,Axure

单元测试:VS的单元测试功能,JUnit

性能分析:JProfiler

  • 学习和掌握的新语言、平台

语言:java, markdown,

平台:博客园,github

  • 学习和掌握的新方法

单元测试和其他的测试方法,软件开发的流程

  • 工程能力的提升

需求分析能力,代码设计能力,debug能力,文档撰写能力

  • 团队合作上的提升

沟通协调能力

  • 其他方面的提升

有了写博客的意识,感觉这个挺重要的,写技术博客一个能帮助自己巩固知识,一个能分享给大众,有利于开发社区的发展,也能通过其他人来纠正自己的错误,之后的话会尽量产出一些原创的技术博客。

二. 团队总结

(1)你是组员还是组长?你觉得你自己在哪些地方做得好?你觉得自己还有什么可以改进的地方,具体可以怎么改进?

我担任的是组员的角色。

做的好的方面:积极主动配合组长的工作,积极参与团队的会议,发表自己的意见。

需要改进的方面:不通过组长的话与其他组员的沟通仍有障碍,主要是因为自己贡献度不够高,对其他人提要求不够有底气。在今后的项目中会争做团队的骨干,增强自信。

(2)你觉得你的组长(组员们)在哪些地方做得好?你觉得ta(ta们)还有什么可以进一步提升的地方,有什么具体的建议吗?

组长在协调整个团队的沟通上起了重要作用,团队里负责前端的李同学也非常尽责,工作能力让我感到敬佩。建议的话,希望组员们能多多发表自己的意见,多参与沟通,积极汇报自己的进度。

(3)《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?(参考《构建执法》第17章 人、绩效和职业道德)

《构建之法》里面提到的关于团队发展的阶段共有四个,分别是:萌芽阶段、磨合阶段、规范阶段、创造阶段。我觉得我们团队处于规范阶段,离创造阶段还有很大的距离,这个需要团队所有成员都有共同的目标和上进心才行。

(4)从开发的角度,你在团队中担任了什么角色?你是否完成了该角色的任务?现在你觉得你适合该角色吗?

我在团队开发中担任了测试和文档的角色,我觉得自己基本完成了所有分配给我的任务,感觉自己在这个位置上的能力还是有所提升的,今后的话还是想坚持做游戏客户端开发,新学到的测试方法和文档撰写能力对我来说也很有用。

三. 人月神话

1、怎样证明你学会了软件工程?以下要求你们的团队达到了哪几个?请在随笔中用数据证明上述内容或侧重选择之一。

(1)研发出符合用户需求的软件必须公开发布,有实际的用户,一定的用户量和持续使用量 (3 天后能保持10 - 100个用户);而不是: 做没有用户使用的软件
在Beta阶段快结束时,我们在朋友圈发布了小程序的二维码,收到了很多用户的反馈,但由于比起市面上的一些单词学习软件来说,功能太少,主打二次元的这个优势不明显,还没办法留住用户,仍需要后期功能的开发和扩大图库。
(2)通过一系列工具,流程,团队合作,能够在预计的时间内发布 “足够好” 的软件有项目规划/需求/设计/实现/发布/维护,有定时的进度发布 ; 而不是: 通过临时熬夜,胡乱拼凑,大牛一人代劳,延迟交付等方式糊弄
项目通过github进行合作,通过Issue进行队内的沟通和bug反馈,在Issue区认领自己的功能,修复之后进行关闭,虽然赶不上原来的计划,但冲刺阶段也每天都持续在开发。
(3)并且通过数据展现软件是可以维护和继续发展的。而不是 找不到源代码,代码无文档,代码不能编译,没有task/bug 等项目的发展资料
所有代码在github上进行托管,可以进行bug反馈和版本发布。在文档方面,也有接口文档、类图设计、数据库设计、系统结构设计、用户使用手册等一系列可以查看的文档。

2、写下属于你自己的人月神话——个人或结对或团队项目实践中的经验总结+实例/例证结合的分析,字数不限,开放命题,可以使用你自己喜欢的方式表达

几次作业下来,有一个很深的体会就是要敢做,敢于挑战,万事开头难是真的,每次看到作业要求都会觉得自己做不到,因为之前可能没做过这样的功能,就会有点畏手畏脚,然而期限快到了之后,被赶鸭子上架真正开始做需求分析之后,将复杂问题分解成了多个细小的问题之后,就发现这些小问题是当下可以解决的,项目也就开始有了进展,后续编码过程也流畅了起来,然后接下来可能遇到的困难就是一系列未曾意料的bug,所以赶ddl是非常危险的行为,还是尽早做比较好,所以我认为开始做需求分析是非常重要的一步,只要开始做之后,最终的目标也就不是那么遥不可及的了。以后第一步迈不出去的时候,得逼自己一把才行。

四. 建议

  1. 对于下一届同学,或者大一的同学,你想说:

    一定要报名我们西二在线工作室,不管是想做前端后端还是产品或是UI都能学到很多,不知道想做什么的话,记得开学的时候来听听西二的宣讲会,这里有历届学长学姐传承下来的经验、资源,还有一群志同道合的伙伴陪你一起做项目,校招从大一开始,赢在起跑线上!

    没有提到西二的unity组(也可能会变成UE组)是因为我们的沉淀还不足,没有其他方向那样的积累,报名需谨慎,可能没办法教到太多,如果你是真的喜欢游戏开发,想来unity组一起开荒,那非常欢迎。我算是unity组开荒的一届,真的走了很多弯路,不过这也算是我们的积累吧,希望后面几届会越来越好,然后想从事游戏行业的话,感觉报数媒专业会好一点。不管是做游戏还是软件,只要涉及编程,课内的专业课都一定要学好,搞好绩点也很重要,大学和培训机构的学生差距就在于基础和知识的广度,然后多关注牛客网和LeetCode网,能养成刷题的习惯最好,算法和数据结构能力是基础中的基础,切记。

  2. 对于自己今后,你有哪些建言?

    坚持学习,坚持热爱。

  3. 对于软工实践课程,你有哪些建议?对于软工实践课程的上课形式和内容,你有什么具体的意见和建议?在哪儿需要强化或者剔除?

    感觉都挺好的,学习前端和后端的同学都反馈说能学到很多东西,我也觉得这门课程是软件工程最值钱的一门课,本身学编程就是learning by doing,做得越多 就越强,能挑骨头的地方可能就是课程安排的时期比较尴尬吧,也是大家一直在反馈的问题了,因为金三银四,三月四月是春招的黄金时期,这个时间点安排占用大量时间的课程是很不合理的,而且在这门课程开设前,很多同学都没有像样的项目经验,这在春招中也是吃亏的,如果放在大二或者大三上的话,一个是能帮助同学们确定自己的技术方向,一个是能提前意识到就业的危机,然后对于考研的同学来说就是占用了准备的时间。

    当然课程定在大三下也一定有历届老师和助教的考虑,我仅表达我自己的意见,毕竟满足所有人的需求是不可能的,总之再怎么困难我也是撑过来了,相信下一届的同学一样可以哈哈。

五. 个人技术总结

做游戏常常会遇到数据配置或者存读档的需求,这是我整理的Unity常见的几种数据本地持久化的解决方案

posted @ 2020-06-25 15:38  烧饼VisionWong  阅读(270)  评论(4编辑  收藏  举报