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 cant 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). Theyre 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; theyre 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 Ive noticed among all natural programmers. Is this a science? No, but if youre 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 theyre 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 dont have the knowledge you cant make these associations.
Were 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 were 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 its 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? Thats not even during our peak working hours. What about that time makes it special? And if Im not going to be at my best wouldnt 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 dont have a client-facing position, it still makes me more effective if my pants come from Banana Republic.