编程之美,探索之趣
编程之美,探索之趣
——读《编程之美》的感受
作者:李秀忠
一次,在上Java上机课的时候,学生们都在机器上调试自己的代码,只有一位同学,用铅笔,在书上涂来改去,时而还陷入沉思,干脆无视老师的存在,我很是恼火,这位同学平时对编程就不是很感兴趣,以往上机课时,他都是无所事事的样子,让他练习书上的代码,他也不屑一顾,认为书上的代码太简单了,根本就不放到眼里,今天看他却一反常态,如此专注,我便走过去看个究竟,原来他正捧着一本时下非常流行的《数独》小册子,正在玩数独游戏呢,本想发怒,看他难得在我的课上专心做点事情(尽管与课堂内容毫无关系)也就忍了。其实我也曾痴迷过数独,也算是有过共同爱好,我就不想难为他了,在我的手机上也有一个数独游戏,平时学校开大会的时候,我就躲在最后排填数独玩,看他如此痴迷数独,和我当时的情形一样,也就没有对他发火。虽然没有发火,但是,我也不能坐视不管呀,我还是可以对他进行适当的制裁。
怎样制裁呢?给他留作业吧,把《数独》这本小册子抄上十遍,那可是小学老师的勾当,显然不行,想起刚刚读过《编程之美》这本书中,有一节关于构造数独游戏的例子,书上只给出了思路,没有具体的实现,拿这个做作业,他会感兴趣的(其实不感兴趣也不行呀,这是对他上课不练习课堂内容的一项制裁,没什么好选择的),如果做不出来,就不要再抱怨老是写简单的代码了。
于是,我就在课堂上,当堂宣布,鉴于XX同学对数独如此痴迷,老师就把自己正在研读的,带有作者签名的《编程之美》暂借给他(借机还可以炫耀一下自己拥有一本作者签名的赠书),让他读完其中的构造数独一节,用Java写一个数独程序,供全班同学在业余时间玩,也省的去买那本数独小册子了,自己编数独游戏,自己来解,这样一定很有趣。那位同学果然欣然领命,显出一副要自我挑战一下的样子。
下课的时候,就迫不及待地到我的办公室去取那本书。
第三天,上机课的时候,这位同学居然真的把数独游戏用Java语言实现了,当着我和全班同学们的面,兴致勃勃的演示,界面当然还比较粗糙,于是我就指派另外一位同学做测试,试玩了几把,效果还相当不错。正好这节上机课,有主角了,我就让这位同学来讲述这些天连夜赶制数独游戏Java版的过程。同学们确实也对这个探索过程非常感兴趣,都纷纷想拿这个数独游戏小试身手。
以前,我都是直接告诉他们老师是怎么想的,最终结果是什么样的,这次发现,你只要告诉他们,你要的结果是怎样的,在得到结果之前的探索过程,留给他们自己,他们才能真正体会到这个探索的乐趣。
课后,那位同学声称,有罚就有奖呀,要把那本《编程之美》借给他看完,我当然是爽快地答应了。
其实,《编程之美》这本书,我到现在为止也没有完全看完,只是有空的时候就翻看一个章节,因为这本书的每一小节,都是一个独立的问题,按照问题的提出,分析与解法,以及扩展问题这样的顺序来编排的,书中并没有给出具体的代码,主要侧重于分析问题的过程,其中的很多探索和实现过程留给了读者自己,这也可能正是作者的苦心,把这种探索的乐趣完全留给了读者。
你不必逐章阅读这本书,各章节之间也没有什么联系,你可以只看你感兴趣的部分,边探索,边思考,就像在做一套脑力体操。你可躺在床上,翻开它,甚至是在地铁里,捧着它,就像我当初迷恋数独游戏时一样。当然我是抱着休闲的心态来看这本书的,把面试和应试放到了一边,也没有对每个问题都寻根问底,其实说句心里话,里边有好多算法问题,我也搞不懂,只是看了看热闹,就翻过去了。
原博客地址:http://hi.baidu.com/snowyvalley/blog/item/34fc1df0dd311da9a50f524d.html