前言

作者: 熊节 | 来源:发表于2020-08-27 23:06 被阅读0次

整个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天之后,你就能练完整个课程。到那时回顾,你应该能感受到自己的进步。

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

相关文章

  • 前言的前言

    真想不到,我已开始提笔写前言了。然而一切都还没有呢,所以只好叫前言的前言了。 正因为一切都还没有,我更要在此时写下...

  • 前言的前言

    在生物定量化大潮的前夕,我想整理一下近现代生物的发展脉络。可能是个比较大的工程。由于越接近现代,生物学的分支越庞杂...

  • 不算前言的前言

    不知从何时起,就有个写作梦,走到哪里就想记录下哪里的心情。 永远分裂成两个自己,一个阳光明媚,一个...

  • 不算前言的前言

    终于攒够了50个简书贝,可以开连载了。 之前在自己的书院做过一期专题,把一些有趣的或是被人误解的历史人物,拿出来梳...

  • 不是前言的前言

    曾有一个小小的心愿,期待着能够有一本自己的作品,然而,作为一个学习者,要写出一本书谈何容易?看看别人写的东西都挺好...

  • 前言

    最开始接触网页制作,是从前端三大件(html+css+javascript)开始。稀里糊涂半生不熟,能做出静态页面...

  • 前言

    历史就是这样,离得越远细节越模糊,但脉络越清晰。 大约50亿年前,在银河系的一个旋臂上,一颗被我们称为太阳的恒星诞...

  • 前言

    大家好!我是行知而立,师范出身,现为人民教师一名。经常听到很多的学弟学妹们向我请教,说作为一名师范生,要考教师资格...

  • 前言

    我曾经是一个软件开发工程师,在日企待了一年后,我看不到自己的前景,而且莫名其妙地会有一种躁动,在每日加班的高压下,...

  • 前言

    自从有了你,我的世界一片粉红,还透着酸臭的气息。 打算从这里,把我和我记的点点滴滴写成故事,原谅我觉得太过于幸福,...

网友评论

      本文标题:前言

      本文链接:https://www.haomeiwen.com/subject/vpxksktx.html