A Code monkey is a computer programmer
or other person who writes computer
code for a living. This term may be
slightly derogatory, meaning that this
developer can write some code but is
unable to (or not supposed to) perform
the more complex tasks of software
architecture, analysis, and design.[1]
It is usually applied to junior
programmers.
http://en.wikipedia.org/wiki/Code_monkey

If a code monkey has dedicated his efforts to improve his knowledge and skill, what should we call him after at the next level/rank?

6 Answers
6

It's also very difficult to actually have hierarchy of nomenclature, as many really skilled developers call themselves coders or programmers (because they still do write code). But if you'd attempt to create such, I'd say it would be something like:

coder

programmer

software engineer

software analyst

software architect

These might be prefixed with "junior", "senior", "lead" etc. These titles have more to do with pay grade, rather being reflection of skills.

Note, that it only can determine hierarchy within very limited context of one company or maybe even one department. Thus to be "programmer" in company A, might require much more skill, than being "senior software architect" in company B.

then you have "game programmers" (the implication being you're doing actual hard stuff - physics, 3D rendering engines, etc) {Of course, you could be working on a game just using perl or java or basic, but you wouldn't really be a "Game Programmer" then which has a different implication.}

perhaps finally you have something like "computer scientists", "AI/robotics researchers", "heuristics guys"(/gals), and the like.

There are real distinctions, like in 3. you can actually manage the RAM on a hardware machine, whereas you can't do that in 1. In 2. you are able to fool with a database, not so much in 1. 3. have no clue about the stuff in 5, it's a gulf. "The web" is comic from about 4. onwards but more central as you go down. 4. sneers at 3. because they don't understand quaternions, etc.

Arguably, you angularly have "analysts" and the like (people who Think Great Thoughts but don't actually get in the trenches, hence intelligently make more money for less work) -- they don't fit in the above system since they are disliked by all 'real" programmers.

code monkey: n1. A person only capable of grinding out code, but unable to perform the higher-primate tasks of software architecture, analysis, and design. Mildly insulting. Often applied to the most junior people on a programming team.2. Anyone who writes code for a living; a programmer.3. A self-deprecating way of denying responsibility for a management decision, or of complaining about having to live with such decisions. As in “Don't ask me why we need to write a compiler in COBOL, I'm just a code monkey.”

Only "real programmer" here is still junior in his skills, but the word seem to portray character first, and only then the skills, so it should not be appropriate. However, if you look at tape monkey again, you will see it refer to one-banana problem. So you might employ something similar to

At IBM, folklore divides the world into one-, two-, and three-banana problems. Other cultures have different hierarchies and may divide them more finely; at ICL, for example, five grapes (a bunch) equals a banana. Their upper limit for the in-house sysapes is said to be two bananas and three grapes (another source claims it's three bananas and one grape, but observes “However, this is subject to local variations, cosmic rays and ISO”).

So you might roll your own mix of bananas, grapes or even go wild and throw in a pineapple for measure.