头条白板面试

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

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

忠告:交流!

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

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

你是什​​么意思沟通?

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

没有!

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

首先,重述问题

您了解他们要您做什么吗? 证明给我看。 为他们重提问题并寻求确认。 您可能会惊讶地发现您完全理解他们的要求-也许这个问题与您过去完成的练习问题相似,但不相同。 使用久经考验的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

头条白板面试

头条白板面试_我收到的最佳白板面试建议相关推荐

  1. java核心面试_不正确的核心Java面试答案

    java核心面试 总览 在Internet上,Java面试问题和答案从一个网站复制到另一个网站. 这可能意味着错误或过时的答案可能永远不会得到纠正. 这是一些不太正确或已经过时的问题和答案. 即是Ja ...

  2. 宇视科技android面试_浙江宇视科技有限公司面试经验

    面试过程: 招聘平台收到的人事经理的面试邀约,简单交谈以后第二天就收到了公司HR的电话.效率还可以. 这次面试共计经历了现场面试一个HR面.一个技术主管面和一次终面.最终的面试结果是通过,薪资10K左 ...

  3. Java猿面试_猿灯塔:关于Java面试,你应该准备这些知识点

    自天子以至于庶人,壹是皆以修身为本 <礼记·大学> 马老师说过,员工的离职原因很多,只有两点最真实: 钱,没给到位 心,受委屈了 当然,我是想换个平台,换个方向,想清楚为什么要跳槽,如果真 ...

  4. 如何java面试_短时间如何过java面试?

    这题我会!作为一个编程界老司机,我曾总结过一套Java常见的面试考点大全,不知道帮助过多少程序员拿下offer. 现在我把这套Java面试大全放出来,希望对大家有所帮助! 本文内容过长,建议大家先赞后 ...

  5. 开发 面试_农行软件开发中心实习面试

    想看实战的可以直接跳到第五部分:农行一面 ps:之前看到同学转发的农行实习,就投了一个测试开发岗(我以为是软件开发岗)下面是面试前一天的准备和面试实战. 目录 1.c++面试准备 2.简历复盘 3.数 ...

  6. 字节跳动 python面试_字节跳动数据分析实习岗面试全经历,竟然也会问这样的问题?...

    临近年底,又有不少人跃跃欲试想跳槽了. 但跳槽这个事说容易也容易,投简历总是有人要的,但说难也难,要进大厂,不光要看能力,更要看项目,看背景. 就怕辛辛苦苦准备半天,面试的时候没表现好,直接被刷掉,面 ...

  7. less面试_想获得理想工作?面试时千万不要说这七句话

    毕业季到了,即将走出校门的学生们一个个都面临着找工作这件人生大事.找工作除了靠实力,面试发挥也很重要.哪些话该说哪些话不该说,初出茅庐的年轻人可得搞清楚.资深面试官告诉你,下面这七句话是"面 ...

  8. java高级软件工程师面试_高级软件工程师的新面试问题

    java高级软件工程师面试 I'm putting together some practice interview questions for a friend who lost his job. ...

  9. 中信银行MySQL面试_【深圳中信银行信用卡中心面试】面试题_面试经验_面试流程-看准网...

    面试官的问题: 问SpringMVC的流程. 答请求→DispatcherServlet→Handler→Controller→DispatcherServlet →ModelAndView→View ...

最新文章

  1. java数据模型公共类_UML数据建模工具之Enterprise Architect(EA)实例
  2. nginx部分实现原理解析
  3. 国内小程序生态服务平台即速应用完成5000万元A+轮融资
  4. android配置文件说明
  5. Python入门学习笔记13(线程锁与信号量)
  6. [Leetcode]160. Intersection of Two Linked Lists
  7. 4、Python运算符、比较运算符、赋值运算符、位运算符、逻辑运算符、成员运算符、身份运算符、运算符优先级(学些笔记)
  8. iOS之AVPlayerViewController的使用oc
  9. 苹果官宣:这届“春晚”,好早!
  10. 机器学习系列-AdaBoost
  11. 精选 | 2018年4月R新包推荐
  12. 老旧小区智慧用电改造方案
  13. 小麦(Wheat)-玉米(Maize)-水稻(Rice) 数粒软件
  14. 计算机指法基础知识,电脑打字基础知识及打字指法
  15. 养一只”无限猴子”帮你测试
  16. 逆向某停车app(原创)
  17. 数据挖掘的概念和步骤
  18. 2021-11-12 Android 11 长按按键进入恢复出厂设置的实现方法-PhoneWindowManager里面用发广播的模式
  19. 疫情期间中国互联网公司亏损排行榜
  20. 分布式人工智能:基于TensorFlow RTOS与群体智能体系(文末留言赠书)

热门文章

  1. 锐捷笔试题java_2018秋招锐捷笔试试题
  2. Python unrar解压rar压缩文件
  3. BZOJ 1050 旅行comf
  4. 达梦数据库DM8的DM管理工具manger命令行启动时出错Manager:10369的处理方法
  5. 线性回归中常见的一些统计学术语(RSE RSS TSS ESS MSE RMSE R2 Pearson's r)
  6. 网易微专业python爬虫工程师一期多久_有木有人上过网易云课堂的 Python Web 微专业,怎么样?...
  7. 安装Adobe全家桶时出现The installation cannot continue as the installer file may be damaged.解决方法。
  8. LE-MSFE-DDNet:基于微光增强和多尺度特征提取的缺陷检测网络--论文笔记
  9. oracle支持utf8字符集,AL32UTF8/UTF8(Unicode)数据库字符集含义
  10. 苹果手机上网很慢_手机4G信号满格,上网速度却很慢?原来都是它们在“搞鬼”...