Friday Jun 30, 2006

Career Paths for Coders

Something has been bothering me lately. You could say that it is another reason I'm Curmudgeon. Once a coder hits a certain point, say senior level, in his career he will plateau. There are only a few ways to continue moving up on the career ladder.


  1. Start your own business
    This isn't for the non-risk takers out there. Basically it is assumed that after five to ten years of experience in the field, you can start your own business. It can either be consulting out to other companies or maybe you have a great idea you've always wanted to make. Either way, you can continue on your career path by starting your own business. Be warned though that you will need to know how to run a business and thus may still need that MBA. Which leads us to our next option.

  2. Become a manager
    I think that this is the most common path that senior level coders take. Either by going back to school and getting an MBA, or by simply being "promoted". Companies seem to think that the low level code is beneath the senior coders so we need to manage instead. There is a small problem here. That problem lies in the fact that great coders don't always make great managers. Heck, I doubt that they even make good managers. Yet companies still force us into this role with little to no training and then wonder why a great coder failed as a manager. Go figure.

  3. Become a teacher
    The third option for continuing with your career is to go back to the academic world and teach. You will still be able to do research on "cool" things, but your pay will most definitely drop. If you aren't coding for the money, then this may be an attractive option. Personally I find mentoring a very rewarding experience and given the opportunity would love to teach some classes. Another way to teach is by writing books and going on tour with a conference such as No Fluff Just Stuff. This might not be as fulfilling to you as teaching a class full time, but I would wager the money may be better.

These three options are all that I see out there for us to advance. Of course, we can always stay at our plateau and be happy coding. To me doing System Architecture or full time design work isn't at a higher level than senior developer. It is at the same vertical level, just a different horizontal level within the profession.

I know that our profession as a whole is very young, but are these really the only options that I have? If I want to be a professional coder for 30+ years what more can I look forward to? Maybe we need to rethink the current standard of what it means to be a "senior" developer. Many people that I interview seem to have really just one year of experience repeated five times.

This is what I propose. In order to have a year of experience it must be in doing something you have never done before. My definition of experience is "things learned from failure". Thus you need to do something new and fail in order to really have experience with it. So working ten years with the same company might only net you three years of "experience". This would push the salaries up for people who really are senior level, and perhaps make companies rethink forcing great coders into that management position.

What do you think? Do we have any other options besides these three?

Comments:

I'm not sure managing is always a step forward. Often managers get a small pay rise for a big increase in workload. Better to stay a coder and do side projects which could turn into a company (or just enjoy life and make an effort to save some money for the long haul).

Here in France, where I recently moved, it's a bit different. Jobs are scarce, and 35 is considered too old for most development jobs other than management (and management salaries really are significantly above developer salaries). It's a bit better in startups (like the one which hired me as a tech lead), but there aren't that many here.

Posted by Alan R on June 30, 2006 at 01:33 PM CDT #

What about "specialist"?
A technical advancement towards a more knowledge-based position, becoming involved in pro-active work such as mentoring, development processes/tools, guidelines on design/structure.
That's hopefully where I'm heading and a place I'd like to be (instead of this re-active, quick-fixn' other coders crap while they produce even more!).

Posted by Jonas on June 30, 2006 at 03:58 PM CDT #

My plans are very much like those of Jonas, but I do have doubts: One, whether I can keep with the pace of technology and remain a specialist in 20, 25 years. And second, as a mentor I still have to deal with a lot of others' crap and I don't know how long I can keep up with that before that starts frustrating me too.

Posted by O N on June 30, 2006 at 06:14 PM CDT #

@Jonas -- I don't know if a specialist is really moving up or not. The danger I can see with becoming very deep in one specific thing is that technology changes very quickly. What happens when the technology you decided to specialize in is no longer "sexy"? I would be very careful when deciding to go that route and have a good backup plan.

Posted by Aaron Korver on June 30, 2006 at 07:03 PM CDT #

Some organizations do provide technical paths to senior or principal developer but they are not that common. But is this all that different from other professions? Whats the career path for accountants? At some point you have to go into management or keep on making balance sheets. At least, we get to totally re-invent ourselves when new technology comes out!

Posted by John McQuilling on June 30, 2006 at 08:08 PM CDT #

excellent point from John - dentists spend all their life taking care of teeth, salesmen spend all their time selling, even actors spend all their careers acting
Sure, some of them want to get involved behind the camera but if you love what you are doing ( coding ) why change to doing something you don't want to do and don't have the skills for - either becoming a manager or running your own business ?

I'm moving from code to QA as I've realised that's what I do best - so how about this for a career path: Find what you love doing and do it to the best of your ability

Posted by phil kirkham on July 02, 2006 at 04:33 PM CDT #

