admin 管理员组

文章数量: 1086936

微信登录为什么进去是白板

微信登录为什么进去是白板

Open source extraordinaire Sahat Yalkabov has given up his search for a front end developer job after a series of technical interviews that he described to me as a “humiliating and dehumanizing process.”

在接受了一系列技术采访之后,开放源代码非凡的Sahat Yalkabov放弃了寻找前端开发人员的工作,他对我形容这是“羞辱人性化的过程”。

Various recruiters lined up interviews for him at six different companies over the past few months. Each of his interviews revolved around scrawling algorithms on a whiteboard, in front of other developers, who stood by to render judgement on his fitness for the job.

在过去的几个月中,各种招聘人员在六家不同的公司为他安排了面试。 他的每一次采访都围绕着白板上的草拟算法,在其他开发人员面前,他们站在旁边对他的工作适合度做出判断。

And after each interview, he received a brisk email informing him of the company’s decision not to proceed with his candidacy, without any further explanation.

每次面试后,他都收到一封简短的电子邮件,通知他公司决定不继续其候选人资格的决定,而无需任何进一步的解释。

Sahat isn’t exactly an outsider. He has a computer science degree, has worked as a developer at Yahoo, and is among the most prolific open source contributors.

Sahat并非完全是局外人。 他拥有计算机科学学位,曾在Yahoo担任开发人员,并且是最丰富的开源贡献者之一。

At a time when big tech companies are scrambling to find capable developers, why is he having so much trouble getting job offers?

在大型科技公司争先恐后地寻找有能力的开发人员的时候,为什么他在获得工作机会时有这么多麻烦?

The answer lies in part in with how big tech companies interview developers.

答案部分在于大型科技公司如何采访开发人员。

You might assume that in this high tech industry, interviewers use fancy tools to analyze the quality of code samples, or look at how widely a candidate’s code was included as a dependency in a package ecosystem like npm. That’s how an academic researcher’s work would be judged — by how many other academics cite them.

您可能会假设,在这个高科技行业中,访问员使用了精美的工具来分析代码样本的质量,或者查看候选人代码在npm之类的软件包生态系统中作为依赖项包含的范围。 这就是如何评价学术研究人员的工作的方式-由多少其他学者引用它们。

Unfortunately, interviewing practices at big tech companies aren’t that scientific. The decision of whether to hire a developer usually comes down to the candidate walking up to a whiteboard and regurgitating algorithms that haven’t changed since the 1970s, like a (classically) trained monkey.

不幸的是,大型科技公司的采访实践并不科学。 是否雇用开发人员的决定通常取决于候选人走上白板并重新思考自1970年代以来就没有改变过的算法,就像(经过传统训练的)猴子一样。

Sahat is not alone in his frustration with the whiteboard-centric technical interview process used by most major software companies. Virtually every developer I’ve talked with agrees that one’s ability to write algorithms from memory on a whiteboard has almost nothing to do with real day-to-day developer work.

对于大多数主要软件公司使用的以白板为中心的技术面试流程,Sahat并不感到沮丧。 实际上,我与之交谈的每个开发人员都同意,从白板上的内存中编写算法的能力几乎与实际的日常开发人员工作无关。

白板面试的工作方式 (How whiteboard interviews work)

The most common tasks meted out at the whiteboard are recalling algorithms and writing them bug-free on the whiteboard.

在白板上完成的最常见任务是调用算法,并在白板上无错误地编写它们。

There’s usually an element of time pressure. If you don’t remember the algorithm or never learned it (i.e. never had a use for it), your interviewer may push you to guess your way into a working implementation.

通常存在时间压力。 如果您不记得算法或从未学习过算法(即从未使用过算法),则面试官可能会促使您猜测进入可行实施方案的方式。

Your interviewer will probably ask about time complexity, seeing if you can reduce the time it takes to run your algorithm from say O(n log(n)) to O(n).

面试官可能会询问时间复杂度,看看您是否可以将运行算法所需的时间从说O(n log(n))减少到O(n)。

And remember that this is a whiteboard — not a code editor. You can’t actually run the code to see if it works, let alone benchmark it. So your interviewer serves as judge, jury and (literally) executioner of your code.

请记住,这是一个白板,而不是代码编辑器。 您实际上无法运行代码来查看其是否有效,更不用说对其进行基准测试了。 因此,您的面试官是您的代码的法官,陪审团和(字面上)执行者。

The good news is you can prepare for whiteboard interviews, just like you can cram for a college entrance exam. And there’s a cottage industry of books and websites aimed specifically at helping you ace the whiteboard interview process.

好消息是您可以准备白板面试,就像可以补习高考一样。 而且,书籍和网站的家庭行业专门致力于帮助您加快白板面试过程的速度。

Whiteboard interview questions generally come from a predictable pool of around 200 questions, the solutions of which are all available in Cracking the Code Interview. This book is the closest thing to a whiteboard interview playbook. Its author wrote it based off of her experience interviewing developers for Google, Amazon, Microsoft, and Apple.

