After some googling I was unable to find out hierarchy of different titles in career development. Especially the connection between Senior Engineer and Software Specialist is unclear to me. Which one is higher? Most of all I would like to see links pointing to some career development paths from the trainee to the highest boss, and what kind of different routes there are including technical and managerial paths.
migrated from stackoverflow.com Jan 24 '11 at 9:04
This question came from our site for professional and enthusiast programmers.
closed as off-topic by MichaelT, GlenH7, Bart van Ingen Schenau, Robert Harvey, Dan Pichelman Dec 3 at 0:00
This question appears to be off-topic. The users who voted to close gave this specific reason:
- "Questions seeking career or education advice are off topic on Programmers. They are only meaningful to the asker and do not generate lasting value for the broader programming community. Furthermore, in most cases, any answer is going to be a subjective opinion that may not take into account all the nuances of a (your) particular circumstance." – MichaelT, GlenH7, Bart van Ingen Schenau, Robert Harvey, Dan Pichelman
The Short Version:
There is no industry standard for these things, they're specific to each company and in some cases won't even be consistent within a single company.
The skills and abilities that make someone a developer in one company might mean that they're a senior developer in another company, and a technical architect somewhere else.
The Longer Version:
Broadly speaking large numbers of different job titles are an indicator of a large company, frequently one which either doesn't specialise in programming, started out in an area other than programming, or in some cases started it's life some time ago in a period when companies were far more hierarchical than they are now.
Smaller and more modern companies on the other hand can frequently encompass hundreds or even thousands of employees with maybe four or five titles (something along the lines of developer, senior developer, development manager, technical architect, and chief technical officer).
But you shouldn't confuse your job title with your career development. Here there is a common thread to the way many people will develop though there are still plenty of exceptions.
Typically you'll start out as a developer (though you maybe called a trainee, or a junior developer or a programmer or whatever), making small changes, bug fixes and doing support. Over a year or two you'll move on to more substantial work, though still very much hands on, picking up new skills and increasing your competence and experience.
Somewhere around five years in (maybe a little more, maybe a little less), people will often start to wonder what next and there are a few options. First they can stay technical and start moving towards being a senior programmer which will involve programming but also mentoring and looking at how the team can do things better. In many cases this is where people will stay, happy in the role and not wanting to become more hands off or get involved in the politics of management. In other cases they may stay hands on but start taking on a few managerial tasks as a team leader.
Alternatives are moving into some sort of business analyst or project management role. I won't go into these here as it's outside the realms of this site but these are fairly common options and things where a few years programming experience can be a good kick start to a career.
Assuming that the person chooses to remain a programmer and wants to move on from senior developer, the options tend to be technical architect (that is remaining technical but looking at defining the solutions at a higher level, getting involved in requirements and technical platform selection and so on) or becoming a development manager (so actually managing a team of developers which basically involves doing whatever is necessary to have them deliver the work being assigned to the team).
And from there a small number of people will move to more senior management roles (in larger companies) and potentially into a CTO position and / or beyond. Once you've shown you've got the ability to operate at senior levels lateral movement (that is across disciplines) is far more common and you will often see people moving out of roles which are anything to do with technology.
But a few things worth noting: