In my opinion vartec's answer is good regarding the official classification. I will assume that you ask for informal or funny use.
The code monkey is neologism, from jargon (and probably from tape monkey):
code monkey: n
1. 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.”
Now, jargon does not mention the next step but instead has entries on real programmer, hacker, wizard, guru, superprogrammer.
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.