I'm looking for the noun form of "person with intermediate skill". For example, in the context of a particular activity, "person with no skill" might be designated a novice, and "person with much skill" might be designated an expert. However I know of no such word in between these two extremes.
My only thought is amateur, which has a distinct meaning from describing level of skill, although skill level can often be inferred. I'm looking for a better solution.
EDIT: due to the attention this question has received, I'll try to offer some clarification in order to reduce repeat questions.
"Journeyman" would certainly not work. I am a software developer by profession. However the word I'm looking for should hopefully be profession-agnostic.
I am trying to designate the skill level of the person that some learning material might be appropriate for. The word that I'm looking for follows the preposition "for".
For [word for intermediate-skilled person]
Sorry, but even after all the great answers, I'm still learning towards "amateur" even though it is technically incorrect. Also, the word should not be so esoteric that only people with English degrees know what it means. Keep the ideas coming!