头条白板面试_我收到的最佳白板面试建议

头条白板面试

白板式采访在技术行业中无处不在。 对于那些不高兴的人,白板面试是一种在面试过程中要求候选人在白板,纸或计算机上解决技术问题的做法。 这种环境就像高压锅一样,甚至会使最称职的工程师崩溃。

在本文中,我打算传递我通过白板面试获得的最佳建议。 请注意,我无意讨论白板面试的公平性或有效性,因为作为被访者,我们目前必须与之面对面。

忠告:交流!

我收到的,可以传达给您的最好的技术面试建议是交流,交流,交流! 这似乎是一条反高潮的建议,但我希望能够向您证明,这实际上是在面试前准备的最重要技能。

注意 :当我在本文的其余部分讨论示例时,它们将对软件工程产生偏见,因为这是我最熟悉的领域。 尽管存在这种偏见,您仍可以将这些技能应用到任何白板式采访中。

你是什​​么意思沟通?

假设您正在面试中,而您的面试官向您提出了一个白板问题。 您是否走上白板,狂热地开始解决问题?

没有!

这往往是每个人的本能,但这绝对不是正确的方法。 即使您认为自己了解问题,也应采取一些非常重要的步骤,然后再继续前进。

首先,重述问题

您了解他们要您做什么吗? 证明给我看。 为他们重提问题并寻求确认。 您可能会惊讶地发现您完全理解他们的要求-也许这个问题与您过去完成的练习问题相似,但不相同。 使用久经考验的fizz-buzz示例,您可以按如下方式重述该问题:

“因此,我想向您重申问题,以确保我了解您的需求。 我函数的唯一参数是整数。 我函数的唯一输出将是一个递增数组,从数字1开始到输入数字结束。
如果数字是3的倍数,则输出将为`fizz`。 如果数字是5的倍数,则输出将是“嗡嗡声”。 但是,如果输出是3和5的倍数,则输出将是“ fizzbuzz”。 我的理解正确吗?”

面试应该给您肯定,或者您的理解不正确,它们会帮助您理解。 重述问题不会伤害到您,在任何情况下,这都表明您可以表达问题,并让您有时间在讨论时仔细考虑它。 此外,以这种方式开始讨论将有助于平息试图解决实际挑战时可能表现出来的某些神经。

询问边缘案例

现在还没有时间深入研究解决方案的编码。 考虑一下输入和预期输出,并考虑问题的潜在边缘情况。 询问他们。 在许多情况下,面试官甚至都没有考虑过极端情况,因此会有所作为。 太好了–它表明您具有分析能力,并将努力防止出现bug(由于边缘情况经常出现)。

让我们使用fizz-buzz示例。 成功解决问题后,询问边缘情况的有效方法如下:

“现在,我已经确认了对问题的理解,我想询问一些潜在的极端情况。 输入是否可能是数字以外的其他类型? 如果是这样,该函数应该做什么? 输入可以是0还是负数? 同样,如果是的话,该函数应该做什么?”

询问测试用例

这是免费的,您应该利用它。 只需问函数是否应该通过任何测试用例即可。 您的面试官可能希望您提出这个问题,因此可能有必要。 但是面试官也有可能没想到这个问题,而是会想“啊,这个候选人知道测试!”

编写伪代码并询问是否有意义

(编写伪代码并检查您的逻辑)

同样,您实际上并不想开始用实际的语言编写代码。 您会发现自己受困于尝试记住该语言的方法或其他特质,而不是尝试提出正确的逻辑。 相反,让您的面试官知道您将要开始编写伪代码,然后再填写实际代码。 (巧合的是,这也是编写实际代码的一种合理方法)。

这是关键:您可以询问您的伪代码对面试官是否有意义。 他们可能会成为不想“给您提示”的类型,但也可能他们会对您的想法更感兴趣,并希望与您讨论伪代码。 当我面试候选人时,我对后者更感兴趣–我们很少真正在真空中开发软件。

换句话说,在最坏的情况下,面试官会告诉您继续进行,而无需实际提供反馈。 在最好的情况下,访问员可能实际上指出了伪代码中的逻辑缺陷,这些缺陷将在过渡到实际代码时为您带来一些好处。

