Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I'm contemplating my future career.

I have the idea that from a rank-and-file-programmer position, I can advance either along a management track or along a programming track.

I'm really not interested in management, so I'd like to know what kind of opportunities there are to advance as a programmer. What kind of jobs are the logical next steps in the progression?

share|improve this question
2  
Find a job with equity in the company and code your butt off. –  JeffO Jan 13 '12 at 22:33

5 Answers 5

Depends entirely on the company. Some recognise dual tracks to progress along, where a team can simultaneously have a Team Lead and a Technical Lead. Some refuse to accept that anyone wouldn't want a management role eventually.

Some find a need for an Architect. More recently, some recognise the need for Software Configuration Management, which you would only give to your more Senior Developers. Some Agile companies have Coaches, whose entire purpose is to walk around looking for signs of someone struggling and help them.

I've often wondered if there's a role for an equivalent to an Editor in publishing, perhaps a Code Reviewer. Someone who keeps an eye on other people's code but never writes code directly. But I've never seen such a role anywhere.

In other words, don't think too much about it. Job titles are relatively meaningless in this industry, unless it's a management role (and even then I've seen some odd ones). In each company that you work for, fill whatever role is available and interesting to you, and ask for the appropriate money to justify your existence.

Edit: To explain a bit further, given Oded's comment.

There may come a time in your career when you go from being a technical lead at one company to a senior developer at another and that will still be a progression. You can know your technology as well as you like but, if someone else there knows it better, (or even knows it slightly less but also has 3 years of domain knowledge,) you're not going to make technical decisions over their head.

As long as you're not taking a pay cut, what do you care what your new title is? And if there is an even-better developer to learn from, all the better.

share|improve this answer
2  
I think career progression goes beyond any one company (at least in my experience) –  Oded Jan 13 '12 at 20:51
2  
@Oded: I didn't really mean to imply otherwise. I'm just saying that the titles aren't important; it's getting the right experience along the way and offering that to someone else. The point being that there are lots of technical career paths, you just have to find the one that suits you best. –  pdr Jan 13 '12 at 20:54

Well, I've been doing programming for almost 25 years and the 'highest' title I've had is something like "Senior Programmer" or "Senior Systems Analyst" depending on the company. I've had a couple of "Team Lead" positions but I decided the management track wasn't for me. Sometimes a "team lead" position doesn't include significant managerial duties but this varies from company to company.

As I half-jokingly noted in the comment on Oded's entry, many companies find creative, legal, ways to get rid of programmers not on the management track once they reach a certain age (40+). While we can hope that this age discrimination in our industry will fade in the years to come, it does impact career path choices and options.

share|improve this answer
1  
+1 : If you're happy as a programmer, remain a programmer. The trend of age discrimation is fading in my region. I guess it's always a matter of "supply and demand". If you're not afraid of relocation/telecommute, there's always work for a programmer. –  Matthieu Jan 13 '12 at 21:41
1  
@Matthieu - you have to beware of decision makers who believe some programming duties can be done by less expensive/experienced employees. –  JeffO Jan 13 '12 at 22:32

Firstly, @Oded is right (apart from the Team Lead role, which generally involves some managerial responsibilities) - most companies support a non-managerial career progression path for developers these days.

Secondly, I wouldn't worry too much about it at this stage - people change, and in a few years you might actually decide that you can do as good a job as the managers you've experienced, and want to give it a go.

Thirdly, there are more than just these two tracks for you to follow. Off the top of my head, you could become a contractor, go freelancing, set up your own business, go into consultancy, move into project management, etc. And I'm sure there are others I've missed.

Oh, and one more point - most companies will go out of their way to keep a good employee, even if they don't want to take on man-management responsibility.

share|improve this answer
    
+1 - "Most companies will go out of their way to keep a good employee". Very true, even at big companies. I've had them create new positions, title and responsibilities tailored exactly to my liking and allowing them to bypass company salary restrictions. I've had them extend the definition of "flex" in flex-time during a few special circumstances. If a company won't go out of their way to keep you then odds are that you aren't quite as good as you think you are. –  Dunk Jan 16 '12 at 22:42
  • Junior level programmer
  • Mid level programmer
  • Senior programmer
  • Technical lead
  • Technical architect
  • Senior technical architect
  • Enterprise architect
share|improve this answer
    
Above architect, you sometimes find Technical Officer type positions and then ultimately, maybe a CTO position. –  Brandon Jan 13 '12 at 20:29
1  
@Brandon - True, but the OP is looking for non managerial career progression. A officer level position will almost certainly have managerial aspects to it. –  Oded Jan 13 '12 at 20:31
2  
One could argue that there are managerial aspects involved as a team lead and above. –  Matthieu Jan 13 '12 at 20:33
    
@Matthieu - True, though depending on the company and role description, there might not be. –  Oded Jan 13 '12 at 20:36
4  
I really don't think Team Lead should be in there. Possibly Technical Lead. But Team Lead is on the way to Development Manager and CTO. –  pdr Jan 13 '12 at 20:43

I am surprised to see no one mention Project Management to this list of possible choices. In the environment's that I have been in, Programmers that may not want to progress into 'Management' per say, usually go the architect route, or Project Management. PM roles do vary company to company, but for the most part (having a standardized test for the role) PMs have the word Management in the title, but are the furthest thing from the preconceived notion of Management.

My thought is, if you have spent years of your career working on large scale development projects, your experience alone on what has worked and what has not, puts you in a position to do well as a PM. For the most part, these roles require technical knowledge, client interaction, dealing with varying personalities, and extreme organization. The huge draw for the guys I know, is the higher salary. Might be an option to look into further.

share|improve this answer
2  
You say Project Management is the furthest thing from Management and then list all the things that go with being a manager as part of the job duties. Also, Project Management is most certainly the management track. You don't get to do the technical designs and implementations, you have to keep getting status from those "under" you, a major part of your job is interfacing, BSing and selling to the customer, you have to deal with all the personalities on your team. All those are the main reasons that people don't want to become managers. –  Dunk Jan 16 '12 at 22:50
    
In my first 6 months as a junior programmer, I was offered the promotion to Project Manager. I turned it down because I thought at my experience, I don't want my programming skills to deteriorate doing PM work all the time. In hindsight, though, this was a very small company so I might have some more leeway, like teaching the programmers better habits (I may be a junior but I noticed glaring bad habits like no source control and the ignorance of using frameworks and OOP). I certainly would want the PM job to be as technical as possible. –  Chris C Jan 17 '12 at 2:17
    
@Dunk. I can appreciate that perspective. I guess because the projects I have experienced have all been unique, and for the most part, I view the PM role as the facilitator to get stuff done. I have dealt with a number of PMs, and very few act like normal Management I have seen. Management needs to deal with recruiting talent, making sure people are being productive, and making sure their employees are progressing. At the end of the day, a PM's job is meant to get the project out. In my experience, if someones not pulling their weight, they defer to their management to handle issue. –  DaBaer Jan 17 '12 at 12:37
    
@CCRicers, the technical dynamic is what I am proposing. Having a PM with technical skills is valuable, to understand realistic goals and workflow. I may have just missed the mark on what others are experiencing across the industry with my own experiences. –  DaBaer Jan 17 '12 at 12:39
    
@CC - The problem with that technical dynamic is that after a few years, it isn't too technically current any longer. Yet, the PM is one of the last people to realize that they've turned into the pointy haired boss because of this. –  Dunk Jan 17 '12 at 21:23

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.