一、请回望暑假时的第一次作业,你对于软件工程课程的想象
1)对比开篇博客你对课程目标和期待,“希望通过实践锻炼,增强计算机专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么?
目前来说,我熟悉了一点软件开发编程的过程方式,知道了一点如何把所学的知识运用到软件开发工作中。但是来说我觉得我在编码,自学开发技巧来说还是有很多不足。我之前是acm队员,我原本以为我学到的算法知识可以大量地运用在软工编程,但事实证明我错了,这基本是两个不交叉的领域,acm注重算法的研究,项目更趋向于代码书写还有接口的使用。软件的代码工作量很大,这对没有项目经验的我是很大的挑战。
2)总结这门课程的实践总结和给你带来的提升,包括以下内容:
1、统计一下,你在这门软件工程实践中,完成了多少行的代码;
个人项目中写了较多代码,团队项目写的较少。差不多1000行
2、软工实践的各次作业分别花了多少时间?(做一个列表)
作业内容 | 花费时间 |
---|---|
准备 | 30分钟 |
第一次个人作业 | 640 |
结对作业1 | 840 |
团队展示 | 40 |
结对作业2 | 840 |
团队选题报告 | 30 |
课堂实战uml | 240 |
需求分析报告 | 40 |
团队现场编程实战 | 350 |
alpha冲刺 | 1800 |
beta冲刺 | 1300 |
事后诸葛亮 | 30 |
个人总结 | 60 |
3、哪一次作业让你印象最深刻?为什么?
最让我深刻的是团队现场编程实战,那次我们都是小白,不会写代码,不会用接口,啥都不会。全靠当场百度当场自学,求教别人,现学现用。时间很紧迫,所以我基本是不会一点,网上百度一下,然后照着做下来,这让我短时间学到了好多东西,我也知道了我和程序员还是有差距的。
4、累计花了多少个小时在软工实践上?平均每周花多少个小时?同时贴出开篇博客“你打算平均每周拿出多少个小时用在这门课上”的回答
在个人项目和结对项目时,每两周提交一次,平均每周花4小时左右吧。在团队作业时,平均每周3小时。
到现在累计花费了100小时左右。
5、学习和使用的新软件;
pycharm、pyqt 、gephi、axure、typora
6、学习和使用的新工具;
pycharm、pyqt 、gephi、axure、typora、leangoo
7、学习和掌握的新语言、新平台;
python、leangoo
8、学习和掌握的新方法;
面对问题学习往往效果更好
9、其他方面的提升。
与人交往方面,维护团队之间的合作关系、团结关系,解决团队成员的利益冲突,这些都是今后工作中必不可少的,软工让我提前接触到这些,是我的一大收获。
二、写下属于自己的人月神话——个人或结对或团队项目实践中的经验总结+实例/例证结合的分析
我觉得当面对一个问题时这个问题可能需要多方面的知识,这时候全方位从头开始学习是来不及的,这时候可以选择面对问题学习,将一个个问题通过百度、请教别人等方式解决,往往效率更高。
在我做个人项目时,不会vs,不会封装接口,不会单元检测,这时候如果我选择从头开始学习vs的使用肯定是来不及的,我就针对着现有的问题,学习一个解决一个。等完成任务之后,回头总结学到的知识和解决的问题,这时候你的学习效率就达到了比较高。
三、对下一届实践的建议,或者对于开学初的你,对于大一的你,对于开学初的我,对于同期的TA们,对于后来的学弟学妹:
1)你有什么想建议、告知和期许想要告诉他们呢?
软工可以让你学到很多,但必须靠你自觉自学,而且花的时间比较多。如果学有余力可以选,确实可以让你提前接触程序员的工作,但是如果学习比较困难就要慎重选择,毕竟软工占据了比较大的一部分时间。
2)特别地,特别地,下一届要不要中途换队员(强制的、彻底的从一队换到另一队)?
假设依旧是一个90+人数的大班
建议不要中途换队员,一方面这样影响了团队的凝聚力。一方面转出的团队人员变少需要调配工作增加队员负担,另外一方面该队员对转入团队的项目不熟悉,转入团队在原有任务分配好的基础上难以再分配。
3)身在一个格外大的班级,竞争强劲,你认为一个组的人数应当在多少比较合适?
7、8个左右,人数太少任务太重,人数太多任务不好分配。
4)个人/结对/团队作业应该控制在怎样的规模?
建议减少作业量。。。。建议不要一次性要求学习太多之前没用到的知识、工具。
5)这学期下来,你最感谢的人是谁?有什么话想要对TA说呢?
感谢我的队员,感谢每一个帮助我的人
四、分析一下自己所处的团队。软件工程实践是大学里少有的认真的团队协作经验。《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?(参考《构建执法》第17章 人、绩效和职业道德)
团队发展大致为萌芽阶段、磨合阶段、规范阶段、创造阶段这四个阶段。
萌芽阶段:团队当初是地秀组建的之后陆续加入了张扬、我等同学。
磨合阶段:我们在中期加入了全炯同学。
规范阶段:在alpha、beta编程时,我们规范了每个人的语言风格,使得代码便于阅读整合。
创造阶段:在我们alpha、beta冲刺时,熬夜在活动室开会写代码是再正常不过的事。
五、怎样证明你学会了软件工程?
1)研发出符合用户需求的软件
我们团队根据用户需求开发出的javis for chat具有热词分析、关键词提醒、群发助手、单向好友删除等功能。
2)通过一系列工具,流程,团队合作,能够在预计的时间内发布 “足够好” 的软件
有项目规划/需求/设计/实现/发布/维护,有定时的进度发布 ; 而不是: 通过临时熬夜,胡乱拼凑,大牛一人代劳,延迟交付等方式糊弄
3)并且通过数据展现软件是可以维护和继续发展的。
而不是 找不到源代码,代码无文档,代码不能编译,没有task/bug 等项目的发展资料
通过github保存源代码:
4)对着这个检查表:http://xinz.cnblogs.com/p/3852177.html 检查一下,自己如果去企业面试,这些常见的问题是否都能回答,并在此总结。
有很多方面都还没有经验,还需要更多磨练自己。
请在随笔中用数据证明上述内容或侧重选择之一。