###心路历程 商店大赛终于结束了,没错,终于。作为一名上班之余学习的人,我也算是松了一口气。相信有很多的上班族同学也是这样的感觉,自参赛以来,注意力就完全被吸干了,生活一团乱麻。然而在这个痛苦的过程中终究还是有所收获,一笔不小的收获。 比赛开始之初,因为自己的学习进度和教材的进度有了一小段的距离,加之家里发生了些事情,本打算就此作罢,后期自己再琢磨着自己完善自己的购物网站。然而,在看了Xdite老师在2月20号的演讲后,我意识到了自己这个观念的错误。首先,比赛的首要目的是锻炼协作能力,而这个和最新的课程进度实际上是关联不大的;其次,参加比赛的过程同实际的项目过程是非常相似的,边学边做,争分夺秒,是个很好的模拟实战机会;最后,如果打算进行职业转换,拿出一个像样的合作作品非常重要,而这时自己一个人捣鼓很难有的效果。羞愧的我直播一结束就广州meetup群求组,要知道这时比赛已经开始了一个星期。很巧,另一个刚看完直播也在羞愧的罗慧仪同学也萌生了组队的想法,于是我们就在这样的状态下组队开始了比赛。 相信通过网络合作完成具体编程项目很多人都是第一次,我们当然也不例外。组队当天,简单讨论了以后发现一切都是毫无章法,完全是懵逼的状态。而后的两天也处于模模糊糊的讨论状态,实际上讨论了些东西,但感觉上好像又没有讨论什么。一直到第四天,大家通过微信通话,才开始了真正有效的交流,选题、model的设置、功能实现顺序等等。 由于组队的两人都是上班族,所以合作的时间只能是晚上和周末,所以在剩下的时间里,就是一点一点的加功能、一点一点的改界面,虽然比起其他同学我们进步缓慢,而且也不能说花了全部可用的时间,但是我们确确实实耗费了很大的精力。然而,这也是理所当然地事情,只要是一个认真工作的人,一个认真对待家人的人。在上班之余,在陪同家人之后,即便你还有时间,你的精力也大打折扣。所以,比起那些开足全部马力参赛的同学,我们最终的成果确实相当的初级与不完善。 比赛过程中每当看到其他同学漂亮的页面、强大的功能、以及快速的迭代,我们的心中充满了自卑与焦虑。这种对比的心态从参赛开始蔓延的比赛结束的前两天,那时的我们生活已经是糟得不能再糟了,对于爱干净的我来说,从比赛开始家务就已经没有再做了,面对脏乱的环境,我的内心也混乱不堪。而罗慧仪同学也因为连续一种熬夜整个人完全掉线了。所幸,在比赛结束前的周六,大家坦诚的交流了下自己的进度,发现都已经停滞了一两天。进一步的,发现我们都已经因为前期的无计划赶进度产生了严重的厌恶情绪。面对这样的情况,商量之下决定暂停比赛了。其实,仔细想来,这场比赛本身就是一场投入时间和精力的比拼。而面对待业党与学生党,我们上班族显然天然处于劣势,在这样的情况下,更明智的对比,应该是自己和自己比,而不是去和别人比。当意识到这点的时候,发现我们已经不知不觉由进步型变成了表现型,而且是那种表现失败的表现型。试想,你做出了一个新功能,你和自己比,是+1。而你做出了一个新功能,别人做出了3个新功能,你和别人比就是-2,多么强大的负反馈啊。 暂停了比赛的当天下午,发现自己神奇的又恢复了兴趣,而后又开始琢磨起了新功能,只是这次我已经换了一个心态,认清了自己的状况,也就明白那些奖品与名次其实已经与自己无关,而我要做的就是学习学习再学习。比赛结束前我又给网页加了个伪功能,虽然已经无足轻重,但是它是整个过程里我做得最开心一个。^o^ ###收获 ####做事心态 做事情定好战略或者调整好战略以后,就要和自己比,看看自己的执行情况,而不是去和别人比,要通过和自己比不断激励自己;而是否能拿第一,既看自己的实力与把控能力,也看serendipity; ####比赛策略 做什么事情,制定策略与项目管理是第一件应该做的事情,虽然看了Xdite老师的敏捷项目管理课程,也知道它获得hack松的精力,但是在这次的比赛中我们并没有能自觉按照这个方法进行比赛策略的制定,及项目管理,对于教材里面提及的githubproject管理工具也没有好好使用,造成比赛过程无限发散,根本不在可把控的范围内。 ####有效交流 在比赛开始的几天了,我们只是通过微信文字交流,直到第四天我们才开始真正通过微信语音通话进行高质量的交流,所以交流的实时性非常重要,比起文字,语言与视频的交互质量更高; ####分工科学 要科学的规划项目合作过程的开发顺序。虽然我和队友一人负责功能一人负责前端,但在实际过程中我们并没有安排好具体的合作时间分配,造成前端完成后,而相应的后端还没有完成,导致队友的项目开发时间白白浪费; ####GitHub 通过组队体会到了Github真是提供了一个非常牛逼的合作功能,这是只使用过excel/word多人共享工作模式的人未体验过的,其背后是思想相当有意思,Github的官方工具github desktop更是学习别人功能的利器; ####javescript 在实现show页面小图点击大图变化功能时,学习到了一些js的知识,发现js其实是本质上也是程序,其实通过动作出发而已; ####学习别人的功能代码 在学习的过程中,学会了通过commit及blass来追踪其他同学实现某个功能代码的脉络,进一步提供了进一步学习的可能; ####landingpage 在学习过程中,发现其实网页的核心是让别人想买你的产品服务,而不是你的页面多么漂亮; ####正确评估一个功能所需要的工作量 在设计产品的时候,我们使用了两个model类,一开始以为只需要价格model就可以了,后面发现cart要改,再后面发现order也该,后来发现mailer也要改;而别人知识通过一个category和对应的column就可以实现了相关的功能。。 ####加深了对gem的理解 gem就是代码集合,知识打包了而已,可以拆开来用,也可是制定知己的gem; ####互联网服务 通过部署heroku及邮件服务,了解到了其实本质上,晚上的各个功能都是不同模块的整合,小的可以叫gem,大的可以叫云服务,互相之间通过交互语言来实现协作;