So I refused a white board technical test and was asked to leave
thegearpage.net
thegearpage.net
I've had similar using live coding tests, barely minutes in and the candidate is clearly not coding what was specified. Asked why, they offer criticism of the interview process and an explanation of why their thing (usually a game or some graphical doohickey) is better.
This is an instant fail. These tests are as much about interaction and personality as they are technical skill. Which is why your GitHub profile is not relevant until afterwards.
You can have a profile full of great looking code, but if you're truculent, uncooperative and insist on being the smartest asshole in the room, you will not be finding work with my team today.
Soft skills, people.
Sure, it's an extreme, but that's how most of these sorts of stories are taken by the interviewee, especially for a position that was advertised around very specific credentials or experience.
But yes what you suggest here is what we do. And that is actually fun for the coder (if not highly anti social) as well as it is for the team too.
Being a good developer requires the ability to write logical, maintainable code of course, but equally it also requires having the ability to talk to other developers, to work with a team, and to explain technical problems to non-technical people. Those are soft skills.
...and the rest of us are supposed to read his mind? Since we're talking about communication skills here, I submit that good communication skills might include stating one's meaning more clearly.
That's a non-credible excuse. If it's really about how you deal with adversarial situations, there's no reason for coding to be involved at all. There are plenty of other scenarios you could role-play that are more realistic and/or more informative wrt what software engineers actually do. Why don't people do those things instead? Generally, because it was never really about communication skills or reactions to stressful/adversarial situations. That's just the rationalization that people who actually did intend to measure coding skill come up with when they're forced to admit that the tool they've chosen is spectacularly ill suited to that purpose. Nobody wants to admit they've wasted so much of their own and others' time.
There's more to talent than writing code. It amazes me, this attitude that testing for social skills and fit is seen as insulting. Believe me, it's for the candidates benefit as much as the potential employer.
The original poster and you responded you do similar things. You meant something different I guess.
I agree very much with a coder is not supposed to only code; I guess we agree if you take away the specific 'I had to code on a whiteboard without even a computer present' of the OP.
Also, many are simply not comfortable with the situation and too stressed to be engaged in any kind of intellectual activity.
That's not to mention that most cannot do thinking and verbally document the process at the same time. It's either or.
But also on a fucking whiteboard! You're thinking about your handwriting, trying to form shapes you've probably never written (like curly brackets). You can't copy/paste and move things around when you notice you made a mistake. You have to remember syntax and stdlib APIs, which is not everyone's strong suit (especially in languages with inconsistent naming like Python and PHP).
It's just totally insane to say that whiteboard coding is anything at all like working as a coder.
The main challenge is that you have to write what may be incorrect in order to get to what is correct in most problem solving. When you have people watching and potentially judging you, you try to program in your mind which is difficult. Then it shakes you because time is passing and you haven't written any code. They're drinking beverages and you're sweating, haha.
I will say however, that the company that had me do a whiteboard was very professional in how they handled disarming all these things you mentioned from my mind when they sensed them.
I got offered a job but I had several other offers. But I still had the sense that they were a good company.
I don't think whiteboards are fair, but I also don't think it's fair to write a company off for using them in their interview process.
If you're going to do them, inform the candidate ahead of time and also help put them at ease when you sense the inevitable anxiety. Let them know that you really want to see the approach not the end result and writing bugs is ok.
When a professional comes in, he expects to be treated like one. Most people learned to solve basic coding problems when they were at the university like 15 or 20 years ago. Today, 20 years later you should be discussing other things. Otherwise, you're basically starting a dialogue implying the guy slacked off for 20 years inviting him to prove otherwise. It's just no way for two grown-up professionals to approach things.
On a side note, try this: make a appointment with a highly reputable dentist (like weeks or months in advance) then go and try asking him some basic questions implying he might not know his stuff. You'll be shown the door in about two minutes, and possibly you'll get a lifetime ban in that establishment.
Why should software developers accept to be treated differently? And yes, there are lots of incompetent dentists and doctors of all kinds. Why do they have more respect for themselves than software specialists?
You may be asking about things because you genuinely need to learn/understand something, in which case doctors are often eager to explain their stuff.
Or you may be asking questions trying to figure out if they know their craft, have run into difficult cases or complications to assess their level of expertise. That's a different story.
I once made a mistake of doing the latter, though I did it because I was facing an op and was quite disconcerted perhaps even frightened. At some moment the doctor looked at me with a special look and told me to go consider what I learned today and decide if I was ready for the whole thing. Then I knew I asked too much and all the wrong questions. Given that he was a very experienced specialist, was the chief doctor of that establishment and overall well recommended, the mistake was mine.
But in the end it all worked out rather nicely with no grudge-holding.
I think that is ridiculous. Last time I had a mild dental surgery I asked my dentist how many such operations she had performed and how many she had botched up. She not only very patiently and willingly answered by questions but also told me that she had a failure rate of 12% which was industry standard.
If dentists, car mechanics and your local gun dealer refuses to answer question there is the good chance they really dont know their own shit.
But yes, if I were considering dental surgery, I'd certainly want to know that number...
How do I know if the person I'm talking to is one of your "professionals," without asking these questions? I need to weed out the pretend professionals.
If you need a whiteboard or tests, to tell they are a professional then you may be doing something wrong. I can talk to a person and within 10 minutes tell you if they are a good developer or not. Perhaps it's a gift, but I suspect not, what I suspect is people focus on the wrong parts of what makes a developer a good developer.
People focus on the mechanics of development. Do they know syntax? Do they know the API?
In my time I have forgotten more syntax and API's than I know, I used to be a top notch Pascal developer and could be again in 2 weeks same with Delphi, but today I would be hard pressed to write a line of it. But people get hung up on this, they think a whiteboard, disconnected from information, somehow simulates reality; meanwhile we all use Google, before that it was the development library at your company, Barns and Noble and a host of other printed material. The reality is memorizing little used portions of a languages API is a waste of time (the platform is going to change). For 80% of applications built you are going to use the same simple patterns in whatever platform is being used.
The key is to focus on what you are realistically going to have them do. If you are hiring a CRUD developer they should have a good handle on Data access, Relational or NoSQL theory and web/mobile technologies. Don't ask them to write an algorithm that factors prime on the whiteboard when no one is ever going to write that and even if they are, they are certainly not going to do it in a disconnected environment.
I look for three things, intuition, an inquisitive nature and motivation. Those are the three things that cannot be taught. It has yet to fail me other than the above mentioned anomaly.
People can't talk the talk about specifics of industry experience if they haven't walked the walk, and that will become obvious in normal discourse around the matters of job role itself and their related experiences. You can be inquisitive, but starting off with CS101 quizzes is just condescending and wildly irrelevant to the actual position.
When I'm being interviewed, I respect the interviewer for demanding hard data, instead of just checking who talks the talk.
People have personal projects, accounts in social networks, personal blogs. Make a short list of candidates than go digging. You can soon get a good idea of their abilities and how far they are progressed on their professional evolution path.
That research will also quickly tell you if someone is a jerk. Read what they say and how they are saying it and you will learn all you need to know about their social skills. It's a more precise test than an artificial environment of a face-to-face interview when everyone tries to play an all-around nice person. But the thing is, you can't be a nice person 9-to-5 and a complete jerk in your off-hours. A jerk is always a jerk. Better observe them in the wild when they feel nobody's watching them and they can behave naturally.
It also works the other way. I sometimes encounter overall rude people online who share in passing what company they are employed at. I always try to remember the name to not mistakenly end up there.
It's entirely possible that the person who has gotten that far in the process literally cannot code Fizzbuzz. It's not an insult to be asked to do these things. It's a reality caused by the fact that some people can BS their way into anything, the hiring process at most companies is deeply flawed, and usually not the fault of the people you are talking to in the interview.
Obviously anyone who is that offended by this has never seen the other side of the equation where you've hired someone who turns out to be completely incompetent despite appearing to be very knowledgeable and smart in the interview, and now you've invested a whole lot of time and effort and money even if you are able to cut the person loose quickly. It happens. A lot. And it's often not because the hiring managers and other interviewers are idiots or otherwise failed to interview the candidate well.
Academic institutions generally don't teach people to code. It's always a personal quest. You can tell a lot about somebody who's graduated but never gone any extra mile. That should be the basic filtering criteria.
I too have seen people studying at CS departments who were useless at coding. I even helped some mates with their assignments so that they wouldn't get thrown out having invested several years already, though our field of study was not purely CS but more the hardware side of things so graduating as a bad programmer wouldn't be a terribly bad thing. Yet I know for certain none of them ever planned to be looking for a job as a programmer. And if you investigated their programming accomplishments you would quickly find out they should be passed on.
I also noticed that people who are smart and even brilliant do graduate with real programming skills but without personal projects of any sort. The thing is, they may join in as an ordinary programmer but do not plan to stay there long, meaning to quickly move into management or a business branch. You probably don't want them either.
Some preliminary research is always the right thing to do. You won't believe how many times I arrived at an interview and watched the HR turn over my resume to the interviewer for the first time ever, so he had to quickly scan it to get an idea what to discuss. With that approach not much can be accomplished on the hiring track.
My keys lessons are:
1. Whiteboard coding is not actually about coding. It is about talking with interviewer, coming up with examples and demonstrating a clear cut though process and of course then showing that you can convert idea into code.
2. All this requires very good communication. I always made sure I asked many questions to my interviewers, cares about what problems they solved and treated him as "fellow developer who took time to help me out getting a job" rather than someone who is a judge trying to judge me.
3. What really struck me about OP's rant is that he probably did not invest time in researching how he would be interviewed in first place. All the recruiters who contact you are absolutely clear in telling you what to expect. You were supposed to know what to expect.
4. If the interviewer was rude or indeed "threw" the resume on face, I would strongly recommend informing your recruiter about this. Such person should not be allowed to interview anyone else.
5. As an interviewer you are supposed to help the person get a job by convincing yourself that he could be a good fit in the company. This is not very hard. It is an exercise for you too. You just cant say "write DFS on whiteboard". You must drive the person in right direction, giving hints and even if the person lacks intellect/experience you must make him feel comfortable and good. Even though that person does not get the job eventually you must help him become a better interviewee as he leaves that room.
> you're truculent, uncooperative and insist on being the smartest asshole in the room, you will not be finding work with my team today
Can not agree more. Often really smart people tend to be humble and love challenges than insisting "this is not the good way to interview me". An intelligent and curious person will not run away from a mentally taxing activity, he would face it bravely and even enjoy it in the process.
So many fallacies there. You're assuming that intelligent and curious people can't also suffer from social/performance anxiety. What if the person's just very introverted? They could still be an invaluable member of your team, but you'd never know that if you insist on interviewing them in a manner directly contrary to their strengths. What if the person's female, and doesn't want you staring at her butt even more while she writes on the board. Yes, that s* happens.
Even worse is the way you use "bravery" to equate distaste with cowardice. I'm sure there are programmers who have exhibited more bravery in more contexts than you ever will, but might still balk at jumping through hoops for you when they could be engaging in more empirically-proven interview methods instead.
~25 times interviewing, on either side of the desk, is not much of a sample. Look to people who have been there hundreds of times individually, thousands of times collectively. You might find that there are more techniques, more pitfalls, and more kinds of people involved than you had ever thought of before you made your appeal to authority. Whiteboard interviews might have their place in some very limited circumstances, but making them a default part of the process is just lazy and sets up a generally unhelpful competitive/hierarchical dynamic. An intelligent and curious person will not run away from other methods, but will face them bravely and enjoy them in the process.
To really learn about hiring, you'd have to interview those people and find out how well they do, but also how well the rejected applicants do. You can't test your assumptions if you can't compare the people you hire with the people you didn't.
And, for the record, I (and several of my colleagues) have interviewed almost 100 people each over the course of our careers -- more than 10 per year. We still don't have a secret sauce. Some filters work and some don't. Google has been famously working on this problem using extensive data analysis, and they still haven't cracked the secret of always hiring the best coders.
I've been on both sides and the key lessons the parent laid out are good. They're related more to being a professional in interviewing and whiteboards, not key lessons to ensure you hire the best people available which is what you are discussing.
There seems to be very little basis for characterizing the OP that way, so now thousands of people reading this on HN get to associate that phrase with your name. What was that about soft skills?
It is actually a great chance of engaging in a meaningful conversation and hear more about their experience. I like people that can think for themselves and can be diplomatic.
This personal preference should have been communicated right after the first contact and before going on the first date, polite and firmly. That way nobody's time would have been wasted.
It's something I would do these days, given the current industry obsession with these weird rituals. A simple pragmatic and a [constructive] dialog about the needs of the company, my skills and whether there is a potential mutual interest - yes, white board coding, puzzle questions, technical interviews and take home tests - no. Whoever is not okay with this arrangement may move along.
All good jobs that I had were offered without technical tests and they came with nice and smart people. Every time there was some technical grilling involved, the people were arrogant and condescending, and I wouldn't have wanted to work with them anyway.
And anyway, this form of hiring protocol mostly seems to be practiced in the US job market, as well as by those countries trying to closely mimic their US counterparts. I've noticed that phenomenon in Eastern Europeans too. The Western European companies have massively different hiring practices.
For one thing the author is right. These broken hiring techniques force people to leave the mundane job market as quickly as possible, switching to looking for work through other channels. Perhaps this situation contributes to the visible lack of talent that some are observing. Apparently, the talent prefers a more personal and a more civilized approach that the generic job market is not offering.
Essentially, it's very important for them to find a nice colleague that will naturally integrate in the collective. Someone who can do the work, but also talk, communicate well and overall be a well-rounded person. The technical side of things is an additional criteria, but not the basis for a decision. You often get to hear the idea that "learning on the job" is the way they do things. Nobody has an idea to dismiss you because you don't remember some obscure sorting algorithm from 20 years ago.
At least I have not run in a single case when the interview was being run by people or the Western European origin and I got to be grilled on technical matters. The story was all different when among the Western Europeans there were the Eastern ones present at the table who were mainly asking questions. In that case all that you get asked is the minutiae of the specific technologies they use, and often the interview time is completely wasted as you don't get the chance to learn about the company, so you return home with as little information about them as you had before going to the interview.
After a while you get a clear picture of where everyone fits in the food chain. Western Europeans run a business, see the big picture and care about practical things. Eastern Europeans are grunt workers that are [happily] stuck in their technical silos.
Not meaning to offend anyone originating from Easter European countries and who do not fall under this description, but it's been my consistent experience and my individual observation that I've made while interviewing for positions in Western Europe (mostly in Germany) and also from interacting with my colleagues (of varying origins). There was always a clear separation of concerns to be felt.
Though, honestly, you're stuck between a rock and a hard place here. One of the tenants of interviewing is that candidates have to be evaluated fairly and equally - you can't have one candidate go through one evaluation process and another go through something completely different. As a company, you could easily be sued for this (you could be seen as showing preference to one candidate or the other).
I think the biggest issue is that companies like FB and Google and other tech giants use these interview techniques, so all other companies argue that those techniques "work" for (or at least do not hinder) companies that have literally billions of users and billions of dollars (in other words, you can't argue with the results).
So, until we have solid proof of a better process that scales I think those types of interviews are going to be a consistent part of the tech job industry.
Yes, you can. Because people are all different and need to be approached differently.
>> I think the biggest issue is that companies like FB and Google and other tech giants use these interview techniques
Didn't Google recently admit that those "interview techniques" are worthless and have no correlation with the candidates' abilities to perform well in the field?
>> So, until we have solid proof of a better process that scales
You don't need to scale. You don't have to interview half of the town. Just find some people you can work with and stop there.
>> I think those types of interviews are going to be a consistent part of the tech job industry
As I mentioned earlier, those types of interviews aren't practiced in the Western Europe and hiring there works just fine without them.
The time during an in-person interview should not, I repeat, should not be wasted on solving a single problem on a whiteboard. Having someone whiteboard a design or system, etc., sure. But having them do code on a whiteboard is idiotic since no-one actually works like that (well not since Lisp was invented).
When I interview people, I ask them about their experience, and how they solved difficult situations they faced. I find out a lot more this way about their abilities to lead projects; if you do it effectively you can quickly determine where people are exaggerating their team leadership skills, or the amount of design they were personally responsible for on a project. Read about behavioral interviews for good material on how to properly interview in this style.
Going through this process also lets you know if you actually want to work with the person. Which, IMO is more important than hiring the greatest programmer in the world, if that person is also a narcissistic, egotistical maniac (and yes, all us programmers fit that description, but you know what I'm getting at).
After all that, you have their test, their github account, references (OMG, you can call people they know or ask on LinkedIn, what?). That should be sufficient in telling you about their coding ability, and far greater than a 45-60 minute white boarding session in which all you found out is if they can properly do quick-sort (where do I pivot again?).
I agree that this guy probably could have handled this particular situation better, but I also think it's a stupid waste of time on the interviewers part to ask questions that don't get at the heart of someones experience.
What you can't do is anything that hinders a person from getting a job, but it doesn't mean you need to lie and say they were great.
This. That's the idea of an interview, to see if there is the right chemistry. It's like going on a date: the description/photos could be awesome but you quickly learn you don't even like having coffee together with that person. That is the point of a face-to-face meeting.
As for the background and the pedigree, plenty of the information can be provided and made ready for study without the need for an interview. The interview time should not be wasted on things you cannot assess in that short a time anyway.
* give a written problem description with some reading time
* ask some questions about the problem and the tasks,
so we all have the same idea what is needed
* treat the candidate as a team member in the lead role,
support him/her
* let him/her explore the problem and a possible solution
design using the whiteboard
* support him/her
* use a computer/ide to sketch an implementation while
he/she has Internet access and can ask any question.
There is not a single solution we are looking for.
Let the candidate explore his/her approach.
* interview team sees a mirror of the screen, and the
candidate explains what he/she is thinking/doing
* try to get something useful running with some
tests written. A complete solution is not needed.
Working, tested, well written code > full solution.
* do a quick feedback/review round
* if the candidate is junior, didn't get that far,
but shows some promise, he/she gets the problem
as homework and can send in a complete and
tested solution within a week
We like to see: good communication skills, teamwork and excellent coding skills.
We know though, that the combination of all three isn't that common.Admittedly, my job may not be typical of what the average dev has to do. But if that's the kind of role that this company was looking for, then asking someone to talk through something on a whiteboard doesn't seem too unreasonable.
I don't know the company, but I'm guessing that they aren't going to be that bothered that you can't remember the exact syntax of a particular function without checking it on Google. What I assume they're looking for is someone who can clearly communicate their thought process.
I can disagree that for a just a technical interview that a while board isn't the best tool to bring out people's collaboration skills.
I don't know what the whiteboard should be replaced with, though.
Recently I've been thinking about asking the candidate to ask me to whiteboard something. I actually think that might produce a more interesting conversation and a more meaningful assessment of fit from both sides.
There's a time and place to take your stand. You need to work that out or you'll shoot yourself in the foot.
I would have ended the interview right there, as well.
One is entitled to think it's stupid, and get a bad impression of the company, and refuse an offer if one gets made, but you don't go and tell that is "unfair" and just refuse to answer, that is totally and utterly inappropriate.
I would have understood if he/she said to prefer a test on a computer, if there was the possibility of doing that. But not just refusing to answer.
And the WORST traits that a candidate can show don't lie in technical expertise, but in attitude and character. So this was totally deserving of getting booted out of the door without a second of hesitation.
Who wants to hire someone that thinks they know everything, including the proper way to hire?
There's a thing called tact and it goes a long way. If you can't play nicely in the sandbox then go play by yourself.
If you are going to disagree then be professional about it and show you can still be a team player and have an honest, candid conversation.
I remember interviewing somewhere, a Windows shop turned out, and while I had one COM project on my resume, I knew I didn't want to work there the minute I walked in the door. During the first interview I was asked if I wanted to work in Windows, I said no, they were surprised at my candor (b/c the obvious answer to get the job would have been "yes"). We used the rest of the interview to talk about general industry stuff and parted ways happily (needless to say, I never got a job offer there).
I completely disagree with you on this. If a whiteboard test is such a strong turnoff to a candidate that they won't want to work at the company because of it, and they're willing to make the highly unusual move of refusing the test, then telling the interviewer about it and ending the interview early is the polite thing to do. As an interviewer I don't want to waste my time - and my team's time - by interviewing someone who certainly won't work out.
Candidates should feel comfortable saying no to anything at any point in the hiring process - of course with the potential consequence that the hiring process stops right then and there. But they shouldn't be expected to do things that make them uncomfortable or violates their personal beliefs. Should a candidate who doesn't drink alcohol be expected to have a beer if their interviewer proposes it? Should a candidate with strong religious beliefs be expected to violate them in an interview setting? What's the reasoning behind thinking that a candidate should always agree to a whiteboard test no matter how strongly they oppose them?
Look, the author of the post - the guy who refused the whiteboard test - does come across as cranky and difficult. He certainly should not have been surprised that the interview ended. And, for the record, I think feeling _that_ strongly about whiteboard tests is a little extreme. I just think that if something is a deal breaker for you as a candidate the polite thing to do is to let everyone know up front - ideally before an on-site so you can end things earlier rather than later and save everyone time.
I think we all agree that if either party has made a decision before the interview then nobody's time should be wasted.
At a former job, our office was amazing inside as it used to be an old brewery. In fact it won several design & architecture awards. Anyway, we had a candidate simply drive by and then call saying that it looked too low end for him so he cancelled the interview without even walking inside. We thought that was ridiculous of course but were happy we didn't waste our time with him.
Any company that does whiteboard interviews for coders should also have incoming salespeople sell hotdogs in front of the building as a test. Incoming managers can use Barbie dolls to demonstrate how to run a team. Fair is fair.
The reason that people do fizz-buzz style tests in interviews isn't to insult you with easy questions. It's because far too many "professionals with years of experience" are incapable of solving the simplest problems. These people will cost your company hundreds of thousands of dollars in combined expenses and opportunity cost, if you let them.
It's possible to implement it poorly, sure, but the principle is sound.
For instance, I interviewed people who froze up simply by being on an interview, putting them in front of a whiteboard would have been torture.
Why does everyone seem to feel they're far too important to do their jobs?
How about a chef, a surgeon, a car mechanic, an architect? Are any of these put to the test and asked to practice their craft right on the spot during the interview? If so, my knowledge of the job market is sorely out of whack. If not, why do IT companies consider themselves so important that they have the right to make potential hires run the gauntlet?
Writing code on a white board is not anyone's job. That's the point. It's so different from anyone's job that you're not testing whether they're actually good at coding.
Instead of whiteboard interviews, completing some actual code while sitting in the office at a real laptop would be a much better way to determine if someone actually knows how to code.
Why do you think it's 'humiliating' to be asked to demonstrate your ability?
Doing a whiteboard test is not only a waste of time, it's nothing like actual coding. It's both too simple (in terms of skills) and too hard (in terms of environment).
Let's take fizzbuzz just as an example. As others have said in these comments, they know great coders who failed fizzbuzz. Fizzbuzz tells you exactly zero about how someone would be at writing code that's readable, testable, and maintainable, which are the most important technical skills. Those are hard skills to master, and they can be tested by interviewers by using a real-world problem. Let the candidate sit by herself for a few hours and work on it.
The whiteboard interview also puts someone who is potentially desperate for a job and terrified of being embarrassed in a high-pressure situation, where failure instantly means she's "incompetent" or "stupid". Who can't do fizzbuzz, right? Well I'll tell you: people who aren't super calm in artificial, high-pressure testing situations sometimes can't do fizzbuzz.
Stop thinking so highly of yourself. There is nothing humiliating about them. If you get feeling of humiliation from someone watching you work, then you are going to have a bad time working in a team.
But, for others like an introvert, the whole process is like dancing in a circus in front of the people (with each one of them asking you do something at the sametime).
But maybe my saving grace here is that I don't fear pressure in that kind of situation...
This is 100% in your head and about your attitude. Your ego is the problem, nothing else. I'm introverted as fuck, but I realize that this is part of interview process and if you act like a self centered cunt, who isn't willing to do a simple task like writing little code on a board, you aren't worth the effort for most projects.
Some people just can't deal with the pressure of interviewing.
White board interviews are humiliating? Why? Because your sense of pride says that you're better than that? Is your sense of pride going to decide it's humiliating if I ask you to work on a crappy little side project for a month?
And, you're used to building entire systems? Great. In our interview process, we've got maybe half an hour for this kind of problem. Are you going to build an entire real system for us in half an hour? If so, I definitely want to hire you. But if not (as I suspect), then toy problems are kind of all we've got to see how you interact with a problem.
> The problem here is a mismatch in expectations.
Very much so. You expect the interview to be at the level that you work at, and we don't have time to lay the shared foundation to see how you really operate at that level. If we tried, the interview would be a week, not two hours. We don't have time for that, even if you do.
A less humiliating but still valuable interview (IMHO) is a systems design question. It should still be a whiteboard exercise, but it's a better test of problem solving and engineering skills. I don't seriously begin any system work without first doing the very same thing on a whiteboard myself. It's a useful on the job skill and a useful way to test skills of communication and collaboration in describing the solution.
With respect, if you're putting your employees to work on "crapy little side project's" for a month, either the projects are not crappy and have potentially large impact on the firm, or, you're wasting valuable resources.
As an employee, if the manager is not a skilled communicator, it's not the sort of place I want to work for. As a manager, if the employee is cannot understand business priorities, it's not the sort of employee that I want.
I spend a fair amount of my day job drawing up technical solutions on whiteboards - either helping to analyse a problem, or talking people (often people I've never met before) through my thought process.
For some roles, this kind of skill is absolutely vital. And if that's the role that someone is going for, then you're going to want to know how good they are with it.
It also allows you to see the person's thought process - how do they go about understanding the problem? How do they approach defining the solution? I could be wrong, but I doubt that they'd be looking out for syntax errors on the board - it's far more likely to be communication and structure of thought that they are looking for.
My wife is a teacher. When she goes for jobs, she often has to teach a lesson to a bunch of kids that she's never met before, hasn't got a clue what level they are or what they've already been taught, and with a bunch of observers standing at the back taking notes.
That's not a realistic scenario for the day to day job as a teacher, and doesn't test a fair amount of the other skills that they need. But it allows them to assess whether the candidate can structure a present an engaging lesson.
That doesn't seem entirely unreasonable, and nor does asking someone to talk through a solution on a whiteboard.
Are you talking about this specific case or in general? I've sat in on several interviews where someone's been asked to write something up on a board, and we were definitely not looking for 100% correctness.
>Also when you do whiteboard u look for view of audience and in interview it is not the case
Why not? An interview isn't an exam. It's a chance for both parties to find out if they could, and would want to, work together. I expect them to be two way conversations.
I were being interviewed I'd quite happily say things like "At this point, I'd be looking to put caching in. I've used X for this in the past, but does your company have a prefered solution for it?". When I'm sitting in on interviews it's a positive if someone asks me that kind of question.
>Why would interviewers not ask if the candidate is comfortable with whiteboard or a simple paper based or even a oral?
If you're looking for someone who is good at talking other people through their solution, then you want to see them doing it. I've no idea on what this company was actually looking for, but I wouldn't want a technical lead who couldn't grab a pen and draw up their thinking.
> An interview isn't an exam
That's not everyone's experience. Some interviewers do look for correctness, and an interview can be far more stressful than an exam, especially for people who are desperate for employment or just introverted.
The point is that whatever the whiteboard tests, it's definitely not someone's ability to sit on a computer and write good code all day.
It's more that a lot of companies are looking for much more than someone's ability to simply churn code out these days, and if this place was one of those then it simply sounds like this guy wasn't suitable for that role.
If, on the other hand, the company was actually looking for a coder to be able to write 100% perfect code on a whiteboard, and was planning on marking them down for syntax errors, then he's probably better finding out what sort of company they are during the interview than after accepting a job.
But expecting someone to write compilable code on a whiteboard says more about the interviewer and not the interviewee.
> Had another interview on Skype with another company. Was grilled verbally without actual coding test.
> No way those verbal answers can be delivered unless you have experience, so I basically aced the verbal technical test on Skype. But I don't think I'll get the job anyway because the interviewers all seem like young punks who may not think I would fit their hip/young group.
There is a reason Rosa Parks and not Claudette Colvin [1] was used as the front figure of the bus segregation lawsuit.
Although there is an argument about the merits of whiteboard testing his (apparent) behavior and overall attitude could have contributed as much as his refusal to take the test.
When I interview a candidate I don't ask him bending a knee in front of me. If he felt like that then something went wrong.
I was told the hiring manager was very keen to make me an offer but I have to travel about 4 to 5 hours to their office for onsite final interview.
Yes, it's the team of young punks who interviewed me.
This was a recruiter involved exercise where I was contacted. Did not apply for this position.
And now the whole post: Just an update. There's another Skype interview I had that was successful and I was asked to attend a final interview. I was told the hiring manager was very keen to make me an offer but I have to travel about 4 to 5 hours to their office for onsite final interview. I suppose this could involve white board testing or whatever. They want the interview/meeting this week/thursday, a bit of a rush. I am not so keen on travelling this week, and I expected them not to offer me anything at all in the first place. Yes, it's the team of young punks who interviewed me. I am way too jaded to make a 4 to 5 hours trip just to attend a final whiteboard test. But even then I have to make a move if I do accept this offer. This was a recruiter involved exercise where I was contacted. Did not apply for this position. I asked to confirm the interview agenda, and all the recruiter said was to discuss the offer. The last thing I want is to be bamboozled and surprised by a whiteboard test and wasted my trip there. Even then I am already not too keen on this job due to the need to make a big move.Of course I wouldn't accept any critic on syntactic mistakes or even coding style, but I could explain out loud how I construct the initial steps of a program.
I would also let explicit comments like "//google a solution for that" or "//find a library that does this"
Uncooperative and argumentative. I'd _really_ want someone like this on my team...
It was not a good match and I don't regret it at all.
Edit: This was for an internship and they either were not honest in their phone call or there was some "implicit" things that I didn't get.
It seems like the OP is insistent on his own way of being evaluated, but hasn't informed these interviewers or recruiters ahead of time, or even try to discuss it (hence a communication problem):
> I just packed up and left. Didn't even bother to further explain why I refuse the whiteboard interview or tell them why their process is flawed.
Additionally, the OP seems to have an egotistic and judgmental temperament (hence an attitude problem):
> No way those verbal answers can be delivered unless you have experience, so I basically aced the verbal technical test on Skype.
> ... the interviewers all seem like young punks who may not think I would fit their hip/young group.
Given the above, I think it's unfair to use this particular anecdote fuel against the tech recruitment system (although I agree it is flawed), because those companies might have complied with OP's desires had he communicated them or handled the situation with a better attitude.
However, I would like to point out 2 things:
1. You should have known it was going to be a whiteboard WELL in advance of the actual interview. You could have asked the recruiter how you'd be evaluated. In the actual interview is NOT the place to refuse a whiteboard. You should have talked to the recruiter and told him/her that you wouldn't do a whiteboard evaluation. Instead you chose to waste everyone's time. So, you're kind of a dick for that.
2. "because the interviewers all seem like young punks" - yeah maybe the issue is your attitude. Just sayin. Again, you sound like you're kind of a dick.
When you apply for a retail job, they'll ask you a question such as "how would you handle X situation," and you're expected to come up with a plan on the spot. In reality, you'll probably have a manager who will tell you what to do, or you'll at least have a team to discuss it with, but asking questions like this tells you something about a candidate.
The same thing with writing whiteboard code- it tells you something about the candidate. At the bottom line, it tells you whether the candidate can reason and think about code. It also demonstrates how the candidate can communicate their thoughts and questions with others on their team. Honestly I'd rather these skills be tested while I'm writing code, rather them asking some questions like "tell us about a bug you encountered and how you fixed it." I guess it also shows if the candidate has an ego too big to be willing to be interviewed for an hour.
Every live coding interview inevitably comes to a crashing halt when the interviewer wants you to actually run the code, because then it's 10 minutes of chasing syntax errors. (Oh missed a semicolon. Didn't close a string. Oh it's not add()? Must be put(). Oh that wasn't imported. Oh that was misspelled. blah. blah. blah.) Followed by another 10 minutes of sticking in print statements to debug the damn thing because you can't write a unit test, or have a debugger.
It's an equally bullshit setup. No one writes production code on a whiteboard, and no one writes production code with some dude staring over your shoulder commenting every other line about a comma or an indent style or some other trivial thing. Even pair programming isn't supposed to be that, and that's assuming you believe pair programming is useful, which is debatable.[1]
[0] I one time had an interview where the guy actually said, "Isn't it .size() and not .length()?" My response was, "Whatever." [1] I actually don't have an opinion assuming "the navigator" is actually thinking strategically instead of saying bullshit like, "'instead' is spelled with an e-a not an a-e." Well, no shit. That's why it got flagged in the editor.
The fundamental problem is trying to evaluate coding skill in an interview environment. The ability to regurgitate from Cracking the Coding Interview says nothing about whether a candidate can write well-documented, well-tested, maintainable code. It fails even more at determining whether a candidate knows when to write their own stuff vs when to use a library. It fails to determine how well a candidate can learn. All of those things are far more important skills to have.
and... i couldn't care less what they write. What I do care about is how they go about the task. how do they approach the problem? do they plan or do they try first and fix it up? Giving the person a whiteboard marker and them being able to turn away from you helps overcome stage-fright.
exact memorization of an algorithm for an interview is worthless in my eyes.
First an on-site talk at the company site, with a general discussion with the candidate about his personality, background and technical experience, as well as a presentation of the company and the people he would be working with. A polite and pleasant talk, to feel each other out while still getting the relevant information.
After the interview is complete, the candidate would be given a couple of sheets of paper with two written tests: (1) A general IQ test. A lot of people seems to find these controversial (ignoring for the moment any legal issues which I believe are overblown), but I find them pretty good at gauging an individual's logic skills. (2) A small number of programming questions targeted to the language/platform/niche that the candidate would be working with. Not too hard or complicated, but merely a filter to quickly assess the candidate's experience. Questions about some common development paradigms, best practices, knowledge of frameworks, stuff like that.
The candidate would get 10-15 minutes for each of the two tests, and can do them any way s/he likes, in any order and with no requirements to complete all the questions (the questions s/he chooses, and choice between speed/thoroughness is itself an indicator about the candidate). S/he would complete the tests in a room alone without pressure or distractions.
After this, the interview process is complete. The candidate goes home and can be assessed from both his presence and statements, and the results from the tests. No confrontation necessary. The candidate gets a chance to look his best during a relaxed and affable conversation. The recruiter is able to easily get a picture of the person's hard qualifications. Any embarrassing slip-ups on the tests are evaluated offline after the candidate has left. Code is, after all, usually not written on a whiteboard in front of a group of people you have never met.
This author should really reconsider their attitude towards getting a job, and be willing to stand up and put the effort towards getting that job.
It's really difficult to access those who can code, I have seen plenty of people who can answer all sorts of technical questions/text book questions and yet they can't code their way out of a paper bag. Just as bad, the ones that can code but are not motivated nor desire to work well with others.
Stay humble!
"All I was interested at that time was to get the hell out of there, not a place I want to work in or the kind of person I want to work with/under."
...and, about a Skype based verbal interview with another company...
"so I basically aced the verbal technical test on Skype. But I don't think I'll get the job anyway because the interviewers all seem like young punks who may not think I would fit their hip/young group."
I suspect that the original author has a specific idea of the kind of context that s/he wants to work in. One hopes that s/he finds a suitable company soon.
"I was told the hiring manager was very keen to make me an offer but I have to travel about 4 to 5 hours to their office for onsite final interview."
"Yes, it's the team of young punks who interviewed me."
"This was a recruiter involved exercise where I was contacted. Did not apply for this position."If the people that interviewed him at a large company were unprofessional when he refused THEIR process, that doesn't mean the company is necessarily bad. He doesn't know.
I've never worked at a company, even a small one, where I thought everyone was competent. He had an opportunity to placate them and give the company a chance but he was so set on trying to tell them why their process was flawed and how his was better (look at my github and code).
Part of working at a large company is being able to be tactful and wade through the bullshit, often times dealing with incompetent people or those that do things differently. Maybe large companies aren't for him. They aren't for me either.
But it's not fair to say the company was run by idiots because they tossed a resume back at him when he refused their process. He obviously lacks tact and knows everything while being insecure at the same time (see young punks statement in thread). We also don't know that the interviewers are running the company as you suggest. If it's a large company, they probably aren't.
^ This may be the only thing a whiteboard test is actually good for.