“Some programmers are better at researching a problem and others have a natural instinct.”
“Some programmers love what they do, some just want to be management.”
“Some programmers are business minded; others you can’t tear away from their machines.”
I myself have studied this naturally occurring phenomenon and have seen a clear line between “Natural Programmers” and “Career Programmers.”
“Natural Programmers” or (code monkeys for the sake of this article) are the kids who spent 70 percent of their youth attached to a keyboard (and the other 30 percent dodging school and overcoming social awkwardness). They’re the adults that make the technical connections and discoveries that seem uncanny, the programmer that designs amazingly architected systems.
“Career Programmers” (or developers) are excellent businessmen; they’re single-minded in making their bosses happy, and in making efficient, cost effective solutions.
Today I want to introduce you to the code monkey, to show you what makes us unique, the common threads I’ve noticed among all natural programmers. Is this a science? No, but if you’re in the technical field you will either say “That is so me” or “I totally know that guy.” Either way I hope it helps you to get to know us a little better.
We think different than you.
I want you to picture a brain, and the knowledge it retains as a number of nodes based on different subjects. The larger the node, the bigger the knowledge base.
When it comes to the average person their nodes are separate. They are able to think of C# and they are able to think of school systems. Two separate unrelated knowledge bases.
Well, in comes the code monkey: our brain has the same number of nodes, but they’re all intertwined. We are able to make quick associations between very different topics: “C# applications should be designed much like school systems. There are classes and objects, a collection of grades, generic lists of curricula…” and so on and so forth.
This is why we can so quickly find solutions to technical problems. The code monkey is able to make the jump from code to real life application quickly because it just makes sense. However, we still have the burden of keeping those nodes growing just like anyone else – if you don’t have the knowledge you can’t make these associations.
We’re a bit messy.
Sara Chipps, programmer (and code monkey) |
When discussing this with a friend, he called his desk an “Object Oriented Mess.” Our stuff is usually all over the place. If cleanliness is next to godliness then we’re destined for hell.
However, we have placed our things in a way that makes them easier to find. Though there is a slight odor coming from my desk, I know that there is a two-foot space where all my used plates are, and behind them are the napkins, and under them are the unfinished status reports (and some thinkgeek.com receipts).
We think 9 AM is an arbitrary number.
We understand that sometimes there are meetings, and it’s important for people to all get in one place at the same time, thus the term “meeting.”
However, the idea that to get to work at 8:57 is okay, but 9:06 is not okay, is ridiculous to us. Why is that? That’s not even during our peak working hours. What about that time makes it special? And if I’m not going to be at my best wouldn’t that be most important?
On the flip side of this, we hardly ever leave at 5 PM. In fact you can usually find us working late into the night and often from home. We never really leave work in our minds. I get most of my software-related epiphanies in the shower.
My favorite variation of this is the concept that your pants make you a better programmer. If I wear khaki pants to work it makes me a better worker then if I wear denim pants. Though I don’t have a client-facing position, it still makes me more effective if my pants come from Banana Republic.
We think Software is a beautiful, exact Science.
A natural programmer named B Rob coined the phrase “Verifiable Art.” We think the fact that there are many ways to do things correctly and one way to tell if it works is just perfect.
I mean, there are different ways to solve the same problem, and different things to prioritize like speed, and traffic, and usability. However, we always know if it is done right because it works and we’ve solved a problem while expressing ourselves, and that’s a wonderful thing.
We don’t think much of The Man.
Your government’s laws were made by people socially savvy enough to obtain public offices. We don’t really trust them to have our best interests in mind. We don’t find a particularly compelling reason to follow these rules, besides the desire to stay out of trouble and keep our freedom. We understand the need for a system of rules and enforcers, but it really doesn’t apply to us since we aren’t the people causing trouble in the first place. We appreciate your efforts though.
Sometimes you make us uncomfortable.
We don’t understand why people say one thing and mean another, or how we are supposed to “just know.” We try to hide that with our sense of humor, or our ability to make you feel like you are wrong (we don’t realize that makes things worse).
Please be patient with us and realize sometimes we just need to be told. We like it when you give it to us straight.
We’re not impressed that you make lots of money.
See, we’re not in this for the money. I mean, the money is great and all, we can buy much cooler toys, but we’d be doing this as a night gig while working in the mailroom if we needed to.
Want to impress us? Come up with a cool solution we haven’t thought of, or teach us a technology we don’t know. You will garner our respect for life.
The arch enemy of the code monkey is paperwork.
Status reports, QA forms, documentation, and timesheets. We think these things are a waste of our time. We understand they are needed for the business, but we are busy writing code and fixing bugs and laying the foundation for new features. We think that is more important and therefore you will get these things at the last minute (or you may need to remind us). We hope you will see the value in us keeping our heads in our work.
So, if you’re an IT manager or director should you hire a code monkey?
Well, that depends on your end goal. If you want someone that will code with their head down, be quiet during meetings, and do everything you ask without argument then the career programmer is the way to go. However, if you want your solution to knock people’s socks off, if you want to be the “next big thing,” then you need to find a code monkey. You will have to put up with our quirks, and possibly take a little guff, but it’s an investment that will give you big returns in the long run.