share
Stack OverflowHow to Find that Rock Star Junior Developer?
[+36] [21] SkunkSpinner
[2008-09-12 01:29:38]
[ interview-questions ]
[ http://stackoverflow.com/questions/58107] [DELETED]

It's a fairly straight-forward process to interview a veteran programmer with 10+ years of programming experience. On the other hand, sometimes you just need a really talented junior developer. What do you look for--and how do you interview to find that "diamond in the rough," especially when the applicant is fresh out of college with a very light resume?

[+33] [2008-09-12 08:17:29] Christopher Mahan [ACCEPTED]

Internship

Offer a 3 months paid internship. A paid internship that pays 80K/year (adjust up for area cost of living). (remember, you get what you pay for).

Assign them a major project, and assign them to help other teams for short periods. You'll get the feel of the candidate.

If it doesn't work out, terminate the internship.

If it does work out, offer them a job. If they don't want it, no hard feeling, thank them, and write them a rock-solid recommendation letter. They will thank you dearly, not to mention call you eventually when they're tired of doing crap for corps.

From what I understand, that's how Joel does it. (dunno about the recommendation letter, but I assume that much from Joel).

Buzz

Ultimately, the reason you have to cold-interview people for position is because you haven't created enough buzz about working in your shop, haven't made enough contacts out in programmerland, and are not leveraging your own coworkers' non-work networks.

Work with your local university and the IT/IS faculty. Have a presence at meet-the-firms. Do stuff with student IT associations. Sponsor extra-credit projects. You'll get to know the smart students. And you'll be able to cherrypick the top of the class.

Your Company

The flip side of the coin is that your company may not be such a great place to work. You need to make sure that always-connected always-moving genYers feel comfortable in your environment. The sit-in-a-cube-and-grind might pay the bills but probably can't get 23 years old Joe excited enough about your place to tell his IS457 buddies about sending in their resumes.

Do you pass the Joel Test(1)? Is your management really "Get them the tools, access, and information they need and get the hell out of the way" or does it want to manage through process and weekly one-on-one meetings? Rock stars are like air-to-air missiles: bring them close to the target, then fire and forget, watch the fireworks, and check items off the todo-list.

No? You might want to fix that before you go trying to hire the best and brightest. It would be sad for you to actually get a highly motivated, highly competent, fired-up "great hacker" only to demoralize and shackle him within 6 months and watch him leave, his eyes set on new horizons.

Skillz

By the way, age matters not. A 23 years old can have 10 years programming experience. And he might know more about Ruby on Rails, Linux, PHP, and web development in general than 2/3 of your staff, especially those who collect the hefty salary thanks to years of service and lofty seniority-generated titles. I say this as a 23+16yo.

Instead, manage him expertly, then watch him bloom into a powerhouse. Let him keep challenging himself.

Productivity

See http://www.redmonk.com/cote/2007/02/19/gaming-your-context-or-methodology-by-constraints/ for more in that vein (including the comments) Note that I am quoted in the main body, but the original reference is broken-linked (sobrady, fix it?) and I don't recall the exact context. (update: orig ref at http://redmonk.com/anne/2007/02/17/links-for-2007-02-17/">archive.org [1])

See also: http://www.devtopics.com/programmer-productivity-the-tenfinity-factor/ on programmer productivity.

So, if you do get that young rock-star programmer, odds are he won't stick around unless management makes a great effort to accommodate him.

Finally, to quote someone we all know:

"A great lathe operator commands several times the wage of an average lathe operator, but a great writer of software code is worth 10,000 times the price of an average software writer." -- Bill Gates

Footnotes

1) (I don't have to link I hope)

[1] http://www.redmonk.com/cote/2007/02/19/gaming-your-context-or-methodology-by-constraints/

You should link to the "Joel Test". If it were a given everywhere then you wouldn't even have to ask. - Wedge
What's the focus on educational goals of the intern? Is that even a priority in the "Joel Test" or do we just blindly follow what he says? - community_owned
It's not an intern in the normal sense of the word. A normal intern is not paid, but cannot materially contribute to the success of the compaNY (thus is not able to make a useful contribution). In this case, you treat the person like a contractor, but with an eye on keeping that person long-term. - Christopher Mahan
1
[+23] [2008-09-12 01:32:57] Adam Pierce

Ask them what their hobbies are. You want someone who hacks at home.

See if they have any hobby projects that demonstrate their skill. If they wrote a Web 2.0 app last weekend just for fun then that's probably the applicant you want.


(2) This is not a bad tip, but it has to be taken with a grain of salt. A decent percent of home hacker types are the very ones who will not necessary meld into a team well, follow standards, test well, etc. That is, it can be a hobby to them, not a profession. - Tall Jeff
2
[+11] [2008-09-12 01:42:51] Mark Glorie

Not all of us junior developers have enough time outside of work to develop pet projects (I blame the kids, no one ever blames them!).
Even people who have heard of Jeff, Joel, Scott, Scott etc are better placed than those who just code as a job. These are people who are interested in bettering themselves and are also aware of movements within the programming profession as a whole.


I blame the wife. Great point. :) - John Dunagan
3
[+9] [2008-09-12 01:33:11] jodonnell

