As I’ve been writing “The Hiring Handbook”, I’ve also been reading a ton of blog posts and things about recruiting and hiring developers.

Some make me mad,[1] some are good, but all have helped me distill my thoughts on this to one simple core belief that everything I’m writing about centers around.

This belief is as follows:

Being a developer is not about how talented you are. Development is not some born-with skill, but rather a set of skills acquired through practice.

Like a tradesman - a plumber, carpenter, electrician or the like - the only way you learn to be or grow as a developer is through practice.

Code is craftsmanship and pragmatism. It’s about knowing when to say, “It ain’t a piano,”[2] and walking away or when to bang your head against the wall of a tough problem.

It’s about knowing which questions to ask and where to find the answers.

That’s the core of being a good developer. It’s not algorithms, or whiteboards, or CS degrees or anything else.

A developer is not a collection of talent, but rather a vessel of learning. A developer’s “talent” is the ability to see patterns in their work and to constantly improve that work.

It’s not knowledge, because that will be gained along the way.

It’s curiosity, a willingness to learn and work ethic.

And that’s what I hire for and the core of what I’m writing about.

Comments available on Hacker News

  1. Why that particular article made me mad is a post to come later. The short version: Everything before the last point is bullshit that shouldn’t be done … And that point is not good enough.  ↩

  2. I’m not sure where I picked up this idiom related to carpentry, but essentially, it’s about knowing which details to concentrate on and which to ignore.  ↩