my everying
evering -> everything
一、请回望暑假时的第一次作业,你对于软件工程课程的想象
1)对比开篇博客你对课程目标和期待,“希望通过实践锻炼,增强计算机专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么
通过一门课程一个学期的锻炼,不能说我取得了多大的进步。项目团队工作流程有初步了解,初次接触了andriod并且在我专业课之余保证了一定的代码量。不过我能够充分肯定自己的自学探索能力。
2)总结这门课程的实践总结和给你带来的提升,包括以下内容:
1、统计一下,你在这门软件工程实践中,完成了多少行的代码;
个人结对约600行,团队我估计600的两倍到三倍。
2、软工实践的各次作业分别花了多少时间?(做一个列表)
个人一 1070
结对一 1710
结对二 1840
以上三次作业有记录时间,其余团队作业没有记录时间。
3、哪一次作业让你印象最深刻?为什么?
ofcourse团队作业。时间持续最久,最令人头疼的团队作业。为此我学习了android,使用了github上别人的项目,独立地解决遇到的问题。此外作为组长我需要调动分配,亚历山大。
4、累计花了多少个小时在软工实践上?平均每周花多少个小时?
无法准确估计。主观感受是,我在每个deadline前三天的课余(白天和晚上)全部交给软工了。再加上其它间歇的时间,估计有作业的每个礼拜有24个小时的时间在做软工。我主观认为我花在软工上面的时间太长了,以至于舍弃了一些应该用在别的课程上的时间。
5、学习和使用的新软件;
android studio,visual studio
6、学习和使用的新工具;
没有
7、学习和掌握的新语言、新平台;
一些android,写了一点点python;Stack Overflow是解决问题的好去处,各种问题在必应国际版搜索关键词也能找到符合的结果。
8、学习和掌握的新方法;
9、其他方面的提升。
锻炼了检索信息的能力
二、写下属于自己的人月神话——个人或结对或团队项目实践中的经验总结+实例/例证结合的分析
在一些方面我是负面教材。在贝塔冲刺中我需要完成将pdf和与之分离的画布结合起来,我说干就干,使用最直白,最字面的方式完成它:获取pdf展示组件里的pdf的图片,再把它和画布合成。我费劲千辛万苦,搜索pdf展示组件里存储pdf画面的部分并且尝试把他从这个对象里取出来,花费了两天时时间探索,再花费一天时间寻找解决比例不合的情况,其中我对一些我的解决方法感到十分自豪,brilliant! 冲刺最一天我的确达到了我要的预期效果,但结果我没有把它整合进项目里。事后冷静思考,我所有的工作完全是自娱自乐。
没有整合是因为队友完成了文件切换的功能,而我不是在这个基础上开发的。这首先体现一些交流以及协同工作的问题。但是从根本的层次来讲,我的方法是不是一开始就不合理呢?
不兼容文件切换不仅仅是合并冲突的问题。我的方法使每台手机在查看完pdf后在本地生成新的结合pdf。这就是不合理的。这些事情应该提交到服务器来做,再提供下载,而不是每个人都生成一份独立的文件。
另一个方面,我们的pdf展示使用了github上的项目,而我对此太着迷了,一切都以迎合它为出发点。它没有显式地提供画笔的功能,于是我另一个最直白的解决方法是蒙上一层透明的画布,假装他们是一起的。本应该紧密结合的功能,实际上是如此的独立。我应该要做的是完成一个个性化的的pdf展示器,它提供画笔的功能,因此能够较好的解决两种画面的位置关系问题。
基于以上两个问题我的beta冲刺可以说是一场空。我的确解决了很多问题,做了很多的工作,但是我扣错了第一颗扣子,所以我没有办法展示我的工作成果,我没有办法邀功。问题在于我的盲目,看见局部解默认找到了最优解。
结论:不要凭借第一直觉开始打代码,‘’‘团队交流很重要’
三、对下一届实践的建议,或者对于开学初的你,对于大一的你,对于开学初的我,你有什么想建议和告知的呢?对于后来人的期许。 特别地,特别地,下一届要不要中途换队员?
对于另一次迭代的i:
- 我建议没有实践兴趣的不要选择这门课,特别如果只是缺少实践学分要凑数的话。这门课要求大量的精力,来玩玩的话浪费自己的时间也加重队友负担;
- 对于能力不强的同学也需要考虑受不受得住,可能需要在短期内学习新的语言并且运用,但是只要感兴趣并且积极学习,能力不会阻碍你;对于能力强的人这门课会给你大的展示空间,会得到满足感;
- 我建议每次早点把作业排上日程,熬夜效率低下且不利于健康;
对于课程:
- 我建议个人作业和结对布置在暑假,留更多的时间给团队作业;甚至在团队项目在暑假就把题目确定,撰写文档等;同时可以在暑假学习需要的语言。
- 我不建议直接换队员,学习不是马上就好的事情,在新的团队发挥不了立即作用。我建议抽取人员后,各小组说明招聘信息,按职位上岗。
四、分析一下自己所处的团队。软件工程实践是大学里少有的认真的团队协作经验。《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?(参考《构建执法》第17章 人、绩效和职业道德)
我们不如书中表达的那样理想,学生团队实际上更松散。萌芽/磨合/规范/创造中我们大于磨合小于规范。
五、怎样证明你学会了软件工程?
对于各项来说,
(1)我们的软件没有来自大量用户的反馈;
(2)在作业要求下,我们完成了有项目规划/需求/设计/实现;在冲刺阶段我们使用了项目燃尽图约束我们的进度(详见阿尔法冲刺,贝塔冲刺),但它的走向不如我的预期规划,也因此“足够好”的版本没有诞生;我们有熬夜;
(3)我们的代码没有说明文档,没有bug的发展资料。
我觉得满足全部的要求对于我来说太苛刻了。于个人而言,有限的时间与精力,我没有办法做得那么好。
六、我自己的话
软件工程让我非常劳累,尤其在我熬夜的时候,那种厌烦情绪是真实的。但是时间让我遗忘,现在回想起来,情绪已经变得很模糊:模糊的焦虑,其中有时候会有一些成就感。但是信息时代,这些数据都还清晰存在呢。邮箱里我最害怕打开的新评论提醒(来自老师的疑问);桌面的文档;相册里的那张我们穿着短袖在食堂拍的第一次会议照片,它被十天连续的我们穿上秋天的衣服的冲刺照片挤到了后面几页。它们提供明确的时间信息告诉我结束了。
还有什么也一起结束了?我对于新学期的个人展望结束了,现在到了验收时间。期望高于现实可以理解,但我也因此很久没有“履约”的快乐感觉了。
我不觉得自己学到了很多东西:一些简单的语言使用,一些粗浅的对于各种文档的理解。这门课程给出太多学习目标,大部分都在期限里被简单处理了。我最大的收获是开阔眼界。我看见别人卓越的写代码的能力和他们丰富的项目经验,看见我从来没有主动探索的领域还有很多新的知识。看见使我不至于因为没有比较或者像是井底之蛙而懒惰地前进。
我在凌晨的夜里富有自我批判精神。我感叹自我能力的不足,包括时间规划上的和写代码上的。我用睡眠时间弥补过失,我认为这是自我能力不足的证据,这太病态了。我期待自己成为一个不加班的程序员,良好的时间规划保证我在一定任务量下尽早成工作;强大的个人能力允许我完成额外的任务。我大概就是要表达一个我还有很多路要走的意思;然而现实意义上的路——距离我毕业的时间——已经不长了。
我在贝塔冲刺结束熬夜的后一天去跑了半程马拉松,我真切地为自己的健康感到担忧。不过我顺利跑完了我的项目。我的软工也是这样,花费我的力气,让我担忧,当你还在那个进度条的中间前进的时候,会真情实感地感到疲惫。不过到了终点然后缓一会,就好像能重新来过。我想要说,哪怕是我自己,在某个事情已经是过去式的时候,也没有办法再引用当时的感受,不能说“而已”这样的词语。所以我不后悔我当时没有做得更好,我只希望自己在今后做得更优。
my everying的更多相关文章
- Seven Steps to Success Machine Learning in Practice
Seven Steps to Success Machine Learning in Practice Project failures in IT are all too common. The r ...
- CET-4- translation1
questions 2017/10/17 多年来,家长和老手都曾得到过这样一种信息(message):尽量利用任何机会表扬孩子,对他们所干的任何事情都要说好.据说这样做有助于提高孩子的自尊.但是近来许 ...
- vmware下安装centos7
下载vmware http://down-www.newasp.net/pcdown/big/wm_pro_14_win.rar 下载centos7 https://www.centos.org/do ...
随机推荐
- Mybatis联合查询记录,左连接参数操作
公司业务需求要做个列表的排序 而实际排序的字段不再本库中,需要跨库去拿到字段,因为是微服务体系架构,不可能Left join跨库的表,所以决定调用一次跨服务的API拿到排序相关的对象,里面包含需要排序 ...
- C语言中堆内存的开辟和释放与内存处理函数
C语言动态分配内存,malloc的出现就是来弥补静态内存分配的缺点 比如说我们在定义数组的时候,数组的长度必须是一个常量,不能改变的值,假如我事先定义了数组,一旦业务需求发生改变,那么这个数组就不能再 ...
- linux 虚拟机 磁盘空间压缩
/usr/bin/vmware-toolbox-cmd disk list /usr/bin/vmware-toolbox-cmd disk shrink / init 0
- struts2第四天——拦截器和标签库
一.拦截器(interceptor)概述 struts2是个框架,里面封装了很多功能,封装的很多功能都是在拦截器里面. (属性封装.模型驱动等都是封装在拦截器里面) struts2里面封装了很多功能, ...
- hbase、zookeeper及hadoop部署
一 机器192.168.0.203 hd203: hadoop namenode & hbase HMaster192.168.0.204 hd204: hadoop datanode &am ...
- vab set dim
'问题一'给普通变量赋值使用LET ,只是LET 可以省略.'给对象变量赋值使用SET,SET 不能省略. Sub AA() Dim arr As String arr = "h ...
- 4 django篇
1.django请求生命周期 wsgi, 他就是socket服务端,用于接收用户请求并将请求进行初次封装,然后将请求交给web框架 (Flask.Django) 中间件,帮助我们对请求进行校验或在请求 ...
- P4211 [LNOI2014]LCA
P4211 [LNOI2014]LCA 链接 分析: 首先一种比较有趣的转化是,将所有点到1的路径上都+1,然后z到1的路径上的和,就是所有答案的deep的和. 对于多次询问,要么考虑有把询问离线,省 ...
- idea tomcat热部署 Error running 'Tomcat 7': Unable to open debugger port (127.0.0.1:3622): java.net.SocketExcepti
2018/5/6 经过测试,发现只需要修改 http port 为 8081即可,JMX port 不用改 默认是 1099 今天在进 tomcat 的 debug 模式时报了此异常, tomcat ...
- check the manual that corresponds to your MySQL server version for the right syntax to use near
一.问题 mysql插入数据时报错 sql如下 insert into t_sysconfig (servercode,key,value,remark,updatetime) values (&qu ...