Write me an app on paper…

Saw this on Rob Rohans blog. I have to say, I 100% agree with his outrage (irritation? Anger? annoyance?).

Yes, interviewing a coder is hard because the proof is in the puddin’ but the solution isn’t to ask them to write an app on paper, whiteboard, napkin, etc. It’s to learn about the person, are they a fit? Code is code, if you hire some one who sucks, let them go. The bigger issue in hiring, is finding the fit, the personality.

Ok, so this posting is a bit over the top, but when I was last looking for a job almost every single place had me write code either on the whiteboard, or on a piece of paper. Often times I refused to do it because I didn’t see the point in it, and when I asked what they were testing me on they often said something like, “to see if you can code.” If that were true, then the experiment is flawed from the get go. I rarely use a pen anymore, let alone write code on anything but a keyboard.

I’ve been there, recently. After doing the exercise, and hanging up the phone I went to my computer and worked up the code I had just written. The IDE helped me see a few things I had wrong, a function name here, using a cast instead of tostring(), etc. minor things, things I’m sure I was penalized for, but would have never been an issue because in the real world I’d have run it, seen the app not work and fixed my code, simple as that and the real programmers do it.

After that I decided to do what Rob did, I won’t be answering those questions any more. I’ve been coding a long time, talk to my peers, co-workers, past clients. I don’t code on a whiteboard at home (My Office) what would it show the potential employer besides my bad penmenship and penchant for getting dry erase marker all over me? I have tons of books, Amazon loves me, I can barely remember my cel phone number, I’m not even bothering to remember every function and param in Flex, CF, or any other language.

I’ve been on both sides of lots of interviews, I’ve never asked to see code, or have code written in front of me, I don’t care. A new hire will sink or swim, same as any job, if they can’t code they get let go. Simple. I’ve always been much more worried about whether I could sit next to some one without wanting to throttle them.