超级红利 如果您的伪代码看起来不错,但最终将其转换为实际代码时遇到困难,那么您现在实际上已经获得了很多积分! 当然,在一些精英公司中,除了功能代码之外,他们什么都不接受,但是对于许多大公司而言,仅仅能够通过伪代码进行推理就足够了。

与我们的fizz-buzz示例保持一致,假设我们想出了以下伪代码。 我们最终将用javascript编写代码,但现在一点都不重要了。

function fizzBuzz ( n )  {
 // If n is not a number or not an integer greater 
 // than zero, return null
 
 // create empty array to store output
 
 // Loop through numbers from 1 to n
 
  // If number modulo 3 is zero, add ‘fizz’ 
  // to output array
  // Else If number modulo 5 is zero, 
  // add ‘buzz’ to output array
  // Else If number modulo 3 is zero and 
  // number modulo 5 is zero, add ‘fizzbuzz’ 
  // to array
  // Else add the number to the array
 
 // return output array
}

在这一点上,您可能意识到您永远不会进入第三条“ else-if”语句。 另外,当您与访问员确认伪代码时,他们可能会免费(严重)为您提供伪代码。 在这种情况下,您可以重写伪代码以确保首先检查第三个条件:

function fizzBuzz ( n )  {
 // If n is not a number or not an integer greater 
 // than zero, return null
 
 // create empty array to store output
 
 // Loop through numbers from 1 to n
  // If number modulo 3 is zero and 
  // number modulo 5 is zero, add ‘fizzbuzz’ 
  // to array
 
  // Else If number modulo 3 is zero, add ‘fizz’ 
  // to output array
  // Else If number modulo 5 is zero, 
  // add ‘buzz’ to output array
  // Else add the number to the array
 
 // return output array
}

编写实际代码并询问它是否看起来不错

(最后开始编写代码)

现在,您应该将伪代码转换为实际代码。 您甚至不需要删除评论。 此时,您只需要插入适合您的语言的代码即可。如果您忘记了某些语法或方法名称,则应该可以向面试官询问这些信息,而不会太过悲伤。 如果他们给您带来麻烦,请说您现在将其保留为伪代码。

function fizzBuzz ( n )  {
 if ( isNaN (n) || ! Number .isInteger(n) || n < 1 ) return null ;
 let output = [];
 for ( let i = 1 ; i <= n; i++) {
  if (i % 3 === 0 && i % 5 === 0 ) {
   output.push(“fizzbuzz”);
  } else if (i % 3 === 0 ) {
   output.push(“fizz”);
  } else if (i % 5 === 0 ) {
   output.push(“buzz”);
  } else {
   output.push(i);
  }
 }
 
 return output;
}

在这一点上,不要犹豫,问您的解决方案看起来是否不错! 如果不是这样,他们可能会提供一些改进建议。 所有这些交流都为您打分-如果您愿意客观地讨论改善工作的方法,您将变得清晰易懂且易于使用。

卡住? 请求帮忙!

(请求帮忙!)

如果您在途中遇到麻烦,寻求帮助并非违法。 只是用对话来表达。 例如:

“我在这里有些卡住,您有什么技巧可以向正确的方向推动我吗?”

答案可能是“不,我想看看您是否可以自己在这里解决它”,但也很可能是“是”,并提供了有用的提示!

奖励:面试前进行交流

面试之前,您应该有人力资源或面试联系人。 您是否好奇面试中是否会有编码部分? 问他们! 此外,您可以询问是否需要特别准备。 他们可能会给您一些提示,例如指定他们提问的语言,问题的数量,问题的样式(例如,开发算法与发现错误)。 他们可能会告诉您是要坐在电脑旁还是站在白板上,这是非常有用的信息,您可以用来练习或至少进行心理准备。

我们都是人类

最重要的是,请记住我们都是人类。 您的面试官一直在您的位置,并且了解技术面试的压力。 您的面试官可能已经看到很多候选人大汗淋漓,但是可能很少有人公开地以对话的方式讨论问题。 如果您能做到这一点,那么您的状态将会很好。

您的经历是什么?

您是否曾参加过一次沟通交流为您节省下来的技术面试? 你有相反的经历吗? 在评论中让我知道! 我希望知道您的经历。

翻译自: https://hackernoon.com/the-best-whiteboard-interview-advice-i-ever-received-3ebbfa72e4a

头条白板面试

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值