How do You Compensate Programmers? - Joel on Software
Years of experience
Initiative and architectural skills
Two programming classes and incredible aptitude
Can develop code with significant mentoring and review. Intended mainly for summer interns and high school kids.
Recent grad – 1 year
Coding for one OS like Unix, two or three programming languages, no API experience
Can execute on a plan or write code that someone else specified, requires some mentoring
1 years – 3 years
2 platforms (e.g. WinAPI and Unix); RDBMS; two or three other programming platforms (like ASP, JSP, PHP, perl, etc)
Can work independently on a feature and can suggest improvements and shortcuts
3 – 5 years
Enough different technologies to be able to make excellent choices of architecture
Can design and architect a feature independently; given an interesting problem to work on, can architect, lead, and build the whole thing; can mentor less experienced developers
5 – 10 years
All the above, plus, knows enough about other disciplines to be able to lead specialists in those areas (e.g. networking, wireless, hardware, datacenter, telecom, etc)
Can conceive, design, architect, and lead a team to implement an entire product or company. CTO-like skills.
10 years plus
Significant experience inventing and architecting new technologies which are widely used throughout the industry
A "Fog Creek Fellow": Invents whole new programming languages like C++; extensively known through books and articles.
This level is reserved for hiring people like Bjarne Stroustrup or Linus Torvalds, or promoting geniuses to an independent research position.