What is a Software Engineer — Writes code

23. July 2011 Uncategorized 0

We expect a lot when we interview people for open developer positions.  We want to find someone who is interested in coding, constantly learning and reasonably up-to-date on technology.  However, we also know that interviews are a stressful experience, and developers aren’t always the most sociable people.  As a result we try to ease into our technical questions.  

In fact, if you were to interview for a C# position, you’d most likely be asked to take this pseudo code and convert it into C#:

for x = 1 to 100 skip 5

Some of the (real) answers we’ve received are:

for (int i = 1, 100)
for (int i = 1; i < 100; i++)
"I use intellisense for that"

Very, very few people (in fact, I’ve yet to see one in person) have gotten it right on the first try.  Usually the thing that trips most people up is the “Skip 5”.  It’s as simple as having a i += 5 as the last argument.

What makes this even more interesting is the number of resumes we get that have C#, VB.NET and VB6 on their resume, yet a lot of them have a hard time understanding the syntax of the “pseudo” code – which is really just a VB6 for loop.

These days it’s easy to be “in the know” about latest technologies, coding practices, and development theory.  All you really need to do is follow someone like Scott Hansleman on Twitter, or set up a good RSS feed, or even just have a couple link aggregation blogs.  Each day you’ll get more blog posts and information than you know how to deal with.

What’s not always so easy is to take that information and actually write code using your new found information.  For example, I read a few posts a day on JavaScript.  I’ve written maybe a grand total of 25-30 lines of JavaScript code.  All the JavaScript I’ve written has been almost spoon-fed to me by my rock-star JavaScript guy. I’m fascinated by JavaScript, that’s why I read it.  However, I’m not a JavaScript developer because I don’t write JavaScript.

It may seem silly to say that a Software Engineer is someone who writes code.  But there are a lot of developers who read about code, talk about code, blog about code and yet when pressed don’t write code.

You would not expect someone to call himself a plumber if he had never done any plumbing, but could recite your local ordinances on plumbing.  You should not expect someone to call themselves a software engineer if he never writes code.