I have written before that I have to interview incoming developer candidates. It is not my favorite part of my job. Sure, I love geeking out with other developers, but that happens so rarely. It’s embarrassing, really. I didn’t make this up on my own. There’s plenty of other people out there who do this.
Why A Code Sample?
Because just having one tells us a lot about you. No, we do not expect you to go home and spend 6 – 8 hours programming. But do you do anything at all outside of work? Do you ever contribute to open source projects? Did you ever write a little program to teach yourself something new? Me? I’m a geek. (We’ve clearly established this.) I maintain my own public & shared NuGet repositories, and my code is freely available on GitHub.
But that’s not for everyone. That’s OK; do what you do. But do something! This is partly what Stephen Covey would call Sharpening the Saw. What do you do to keep your skills fresh and up-to-date? How do you learn? What are you working on? If you want to succeed in today’s development world, you need to be tinkering. With something. Anything. And while you’re at it, check your code into a public code repository. I doesn’t even cost anything to share your ideas.
What Are The Rules?
They’re fairly straightforward. Send us something you’ve done that demonstrates your ability as a software developer. It can be big or little, just make sure that you have permission to send it. It should not be proprietary software that belongs to a previous employer. It’s probably not
What Are We Looking For In A Code Sample?
Honestly, not much. It can be anything. If it’s a language I can read, I’ll take it. Sure, I’d prefer it to be in C#.NET, since that’s what we’re hiring you to do, but I’ll accept Python, Ruby, VB, JavaScript, etc. For what it’s worth, I’d even accept MatLab.
Isn’t This Supposed To Be A Horror Story?
Yes. Yes, it is.
Some people have outstanding resumes and absolutely no code sample at all. It happens, and we might still interview you. In fact, if you can talk the talk well enough, you might not even need a code sample. That, in fact, is a better option than sending us an absolutely terrible code sample. I got to see one today: 1 class, 4 methods (Create, Fetch, Update, List All), 19 pages when printed. No concept of DRY. Validating each property in sequence with a lovely series of if statements. And, of course, they’re all copy/paste duplicated for create and update options. Just absolutely horrible, monstrous code.
Or, this is the email I sent my boss this morning.
When you compare nothing to nothing, there’s not much there to work with. This, however, is the difference between going on a blind date and knowing up front that the other person is ugly.
Don’t get me wrong. I will freely admit to having had written programs that look like that. You know, back before I knew what I was doing. Before I had a clue about LoB software development.
Despite my complaints, I must interview the candidate anyway, and this does not make me happy.