Are programming interviews effective these days?

  • Thread starter kolleamm
  • Start date
  • #1
387
35

Main Question or Discussion Point

From what I've come to understand is that, in order to get a programming position, you have to be able to answer white board questions. Basically random things such as Fibonacci sequence methods etc...

My question is : is this really the best way to asses whether someone is a good programmer or not?
These questions seem far too diverse and random to have any good meaning.
A person could have 20 years of good programming experience and get stuck on one of these questions and not get the job.

What are your thoughts?
Thanks in advance
 

Answers and Replies

  • #2
rcgldr
Homework Helper
8,701
530
This might be true for a programmer seeking their very first job, but even in that case, usually the questions will be related to the type of work that the potential employee is expected to be doing. A long time ago (1960's, 1970's), some companies did use something similar to programming IQ type tests, but I haven't seen this done since the 1980's. For an experienced programmer, generally the questions will be about the projects the programmer has worked on, and what role the programmer had in the development team (such as being a lead).
 
  • Like
Likes kolleamm
  • #3
11,893
5,550
In the sixties they used to give Aptitude tests to applicants unless you graduated from college recently. At IBM, they started to hire English majors as programmers because so much of programming at the time involved writing specifications and user manuals. IBM found that English majors had pretty good reasoning skills and could write better than the average natural sciences or engineering college graduates.

Later, it became a fad to ask technical questions that only someone versed in the field would know. In one case, I had an interview where I was asked some arcane feature of C++ which I answered and then asked the interviewer if he had read the recent Dr Dobbs journal article on C++ interview questions. He hadn’t, so I shared one with him and he couldn’t answer it but to avoid any embarrassment on his part I said something humorous and then answered it too.

They wanted to hire me but as a project manager and I knew in this company it would be an onerous job. I told them I’d prefer a programming position but they tried to entice me with more money and doing the project manager shot for a year. I knew that wouldn’t work and I just knew they would renege on their promise so I walked away.

Now it seems the questions are quite fanciful where they try to get the interviewee out of his/her comfort zone to see how they’ll react. This guarantees that they'll hire a certain kind of frat boy as I consider this type of interview demeaning.

Another kind of interview is the team interview where you’re invited to have lunch with the team and they pound you with questions so you can’t eat a thing. My strategy here was to ask questions back about the work environment setting up a dialog and getting one person to talk about how it was working for the hiring manager. Some embarrassment resulted but you can tell how well the team works.

On a different team interview, I thought it was odd that each person in round robin fashion asked a question. It turns out everything was carefully scripted with each team member reading the next question in line on their interview script. I didn’t like that interview much as I felt they were too stiff. Basically, you need to be prepared to just say no to the job when the vibes are wrong.

Back to the fanciful questions, you need to develop a sense of out of the box thinking. During the interview, think out loud and ask questions about what you can assume. It’s not expected that you solve the question rather they want to know how you pull the problem apart and develop a solution. Of course, there are always some folks who gloat a bit as you work, providing little guidance and hope you’ll really sweat. However, that gives you a clue of who not to work with once you get hired.

My candidate interview strategy has always been to ask questions based on what’s in the resume provided and to explore what I find. I also encourage a dialog telling them about the work environment and the tools we use and find out what tools they have experience with. It’s always great to hire someone with alternative experience to bring in new ideas for the team to consider.

College students are particularly fun to interview because they don’t always put down important stuff in their resume and you have to tease it out during the interview. In one case, I asked the student if they had any graphics programming experience and they said no but on the resume they had done a gaming project so I’d ask about that and lo and behold they did some graphics there.

My nephew lost a job once because he said he had no C programming experience when he actually did in some college courses. I asked him about it afterward and he said he didn’t feel he knew it well enough. A second interview fixed that issue and he got hired.

Often they feel if they don’t really know something then they won’t say which is a shame since you need to sell yourself and tell the interviewer what they want to hear particularly in how you can help their business.

My apologies for this long winded post. You got me to remembering the poor interviewing practices we now have in the industry.
 
  • Like
Likes chemisttree, scottdave, gleem and 4 others
  • #4
387
35
In the sixties they used to give Aptitude tests to applicants unless you graduated from college recently. At IBM, they started to hire English majors as programmers because so much of programming at the time involved writing specifications and user manuals. IBM found that English majors had pretty good reasoning skills and could write better than the average natural sciences or engineering college graduates.

Later, it became a fad to ask technical questions that only someone versed in the field would know. In one case, I had an interview where I was asked some arcane feature of C++ which I answered and then asked the interviewer if he had read the recent Dr Dobbs journal article on C++ interview questions. He hadn’t, so I shared one with him and he couldn’t answer it but to avoid any embarrassment on his part I said something humorous and then answered it too.

