个人作业——软件工程实践总结&个人技术博客
一. 回望
(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是非常危险的行为,还是尽早做比较好,所以我认为开始做需求分析是非常重要的一步,只要开始做之后,最终的目标也就不是那么遥不可及的了。以后第一步迈不出去的时候,得逼自己一把才行。
四. 建议
对于下一届同学,或者大一的同学,你想说:
一定要报名我们西二在线工作室,不管是想做前端后端还是产品或是UI都能学到很多,不知道想做什么的话,记得开学的时候来听听西二的宣讲会,这里有历届学长学姐传承下来的经验、资源,还有一群志同道合的伙伴陪你一起做项目,校招从大一开始,赢在起跑线上!
没有提到西二的unity组(也可能会变成UE组)是因为我们的沉淀还不足,没有其他方向那样的积累,报名需谨慎,可能没办法教到太多,如果你是真的喜欢游戏开发,想来unity组一起开荒,那非常欢迎。我算是unity组开荒的一届,真的走了很多弯路,不过这也算是我们的积累吧,希望后面几届会越来越好,然后想从事游戏行业的话,感觉报数媒专业会好一点。不管是做游戏还是软件,只要涉及编程,课内的专业课都一定要学好,搞好绩点也很重要,大学和培训机构的学生差距就在于基础和知识的广度,然后多关注牛客网和LeetCode网,能养成刷题的习惯最好,算法和数据结构能力是基础中的基础,切记。
对于自己今后,你有哪些建言?
坚持学习,坚持热爱。
对于软工实践课程,你有哪些建议?对于软工实践课程的上课形式和内容,你有什么具体的意见和建议?在哪儿需要强化或者剔除?
感觉都挺好的,学习前端和后端的同学都反馈说能学到很多东西,我也觉得这门课程是软件工程最值钱的一门课,本身学编程就是learning by doing,做得越多 就越强,能挑骨头的地方可能就是课程安排的时期比较尴尬吧,也是大家一直在反馈的问题了,因为金三银四,三月四月是春招的黄金时期,这个时间点安排占用大量时间的课程是很不合理的,而且在这门课程开设前,很多同学都没有像样的项目经验,这在春招中也是吃亏的,如果放在大二或者大三上的话,一个是能帮助同学们确定自己的技术方向,一个是能提前意识到就业的危机,然后对于考研的同学来说就是占用了准备的时间。
当然课程定在大三下也一定有历届老师和助教的考虑,我仅表达我自己的意见,毕竟满足所有人的需求是不可能的,总之再怎么困难我也是撑过来了,相信下一届的同学一样可以哈哈。
五. 个人技术总结
做游戏常常会遇到数据配置或者存读档的需求,这是我整理的Unity常见的几种数据本地持久化的解决方案
个人作业——软件工程实践总结&个人技术博客的更多相关文章
- 作业一:创建个人技术博客、自我介绍、简单的C程序
年9月14日中午12点: 一.主要内容 建个人技术博客(博客园 www.cnblogs.com) 本学期将通过写博客的方式提交作业,实际上,最终的目的是希望同学们能通过博客的形式记录我们整个学习过程 ...
- 福州大学软件工程1816 | W班 第10次作业[软件工程实践总结]
作业链接 个人作业--软件工程实践总结 评分细则 本次由五个问题(每个十分)+创意照片(五分)+附加题(十分)组成 评分统计图 千帆竞发图 汇总成绩排名链接 汇总链接
- 【转】【技术博客】Spark性能优化指南——高级篇
http://mp.weixin.qq.com/s?__biz=MjM5NjQ5MTI5OA==&mid=2651745207&idx=1&sn=3d70d59cede236e ...
- [福大软工] Z班——个人技术博客评分
个人技术博客 作业地址 https://edu.cnblogs.com/campus/fzu/SoftwareEngineering2015/homework/1070 作业要求 个人技术博客单次作业 ...
- 技术人如何利用 github+Jekyll ,搭建一个独立免费的技术博客
上次有人留言说,技术博客是程序员的标配,但据我所知绝大部分技术同学到现在仍然没有自己的技术博客.原因有很多,有的是懒的写,有的是怕写不好,还有的是一直想憋个大招,幻想做到完美再发出来,结果一直胎死腹中 ...
- C博客作业00—我的第一篇博客
C博客作业00-我的第一篇博客 1. 你对网络专业或者计算机专业了解是怎样? 泛泛了解 - 原先只知道网络工程隶属于计算机工程学院,与院中其他专业一样,同样都需要学习大量的计算机基础知识,然后再分支学 ...
- [技术博客] 软工-Ruby on Rails 后端开发总结分享
[技术博客] 软工-Ruby on Rails 后端开发总结分享 在这次软件编写中,我们的后端使用了Ruby on Rails (RoR)框架. Rails框架是用Ruby编写的.这意味着当我们为Ru ...
- 【新版】Android技术博客精华汇总
[新版]Android技术博客精华汇总(原文链接内持续更新) http://www.apkbus.com/thread-313856-1-1.html Kotlin Kotlin学习资料汇总 http ...
- 一文搞定scrapy爬取众多知名技术博客文章保存到本地数据库,包含:cnblog、csdn、51cto、itpub、jobbole、oschina等
本文旨在通过爬取一系列博客网站技术文章的实践,介绍一下scrapy这个python语言中强大的整站爬虫框架的使用.各位童鞋可不要用来干坏事哦,这些技术博客平台也是为了让我们大家更方便的交流.学习.提高 ...
随机推荐
- 02 . Nginx平滑升级和虚拟主机
Nginx虚拟主机 在真实的服务器环境,为了充分利用服务器资源,一台nginx web服务器会同时配置N个虚拟主机,这样可以充分利用服务器的资源,方便管理员的统一管理 配置nginx虚拟主机有三种方法 ...
- Rocket - decode - Simplify
https://mp.weixin.qq.com/s/YWXYNaRU-DbLOMxpzF2bpQ 介绍Simplify如何简化解码逻辑. 1. 使用 Simplify在DecodeL ...
- 从按下url到显示页面
从按下url到渲染页面流程图 处理输入信息 检查用户输入 当用户在地址栏中输入一个查询关键字时,地址栏会判断输入的关键字是搜索内容,还是请求的 URL.如果是搜索内容,地址栏会使用浏览器默认的搜索引擎 ...
- Java实现 LeetCode 1162 地图分析(可以暴力或者动态规划的BFS)
1162. 地图分析 你现在手里有一份大小为 N x N 的『地图』(网格) grid,上面的每个『区域』(单元格)都用 0 和 1 标记好了.其中 0 代表海洋,1 代表陆地,你知道距离陆地区域最远 ...
- Java实现 蓝桥杯VIP 算法训练 链表数据求和操作
算法训练 9-7链表数据求和操作 时间限制:1.0s 内存限制:512.0MB 读入10个复数,建立对应链表,然后求所有复数的和. 样例输入 1 2 1 3 4 5 2 3 3 1 2 1 4 2 2 ...
- Java实现 蓝桥杯VIP 算法提高 3-1课后习题2
算法提高 3-1课后习题2 时间限制:1.0s 内存限制:256.0MB 问题描述 编写一个程序,接受用户输入的10个整数,输出它们的和. 输出格式 要求用户的输出满足的格式. 例:输出1行,包含一个 ...
- Java实现 N的阶乘
import java.util.Scanner; public class n的阶乘 { public static void main(String[] args) { Scanner sc =n ...
- Java实现蓝桥杯二项式的系数规律
二项式的系数规律,我国数学家很早就发现了. 如[图1.png],我国南宋数学家杨辉1261年所著的<详解九章算法>一书里就出现了. 其排列规律: 1 1 1 2 1 3 3 1 4 6 4 ...
- java实现南北朝时
南北朝时,我国数学家祖冲之首先把圆周率值计算到小数点后六位,比欧洲早了 1100 年! 他采用的是称为"割圆法"的算法,实际上已经蕴含着现代微积分的思想. 如图[1.jpg]所示, ...
- java实现测量到的工程数据
[12,127,85,66,27,34,15,344,156,344,29,47,-] 这是某设备测量到的工程数据. 因工程要求,需要找出最大的 5 个值. 一般的想法是对它排序,输出前 5 个.但当 ...