写点什么

Coding Dojos:练习掌握软件开发的艺术

  • 2007-09-06
  • 本文字数:1363 字

    阅读完需:约 4 分钟

Coding Dojos(编码道场)为开发人员们提供了一个放松和舒适的环境,让他们磨砺自己开发技能的聚会之所。 Emily Bache 和其他人开始在一个 Wiki 上记录“道场”的内容,大家可以从Wiki 中的内容开始了解Coding Dojos。

Dave Thomas 介绍了什么是“ Code Kata(代码之‘形’)”(译注:Kata 来自日语,对应的汉字为“形”或者“型”,常用在日本技击中,如柔道、空手道、合气道及剑道等,指套路。这里用来指代代码练习中的形式),并且记录了 21 种可以用来磨砺我们编程技能的不同“形”。他解释了通过这样的方式来进行学习的原因:

你怎么样才能成为一个伟大的音乐家?了解音乐理论以及你的乐器的运作机理,这样做是有帮助的。有天分也能帮你成为音乐家。不过,追根问底,伟大来自持续不断的练习;反复应用相关理论,并根据每次得到的反馈来不断提升自己的水平。你怎么样才能成为一个全明星运动员呢?当然,好的身体和天分会起到辅助作用。但是伟大的运动员们每天都会花费数小时进行训练。

但是在软件行业中,我们给开发人员们培训完理论之后,就直接把他们扔到实际的项目中去了。这就像找来一帮身体很棒的小伙子,直接跟他们说,他们要用四节的比赛时间来击败 Redskin 橄榄球队(译注:一只美国橄榄球大联盟 NFL 球队)(嘿,我们是按照目标进行管理的,对吧?)。在软件行业里,我们直接在工作中进行练习,这就是为什么我们工作中总是犯错误的原因。我们要找到将日常练习与职场工作分开的方式。我们需要练习课程。

Coding Dojos 就是这样一个供人们聚集在一起进行“形”练习的场所。InfoQ 问到 Emily Bache 关于 Coding Dojos 的受众问题,她回应道:

我认为只要是希望提升自己编码技能的人,特别是在测试驱动开发的领域中的人,都应该尝试一下 Coding Dojos。这不是什么新创意了,多年以来,一直存在着互相分享学习经验的用户组和学习圈子聚会,Coding Dojos 不过是在建立同一个想法上的新的视角。几年前,我曾是一个设计模式学习组的成员,Dojo 只是对老主意的一个新包装而已。一帮希望提升自己技能的人,聚在一起,互相学习,并且很享受这样的过程。

这种技术的前提是:熟能生巧;形成专业技能的关键,是仔细的练习,而不是纯粹靠天赋。通过对同一个小问题的反复研究,你会发现自己时常有灵光迸发之感,自己的设计和编码技能也从而得到提升。 Bob 大叔在参加完 Laurent Bossavit 的一个关于 Coding Dojos 的演讲之后,曾说道:

我现在已经反复地做一个“形”好些年了,并且完成了它上百遍。在会议中,客户那里,商业秀等等场合,我都会去完成它。这就是保龄球游戏。由于做的次数太多,我在睡觉时都可以把它解决掉。不过有趣之处在于,我仍然能够获得微小的改进。这并不经常发生,而且改进的幅度也不大,但是确实有进步。

所以,代码之“形”的练习可以一个人做,也可以一组人一起做,来提升我们的编程技能。Coding Dojos 提供了一个有趣而舒适放松的环境,让大家可以一起进行练习。不过这些需要占用我们朝九晚五之外的业余时间来完成。

查看英文原文: Coding Dojos to Master the Art of Development - - - - - -

译者简介:郑柯,目前任职《程序员》杂志社高级编辑,有志于在中国的软件开发业界推广 Agile 的理念和方法论,笃信以人为本,关注 Ruby,关注敏捷,关注人。参与 InfoQ 中文站内容建设,请邮件至 china-editorial[at]infoq.com

2007-09-06 21:301020
用户头像

发布了 479 篇内容, 共 167.0 次阅读, 收获喜欢 52 次。

关注

评论

发布
暂无评论
发现更多内容

Android JNI 入门(含完整Demo)

android 程序员 移动开发

Android Framework学习笔记(六)应用程序进程启动过程

android 程序员 移动开发

Android Jetpack架构开发组件化应用实战

android 程序员 移动开发

Android Framework学习笔记(五)应用程序启动过程

android 程序员 移动开发

Android Material Design尝鲜

android 程序员 移动开发

Android ExpandableListView折叠菜单的三层嵌套实现

android 程序员 移动开发

Android JNI QQ 搞怪语音实战 (含完整 Demo)

android 程序员 移动开发

关于调度器的一些思考

Rayjun

调度器 Go 语言

Java自定义注解

程序员架构进阶

Java 注解分析 11月日更

Android AsyncTask源码解析

android 程序员 移动开发

linux几个不常用但是很有用的命令

入门小站

Linux

【译】Node.js Buffers 完整指南

废材壶

node.js 大前端

Android O 新特性:自适应图标(Adaptive Icons)

android 程序员 移动开发

Android C++系列:JNI基本操作

轻口味

android 11月日更

android Activity的Task Affinity lanchMode

android 程序员 移动开发

Android Gradle进阶配置指南

android 程序员 移动开发

Android ANR:Application Not Responding详解

android 程序员 移动开发

Android Native Crash 收集

android 程序员 移动开发

在Electron中简单实现拖拽功能

废材壶

node.js 大前端 Electron

Android 118道基础面试题,面试途中不卡题

android 程序员 移动开发

Android 12 启动画面-SplashScreen

android 程序员 移动开发

Android HTTP通信基础

android 程序员 移动开发

Android ImageView及其子类 介绍+实例

android 程序员 移动开发

Android Launcher——ui框架

android 程序员 移动开发

入门Node.js 处理错误

废材壶

node.js 大前端

android okhttp异步请求使用详解 (2)

android 程序员 移动开发

Android OpenCV(三十七):轮廓外接多边形

android 程序员 移动开发

Android 6

android 程序员 移动开发

【LeetCode】丢失的数字Java题解

Albert

算法 LeetCode 11月日更

在线文本中插入符号工具

入门小站

工具

Android O 新特性:自适应图标(Adaptive Icons)(1)

android 程序员 移动开发

Coding Dojos:练习掌握软件开发的艺术_研发效能_Amr Elssamadisy_InfoQ精选文章