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.
Work advancement titles
organization
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:There is no single route.  I've seen people mess around as a programmer for decades and then just jump massively when they committed themselves and I've seen people get to CTO and then drop back down to be a programmer again.  It's whatever works for you at whatever time of life you're at.A lot of the opportunities to progress are around luck and the ability to identify opportunities and take them.  You'll get luckier the harder you work and the more talented you are but just sticking around and plugging away is no guarantee of progress.Seniority != happiness and in many cases seniority != more money.  Programmers who like programming will frequently find themselves very unhappy in management roles, even where they do find themselves competent and capable in that position.  You're going to be working for 40 or 50 years, happiness is a big factor so don't just assume that you want to climb the greasy pole for the sake of climbing it.