In 2017, prominent software engineers took to Twitter to confess that they would fail a whiteboard interview. A popular way to evaluate programmers of all experience levels, “whiteboarding” involves presenting candidates with a computer science problem to solve on a whiteboard in real time. Engineers have been complaining about them for years.
David Heinemeier Hansson, the founder of Ruby on Rails, one of the most successful web frameworks in history, led the way. Top developers from Google, Microsoft, and the New York Times joined in.
Ruby on Rails的创始人David Heinemeier Hansson是历史上最成功的Web框架之一。 来自Google，Microsoft和《纽约时报》的顶尖开发人员也加入了进来。
Yet whiteboarding still constitutes a core part of the interview process at many tech companies, especially at FAANG (Facebook, Apple, Amazon, Netflix, and Google) and unicorn companies.
But the new normal of remote recruiting during the coronavirus pandemic presents an opportunity for recruiters, tech leaders, and the entire software industry to reexamine the original purpose of whiteboarding interviews. We need to ask whether they deliver on those goals and look at who they serve — computer science graduates — and who they don’t — those coming from nontraditional backgrounds. We need to realize that remote interviewing only makes the problem worse.
但是，在冠状病毒大流行期间进行远程招聘的新常态为招聘人员，技术领导者和整个软件行业提供了重新审查白板面试最初目的的机会。 我们需要询问他们是否实现了这些目标，并看看他们为谁服务—计算机科学专业的毕业生—而不是谁—来自非传统背景的人。 我们需要意识到，远程采访只会使问题变得更糟。
We need to implement alternatives that more effectively and inclusively measure engineering talent, team fit, and growth potential in video and phone interviews. It’s the most important reform toward a more diverse and inclusive industry.
招聘开发人员的头痛(The headache of hiring developers)
Getting into Google is more difficult than getting into Harvard. (The former has a 0.2% acceptance rate against the Ivy’s 4.9%.) Top tech companies are well-known for conducting grueling interviews, especially for software engineers.
When faced with thousands of applicants, how does a company sift through applicants, shortlist the best, and hire the very best? No matter the industry or role, recruiting is difficult. Companies inevitably hire a poor performer on occasion and allow excellent candidates to slip through.
当面对成千上万的申请者，如何通过申请公司筛，候选名单是最好的，并聘请最优秀的？ 无论行业或角色，招聘都很困难。 公司不可避免地会聘请表现不佳的人，并让优秀的候选人脱颖而出。
It is incredibly difficult to evaluate a candidate’s technical skills without actually working with them.
Hiring software engineers is particularly difficult. Competition for top talent is high. There are over 150,000 open roles on LinkedIn and “software engineer” consistently ranks as the most in-demand job, even during a pandemic. The primary pain point: It is incredibly difficult to evaluate a candidate’s technical skills without actually working with them.
雇用软件工程师特别困难。 顶尖人才的竞争非常激烈。 在LinkedIn上有超过15万个公开职位，即使在大流行期间，“软件工程师”也始终是需求最大的职位。 主要的痛点：如果不与候选人实际合作，很难评估候选人的技术技能。
Common ways companies conduct technical screens include:
- Take-home projects where a candidate is given a few days to build a simple web app 带回家的项目，给候选人几天的时间来构建一个简单的Web应用程序
- Code review of existing work现有工作的代码审查
- Quiz questions on coding and web fundamentals关于编码和网络基础知识的测验问题
- Solving algorithm and data structure questions in a one-on-one whiteboard interview在一对一的白板面试中解决算法和数据结构问题
With all the criticism and ample alternatives, why do companies still conduct whiteboard interviews?
有礼节或必要的邪恶？ (Hazing ritual or necessary evil?)
When computers were first invented, time on the computer was expensive. It was not uncommon to write code on a piece of paper before inputting to a computer. Computer programming has changed a lot since then. Although sketching out a system or handwriting code can help one plan and more deeply understand a piece of software, real-world programming today leans heavily on different frameworks, libraries, and Google searches. Building functional and beautiful software requires a profound understanding of how all of these tools build upon each other and at least a basic understanding of how they work under the hood.
Why remove the normal tools a programmer now has at their disposal, including the obvious: a computer? Why ask algorithm and data structure questions?
Some say it is an important “rite of passage,” an inevitable hurdle to conquer on the road to becoming a software engineer. Interviewing should not be used as a hazing ritual.
Some posts about the topic argue that studying algorithms shows a candidate’s eagerness to learn. Successful candidates, beginners and experienced programmers alike, spend hours preparing for these types of interviews.
There is an entire industry built around technical interview prep — from subscription-based practice sites like LeetCode and InterviewCake, to mock interview platforms like Pramp, and entire boot camps devoted to algorithms and data structures. The fact that even experienced developers use these supplemental and often costly resources proves the point: In general, a developer’s real everyday work has little to do with the questions asked in a whiteboarding interview. (There are also plenty of other ways to measure curiosity and hustle.)
The most compelling reasons I found for using technical screens are to determine whether a candidate is lying about their programming abilities and to better understand their thought process and collaboration style.
With these goals in mind, technical interviews should be centered around answering these questions:
- Can you code? 你会编码吗？
- Can you collaborate? 你可以合作吗？
Coding on a whiteboard, or during Covid, on a noncompiling text editor or Google Doc while on Zoom (I have been asked to do both) are not the best ways to evaluate these skills.
多样性问题 (The diversity problem)
I recently shared my path to starting my first software engineering role. After failing to make it through the University of California, Berkeley’s introductory computer science courses, I spent the early years of my career in a communications role before eventually finding my way back.
My key learning was that although companies rarely require a computer science degree (job postings will often say something like “CS degree or equivalent”), the interview process heavily favors a formal background in computer science. As someone with experience in university CS as well as a boot camp — I did Flatiron’s full-stack program earlier this year — people often ask me the difference between the two types of education.
我的主要学习是，尽管公司很少需要计算机科学学位(职位招聘通常会说“ CS学位或同等学历”)，但面试过程在很大程度上有利于计算机科学的正式背景。 作为具有大学CS经验和新手训练营的人-今年早些时候我做了Flatiron的全日制课程-人们经常问我两种教育之间的区别。
College courses primarily focus on computer science concepts and principles including algorithms and data structures, which are necessary to succeed in a whiteboarding interview. Most boot camps spend little-to-no time on this type of material. Flatiron focuses on learning web development, and you build several full-stack applications in the program. I never built a web application or used a framework in college CS.
大学课程主要关注计算机科学的概念和原理，包括算法和数据结构，这对于成功进行白板面试是必不可少的。 大多数新手训练营都花很少甚至没有时间在这种材料上。 Flatiron专注于学习Web开发，您可以在程序中构建几个全栈应用程序。 我从未在大学CS中构建过Web应用程序或使用框架。
While both types of education are valuable, boot camps provide an important entry point to software engineering for underrepresented groups. Boot camp grads come from a diverse range of backgrounds. Many slipped through the cracks in college or didn’t see software engineering as a viable path until later in their careers.
尽管两种教育都很有价值，但新手训练营为人数不足的群体提供了软件工程的重要切入点。 新兵训练营的毕业生来自不同背景。 许多人在大学里经历了裂痕，或者直到职业生涯后期才将软件工程视为一条可行的道路。
Whiteboard interviews are also intimidating, especially for those who suffer from imposter syndrome (which disproportionately affects women and people of color). The remote experience could compound the intimidation factor. It did for me.
白板面试也令人生畏，尤其是对于那些冒名顶替综合症的患者(这种现象对妇女和有色人种的影响尤其严重)。 远程体验可能会加剧威吓因素。 它对我有用。
We are all now experiencing how difficult it is to form a personal connection on Zoom, especially with someone new. It’s that much more difficult when working outside of your confidence zone.
Because my job search coincided with the first few months of Covid lockdown, all of my interviews were remote. Whiteboarding interview questions provided me with little opportunity to authentically convey my ability to work effectively with others. Even for something as simple as writing a clear commit message, collaboration, and communication are crucial for effective software development. I was unable to show these strengths or even just be myself. I know I’m not alone.
由于我的求职恰逢Covid停职的前几个月，所以我所有的面试都是遥遥无期的。 白板面试问题为我提供了很少机会真实地传达我与他人有效合作的能力。 即使只是编写清晰的提交消息之类的简单操作，协作和通信对于有效的软件开发也至关重要。 我无法展现这些优势，甚至无法表现自己。 我知道我并不孤单。
有更好的方法 (There’s a better way)
Plenty of companies recruit talented engineers without whiteboarding. My previous company, Artsy, does not have any technical component in their interview process. Even early on, they were able to recruit some of the best engineers in the industry. There are simply so many better ways that more effectively answer: Can they code? Can they collaborate?
我的前三种选择： (My top three alternatives:)
1.配对程序 (1. Pair program)
Simply framing the interview as a collaborative exercise alleviated so much of the anxiety.
2.讨论过去的代码 (2. Talk through past code)
A past project or pull request is preferable, but take-homes work too. Use the candidate’s previous code as a jumping-off point to determine how they understand code, make trade-offs, and communicate their decisions. I read that companies worry about cheating — candidates asking friends or paying a developer on Fiverr to complete the assignment. Instead of training interviewers to ask esoteric whiteboarding questions, train them to ask thoughtful and thorough questions about previous work.
过去的项目或请求请求是更可取的，但是实干也可以。 使用候选人的先前代码作为出发点，以确定他们如何理解代码，进行权衡并传达他们的决定。 我读到，公司担心作弊-候选人问朋友或向Fiverr付钱给开发人员完成任务。 与其培训面试官提出深奥的白板问题，不如培训他们询问关于先前工作的周到且彻底的问题。
For companies who choose this method, be respectful of your candidate’s time. Many of my peers are balancing other jobs and taking care of kids at home. I completed several take-home assignments for companies that were either not seriously considering me or never had a conversation with me about the work and moved onto the next step. If take-homes are time-boxed, designed to help engineers learn something new, and followed by a comprehensive discussion, they can be well worth the effort.
对于选择这种方法的公司，请尊重您候选人的时间。 我的许多同龄人正在平衡其他工作，并在家照顾孩子。 我为不认真考虑我或者从未与我进行过有关工作的交谈的公司完成了几次实地考察任务，然后转到下一步。 如果带回家是有时间限制的，旨在帮助工程师学习新知识，然后进行全面讨论，那么值得付出努力。
A lot of people think references are fluff, but most companies conduct references poorly.
3.倾斜参考...但是要彻底 (3. Lean into references… but be thorough)
Past performance is the best indication of future performance. Talking to people who have previously worked with your candidate can provide invaluable insight into how they will perform in a new context. A lot of people think references are fluff, but most companies conduct references poorly. Asking a set of specific questions and digging for substantive answers will reveal more than you think. Here are some examples used by Artsy, which heavily weighs references in their interview process:
过去的表现是未来表现的最好标志。 与以前与您的候选人一起工作过的人交谈可以为他们在新环境中的表现提供宝贵的见解。 许多人认为推荐是虚假的，但是大多数公司的推荐都做得不好。 提出一系列具体问题并挖掘实质性答案将比您想像的更多。 以下是Artsy使用的一些示例，这些示例在面试过程中非常重视参考文献：
In your capacity as [relationship to the candidate], how many people have you worked with in the candidate’s role?
In just terms of job performance, how do you rank the candidate out of that [X] many people?
What’s the difference between [the candidate’s rank] and number one? How would the candidate need to grow to get to number one?
害怕寻求帮助 (Fear of asking for help)
Whiteboard interviews were hard for me, not because the questions were too challenging or I didn’t want to put in the work. They were hard because I was scared to ask for help. Knowing when and how to ask questions, whether from your colleagues or Google, is one of the most important skills to develop as an engineer. Virtual whiteboarding sessions do not allow for sufficient back-and-forth between the candidate and the interviewer. In the remote setting, it is so hard to be vulnerable.
白板面试对我来说很难，不是因为问题太具有挑战性或我不想参与工作。 他们很难，因为我不敢寻求帮助。 无论是从同事还是从Google知道何时以及如何提出问题，都是培养工程师最重要的技能之一。 虚拟白板会议不允许候选人与面试官之间来回充分的交流。 在远程环境中，很难受到攻击。
When I saw veteran software engineer Estelle Weyl’s tweet from the 2017 trend, I deeply identified with the fear of admitting you don’t know something. Amidst her mostly male colleagues revealing their inabilities to sort a binary tree, she said:
当我从2017年趋势中看到资深软件工程师Estelle Weyl的推文时，我深深地感到害怕承认自己不了解某些东西。 她在大多数男性同事中发现自己无法对二叉树进行排序，她说：
Eliminating whiteboard interviews didn’t happen in 2017, but maybe it can in 2020.