What is the word/phrase for someone between expert and novice?

I come across various people within my field (software developer) and people who are related to my field (the marketing/business people). Many a time when I want to opine or express my question/answer, I find that I need to tell them what my current position in the field is.

Am I an expert? Am I complete novice("n00b")? But most, if not all the time, I feel that I am at an intermediary position between the two. A person who is familiar with the technical terms and has sufficient knowledge to talk about it, but not with deep understanding of each and every aspect of it. (To put it other way : I know what I am talking about, and I am sure the person in front of me has no expertise in the field, but I want to sound modest and keep a loophole by saying I am not an expert).

I find my self at loss to express this fact and I am afraid that without expressing this fact, the other person will not get the context and complete meaning of what I am trying to say/explain. (And might get back to me when things dont go as expected :P)

Kindly suggest a word or a phrase for this. It would be really cool if you can allow expressing different shades/colors to it (close to expert or close to novice)

Edit : I know the term 'intermediary' or 'intermediate' level, but I am looking for more expressive word than that (read the brackets, basically I want to sound modest by saying i am not an expert yet I want them to feel that I am an expert)


Solution 1:

I would use the adjective "competent", which means "efficient or capable" without implying a high degree of expertise. Therefore saying "I am a competent developer" would imply that you're pretty good and that you know what you're doing, without sounding immodest or unrealistic. I believe all native English speakers (at least in the UK) would understand exactly what you meant by the this

You can't use this as a noun though - so you need to say "I am competent" rather than "I'm a competent"

Solution 2:

Some software development books have adopted the term 'journeyman', but to my ear it's a bit pretentious. You could also call yourself an 'experienced developer' or whatever your speciality is.

Solution 3:

You've indicated that you don't want to use either journeyman or yeoman. What I'd do in your situation, then, is more of a language tactic. Simply say "I'm a ———," and assume that whomever you're talking with realizes that no one knows everything there is to know about anything, even the field they specialize in. If they question you further, sidestep the issue, take charge of the conversation, and refer to relevant things you do know.

If you want to, or think it's necessary, mention the length of time you've been in the field (don't forget that years studying it count). But from what you've said it sounds more like a social situation, not a job interview, so hold your head high and keep on equal footing with them.

If they're still putting you on the spot, or if you don't want to do the above, you could go directly to something like "I've always wondered how to answer that question. There are so many factors involved. How do you deal with it as a ———?"

Solution 4:

How about "midlevel"? As in - a midlevel developer?

Solution 5:

Yeoman, as in "I'm a yeoman developer." It's the status between apprentice and master.

Skilled or seasoned user, or power user (I think that last term was in vogue in the 90s and has faded from popular use).

Oops. update: I see Richard mentioned journeyman, which is the status between apprentice and master; a yeoman was a freeholder or middle-level servant in feudal time. The modern adjective "yeomanly" (as in "a yeomanly effort") means efficient and useful.