I absolutely agree : i really love programming, and actually i dislike managing as much as i love programming, so why should i move from programming ?
There is a problem, however : here in France, technical jobs are much under rated, and if you are over 35, and still in a pure tech job, no doubt you will be seen as a looser, not skilled enough to evolve towards a manager's function.
That's silly, but that's how things work here...

Posted by landry soules on July 03, 2006 at 05:25 AM CDT #

I've been thinking recently about tech career advancement in general and I'm coming to the conclusion that in progression terms, this career is a lot like law - the money and advancement is in self-employemt and probably in partnership arrangementys between similar-skilled and experienced individuals.

Large tech companies spend all their time crippled by management red tape, and the tech opportunities pass them by. I think that the ideal tech company is a project-based consultancy, less than fifty people, charging high fees for individual projects and support.

Otherwise it's into management in a large company.

Posted by Jim Methley on July 03, 2006 at 05:57 AM CDT #

Programming is a bit different from many professions in that the best programmers are often said to be 10 times as effective as the average. I'd like to see the career structure changed so there's more differential in salaries and average programmers are encouraged to learn throughout their careers and join the best.

Posted by Richard J on July 03, 2006 at 06:02 AM CDT #

We have a "technical ladder" that provides a career path for technical employees outside of the management track. TL members receive pay & perks equivalent to different management levels. TL members are expected to be leaders and it is a peer nominated group.

Member of Technical Staff (MTS) - equivalent to team lead
Senior MTS - equivalent to manager
Principal MTS - equivalent to director
Distinguished MTS - equivalent to vp

Posted by Billy Bob Bain on July 03, 2006 at 07:13 AM CDT #

I think the question really is what can you do 5 years down the line that can earn you more money.

I have been in this field for a start-up company for 5 years now and not had a successful product, but still employed, after a while, the glumness sets in. I had tried to go the MBA route, but it did not seem right, did not seem like a good fit. The same about a Phd. I feel I have been soul-searching for this entire year about where I want to be.

My solution is one of the following:
. to try to be employed, keep my day-job and wait for opportunities,
. try to hook up with friends to start a company
. die a slow-painful death

The technical dream is not paying off because there is a lot of supply at least in our lifetimes. The next generation is going to see a lot fewer of us and thus the cycle starts again.

Posted by Bob John on July 03, 2006 at 07:55 AM CDT #

About specialization... Rather than specialize in a technology, you could think about specializing in a sector (accounting, travel, medical, etc...). I'd think that a deep knowledge in your target market would be worth more than being an expert in whatever the latest tech trend is.

Posted by Daniel on July 03, 2006 at 07:59 AM CDT #

I've thought for years that the best course of action is work for yourself. The might mean being a consultant/contractor. Or it might mean developing products. They each have their issues. But either way, I don't see how one can go at it alone. Yes, there are exceptions.

Posted by Mark on July 03, 2006 at 08:06 AM CDT #

Daniel is on to something. If you want to go your own way, that is, start a business, it's usually more practical to find a business niche/industry and build a solution for that. A friend built a medical claims processing system and sells it to the small businesses that large insurance companies outsource to. He learned that industry doing contract work at a large insurance company.

Starting your own business focused on a specific technology is a no-win proposition. Fads and trends change too much and, frankly, a given industry may not care if they're on the latest and greatest technology platform. They just want the best solution for their problem. And that works great for you when you can sell the same solution more than once.

Posted by Chris on July 03, 2006 at 07:45 PM CDT #

I've been thinking a lot about this recently and I came to the conclusion that option 1) is the most reliable of all. Being employed is not as secure as it seems: if you get fired (for whatever reason) above 35 yrs, you will have hard time finding a developer job, except if you are highly specialized expert.

If you start a business, you have high probability to fail, but even then you can return to employed status. If it works and you invest your earnings wisely, you get a safe reserve for your retirement, though.

If you do not start a business, you have high probability to fail in the job market above 35-40 years and there will be no place to return.

I've seen experienced people struggling to find a job, feeling useless and hurt. About a year ago I interviewed one such guy. He had been long without a job and really needed to get one soon. He was proud and desperate at the same time, resulting in some very pathetic impression. I really felt sorry for him, but he did not qualify the job. It was both very sad and scary: is this really what we can expect in the *middle* of our life?

Posted by peter on July 04, 2006 at 12:32 AM CDT #

Wow, you guys really have some great points and I think it is great that this discussion is happening. Thanks everyone for your thoughtful comments.

Posted by Aaron Korver on July 04, 2006 at 08:37 AM CDT #

Interesting view. I published a similar blog on the topic but went a bit deeper with managerial positions and added a few more radical options like business development and consulting. Welcome to comment on my blog.

Posted by Roman Rytov on September 02, 2006 at 11:06 PM CDT #

Post a Comment:
Comments are closed for this entry.