编程之美
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

第1章 游戏之乐——游戏中碰到的题目

研究院举办过几届桌上足球(football)公开赛,第一届的冠军是一位文静的女实习生。

这一章的题目原计划叫做“Problem Solving”——运用所学的知识解决问题,直译为“问题解决”,甚为不美。事实上这里面大部分题目都是和游戏相关的,因此本章改名为“游戏之乐”。这些题目从游戏和作者平时遇到的有趣问题出发,向程序员提出挑战。

个人电脑(PC)在蹒跚起步的时候,就被当时的主流观点视为玩具。PC上的确有各种各样的游戏,电脑上的游戏是给人玩的,如果你愿意,CPU也可以让人“玩”。

笔者曾经用“CPU使用率”这个问题问了十几个应聘者,一个典型的模式如下。

我:笔试考得怎么样?发挥了多少水平?

答:我不习惯在纸上写程序,平时都在电脑上写……

我:那你对Windows、操作系统这些东西熟悉吗?

答:那是相当熟悉……

我:好,那你可否在这笔记本电脑上帮我解决一个问题——让CPU的使用率划出一条直线,比如就在50%的地方。

这个时候可以观察应聘者的好几个方面。

1.应聘者面对这个陌生问题的时候如何开始分析。

有人知道观察任务管理器如何运行,有人在纸上写写画画,有人明显没有什么想法。

2.当提示可以在网上搜索资料时,应聘者如何寻找资料,如何学习。

比如,有一位学生很快地用快捷键在IE中打开了几个Tab窗口,然后每个窗口输入不同的搜索关键字。当我提示在MSDN上查找一些函数的时候,有些人根本不知道MSDN网站应该怎么用。有些人反复读了函数的说明,仍不得其解。

3.在电脑上是怎么写程序,怎么调试程序的。

有人能很娴熟地使用C/C#的各种语言特性,很快地写出程序,有人写的程序编译了好几次都不能通过,对编译错误束手无策。程序第一次运行的时候,任务管理器的CPU使用率不按预想的轨道运行,这时候有人就十分慌乱,在程序中瞎改一通,希望能“蒙”对。有人则有条理地分析,最后找到并解决问题。

我想,45分钟下来,应聘者的思考能力、学习能力、技术能力如何,应该很清楚了。行还是不行,双方都明白了。

这一章的其他题目大多和游戏有关,同学们在玩“空当接龙”“俄罗斯方块”,甚至“魔兽”的时候,有没有动过好奇心——这个程序为什么这么酷,如果是我来写,应该怎么做?有没有把好奇心转化为行动?

喜欢玩电脑、会玩电脑的人,也会运用电脑解决实际问题,这也是我们要找的人才。