15 thoughts on “Write me an app on paper…

  1. Peter Bell

    Asking someone to code on a whiteboard doesn't make much sense (well actually, if you allow pseudo-code then I guess it is OK to see generally how they'd approach solving a problem at a "close to code" level without working about syntax, typing (as in static -not as in using a keyboard), etc.

    That said, when I hire someone as a programmer, while cultural fit is important, I also need to know they can code and like to give medium challenging business realistic coding challenges where I give every applicant an hour and a computer with Internet access and a problem to solve. I give them design criteria upfront and then we do a code review at the end of the hour.

    I don't really care if the code works, and I'm even pretty open to how they approached and wrote the code, but I find their code to be a great kicking off point for understanding what idioms they use, how they go about solving problems, and how "meta" they are.

    If I want a form with 8 text fields and they code all 8 fields and processors by hand I know I have a certain class of programmer. If they implement it using some kind of list or collection approach, I know I have a different level of programmer. At two fields, it wouldn't make sense to go meta, at 50, everyone would, but I like to see what people do around 8 – it is a pretty good litmus test for the kind of mindset that fits in with the way we code.

    Just me 2c!

  2. Peter Bell Post author

    Asking someone to code on a whiteboard doesn’t make much sense (well actually, if you allow pseudo-code then I guess it is OK to see generally how they’d approach solving a problem at a "close to code" level without working about syntax, typing (as in static -not as in using a keyboard), etc.

    That said, when I hire someone as a programmer, while cultural fit is important, I also need to know they can code and like to give medium challenging business realistic coding challenges where I give every applicant an hour and a computer with Internet access and a problem to solve. I give them design criteria upfront and then we do a code review at the end of the hour.

    I don’t really care if the code works, and I’m even pretty open to how they approached and wrote the code, but I find their code to be a great kicking off point for understanding what idioms they use, how they go about solving problems, and how "meta" they are.

    If I want a form with 8 text fields and they code all 8 fields and processors by hand I know I have a certain class of programmer. If they implement it using some kind of list or collection approach, I know I have a different level of programmer. At two fields, it wouldn’t make sense to go meta, at 50, everyone would, but I like to see what people do around 8 – it is a pretty good litmus test for the kind of mindset that fits in with the way we code.

    Just me 2c!

  3. Dan Post author

    I have to agree with Peter here. Im not sure that coding anything on a whiteboard solves any problem. It could tell us that an individual knows x language really well. From a pseudo code example though we learn how an individual thinks.

  4. Sami Hoda Post author

    Having a background in HR, I think I can safely say that hiring someone and then letting them simply "go" is not an option for most if not all companies. If people start measuring cost, for both hiring and firing an employee, each act can go into the thousands.

    I agree, a paper of whiteboard test isnt the way to go. We do pre-in person interview tech tests. I look for how a person attacked a problem, whether they are familiar with best practices, etc. You can do the same in person with a paper… watch how they attack it, watch what questions they ask.. it will tell you more than whats on that paper.

    Sami

  5. John Wilker

    Pretty much what Tom said.

    If a person has gotten to an interview, my hope is, you know a little something about them. If they had references hopefully they were called.

    Sami's right it's not "that" easy, but "at will" is at will.

    By the time I've interviewed people, I've seen code samples, looked at whatever is public facing, googled them, etc. When I meet them, I want to make sure I like them.

    Tom's 100% right, what can't be learned? Fusebox? Cairngorm? CF, Flex? ASP? No one is born into knowledge and unless you're willing to pay a lot, I've always felt it unfair to expect some one to know everything you might want them to know. We all learn.

    Just my .02

  6. Tom Ortega Post author

    I’m with John on the whiteboard. I’d never ask anyone to do it. Luckily, no one has ever asked me to do it.

    I’ve been working for 10+ years in the industry. I’m all about personality over code skills. The reason I say this is because you can learn code skills, but you can’t learn personality. Either your have one or you don’t.

    I’ll be the first to admit that I’m not THE expert in any language. I just don’t roll that way. I’ll get into the nitty-gritty, find my groove, and constantly learn more, but with a wife, 2 kids, hobbies (reading, writing), conference planning, silvafug managing, offering free flex training, family tech supporting, etc. I can’t be THE expert in any language anymore.

    I’d probably still rate myself a 5 on the 1 to 10 scale of flex, with Ely being a 10 cuz it’s his day job. =)

    Plus, my skills have grown in every job I’ve ever had. In fact, I tend to sign up for jobs where I’ll be pushed to learn a lot on the job. Has any company suffered because of that? No! I’ll give you a reference to every company (yes, every) that I have worked for and all would say I exceeded expectations. No apologies to your HR folk out there, but book skills (i.e. code at the whiteboard skills) are overrated.

  7. John Wilker Post author

    Pretty much what Tom said.

    If a person has gotten to an interview, my hope is, you know a little something about them. If they had references hopefully they were called.

    Sami’s right it’s not "that" easy, but "at will" is at will.

    By the time I’ve interviewed people, I’ve seen code samples, looked at whatever is public facing, googled them, etc. When I meet them, I want to make sure I like them.

    Tom’s 100% right, what can’t be learned? Fusebox? Cairngorm? CF, Flex? ASP? No one is born into knowledge and unless you’re willing to pay a lot, I’ve always felt it unfair to expect some one to know everything you might want them to know. We all learn.

    Just my .02

  8. Jeffry Houser Post author

    This conversation came up on the House of Fusion CF-Jobs-talk list at one point in the past few years except we were talking about SQL. I think I was lambasted for claiming that I couldn’t write a stored procedure from memory, nor did I need to be able to do so.

    If I were to ask someone to write on the white-board, I’d probably be trying to gauge their problem solving skills. I would be looking for approach and algorithm as opposed to actual code. More traditionally, I ask them to solve a problem given some parameters before I meet with them.

  9. Jeffry Houser

    This conversation came up on the House of Fusion CF-Jobs-talk list at one point in the past few years except we were talking about SQL. I think I was lambasted for claiming that I couldn't write a stored procedure from memory, nor did I need to be able to do so.

    If I were to ask someone to write on the white-board, I'd probably be trying to gauge their problem solving skills. I would be looking for approach and algorithm as opposed to actual code. More traditionally, I ask them to solve a problem given some parameters before I meet with them.

  10. John Wilker

    Peter,

    I think that's a more realistic approach. An hour, internet, go. That's more real than a whiteboard.

    Good idea.

  11. Tom Ortega

    I'm with John on the whiteboard. I'd never ask anyone to do it. Luckily, no one has ever asked me to do it.

    I've been working for 10 years in the industry. I'm all about personality over code skills. The reason I say this is because you can learn code skills, but you can't learn personality. Either your have one or you don't.

    I'll be the first to admit that I'm not THE expert in any language. I just don't roll that way. I'll get into the nitty-gritty, find my groove, and constantly learn more, but with a wife, 2 kids, hobbies (reading, writing), conference planning, silvafug managing, offering free flex training, family tech supporting, etc. I can't be THE expert in any language anymore.

    I'd probably still rate myself a 5 on the 1 to 10 scale of flex, with Ely being a 10 cuz it's his day job. =)

    Plus, my skills have grown in every job I've ever had. In fact, I tend to sign up for jobs where I'll be pushed to learn a lot on the job. Has any company suffered because of that? No! I'll give you a reference to every company (yes, every) that I have worked for and all would say I exceeded expectations. No apologies to your HR folk out there, but book skills (i.e. code at the whiteboard skills) are overrated.

  12. Sami Hoda

    Having a background in HR, I think I can safely say that hiring someone and then letting them simply "go" is not an option for most if not all companies. If people start measuring cost, for both hiring and firing an employee, each act can go into the thousands.

    I agree, a paper of whiteboard test isnt the way to go. We do pre-in person interview tech tests. I look for how a person attacked a problem, whether they are familiar with best practices, etc. You can do the same in person with a paper… watch how they attack it, watch what questions they ask.. it will tell you more than whats on that paper.

    Sami

Comments are closed.