每个人都知道的和没有人知道的

2020-10-17 00:33:10

伯特兰·迈耶(Bertrand Meyer)2020年10月15日评论说,以下观察结果没有科学价值,也可能根本没有价值。不过,这让我大吃一惊。

它是关于世界各地的一群年轻人中的每个人似乎一直都知道的事情,以及那个群体中似乎没有人知道的其他事情。

最近,我对一个新的软件工程硕士项目的考生进行了大量的远程一对一面试。这些学生来自四大洲的许多国家,通常拥有计算机科学学士学位,尽管在许多情况下来自不太知名的大学。许多人还拥有一些软件工程师的行业经验。

起初,我在不同的面试中使用不同的问题,可能是因为对智力懒惰的无意识恐惧,但我很快意识到这种担忧是愚蠢的;一致性更重要,使比较候选人成为可能。因此,我开发了一系列主要问题,加上一些考虑到多样性的变化(如果你在最初的几分钟内发现候选人领先,你可以尝试更高级的探测)。

关于全球学位的质量,这一经历让人大开眼界;例如,我已经习惯于自豪的CS毕业生告诉我,快速排序是O(N)。

我的两个标准问题的答案特别打动了我。一种是在我的120多名受访者样本中,每个人都正确回答的问题;另一种是没有人能回答的问题。

第一个是根据我的请求命名一些设计模式的。如果受访者犹豫不决,我会给他或她一点安慰。例如:你知道MVC吗?然后一盏灯亮了,答案就来了,模型-视图控制器。不仅仅是缩写的扩展:当我进一步询问时,我得到了一个像样的解释。嗯,不一定是深刻的(我后来发现,如果我展示一个具体的软件架构案例,并询问某个部分是M、V还是C,结果并不总是令人印象深刻),但让我们不要太苛刻;基本的想法就是我在面试中想要的全部。

现在,从加纳到加利福尼亚州,再到两者之间,这里有一个似乎已经普及到大众的想法。我希望MVC的发明者Trygve Reenskaug正在自豪地阅读这篇文章。

假设A暗示B,我们能对‘非A’和‘非B’说些什么呢?

对我来说,这几乎等同于问2+2的价值是多少。但事实并非如此。在我的整个面试中,我没有得到一个正确的答案。

这不是被误解的词或上下文的问题;我总是不厌其烦地解释这一切是关于什么的,用尽可能多的不同方式来澄清问题。我得到了一些含糊的、冗长的关于真假的短途旅行,但从来没有明确、直截了当的答案。一次也没有。我听过的最接近的说法是,也许“不是A&39;”并不意味着“不是B&39;”--还有几个断言,也许是的。

(资格:我没有在少数顶尖候选人中使用这个问题,可能是五个,假设他们会觉得这个问题微不足道。回过头来看,我本应该这样做,但这最多只能略微影响整体结果。)。

因此,世界上的每个人,或者至少是世界上的那个样本,都知道MVC。没有人知道基本的逻辑规则。

在过去的十年里,我看到许多计算机科学系,包括顶尖学府,都将逻辑学课程从课程中删除。MVC是一个伟大的概念。但还是这样。

Bertrand Meyer是Eiffel Software(加利福尼亚州戈莱塔)的首席技术官,瑞士沙夫豪森理工学院(Schaffhausen Institute Of Technology)教授兼教务长,Innopolis大学(俄罗斯)软件工程实验室负责人。