大多数像微软这样的大型高科技公司都主要关注数据结构。似乎数据结构是他们唯一希望毕业生获得的东西。
不,还有更多。例如,我们还希望您是一个快速的学习者,可以在短时间内学习新的框架,API甚至编程语言。这是最低限度的标准。花费很长时间学习新框架,API或语言的人不会成为Microsoft大多数团队的成功开发者。
当然,除了数据结构的原始知识以外,我们在访谈中还关注许多其他方面。例如,具有处理模棱两可的规范的能力,或者能够识别产生不安全代码的编码模式的能力,或者其他许多功能。但是理解数据结构的能力无疑是很大的。
这是特别是面试偏向数据结构的测试知识近期CS毕业生的情况。期望大多数毕业生没有很多实际工作经验的应届毕业生不会擅长于具有15年行业经验的人擅长的同类工作。
我必须承认,我在数据结构方面并不那么强
知道自己的事真是太好了。如果您无法或不愿意更改自己的身份,那么我的建议是您不要申请需要具备数据结构便利的工作。
这种普遍的观点认为,一个好的程序员必然是一个对数据结构有充分了解的程序员。
一个好的程序员是一个擅长构建需要构建的程序的程序员,这是不言而喻的。许多程序员从事不需要深入了解数据结构知识的任务。例如,其中一些人从事需要深入了解用户界面设计的任务。还是数据库规范化。管他呢。这些人在他们的领域中仍然可以是“优秀的程序员”。
为什么所有这些都强调数据结构?
我问有关数据结构的面试问题,因为开发人员每天都在我的团队中设计,实现和操纵复杂的数据结构。昨天我们举行了四个小时的会议,其中有六个开发人员争论将单个布尔字段添加到特定树节点的优缺点。在我的团队中,没有什么技能比深入了解数据结构的能力更重要。不问面试问题是愚蠢的,因为那是我们要做的。
对数据结构的了解真的不会影响一个人的编程生涯吗?
好吧,那肯定会阻止您找到我的团队。但是就像我之前说的,编程是一个巨大的领域。有许多不需要编程知识的计算机程序。
这门学科的知识真的是区分优劣程序员的充分基础吗?
不会。但是,检测在Microsoft不太可能成功的开发人员几乎总是足够的。由于这是我主要感兴趣的检测对象,因此数据结构的知识是我在面试中测试的因素之一。