冒号和他的学生们
——程序员提高班纪事
22.抽象思维
是谓无状之状,无物之象,是谓惚恍
——《老子·道经》
冒号健步走进教室,学员们立刻正襟危坐,进入战备状态。
“如果说咱们是在合演一场戏,那么前面五节课只是一个过门。”冒号俨然一副自导自演的架势。
众人暗暗吃惊:这过门也忒长了点吧。
冒号随即探问:“还记得在范式总结中提到的迭代学习法吧?”
引号迅速应答:“就是在具体知识与抽象理论之间做折返跑。”
“记性不错。”冒号赞道,“在上本班之前,你们已经具备了一定的编程语言的基础,因此我们先从抽象的编程范式谈起,此后又回归到编程语言的讨论。”
句号推测:“照此逻辑,下面我们将再次返回编程范式?”
“我们的确要来个For Loop,但相信这是一个增量式的循环。”冒号用编程语言来强调他的学习理论。
逗号有些失望:“按计划不是该对Java语言作专题讨论吗?”
“你放心,Java它跑不了。”冒号看出他的心事,“语言是形,范式是神,这次我们将二者融合,争取做到形神兼备。具体地说,范式以OOP为主,语言以Java为主,同时可能涉及C、C++或C#等语言。另外,示例代码也会明显增多。”
逗号脸上的一抹乌云顿时消散开来。
冒号接着提醒道:“不过,秉承开班发言中的理念,我们的重心不在知识的枝节,而在知识的本源。因此无论讨论Java还是OOP,我们不追求系统和全面,但力求从不同的选点、角度和深度来展示知识的活性。”
讲到此处,冒号冷不丁提问:“程序员最重要的能力是什么?”
众人的答案五花八门:学习能力、逻辑思维能力、解决问题能力、专注力、沟通能力等等。
“毫无疑问,你们所说的都很重要。这本是个见仁见智的问题,我只是借此展开今后的话题。在我看来,抽象思维能力是最重要的。当然,不独计算机领域,其他科学同样需要这种能力。更广泛地说,抽象是人类认识和描绘世界最首要的工具。”不知不觉冒号又走上了形而上的路线。
叹号这时想起:“前面谈切面范式时,似乎专门提到过抽象与分解的重要性。”