距离谷歌创新特训营的结束已经过去5天了,但今天终于觉得得给他做个总结了。因为我的记性略差,害怕有一天会忘记这次美好的行程,和一个接受大自然的拥抱和心灵的涤荡的地方。
我还记得当时收到主办方邮件时的那种兴奋感,全国才30个人,有我,可以的。后来和老师交流了解到总共有将近两百人报名,然后两位老师还商量是让杭州周边的学校参加还是照顾全国各地的。结果老师的商量结果是全国各地,因为我大杭州学子散布在全国各地,然而我两者都不算所以还是挺幸运的。
言归正传,第一次参加这么逼格高的夏令营,心情自然既兴奋又紧张。1号的中午从天津出发,早上七点半到了之后便马不停蹄地赶往浙大城院的实验室。不看不知道,什么叫做别人家的实验室。首先就是各种硬件和电脑散列分布,让人觉得这是一个可以诞生无限可能的地方。其次是用即时贴所粘成的卡通图案,不会给人很枯燥无味的感觉。
第二天就是开营和破冰,有个同学问到google什么时候回到中国?咱们办这个活动的意义在哪里?
万老师的回答是谷歌从未离开中国,听过讲解后得知谷歌在中国拥有四家分机构,北京,上海,广东和台湾。而且主要的业务是提供兴趣广告类的支持,不知道在某些网站上的“您可能感兴趣的”这类推荐是不是谷歌做的。谷歌每年的I/O大会也是开发者的一个大party,享受科技带给人类便捷的同时,谷歌还致力于提供为员工提供更好的工作环境。
谷歌会请一些知名的大厨并发挥他们的创造性做出独一无二的美食,而且是免费的。而且工作的时候并没有主管会交给你很多的任务,完全是自主的觉得自己该做些什么而再去行动的。公司里只有10%的人是在给公司赚钱,而剩下人的思想将带来新一代技术革命。
然后的每天是发布任务和讲解新技术同步进行:
8.3认识谷歌+Arduino的基础知识,以前学计算机组成原理时觉得这玩意好难搞。但是在训练营里周围的人没有一丝懈怠,所以只能硬着头皮也要上了。我们小组一开始用了一个温湿度传感器,然后把收到的温湿度显示在一个液晶屏上。
8.4展示小组+Makerbot+7Bot3D打印机是以前从未接触过的,真的太有意思了,它可以将你所设想的几乎任何东西打印出来。我尝试打印了一个玛莎拉蒂的logo,还算成功。7Bot的机械臂也是令人叹为观止,可以通过操作一个机器人的动作来操作另一个机器人可以完成很多有意思的事情。
8.5树莓派&ThingWorxTW是物联网的一个平台,以前只知互联网,不知物联网。但老师教我们如何不敲代码写了一个应用之后突然发现,这物联网也是个挺有意思的玩意。在设计页面上有点像以前用AS时的操作。
8.6赛灵思(Xilinx)查阅了一下,网上有某猫有卖的,还有这个的中文社区。时间很短的去接触,老师讲解了几个典型的demo,例如识别一张图片上面的物种是啥?然后就是努力的做终级任务。
8.7Code Retreat 以下是从网上找的一些资料,我们几乎是按这个流程做的。开始是正常的写代码,然后要求写测试和结对编程,并强调了测试的重要性。接着要求不能用if语句,这是一个类似八皇后的问题,需要每次判断,这一下子便把难度提升了一个档次。但是其实用的是数组储存所有的可能,并用指数代表判断的可能返回数组的值。在acm队时也经常会用这种方法,但是当时说什么也想不起来了。最后的要求是不能用鼠标,这个就比较困难了。不过程序员跟普通用户的区别大致也在于此吧。
Coderetreat是什么?
在过去几年里,每到周末,在全世界的各个城市中,就会有软件开发者成群结队地聚在一起,他们会在一整天的时间内不断尝试编写代码,以解决某个给定的问题,但不会完整地实现一个解决方案。如果你认为这听上去有些疯狂,那大概是因为你从来没有参与过coderetreat吧!
这里为那些没有参与过coderetreat的读者解释一下:coderetreat是一种通常在周末举办的活动,软件开发者成群结队地聚在一起,在为期一天的时间内为自己编写代码,以真实地反映自己的代码水平,并且互相学习。这种活动专注于实践(敏捷)软件开发中的基本元素,强调简单设计的基本原则,即让测试驱动编码,消除代码重复、保持代码的表达能力,并且不包含任何不必要的特性(稍后会进一步进行分析)。
这一思想是Gary Bernhardt、PatrickWelsh、Nayan Hajratwala和 Corey Haines在2009首先提出的。从那之后,这种思想得到了发扬光大,以至于现在已经举办了三届“全球Coderetreat日”,在这一天时,全世界各地都会分别举办coderetreat活动,有数以千计的开发者参与其中。2014年的全球活动日在全球近150个城市中展开了coderetreat,参与者超过了两千人。
一个典型的coderetreat通常(正如在coderetreat.org网站上所概述的一样)包括以下内容:
要解决的代码问题(或kata)是创建一个虚拟的康威生命游戏(Conway's Game of Life),它通过应用一些简单的规则,对跨越多代的细胞的生命和死亡进行模拟。
编码活动一共会举办五或六场,每一场的时间是45分钟。中间的休息时间可以进行交谈、用餐和饮酒,整场活动的时间需要一整天。
在具体过程中需要同时应用结对编程和测试驱动开发方式。
在每场编码活动结束后,所有的代码必须被删除,并且在下一场活动开始时要更换拍档。
参与者并不一定要在活动中实现一个完整的解决问题的方案。
可以在活动中加入不同的限制(例如:“方法不能够返回伤任何值”、“不可交谈”等等),因此,你可以从不同的角度对问题空间本身、以及与他人合作的方式进行重新探索与解读。
8.8杭州的天气简直不能再好,去了西湖,西湖的生态在这么多游客的情况下还能出现小松鼠也真是nice。G20峰会让杭州停了很多工厂,天空蓝蓝的,但是期盼已久的星星还是没能看见。很庆幸在大学时代就参加了这种活动,拓宽了眼界和思路,软件可以有很多种形式,也可以架设在不同硬件之上。
未来,加油。
再见!杭州!