The mark of a great programmer is well-written code, but it’s not always easy to showcase the quality of your work. As a contract programmer, I’ve started to bring printed examples of my code to interviews. I make sure that I know every line of whatever I bring and can explain what it does. I have a bachelor’s degree in computer science (from 1981), but being able to show that I write good code is much more effective for landing the job.
Bringing code to the interview isn’t a new idea. For the last few years, Web developers — particularly in PHP — have been using sample work to get hired. The strategy works really well for newer technologies that aren’t yet mainstream, since they can be hard to show proficiency in (there aren’t many certifications and such that you can get). In cases where there’s a shortage of skilled developers, showing well-written code may let you bypass “lesser” job requirements that you may not meet – such as having a CS degree. Even now, programmers in PHP can get jobs based solely on their experience and programming ability. Ironically, it’s much harder to do as an ASP.NET/ASP.NET MVC developer, despite ASP.NET being newer than PHP.
Why doesn’t the strategy hold true for ASP.NET? There’s not as much competition for workers. In cases like that, you’ll face credentialism at its worst: Too many applicants need winnowing down before the interview stage and cutting those without a degree is a fast way to reduce the stack of resumes. You’d think that someone who has 10 years of experience without a degree would be more qualified for a job than a graduate with just a year or two, but for many jobs not having a degree listed on your CV dooms it to the waste bin, regardless of what is on it. It’s certainly not always the best candidates that get to interviews.
In the interview for my current contract, I took along a two-page listing of a database registry class. It was neatly laid out, had comments for each method and extra comments to explain tricky parts. I was quite proud of that code and got offered the contract two hours after the interview. Of course contract interviews tend to be easier than permanent interviews. There are more factors when you interview for permanent positions, such as how good a fit you are with the team. A contract programmer really just has to show competency.
If you’re just starting out or changing careers, your track record is short, so it’s harder to show off your technical abilities. In that case, write lots of code and learn how to write good code. Learning from a book is OK, though MOOCS are better since you’ll need to write code to get through them.
Writing Good Code
There are lots of books written on this, so a few lines here won’t scratch the surface. But if there’s one thing I’d focus on, it’s this: Can another programmer come along and pick up your code and understand it? That’s a great start to good code.
A good way to demonstrate that you know a language is to show the type of code you’d use to learn it. Over my career I’ve had to program in about a dozen languages and the best way I’ve found to learn them is to write something non-trivial, maybe a small utility or a simple text game. You want something that needs to use strings, text files, objects and data I/O.
Here’s an example of the type of problem that would work well for this: Take a template file (in HTML) and a list of 1,800 towns and villages in the UK and generate 1,800 HTML files ready to upload to a Web server (one for each town).
The problem here goes far beyond reading text files. You must consider how to hold the text in memory so it can be processed line by line. Also, how easy is it to do text substitution or deal with capitalization? (A town name is lowercase in HTML links — such as dakota.html — but should be capitalized elsewhere.) How do you read in the template definitions and hold them in memory? What sort of data structures do you use? How do you deal with errors? What happens if the template file is open or being edited? Or if the disk becomes full when writing?
It’s a nice practical problem, the kind that goes down well at interviews. Showing that you considered error handling will stand you in good stead.
Publishing a blog with code examples can be another way to get your credentials out there. Recruitment agents and companies scour the Web looking for people who are good at coding. A blog with code examples, particularly one focused on harder technical matters, can be a way to attract the attention you want, though it’s definitely more of a long-term strategy.
When it comes down to it, employers want to know that you can fill their need. So if they’re looking for a developer, showing them that you can write good code is quite convincing. And putting well-written code out there, whether by handing it to a hiring manager or publishing it on the Web, is the best way to do that.