Of course, the OP probably isn't sure how to differentiate between even those categories, because he feels he could use any of them at his general level of programming expertise as long as he had a syntax reference.
Yes, I think the reason I didn't include skill levels was because at some point I saw a post talking about the uselessness that comes with some of that. It may have been a bit extreme but what does PHP [Ninja] or Ruby [Tadpole] really indicate?
Although [Beginner] is pretty different from [Expert] no matter what, the expectation of a beginner or expert may vary widely from person to person.
It's a good way to position yourself for the kind of work you'll get, no matter how it's interpreted. If you write that you're a beginner Ruby programmer, and then after getting hired you're asked to write an entire application in Ruby by yourself, you can say in a defensible way, "That's fine, but I'll need constant help and code reviews and it's going to take a long time as I get up to speed."
If you got any pushback at that point you could ask them why they tasked the beginner with this project, when you clearly claimed you were not an expert.
The other levels can be played similarly. An intermediate person could be assigned to some project and be expected to perform mostly independently, but if there were any non-idiomatic code or poor optimizations, they could just shrug it off as a learning opportunity. "I'm no expert" you can say.
Although [Beginner] is pretty different from [Expert] no matter what, the expectation of a beginner or expert may vary widely from person to person.