根深蒂固的“应试教育”
最近到一家公司面试,被问到一个问题 :
Q:你算法和数据结构怎么样?写个求最大公约数的函数最少要几行代码?
A:我没有算过,但我可以试这写下!
public static uint ComputeMaxDivisor(uint a, uint b)
{
if(a < b)
{
return ComputeMaxDivisor(b, a);
}
uint mod = a % b;
if(0 == mod)
{
return b;
}
return ComputeMaxDivisor(mod, b);
}
但想起来就有点不是滋味。
1:为什么问是几行而不问什么方法实现?
2:为什么没问排序,散列,树,图?
(当然别人爱问什么就问什么,我个人觉得《排序,散列,树,图》离开发更近些吧)
让我想起的则是余世维先生的讲座,他举了个例子说:
我们的历史题:中国历史上最大版图时是谁于哪年打到了哪里?
而外国的历史也有相应的题目:要是蒙古帝国没有打到欧洲,那现在的欧洲会是怎样?
我们的题目考的是我们的“记性”,而别人则考的是“思维”!
难道只有我们的学校要对“应试教育”负责?