They wanted to hire me but as a project manager and I knew in this company it would be an onerous job. I told them I’d prefer a programming position but they tried to entice me with more money and doing the project manager shot for a year. I knew that wouldn’t work and I just knew they would renege on their promise so I walked away.

Now it seems the questions are quite fanciful where they try to get the interviewee out of his/her comfort zone to see how they’ll react. This guarantees that they'll hire a certain kind of frat boy as I consider this type of interview demeaning.

Another kind of interview is the team interview where you’re invited to have lunch with the team and they pound you with questions so you can’t eat a thing. My strategy here was to ask questions back about the work environment setting up a dialog and getting one person to talk about how it was working for the hiring manager. Some embarrassment resulted but you can tell how well the team works.

On a different team interview, I thought it was odd that each person in round robin fashion asked a question. It turns out everything was carefully scripted with each team member reading the next question in line on their interview script. I didn’t like that interview much as I felt they were too stiff. Basically, you need to be prepared to just say no to the job when the vibes are wrong.

Back to the fanciful questions, you need to develop a sense of out of the box thinking. During the interview, think out loud and ask questions about what you can assume. It’s not expected that you solve the question rather they want to know how you pull the problem apart and develop a solution. Of course, there are always some folks who gloat a bit as you work, providing little guidance and hope you’ll really sweat. However, that gives you a clue of who not to work with once you get hired.

My candidate interview strategy has always been to ask questions based on what’s in the resume provided and to explore what I find. I also encourage a dialog telling them about the work environment and the tools we use and find out what tools they have experience with. It’s always great to hire someone with alternative experience to bring in new ideas for the team to consider.

College students are particularly fun to interview because they don’t always put down important stuff in their resume and you have to tease it out during the interview. In one case, I asked the student if they had any graphics programming experience and they said no but on the resume they had done a gaming project so I’d ask about that and lo and behold they did some graphics there.

My nephew lost a job once because he said he had no C programming experience when he actually did in some college courses. I asked him about it afterward and he said he didn’t feel he knew it well enough. A second interview fixed that issue and he got hired.

Often they feel if they don’t really know something then they won’t say which is a shame since you need to sell yourself and tell the interviewer what they want to hear particularly in how you can help their business.

My apologies for this long winded post. You got me to remembering the poor interviewing practices we now have in the industry.
Not to worry! I really enjoyed reading it.
 
  • Like
Likes Klystron
  • #5
1,582
859
At one company in the late '80s, they gave a battery of on-paper tests to prospective hires. I had already been hired based on interview, as the boss took it for granted that I would pass the tests, but I still had to take the tests. When I took the tests, I was the only one taking them who had already been hired.

The other test-takers, consequently, had more incentive to get a maximally favorable score than I did. I knew that I needed to perform well, but I didn't have an especial incentive to perform off-the-charts well, as that might increase the performance level expected of me, without necessarily bringing about a commensurate increase in compensation.

Some of the the tests were designed to measure reasoning abilities, and others sought to identify psychological characteristics. One of the psych tests asked the respondent to reply with yes, no, or can't answer, and advised resorting to the third option as infrequently as possible.

That test included e.g. 'I like to measure the temperature in various areas of the room', apparently intended to find OCD responders.

Anyway, while we test-takers were on break, clustered around the coffee station, nervously speaking quietly and politely to one another, I said aloud "you know that question where it says 'sometimes I think everyone's out to get me'?" (everyone went silent and waited and looked at me for a moment) -- after a brief pause, I said "well I put 'no' because I didn't want anyone to know that I knew", and everyone laughed -- it broke the tension, and the boss, hearing the laughter, came out of his nearby office, and quietly advised me that he had tests with questions that were a lot harder.
 
Last edited:
  • Like
Likes jedishrfu
  • #6
11,893
5,550
I sure hope you distanced yourself from that boss. He sounds somewhat vindictive. Sometimes there are people in power at your workplace who crack jokes like that, that are veiled threats.
 
  • #7
1,516
617
I think you may be misunderstanding the purpose of the whiteboard exercise. I often ask white board questions that I know are very difficult to answer. We choose our questions primarily because we want to see how you approach the problem, not that you can actually solve it on your feet.
 
  • Like
Likes DaveE, DaveC426913 and kolleamm
  • #8
Born2bwire
Science Advisor
Gold Member
1,779
18
I've found that programming questions are still good at weeding out people with poor skills or not enough experience. We still come across the occasional person that cannot put together a basic algorithm. Beyond that, I've stopped asking programming questions like those. Most applicants are spending huge amounts of time on hard technical skills, particularly now that there are so many resources like LeetCode that have practically every kind of programming question imaginable.

I'm more interested now in a candidate's soft skills because those are becoming more of the limiting factors in team performance. In particular, I want candidates that understand computer science concepts and skills like writing maintainable code. I don't need someone that can come up with an log N algorithm to replace an N-squared. That's not where we are losing time, it's in the time it takes to add features and maintain the code. It's getting very hard to find people that actually take the time to write clean and maintainable code.

