我坐在面试中,发现有类似能力的人在面试中在白板上回答问题时存在很大差异。
通常,能够清楚地解释您的想法,用干的橡皮笔书写可读代码,避免长时间沉默,即使最终答案大致相同,也倾向于对候选人进行更有利的评估。
如何在白板面试问题上变得更好?有没有更好的准备方法?
我坐在面试中,发现有类似能力的人在面试中在白板上回答问题时存在很大差异。
通常,能够清楚地解释您的想法,用干的橡皮笔书写可读代码,避免长时间沉默,即使最终答案大致相同,也倾向于对候选人进行更有利的评估。
如何在白板面试问题上变得更好?有没有更好的准备方法?
Answers:
您应该购买小白板,然后练习,练习,练习。让您的朋友从《编程访谈公开》一书中问您问题。然后解决问题,并像实际交易一样向他们解释您的思维过程。您的目标是不要发狂。您想表达清晰的想法。即使您不能解决问题,也要向他们表明您的思维过程是明智的,并且步入正确轨道。
在白板上写答案并不直观。这需要练习。我曾经是其中一个SAT培训计划的老师,我们花费了数小时的培训,在黑板上写字并解释了我们的思维过程。在程序开始时,大多数人迷失了自己的语言,用可怕的笔迹书写。到最后,我们看起来像经验丰富的退伍军人。您不想看起来像我们在程序开始时那样。
故事的寓意:不要毫无准备地去接受采访。解决白板上的问题是您应该练习的方法。
在进行白板面试时,需要回答三个问题:
因此,解决方案不是重点,而是您如何获得解决方案,这就是面试官将如何评估您。
你能变得更好吗?是的你可以:
下次您必须与同伴(如果您正在学习的是其他学生或如果您正在工作的其他同事)一起解释一些事情时,请执行以下操作:
哦,别为难。只是假设您的草图和伪代码无论如何都会变得糟糕,而是即兴发挥。我们的目标是与您的同龄人一起找到答案,并始终乐于接受同龄人的反馈。如果您可以解决问题,则可加分。您做得越多,就越能做到。实践使完美。
除了编写代码;学习绘制UML图并进行讨论。都是方框,圆圈和箭头,通常绘制的类型是类图,序列图和(很少)用例图。在所有其他情况下,您只需要绘制方框,圆圈和箭头。
白板不仅用于面试
这可能是一个激进的观念,但是当我向应聘者提出白板问题时,我会在心理上将其回答与最近几次同事使用白板向我解释或向我寻求帮助的反应进行比较。这不仅是在面试时进行的测试,而且是日常交流中至关重要的技能。
那么,如何帮助那我要白板问题做准备时,我接受采访?我将其视为与同事一起解决问题,而不是大学考试。这意味着我提出了自己的想法,当我需要更多信息时,我会询问。如果某些事情看起来不太正确,我会与面试官讨论,直到满意为止。
如果他们想让您反向链接列表,并且您不记得链接列表是什么,请询问。如果最终结果更好,那么我会给您更高的分数,他不知道什么是链接列表,但他编写糟糕的代码来操纵链接列表。不管您是多么有经验的程序员,您都不可能以某种方式神奇地知道我们所有的代码和其他专有信息来开始工作。
在我看来,面试不是您可以追求的目标,如果可以的话,它会歪曲您对工作的适应性的看法,反之亦然。很容易说出某人何时背诵他们所记住的答案。这就是我有意将候选人推到知识领域之外的原因之一。我想看看他们如何应对尚未准备好的问题。
您可能以为我疯了,但是我对评估某人的思维过程与其记忆能力的好处感到非常强烈,以至于我告诉采访者,当我实质上是在反省我对相同问题的回答时在最近的3次采访中,询问他们是否想选择更具挑战性的内容。他们总是要求我“幽默”,以防万一我在虚张声势,但是至少他们对我的技能有了诚实的评估。
我坐在面试中,发现有类似能力的人在面试中在白板上回答问题时存在很大差异。通常,能够清楚地解释您的想法,用干橡皮笔书写可读代码,避免长时间保持沉默,即使最终答案大致相同,也往往会对候选人产生更好的评价。
我不记得上次我作为个人开发软件时曾做过的事情。我总是不得不与他人协调我的活动,讨论我的设计和实施决策,并与他人一起构建软件。在面试中表现出沟通技巧是一大优势。面试会让您感到紧张,但紧迫的最后期限和工作压力也会使您紧张。
我还要重申我的评论。鉴于软件工程的团队导向性质,您不仅需要考虑技术能力。说话和写作的能力(尤其是技术上的能力)对于大多数职位都很重要。我会评估某人在与工作相关的所有因素上的能力,而不仅仅是他们构建软件的能力。
在白板面试问题上可以变得更好的方法有哪些?
有没有更好的准备方法?
我可以想到两个人对白板问题的回答不佳的两个原因:他们对技术信息的掌握不佳,或者他们的演讲者/演讲者不佳。当然,这可能总是两者兼而有之。
变得更好的方法取决于问题。通过阅读,执行和提问(通常按此顺序)来实现技术改进。演讲技巧很差,这是通过练习而来的,尽管有些人天生就是很好的演讲者,而其他人则不是。我认为任何人都可以发展沟通技巧,但是个性将在一个人的实际成就中扮演重要角色。
面试过程中如何进行的提示?
这取决于。
即使到面试官完全“头脑不清”,细节也总是好的。如果我没有提供足够的信息,那么我会让面试官要求我更详细地解释一些事情,并且他们通常会问关于我的设计或代码的明确的,直截了当的问题。
花几分钟的时间事先思考问题,而不说或做任何事情总是一个好主意。您可以利用这段时间提出问题,以澄清面试官在寻找什么。这不仅使您有机会向访问者提供他们所寻找的确切信息,而且还表明您可以通过多种可能性思考自己的方式。
站在别人面前做演讲是一种可学习的技能。如果您不擅长此事,建议您加入当地的Toastmasters章节。您将练习一些在面试中遇到的压力,尤其是白板部分(如果有的话),这是“以前从未见过的话题,现在站在陌生人面前并进行解释”。
尽管其他人已经涵盖了身体方面(练习!),但我将谈谈心理方面。无论您进行多少练习,面试都是一种不同的环境。您不会一个人或与您的朋友在一起-您将与从未见过的试图判断自己能力的人在一起。
练习时,请始终牢记该环境。您不必恭维或suck他们-您的目标是展示您的能力和态度。说话自然,并解释您的想法。他们想看看您的想法,因此大声思考,交谈,讨论,并让他们参与您的思想。
另一个重要因素是反弹。实践问题总是有解决方案的-当您遇到困难时,您可以检查下一步,将其写下,理解和学习。但是您的面试官不是解决方案手册。他们会帮助您,但是没人会说“下一步是做x”,他们会说“您是否想到了y(与x相关)?” 因此,练习时不要总是参考手册。有一个朋友给您一些模糊但相关的建议,然后尝试从那里开始。解释他们的建议如何帮助您解决问题。始终向他们展示您的想法。
希望能帮助到你!
提出问题和避免假设是某些白板问题的另一点。看起来像“嘿,我以前做过类似的事情,这就是解决方案……”实际上是一个问题,看看您是否会做出这些假设并从脚下飞起来。并不是说这是一个棘手的问题或使您感到尴尬,而是通常存在很多小东西,如果您碰到其中任何一个,它都会很容易地显示出来。一些示例区域:
当然还有其他方面,但是这些是我在模拟面试中如何做时要考虑的主要方面。