第 1 次编码道场进行纪实

程序人生 · hxfirefox · Created at · Last by hxfirefox Replied at · 1267 hits
79

第1次编码道场进行纪实

原文链接:“第1次编码道场进行纪实”

时间:2016.4.19

地点:中兴通讯南京研发中心一期办公室

初衷

早在几年前就听说过在程序员界有一些很有趣的社交活动,比如Coding Dojo、Coding Retreat等,大家以码会友相互交流心得、钻研精进技艺,犹如小说家笔下的“武林大会”。可惜当年苦于没有江湖英雄帖而不能一探其中奥秘,直到自己加入软件匠艺社区,社区中的前辈和匠友传授了不少组织开发者社交活动的经验,特别是道长伍斌@wubin28,他详细地讲解了编码道场如何从筹备、宣传到实施、回顾各个环节的要点,听完他的讲解,我就开始琢磨既然编码道场这么好玩,自己为什么不组织一次。

对我组织编码道场更为有利的是,我负责的部门Cop中大多数参与者对于实践活动充满渴望,对于大多数人而言编码道场是一个全新的名词,充满未知,因此人、场地、设备很快就获得落实,此外还得到了亚旭、李波两位Cop Leader的鼎力支持。唯一有些缺憾的是时间,严格意义上的编码道场需要持续半天,但对我们Cop活动而言,2小时的活动时间就意味着需要裁剪一些步骤和内容,所以这次编码道场是一次mini版。

过程

参照伍道长的网上指引,道场选择的练习题来自cyber-dojo的FizzBuzz,练习的目标包括:
- TDD+结对编程,感受TDD对于开发的变化,体会小步迭代以及频繁提交,体验结对编程;
- 重构到设计模式——职责链,职责链的用途、场景以及重构的常用手法;
- 感受重构式编程与快捷键对开发效率的提升。

由于活动时间的限制,活动将大部分时间放在练习上,对流程进行简化
- 介绍本次代码道场练习目标(2分钟)
- 介绍TDD与结对编程(3分钟)
- 介绍责任链设计模式(5~8分钟)
- 介绍本次练习题FizzBuzz(3分钟)
- 自由练习(约100分钟)

所有练习必须以结对方式进行,每个结对小组按次序拥有3~5分钟的现场编码时间,整个编码过程投影在墙上,分享给其他小组。

完成FizzBuzz分为两个阶段,第一阶段是利用TDD快速实现FizzBuzz功能,第二阶段则是将代码重构至职责链设计模式,两个阶段中结对中驾驶员与领航员角色发生变换,保证所有参与者都能体验道场带来的乐趣。

最终所有人的操作都被提交到github上,方便参与者能够随时从提交记录中回味这次道场体验。

收获

道场的有趣之处在于招式练习,要求参与者尽量多地去编码,并从实践中获得经验体会,颇有些暗合“能动手的就别吵吵”的社会意味。伍道长在其编程道场记录中阐述了道场的特色
- 不是比武大赛——大家乐呵乐呵
- 童叟无欺——欢迎所有水平的同学
- 操练时玩砸了没事——领导不责怪

道场强调全员参与,强调始终保持关注点在编码练习上,参加道场并不是为了完成练习,而是为了获得练习的经历和体验。这种体验是直观的,并且融合了理论和实践,更容易被参与者接受。结对编程更提供了教学相长的途径,因此不少参与者就在道场结束后表示,道场传授的知识更容易理解和牢记。

而作为主办者,引导技巧是不可或缺的,道场更多地是通过练习让参与者自行参悟编码技巧,这些编码技巧就是主办方想要传递给参与者的有效信息,演示、讲解、点评、提问都是非常有效的引导手段,更重要的是之后的练习,采用可重复的练习手段正是道场练习的核心,也需要主办者去识别、归纳和加以利用。


「软件匠艺社区」旨在传播匠艺精神,通过分享好的「工作方式」和「习惯」以帮助程序员更加快乐高效地编程。
共收到 4 条回复
1
hkliya · #1 ·

知易行难,为你的行动力点赞!
根据我的经验,其实每次做编程练习活动,引导者的收益是最大的。

79
hxfirefox · #2 ·

#1楼 @hkliya 做完下来真是获益匪浅,也没想到参与者的反馈如此好,后面考虑长期做下去

434
czqlan · #3 ·

是在花神庙这边的中兴?

79
hxfirefox · #4 ·

#3楼 @czqlan 是的

需要 Sign In 后回复方可回复, 如果你还没有账号你可以 Sign Up 一个帐号。