That's my viewpoint, but I still see a very heavy reliance on programming questions in interviews. I find it increasingly frustrating because they're still emphasizing them with mid-career candidates.
 
  • Like
Likes sysprog
  • #9
1,582
859
I sure hope you distanced yourself from that boss. He sounds somewhat vindictive. Sometimes there are people in power at your workplace who crack jokes like that, that are veiled threats.
To be fair to him: I was poking fun at the company's approved tests for candidate mental aptitude and attitude measurement, and he was merely letting me know that he had more demanding tests and could raise the admission bar if he deemed that to be appropriate.
 
  • #10
1,831
203
It's not great, and it shouldn't be the only thing, but I do think it adds some value.
 
  • #11
1,367
61
Are interviews effective in general? Is there a strong correlation between interview performance and job performance?
 
  • Like
Likes harborsparrow
  • #12
Vanadium 50
Staff Emeritus
Science Advisor
Education Advisor
2019 Award
24,801
7,812
Is there a strong correlation between interview performance and job performance?
Given that people who interview poorly don't get jobs, I would say "yes", almost by construction.
 
  • #13
symbolipoint
Homework Helper
Education Advisor
Gold Member
5,999
1,094
Are interviews effective in general? Is there a strong correlation between interview performance and job performance?
Some common human understanding: People exchange information using spoken language communication. The interviewer wants to know if candidate knows what interviewer wants him to know, and in many cases, if candidate has the kind of experience that interviewer is looking for. This works well unless one or more of the participants is lying.

Here is an absolutely fascinating fictional example of a job interview from a movie. The relevant part begins at time 1:10 through the clip:
 
Last edited:
  • Like
Likes harborsparrow
  • #14
rkr
Gold Member
17
15
From what I've come to understand is that, in order to get a programming position, you have to be able to answer white board questions. Basically random things such as Fibonacci sequence methods etc...

My question is : is this really the best way to asses whether someone is a good programmer or not?
These questions seem far too diverse and random to have any good meaning.
A person could have 20 years of good programming experience and get stuck on one of these questions and not get the job.

What are your thoughts?
Thanks in advance
Context: I've hired dozens of programmers and conducted a few hundred technical interviews.

The interview process is definitely imperfect. The way I see it is that there's 3 categories of things: known knowns (A), known unknowns (B), and unknown unknowns (C).

We've definitely had situations where a candidate turns out to be amazing outside the interview setting because of things we did not assess (i.e. C) and we regret not hiring that person, but hiring someone is an expensive bet and it's usually better not to take on that uncertainty.

And in all cases, the set of items in A is much smaller (I say 2 orders of magnitude smaller) than the set of items in B, since there's just a limit to how much you can know about someone with just 10-20 hours of interaction. So even if a candidate turns out to be amazing based on what you've evaluated (in set A), and you hire said person, you'll most often find that there's a lot of issues working with that person that weren't discovered in the interview process (in set B).

I can however say we've almost never regretted rejecting a candidate if we did find a problem with the candidate during the interview process (in set A), so we've almost never had a situation where something in set C was discovered after-the-fact that would've made us change our minds about decision and regret that decision.
 
  • #15
DaveC426913
Gold Member
18,858
2,339
...random things such as Fibonacci sequence methods etc...

My question is : is this really the best way to asses whether someone is a good programmer or not?
It gets them talking. You get insight into their thought processes.

See NewJerseyRunner's post above.
 
  • Like
Likes DaveE
  • #16
harborsparrow
Gold Member
536
108
Well if you're wanting to prepare for this ordeal or rite of passage or whatever it is, there is no better way that this:

https://www.amazon.com/dp/0984782850/?tag=pfamazon01-20&tag=pfamazon01-20

The author, Gayle Laakmann, has said that the important thing is not to be perfect in coding, or even with the algorithm, but to keep working at the problem and showing how you can think about an issue to improve what is there so far.
 
  • #17
Zap
211
69
They still give these tests. I have been asked to take programming aptitude tests and battery exams for a job. So far, the tests have been stupid easy. So, I don't understand what the point of them are. Are they to weed out the mentally handicapped? I don't have a PhD. So, they should at least know I'm not retarded.
 
  • #18
symbolipoint
Homework Helper
Education Advisor
Gold Member
5,999
1,094
...I have been asked to take programming aptitude tests and battery exams for a job. So far, the tests have been stupid easy. So, I don't understand what the point of them are. Are they to weed out the mentally handicapped? ...
So imagine someone passes this or these examinations. Maybe this candidate is competent enough to do the work needed for the job.

Then imagine if someone does not pass this or these "stupid easy" test. This must mean that the candidate is absolutely incompetent for the job.
 
  • #19