白板面试问题通常来自大约200个问题的可预测库,所有解决方案都可在“ 破解代码面试”中找到 。 这本书是最接近白板面试剧本的东西。 它的作者是根据她采访Google,Amazon,Microsoft和Apple的开发人员的经验编写的。

Of course, your interviewer is under no obligation to ask you one of those questions you so diligently prepared for. If you’re unlucky, they could ask you to write out an algorithm you’ve never heard of before. This is the essence of the “algorithm question lottery.”

当然,您的面试官没有义务向您如此努力地准备的问题之一。 如果您不走运,他们会要求您写出以前从未听说过的算法。 这就是“算法问题彩票”的本质。

Developers will often defend whiteboard interviews as meritocratic. Anyone who wants to spend months of their life toward committing algorithms to memory can go and get that job at Google.

开发人员通常会辩护白板面试是有功的。 任何想花数月的时间将算法提交到内存的人都可以在Google找到这份工作 。

And a majority of these algorithms are already touched on as part of a computer science undergraduate program.

这些算法中的大多数已经作为计算机科学本科课程的一部分进行了介绍。

So what’s the problem?

所以有什么问题?

反对白板采访的案例 (The case against whiteboard interviews)

The problem is that writing algorithms on a whiteboard has almost nothing to do with modern software development.

问题在于,在白板上编写算法几乎与现代软件开发无关。

In real life, you would rarely just whip up an off-the-cuff algorithm from memory in the middle of a coding session. You are almost always going to use an existing library, which has its own test suite, and has survived the scrutiny of other developers.

在现实生活中,您很少会在编码会话中间从内存中跳出现成的算法。 您几乎总是会使用现有的库,该库具有自己的测试套件,并且能够经受其他开发人员的审查。

The only world where you would actually need to be able to recall an algorithm would be a post-apocalyptic one, where the hard drives of all the computers connected to the internet were fried, and all copies of foundational academic papers and computer science textbooks had been reduced to ashes.

您实际上真正需要能够调用算法的世界是一个世界末日后世界,在该世界中,连接到互联网的所有计算机的硬盘都被炸掉了,所有基础学术论文和计算机科学教科书的副本都被化为灰烬。

Whiteboard interviewing is a discrete skill, much like being able to remember Pi to a thousand decimal places. And students of programming are spending a disproportionate amount of their time mastering this skill instead of practicing real software development by building projects, maintaining legacy code, or contributing to open source.

白板面试是一项离散技能,就像能够将Pi记住到小数点后一位。 程序设计专业的学生花费大量时间来掌握此技能,而不是通过构建项目,维护遗留代码或为开源做贡献来进行实际的软件开发。

This ultimately reduces the quality of entry-level hires, as it becomes difficult for the average interviewer to figure out who’s good at developing software, and who’s merely good at whiteboard interviewing.

这最终降低了入门级员工的质量,因为普通面试官很难确定谁擅长开发软件,而谁才擅长白板面试。

It also freezes out many of the people who are under-represented in the software development field. If you’re busy working and raising kids, you want to spend as much of your scarce time as possible learning to code — not performing rote memorization that won’t matter once you start your job.

它还冻结了许多在软件开发领域代表性不足的人员。 如果您正忙于工作和抚养孩子,那么您想花费尽可能多的稀缺时间来学习编码-不要执行死记硬背,这对您开始工作并不重要。

Even if you could afford to pay for a cram school (and some will garnish your future wages instead of asking for cash up front), you would still need to allocate time from your busy life to attend.

即使您有能力支付一所补习班的费用(有些人可以补足未来的工资,而不是先要求现金),您仍然需要从忙碌的生活中抽出时间参加。

Whiteboard interviews also punish more experienced developers who are too busy doing real software development to drop everything and cram for a month. They also punish people who don’t have a computer science degree, or who finished theirs so long ago that they’ve forgotten most of these (rarely needed) algorithms.

白板采访还惩罚了那些经验丰富的开发人员,他们忙于进行真正的软件开发,以至于放弃所有内容并花了一个月的时间。 他们还会惩罚那些没有计算机科学学位的人,或者很早就完成了他们的工作,以至于他们忘记了大多数(非常需要的)算法的人。

Whiteboard interviews favor fresh graduates from theory-heavy computer science programs. But it’s hard to believe that those are the people who will perform best in the highly collaborative, practical 21st century developer workplace.

白板访谈吸引了重理论的计算机科学专业的应届毕业生。 但是很难相信那些人会在高度协作,实用的21世纪开发人员工作场所中表现最佳。

那么,为什么我们要进行白板面试呢? (So why do we do whiteboard interviews?)

Whiteboard interviews are akin to a hazing ritual — a rite of passage that one must endure before joining an organization — because everyone else there did. “I went through a battery of whiteboard interviews when I got here, so why shouldn’t this person?”

