Ask HN: How to identify promising entry-level coders?
I've seen some discussion here about how few opportunities there are for entry-level coders. From a hiring perspective, it makes sense: how do you know if someone will do well unless they have a record of doing well?
I'm curious: if you had a small budget to hire a completely inexperienced coder, and the freedom to train them a bit and give them time to study, how would you identify good candidates? What kinds of tasks might you give them where they could become useful in the first month or two?
I'm not talking about CS grads, but someone who's genuinely never coded but is smart and wants to learn.
22 comments
[ 5.9 ms ] story [ 65.6 ms ] threadI think the ideal candidate will have broad interests and experience, be passionate about achieving excellence/mastery in their interests, and show some aptitude at logical thinking.
Ask them what they like to do. If they can talk intelligently about half a dozen hobbies and show that they've achieved excellence (or at least intently pursued it) in those fields, then they'll probably be able (and willing) to do the same thing with programming. If they like to watch TV and play video games to the exclusion of all creative output, then they probably are of no use to you.
Ask for references. Talk to the references and ask about what the candidate has done to impress them. If the reference says they're a good kid and will do well, that's not much use. If the reference says they once single-handedly cooked a meal for 150 people in one day, then it probably doesn't matter that they don't know anything about coding yet. They obviously know how to dedicate themselves to a task.
Disclaimer: I have never been in a position to hire anyone.
Give people small tasks, but with only general goals and leeway for initiative. See what they do. The goal-oriented people will get things accomplished. They may not be exactly the things you pictured, but if they are smart, you will find the result useful from some perspective. Hire those people, especially if they already share your perspective.
The problem with references, is often you don't know what end of the spectrum the referrer is on. Maybe they value lackeys that fulfill the letter of the request. Smart goal-oriented people who see things your way are much better to delegate to, IMO.
Not that I've not found people who could not draw flow charts at all to later turn out to be solid assets, but poor flow charters have almost always turned out to be 'duds'.
(Do I need to rephrase the above paragraph or what?)
My personal philosophy is to hire "aggressive learners." This is type of person who will get visibly agitated when you do something for them without explaining what you're doing. Or will spend hours teaching themselves a skill so that can be more independent. That type of personality seems to learn quickly, adapt easily to new challenges and will welcome change.
The latter is quite valuable, and less common than many think. (To listen really well, you need to be constantly seeking what you don't even know that you don't know.)
also not afraid to ask questions and challenge things
In a constructive way, if possible.
Same for PG's essays. HN is a chance to grasp great hacker/entrepreneur ideals that I can tune myself to while off of HN.
And I would even say it matters as much as native talent.
Then what's the difference between being 5 and being 20?
Seems very elitist to eliminate people based on the fact that they simply haven't been exposed to a field.
The topic outlines the person in question is interviewing for a coding job.
If you come into an office looking for a coding job, but have never attempted to program before, you have not shown any level of commitment to the job of being a coder.
What do you identify with programming potential outside of a hiring context? I've been working with my friends to get them programming (it's the single most valuable skill a person can have in this age). I know that I can help them most by identifying their positive traits (and just pointing these out can reinforce those traits). So what do you think I should look for and "amplify"?
I know several people that got into programming, hated it, but stayed involved anyway solely for the money -- They rarely like their jobs.
With that out of the way, I think the two most important traits are curiousity and good problem solving skills.
Make them write a simple project and come back in 2 weeks and present it to you. That will tell you everything you need to know.
Actually, it often takes experienced coders several weeks to become truly useful to a team. I've heard a consulting manager say that only after 6 months do they charge the full amount for their people.
The test was given to students before the first bit of instruction in computer science (and for the sake of simplicity, let's assume it controlled for those with previous experience). Basically, students were given a problem set of code snippets in a non-existent language, and were asked to write what the code evaluated to, i.e. 34 @@ 14 --> [2], followed by possible answers.
It turned out that the students who performed well in their subsequent CS courses were not those who got the right answers, or those who got the wrong answers, but those who answered consistently. The best single predictor of a good student of CS (not strictly equivalent to a programmer in a startup...) was forming a consistent model of what they were looking at, and sticking with it.