1,582
859
They still give these tests. I have been asked to take programming aptitude tests and battery exams for a job. So far, the tests have been stupid easy. So, I don't understand what the point of them are. Are they to weed out the mentally handicapped? I don't have a PhD. So, they should at least know I'm not retarded.
Can you provide any examples of what you think were among the least easy questions on the tests, so that we can have at least some basis for arriving at our own assessments of how easy the tests were?
 
  • Like
Likes symbolipoint
  • #20
Zap
211
69
I only took the CPAB and the Wonderlic test. I'm not exactly sure what those tests are suppose to measure. The Wonderlic is suppose to be similar to an IQ test, but it's really more like a measure of your test taking strategy. It's like a game where you're suppose to beat the clock instead of solve all the problems. If you don't know that ahead of time, you will most likely score low. So, it's easy in that you're suppose to skip all the difficult problems in order to achieve a high score. Maybe, it's suppose to measure your performance under pressure. Idk. I suppose it is an easy way to weed out incompetent people, or those who simply didn't bother to study what it was and weren't prepared for the small time limit.
 
Last edited:
  • #21
symbolipoint
Homework Helper
Education Advisor
Gold Member
5,999
1,094
Looking over the original post again:
you have to be able to answer white board questions. Basically random things such as Fibonacci sequence methods etc...

My question is : is this really the best way to asses whether someone is a good programmer or not?
These questions seem far too diverse and random to have any good meaning.
Did that mean, the questions asked are not about programming or that the questions are either about programming or in an inferred way, or what?
 
  • #22
symbolipoint
Homework Helper
Education Advisor
Gold Member
5,999
1,094
I only took the CPAB and the Wonderlic test. I'm not exactly sure what those tests are suppose to measure. The Wonderlic is suppose to be similar to an IQ test, but it's really more like a measure of your test taking strategy. It's like a game where you're suppose to beat the clock instead of solve all the problems. If you don't know that ahead of time, you will most likely score low. So, it's easy in that you're suppose to skip all the difficult problems in order to achieve a high score. Maybe, it's suppose to measure your performance under pressure. Idk. I suppose it is an easy way to weed out incompetent people, or those who simply didn't bother to study what it was and weren't prepared for the small time limit.
What would be nice is, some members who have had recent interviews for programming jobs, tell us what the assessment questioning was like. Did the assessment questions target programming knowledge or something else?
 
  • #23
Zap
211
69
Wonderlic is not about programming. The CPAB is the computer programming aptitude battery exam, which is actually not about programming, either.
 
  • #24
symbolipoint
Homework Helper
Education Advisor
Gold Member
5,999
1,094
What would be nice is, some members who have had recent interviews for programming jobs, tell us what the assessment questioning was like. Did the assessment questions target programming knowledge or something else?
Wonderlic is not about programming. The CPAB is the computer programming aptitude battery exam, which is actually not about programming, either.
My later posting placement was maybe not the best.

My question quoted above is regarding parts of post #1.

kolleamm said this:
My question is : is this really the best way to asses whether someone is a good programmer or not?
These questions seem far too diverse and random to have any good meaning.
A person could have 20 years of good programming experience and get stuck on one of these questions and not get the job.
My question is hopefully clearer now. I wonder what any forum members who have been given recent job interviews for programmer positions can tell us about the programming knowledge and skills assessments done in their interviews. Company should be able to do an interactive or some kind of precise assessment of the candidate, somehow. Like, "Show me/us what you can do"; or, "Show us that you can do this."
 
  • #25
20
4
I think you may be misunderstanding the purpose of the whiteboard exercise. I often ask white board questions that I know are very difficult to answer. We choose our questions primarily because we want to see how you approach the problem, not that you can actually solve it on your feet.
The author, Gayle Laakmann, has said that the important thing is not to be perfect in coding, or even with the algorithm, but to keep working at the problem and showing how you can think about an issue to improve what is there so far.
100% of the white board (or write code down in a text document) interviews I have done required a compilable answer at the end that was of maximal efficiency. I failed one where I wrote a modular, functioning answer with unit tests because it wasn't the "preferred answer." I failed one where the prompt changed partway through and then didn't have enough time to fire out the answer because I don't memorize algorithms.

Whether or not whiteboard questions *should* be evaluated as you say, they are not. If you want to do well on these tests, in general, memorize the answers to a wide range of questions so you can spit them out as quickly as possible.
 

Related Threads on Are programming interviews effective these days?

Replies
5
Views
3K
  • Last Post
Replies
7
Views
3K
Replies
73
Views
35K
Replies
8
Views
892
Replies
39
Views
12K
Replies
3
Views
2K
  • Last Post
Replies
1
Views
2K
Replies
11
Views
1K
  • Last Post
Replies
1
Views
2K
Top