Give him/her a good programming problem to do ( other questions [1] have suggested problems to present) in the language of his/her choice, in front of a computer and not at a whiteboard. If he/she handles it well, it's not a stretch that his/her instincts are good and, once trained, he/she will adapt and turn out well.

[1] http://stackoverflow.com/questions/32107/practical-programming-test-in-interview#32129

4
[+6] [2008-09-12 05:28:08] Gishu
  • Ask if they code for fun? By that I mean people who do software not to pay the bills but rather because they love the art/process of building something. Home projects in their free time / Community efforts / etc.
  • Mail them 2 (max 2-3 hour) problems beforehand and ask them to solve any one of them in the programming language of their choice. Ask them to walk you through 'how they went about it' during the interview. (You'll get insights into communication skills, analytical ability, ability to mine info, technical prowess real quick.. highly recommended). Even if they don't get a solution.. the thought process should give you a good idea about the candidate.
  • Ask them 'Do you read?' The interested guys often have ways to read-up / keep learning about technology.. Find out if they make the effort.

first 2/3 - great. All 3 - put a sticker on them "You're hired!" :D


Maybe we're living in different universes. Why do I need to spend 100 hours on some stupid Ruby (Java, JS, Rails, name it) book, if I can pick up basics from examples in an hour and go from there myself? It seems, the only programming books worth reading are the ones drilling into the subject very deeply, and those are only for the professionals in the given area. - Nikita Rybak
@Nikita, I've enjoyed reading programming books more often than not, I don't see why you wouldn't. I think sometimes it's better to spend 100 hours learning from others' experiences so you don't have to spend 1000 hours repeating old mistakes. - gtrak
@gtrak You're flattering modern average-job-level technology. It's not nearly so complicated to require 1000 hours of your life. And it's getting more and more accessible (which is a good thing in itself). Not to mention, I find the whole idea of getting experience from books highly improbable. - Nikita Rybak
You don't get experience from books but you learn from other people's mistakes - (the other option is to make those mistakes yourself and then learn). Just-In-Time learning works to a certain extent but too many JITters can prove dangerous in the long run. - Gishu
... Especially when a code-snippet from the internet results in an unexpected "outage". To quote someone 'You really can't use something that you do not understand.' - Gishu
(1) @Nikita, I'll give you an example, I have a much deeper understanding of OOP complexity issues due to reading "Design Patterns", "Effective C++", "Refactoring," and "Effective Java" than I would have had spending the same amount of time coding. I was coming into it as a totally inexperienced coder. I really appreciate them, and those books among others were thoroughly enjoyable due to their conceptual weight. The best ones challenge you to think about what you're doing in new ways, and I think most SO guys would agree with me on this. I always prefer spending less time to get the same result. - gtrak
5
[+4] [2008-09-12 06:50:37] Nathan Smith

Always ask for a sample of their favorite code before they come to the interview. I find how a person writes his/her code to be highly revealing about their programming personality and whether they will fit into our team's style.

Things I look for when evaluating the code:

  1. How they name their methods and variables.
  2. Do methods have a single responsibility or do you write god methods.
  3. Is there any exception handling and at what level.
  4. What is the code trying to accomplish. Is it interesting?
  5. Assess the overall elegance of the code.

If they get an interview - and believe me this will weed out the majority of candidates - I will ask them to justify coding decisions. At this point the programmers we want on our team will give passionate and animated responses.

Open source development experience is a bonus but anyone doing that will pass the code review stage anyway.


6
[+4] [2008-09-12 02:36:03] Josh Segall

Asking about their personal side projects is great, but I also like to ask:

"What do you think is the most interesting thing happening in computer science right now?"

Substitute CS with programming/technology/your company's specific area if you like. Even if they aren't doing anything amazing in side projects, you can tell how well they are following the industry or theory in a broad sense.

You can tell a lot by:

  1. What they choose to talk about
  2. How passionate they are about it (you're asking about their interests, so they better get excited talking about it!)
  3. How they keep up to date on that issue (I prefer this way of leading into what blogs, sites, magazines to read to stay current).
  4. Whether they're dying to tell you 2 or 3 other topics they think are fascinating

7
[+3] [2008-09-12 03:32:08] icelava

This is related to thread " Identifying passionate programmers [1]".

[1] http://stackoverflow.com/questions/3247/identifying-passionate-programmers#30667

8
[+3] [2008-09-12 01:33:45] Ashley Henderson

They just need to show passion and an obvious interest in software development.

I think Jeffs article Who needs talent when you have intensity? [1] captures this well.

[1] http://www.codinghorror.com/blog/archives/000187.html

I disagree (but didn't downvote). I've met passionate interested people who are terrible at their jobs. - Kristopher Johnson
me too. I've seen people dying to do something, but don't know how to, or don't want to work too hard. - jrharshath
9
[+3] [2008-09-12 01:35:36] Blorgbeard

If they're that much of a rockstar, they should have some projects to show you, "real" experience or not.

Ask them about their personal coding projects. They should be enthusiastic. Ask to see some code they're proud of, get them to go through it with you.


10
[+3] [2008-09-12 01:41:37] Jason Baker

This is a subject I have absolutely no experience with. But I thought I should show up and post the obligatory Joel on Software [1] blog post.

[1] http://www.joelonsoftware.com/articles/GuerrillaInterviewing3.html

11
[+2] [2008-09-12 01:44:41] Flory

Give them code that they should struggle with and see how they ponder through it. It is the questions they ask and don't ask that tell you a lot. They want to know the answer far more than they want the job, or at least it appears that way.

In an interview we give out a rather confusing T-SQL stored procedure. Not so much to see what they know about SP's but to have them traverse logic they are probably not as familiar with. In this case the SP seemed almost pointless unless you understood it in context.

I always asked what their response would be if I gave them that code to work on (after they were done or gave up). One guy said "What the f*** is this." That really appealed to me for some reason so I hired him. He was/is exactly what I wanted.

I am not sure this would work for everyone but I tell you the thing is when you find one you know it. After numerous interviews it is a breath of fresh air.


12
[+1] [2008-09-12 01:34:31] Cody Brocious

Look for open source experience and look at the quality of his contributions. In addition, look at the longevity of his contributions -- that is, has he stuck with a project for 6+ months? Asking him to solve a few problems in the language of his choice is also a good way of seeing how he thinks. The difficult part is determining how good a worker he is, rather than how good a programmer. Looking at his open source contributions gives you an idea of his dedication, but perhaps talking to the other developers can help out with his teamwork aspects.

Hope this helps.


13
[+1] [2008-09-12 02:32:45] GeoffBurns

The best way is if you already know them from before the interview e.g. from a user group or special interest group.


14
[+1] [2008-09-12 06:42:31] Jim Puls

Ask for their opinions on topics germane to the job description. Don't just stick to questions about code or algorithms or data structures. Ask them how they feel about Ruby on Rails and why they like it better than .NET or vice versa.

Bring up all of the buzzwords listed on their résumés; if a candidate can clearly articulate why one is better than another, then you've got somebody who isn't just a robot programmer.


15
[+1] [2009-06-23 06:18:33] Overflown

As an undergraduate myself, I think that you should focus on YOUR performance in the interview. Believe it or not, we can see through BS or an unprepared, disinterested interviewer - and hold it against the company. You can't dramatically change the corporate culture, but you can compete with a good work environment.


16
[0] [2008-09-17 08:20:45] Jonathan

In my experience, rock stars don't have light resumes. They have to learn somehow.


17
[0] [2008-09-23 15:21:03] community_owned

If you are an open-source company... it's easy [1]!

[1] http://www.appcelerant.com/effects-of-open-source-on-recruiting.html

18
[0] [2008-09-12 03:02:24] Jon Limjap

Spot on [1] Adam!

In my experience most of the Jr. Rockstars are kids who actually have side projects: maintains a website here and there, programs games, the likes. They don't need to be able to know how to build their own OS or compiler (that's so 80s), but that would be a plus.

[1] http://stackoverflow.com/questions/58107/how-to-find-that-rock-star-junior-developer#58114

19
[0] [2008-09-12 02:20:54] GeoffBurns

I test on code comprehension. I use the same standard piece of code that I use to torture all potential developer hires. This allows me to compare and contrast. It is amazing how experience does not necessary determine whether they pass or fail.

If you or the other stakeholders in the are impatient this limits the high of the bar you can set. The more people you put though the process the more dimensions you can test on. If HR gives you 4 people to interview you can only test on about one and a half dimensions and bar of the minimum you are willing the put up with.


20
[-2] [2008-09-12 04:35:30] Christopher

Why treat them any different than the 10+ programmers? I can do things on 4+ years that a lot of the veterans can't (faster, that's key) so ask me interview questions like I had a 1000+ years.


21