programming

Horrible interview questions and the geeks who love them

Posted in programming on May 22nd, 2010 by irv – Be the first to comment

A while ago my boss and I had a discussion about how to interview candidates for a programming job. Not being a programmer himself, the boss wanted me to supply some good questions that would show depth of programming knowledge, especially Ruby on Rails, which is what our site (http://trailmeme.com – tried it yet?) is built in. I think he was a bit surprised that I had very little interest in asking those kinds of questions. Once I explained myself, he was willing to trust my judgment (which is a nice thing to have in a boss). But he isn’t the first person to find my approach to interviewing candidates to be different from the norm. This tells me that the rest of the world is doing it wrong and there is need for me to explain some basic principles for the benefit of all those less enlightened than myself (for those who are humor impaired, just ignore the completely insincere self-aggrandizement in the previous sentence and move on).

I remember being interviewed for a position once where the interviewer asked questions straight out of What Color is Your Whatever that Silly Book Was? One of the questions was, “What would you say is your greatest weakness?” I decided this would be a bad time to mention my disrespect for people who ask questions like that. Instead, I made up a line about not thinking in terms of weakness, instead playing to my strengths. He liked that answer but didn’t hire me anyway. Maybe he thought I was trying to hide a deep disrespect for authority. More likely he found someone he could get for less money.

Anyway, this is lesson one: Don’t ask questions that encourage people to be less than completely forthcoming or honest. Sometimes that may be hard to avoid. “Why is there a 2 year gap in your education?” If the answer is, “I was on trial for murdering a professor but got off because he deserved it,” it is very unlikely the interviewee will actually explain this. On the other hand, who cares about a gap in education, or even in employment? You can read a lot of programming stuff while waiting for the jury to bring back a verdict.
read more »

Language In, Language Out

Posted in programming on January 22nd, 2010 by irv – Be the first to comment

I learned an interesting lesson at my job today.

Our team recently gained a member who is trained in user experience stuff, actual testing and measuring it, not just eyeballing it like me. During a couple meetings lately, we’ve discussed the language used on the web site. We’ve changed the terminology a couple times during the course of development as we thought of new implications and also as we struggled to describe the technology in ways that people who are new to it can understand. When you’ve been working on a project for a couple years, learning how to talk about it to people who are brand new to it can be a challenge.

What do you mean you don’t understand what a child node is? It’s a node directly linked by a default or alternate path from a parent! (Note: Never end this type of sentence with words like “dummy,” “idiot,” “moron” or anything similar. For some reason it doesn’t go over well.) (See here for a partial explanation of child node)

One result of the changes in terminology is that the web site is inconsistent. Sometimes it uses one term, sometimes an older one that is no longer approved. This might be because we forgot to change it or it might be because someone was writing stuff and forgot that we had changed the term. An attentive reader might be thinking, “Ah! So you learned you should thoroughly edit everything when you make changes, maybe even have copy written by a professional who will be focused on the words and not think of them as a distraction from the real job of hacking code!” This would be wrong. Nice try though.
read more »

Better Living Through Happy Code

Posted in programming on September 16th, 2009 by irv – 3 Comments

In my current employment I’m a website programmer. And a technology researcher and system administrator and probably a couple other things. But that’s not important right now. It’s the programming stuff that matters tonight. I have a big deadline coming up in a couple days and I’ve been putting in some extra hours and I’ve had something of an epiphany. It’s probably nothing new to other programmers but it is to me.

We need more comment labels.

It’s like this: Programmer’s make notes in the code we write. They’re called comments. There are certain commonly accepted prefixes that can start a comment – so commonly accepted that certain IDEs (for people who don’t know what that means, think of it as a window you type programs into) recognize them. Some IDEs will apply special highlighting to the labels so they are easy to see. This makes it simple to look at a file and find places where improvements need to be made.

The most common of these labels are TODO and FIXME. Here’s an example from one of my current projects:

#TODO: Move this function to the observer

For the record, I use TODO  a lot more often than FIXME. It would be nice to never use FIXME but sometimes there are other considerations than making every piece of code perfect. Like lunch. Or the demo that’s coming up in 15 minutes and the code had better be working (even if it’s not very pretty).
read more »