白板面试类似于一种令人不快的仪式-在加入某个组织之前必须经历的一种通过仪式-因为那里的其他所有人都这样做。 “来到这里时,我经历了一系列的白板采访,所以这个人为什么不应该呢?”

Supporters of the whiteboard interview will argue that it tests one’s ability to solve problems under pressure, or that it tests fundamental competence.

白板面试的支持者会争辩说,它测试一个人在压力下解决问题的能力,或者测试其基本能力 。

Whiteboard interviews provide an interviewer a defensible reason for passing on a candidate that their gut tells them they don’t like. Instead of attributing a no-hire decision to a poor “culture fit”, the interviewer can tell themselves and their superiors that “she just didn’t know how to invert a binary tree.”

白板面试为面试官提供了辩护的理由,可以将候选人的直觉告诉他们不满意。 面试官可以告诉自己和上司“她只是不知道如何倒置二叉树”,而不是将不聘用的决定归因于不良的“文化背景”。

It also provides the interviewer with an opportunity to feel smart and validate that “they’ve still got it” and that they aren’t themselves an imposter, by critically examining the work of an outsider who wants in.

通过批判性地考察想要进入的局外人的工作,这也为面试官提供了一个机会,使他们感到机智,并验证“他们仍然有能力”,并且他们本身不是冒名顶替者。

Because of these forces, whiteboard interviews may stick around for a long time, like a circle of retribution — an ordeal inflicted upon one generation of developers by the previous, that will in turn be inflicted upon the next.

由于这些因素,白板面试可能会持续很长时间,就像一个报应圈一样。前者对一代开发人员造成了折磨,而下一代则遭受了折磨。

一个好的开发人员如何应对白板面试? (How can a good developer cope with whiteboard interviews?)

There are only two good options here (other than to give up and go farm goats).

这里只有两个不错的选择(除了放弃和放弃农场山羊)。

Option 1: Accept it and cram.

选项1:接受并塞入。

Every responsible academic program is encouraging new developers to learn these algorithms. Dozens of the algorithms in Free Code Camp’s curriculum come directly from common whiteboard interview questions.

每个负责任的学术计划都在鼓励新的开发人员学习这些算法。 Free Code Camp课程中的数十种算法直接来自于常见的白板面试问题。

Many of our students have told me that their prior experience with these specific algorithm questions was critical in landing their first developer jobs.

我们的许多学生告诉我,他们对这些特定算法问题的先前经验对于找到他们的第一个开发人员职位至关重要。

We have also created a lot of videos focused on time complexity and data structures, and are working on a system for conducting live mock coding interviews through our platform.

我们还创建了许多关注时间复杂度和数据结构的视频,并且正在开发一个通过我们的平台进行实时模拟编码采访的系统。

Option 2: Avoid companies that do whiteboard interviewing

选择2:避免进行白板面试的公司

Already, many experienced developers will flat out refuse interviews that involve whiteboards. Many of these developers are so good that they can often afford to be more selective.

已经有许多有经验的开发人员将涉及白板的垃圾采访拒之门外。 这些开发人员中的许多人是如此出色,以至于他们经常可以承担更多的选择。

Four Square has publicly ditched whiteboard interviews in favor of take-home assignments.

四方广场已公开放弃白板采访 ,转而采取带回家的作业。

We were concerned that [the whiteboard interview] process filtered out many other great engineers for reasons other than their abilities. Some possible reasons include variation between interviewers, candidate nervousness, or the unnaturalness of whiteboard coding generally.
我们担心,[白板采访]流程会滤除许多其他优秀工程师的能力之外的其他原因。 一些可能的原因包括面试官之间的差异,候选人的紧张感或白板编码的不自然。

In doing so, Four Square has gotten rid of the random false negatives that can result from the “algorithm question lottery.”

通过这样做,四方广场消除了“算法问题彩票”可能导致的随机错误否定情况。

Pivotal Labs is famous for their pair-programming-centric interview. You come in to their office in the morning and pair all day with a one of their developers. One of our students went through their interview process, loved it, and accepted a job there.

Pivotal Labs以以配对编程为中心的采访而闻名。 您早上来到他们的办公室,并与他们的一个开发人员整天配对。 我们的一位学生经历了面试过程,喜欢它,并在那里接受了一份工作。

Whatever you do, don’t give up and go farm goats. Regardless of the stubborn hiring practices of big tech companies, the world needs a lot more good developers! So keep fighting the good fight.

无论您做什么,都不要放弃并去种山羊。 不管大型科技公司的顽固招聘方式如何,世界都需要更多优秀的开发人员! 因此,请继续保持良好的战斗状态。

I only write about programming and technology. If you follow me on Twitter I won’t waste your time. ?

我只写关于编程和技术的文章。 如果您在Twitter上关注我,我不会浪费您的时间。

翻译自: /

微信登录为什么进去是白板

本文标签: 微信登录为什么进去是白板