I found this statement a couple of times. What do the professionals consider advanced?
That's a very subjective question, but here are some things I would look for:
- Able to take a general problem statement and develop a solution without guidance.
- Provides leadership and mentoring to others on the team.
- Self-motivated to constantly learn more about the field/profession
- Understands the big picture (of the software architecture, project lifecycle, etc.)
- Understands long-term consequences of code written (maintainability, ease of operation)
Advanced in my opinion is a programmer, who can take decisions and project under control and when he is not sure about something he is looking for qualified help. These are the guys, who "do the job"
That's a pretty broad question and there's no easy answer.
Instead, a developer's level of competency should be assessed in each relevant area of application development. Someone did just that here.
The terms like this are often misleading. Every man and dog has his own understanding what that would mean.
In the best case it is exactly as Eric J. said.
In the other it could be they mean you have at least a couple of years of working experience doesn't matter what you have done.
A bad case if they want you to know all the tiniest details, hidden features, secrets of some framewok and know all API calls by heart, without understanding that these things are learnt on-the-fly, forgotten relearned again and eventually forgotten for good when the new technology comes and the process has to start all over again.
A good suggestion is to ask them how they define a "professional". You can learn much about the guys from hearing what they think on the topic and what they believe in.
Depends a lot on the context. It is usually to get a rough grading like:
- beginner (books: no or very limited experience; professional: similar, often assuming theoretical knowledge)
- advanced (3-5 years of experience in a certain field)
- expert (5+ years of experience in a certain field (not all!); specialism)
I'd say it is not generally a quality statement; one can not be expert in everything. Books targeted at 'advanced programmers' generally skip the introductions and assume some basic knowledge and experience on the subject at hand.
Clever, advanced, etc can be very subjective. I know older guys, on paper very experienced but useless and very clever, bright young things too.
For me, the concepts have been degraded and meaningless because everyone is a "software engineer" (consider what other professions call engineer), "architect", "professional" these days
My favourite measures:
- Able to "smell bad code"
- Keep cool head when bug hits production
- Screws up, but recovers quickly before anyone notices
- Can effectively mentor and coach
- Willing to say "don't know" or "your code is better"