I'm looking for something like "greenhorn" or "neophyte" that applies specifically to writing code. Does this word exist?
I don't think you will find something that hits the nail on the head. I've found these possible options, depending on your situation.
I've come across these terms in the Jargon File.
This is someone who puts together, normally unlawful, programmes from bits of code they have found online, without any real idea of what the code does. The use of kiddie implies a certain newness to the craft, however the term is always derogatory.
Similarly to script kiddie, the cargo cult programmer doesn't know how the code they have written works. They found chunks and have pasted them in and hacked at them until they work. They reek of inexperience.
Written-only variant of newbie in common use on IRC channels, which implies specifically someone who is new to the Linux/open-source/free-software world.
I think this could apply if you are talking about someone new to programming for the free software world.
Almost synonymous with muggle. Implies both ignorance and a certain amount of willingness to learn, but does not necessarily imply as little experience or short exposure time as newbie and is not as derogatory as luser. Both a novice user and someone using a system for a long time without any understanding of the internals can be referred to as chainiks.
Chainik does seem to apply to computer users in general, so might not be what you're looking for.
I'm afraid I've never encountered such a term as a single word, if one does indeed exist at all. I've been a programmer in several different contexts, and the closest I've ever seen is borrowed from gamer usage - "newbie"/"noob" and variations.
Every other construction I've seen is of the form "X programmer" (e.g., "rookie programmer", "novice programmer").
The Jargon File attests several terms that might fit the bill.
Code grinder (the other end of the leash?) denotes a pitiable person who is little more than a report writer.
Naive user describes someone who is incompetent due to lack of experience.