前言

整个2019年,我做的所有公开演讲只有一个主题:中国软件业的基本功太差了

这种基本功的缺失是全方位的。早在几乎20年前,刚被引入中国的CMM就已经明确指出,软件研发需要4大基本能力:需求管理,项目管理,配置管理,质量保障。然而快20年过去了,这4项基本能力在中国IT业仍然普遍缺失。需求的获取、分析、承载和传递,项目范围估算、进度管控、风险控制,代码版本控制、团队协同方式,软件测试、软件验收……几乎在各个环节上,行业中大部分企业都表现出能力不足、没有章法、全凭本能做事。其结果自然也就是“软件危机”——软件开发的效率和质量无法满足社会经济对软件的要求。

(考虑到CMM从2001年引入之初就已经指出这4大基本能力的重要性、并承诺提升行业在这些方面的能力,并且考虑到中国有如此众多的IT企业通过了CMM认证,全行业直到今天仍然面临如此普遍的基本能力缺失,我必须说,这是一个令人费解的现象。不同的人可能对此有不同的解读。)

然后,听过我的演讲之后,就有一些热心的(或者换个说法,起哄架秧子的)听众朋友说:你说中国软件业的基本功太差,那你倒是教教我们,怎么能把基本功练好?

好吧,作为一个老程序员,我知道程序员的基本功应该怎么练。于是我在CodingDojo网站上找了三道Kata题目:最最简单的FizzBuzz、有点难度的“参数解析”、以及以前在ThoughtWorks我们经常用的面试题“火星探索”。然后我花了半天时间,围绕着这三道题目设计了14个练习点——基本上就是“来吧,今天的任务就是再练一遍”这样的设计。说到底,最重要的、也是大多数人最缺乏的,是多次重复的练习。

当然了,选这三道题目也是因为我对它们非常熟悉:这几道题目,是过去我在ThoughtWorks时给应届毕业生做编程训练的常用题目。我清楚初学者在一点点打磨编程基本功的时候会遇到哪些挑战,我也知道这几道题目的练习能在每个节点给初学者提供什么帮助。照着这个我们已经反复验证过的套路来练习,初学者可以在1到2个月时间内打下比较扎实的编程基本功。

(说到编程的基本功,我认为,集中体现在测试驱动开发(TDD)这一实践上。过去十几年中,我看过很多围绕TDD的争论。然而残酷的现实是:除了TDD之外,没有任何一种方法、一种实践,能够系统地、有效地、可重复地被相当大量的编程初学者掌握,从而使他们能够写出高质量的、具备良好可测试性的、有充分单元测试覆盖的代码——尽管所有的软件工程教材都说“单元测试是软件开发的重要环节”,但行业里真正把单元测试做起来的团队都凤毛麟角,这难道不是个很值得回味的现象吗?)

这就是“程序员练功房”最初的雏形。第一期的练功房之后,我的老朋友,极客学院的Ice和韩晗联系了我,开始跟我一起完善和推广这个课程。我们把14天的课程扩展到了21天、然后又扩展到28天——还好,仍然在1个月内。截至2019年10月,我们已经一起开了5期练功房课程(包括为企业定制的内训版本),受训学员超过2500人——半年内2500人学TDD,这也算是敏捷传入中国十多年来前所未见的盛景了。

每一期练功房,我都会和学员做大量的互动。指导他们做练习的同时,我也不断收集他们的困惑、他们的进展、以及他们分享的故事。几期之后,我感觉已经积累了很多素材,可以把练功房的过程以一种更传统、更具象的形式呈现出来,让更多的人了解这种“非传统”的学习方式。

于是,这就是摆在你面前的这本书了。我仍然尽量保持练功房的节奏感,整本书分为28天:做6个任务,然后1天休息——读一些与练功房不直接相关的闲书。阅读本书最好的方式,就是跟着任务的节奏:每天打开一个任务,按照任务的要求练习。最复杂的练习应该不会超过2小时,大部分练习应该在1小时能完成。28天之后,你就能练完整个课程。到那时回顾,你应该能感受到自己的进步。

总而言之一句话:功不练不成。练功房已经为你准备好了,就请你开练吧!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,377评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,390评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,967评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,344评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,441评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,492评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,497评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,274评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,732评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,008评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,184评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,837评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,520评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,156评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,407评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,056评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,074评论 2 352