Code Monkeys vs. Code Ninjas

Software programmer Sara Chipps (yay! a woman!) has written an article titled Natural Programmers (Code Monkeys) vs. Career Programmers (Geeks in Suits). It’s probably the best non-techie explanation of the behaviors, habits, and beliefs of the “natural programmer” that I’ve read — and yes, I completely identified with much of what she wrote.

However, I have to take a step back and address an issue that I have with the two types of programmers she defines and the names she assigns to them.

First there’s the “career programmer (geek in a suit)”. These days I find that career programmers are not geeks, and they’re definitely not in suits (always business casual!). I’ve found that they’re in programming for the money; they learn enough to do their work — perhaps well, maybe even to get to the point of being perceived as geeky. But I also find that these people lack a true passion for the craft of writing code. Sara suggests that the career programmer is more of a business person, concerned with cost effective solutions, but I’m not even sure that’s true anymore. To me, this person’s work is just a job, and if flipping burgers paid as much as programming, they might be doing that instead.

Like Sara, I fall into her other category of “natural programmer”. But I am certainly not a code monkey — I am a code ninja! (Actually, with a nickname like “Obi-Wan Kimberly”, I’m probably a code jedi, but anyway…) I find the term “code monkey” to apply more to the previous category of programmer. Why? “Code monkey” implies that anyone can do what we do and that we work for bananas. “Code ninja”, on the other hand, says that we’re stealth and secretive, jumping out of the darkness when you least expect it. Our code takes you by surprise in its brilliance and our swiftness of execution is legendary. We could do no other job because we have trained for so long, perfecting our natural talent, and nothing else can satisfy our need for control over the systems we affect.

Sara closes her article with some OR logic about which type to hire, however I need to propose a more detailed and different solution. If you have only one programmer working for you, you probably don’t want either of these types — you need someone who really does fall into the gray area between the two extremes. (Yes, they are out there!) And if you have a team of programmers, you need a mix of these two types, and you need to put effort into getting them to communicate effectively with one another. Only then will you have both a killer team and killer code.

4 comments

  1. I agree to a point. I think that these posts touch on what Jeff Atwood talks about in his post at http://www.codinghorror.com/blog/archives/001002.html. But, is it really that those of us who consider ourselves to be in that 20% are just marketing ourselves creating market differentiation? Are we trying to separate ourselves from the competition? Why is it so important to differentiate with terms rather than just differentiate through action?

    Don’t get me know, if someone called me a Code Ninja I’d be stoked…ninja’s are awesome. But, I’m not sure I see the point in terms since anyone can call themselves a Code Ninja, but not perform well. This drags the terms strength down.

    Then again, I do like Code Monkey by Jonathan Coulton: http://www.youtube.com/watch?v=j4TnhemCEmc

    :)

  2. Kimberly, thanks for the great review, I have gotten a lot of slack for the “code monkey” term. It was a reference to the Jonathan Coulton song… I like code ninja better though.

    (I didn’t come up with the Geeks in Suits title, that was my editor).

    We seem like kindred spirits, looking forward to checking out your blog.

  3. i find the term ninja preferable to monkey as well. given 1,000,000 years, monkeys might write shakespeare, but i doubt they could write COBOL.

    You might like these t-shirts:
    http://www.cafepress.com/innerlegend/5605872

    be good!

  4. @Nick: I don’t think it’s just a marketing differentiation — that’d be like saying that your gender is a marketing differentiation. Unless, of course, you’re not naturally part of that 20% and instead are striving to join it. The ‘code ninja’ title is just for fun, but the person behind it, in my mind, either is or is not naturally a passionate, techie/geeky, couldn’t-do-anything-else programmer.

    @Sara: Thanks for swinging by, and keep it up with the great writing!

    Finally, how didn’t I know of the Code Monkey song? I’m so out of it…