I don’t have anything against developers. What drives me up a wall are people who think they’re developers because they can drag and drop controls in Visual Studio or Dreamweaver.
If you’re not a geek yourself, though, it’s hard to figure out who’s full of knowledge and who’s full of crap. So here you go – my 10-question evaluation:
- How do you write your code? If the answer is “I don’t write it. Visual Studio/Dreamweaver/whatever writes it for me”, give them a copy of Textmate or similar and ask them to come back in 5 years.
- How do you secure your code? “I have a password on my laptop” is bad. “I filter out illegal characters” or “Here’s how SQL injection works…” are good.
- What languages do you program? “HTML” = FAIL. HTML is all well and good but it’s not what you need to develop web applications. “COBOL” might be cause for alarm, too.
- What databases do you use? “MS Access” is like screaming “I am an amateur”. “MYSQL”, “SQL Server” and/or “Oracle” are all fine.
- How do you improve site performance? “Add more servers” is a BAD ANSWER. “Find bottlenecks”, “Reduce database calls”, “Use caching”, “GZIP” and a variety of others are just great.
- What frameworks do you use? If they answer “frameworks?” or hesitate more than 10 seconds, forget it. If they look at you like an insect and say “frameworks are for wimps”, that’s probably OK. If they rattle off a bunch of weird sounding things like Cake, Rails, Grails or who-knows-what-else, that’s OK, too.
- What’s your experience? If the answer is “I have a computer science degree” KICK THEM THE HELL OUT. With the pace of technological change these days, by the time they had their degree in their sweaty little hands, it was worthless. Any self-respecting geek would’ve written some bit of code during their college years, or since then.
- How do you learn new programming languages and such? “I take a class” is bad. If they answer “I research it online, play around with it and try some stuff.”, hug them.
- How do you work with non-developers, like designers? “I think they have a lot to offer” is code for “I will ignore them like the pests that they are”. “I try to provide some input during design” or “I need their help if there’s something in their design that I can’t implement” are both great.
- What was the worst project you ever worked on? If the answer is a long litany of complaints about everyone on the team but her, this person will be a disaster. If they take even a smidgen of blame or responsibility, you can probably make it work.
Bonus: Ask them how they make an HTML title tag dynamic. If they can’t figure it out, they are incompetent.
By the way, all of the ‘bad’ answers are from real-world interviews.
Pseudo-developers, heed my words: We will find you. You cannot hide.