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.

What is the single most important thing that you do to ensure career progression ?

In other words what is it that you have to learn\unlearn\implement every day so that you do not stagnate at a level in a company and there is constant vertical growth.

These strategies might be different at each role and might vary for different segments like Development Teams\ Sustaining Teams \ QA Team and Technical Pub teams. The question is independent on which team you are in.

P.S : Vertical growth can also be on technical path.

share|improve this question

closed as not constructive by gnat, Jarrod Roberson, Thomas Owens Mar 22 '12 at 18:58

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

    
In its current form, this question is a poll. If you have a specific question about developing your career, please edit your question to reflect it. Right now, it's just polling people for generic advice. If you have any questions, feel free to bring it up in Chat or on our Meta site. –  Thomas Owens Mar 22 '12 at 19:00

5 Answers 5

Strategy should be different for everybody, because we are all different, but here is mine:

  1. Every single time I had to choose between two opportunities, I picked the one that required the most skills I didn't have (yet). Example for programmer jobs: You know C# pretty well, you master ASP.NET and Entity Framework. You have two opportunities. One is for C#/ASP.NET/EF the second one is for C#/ASP.NET/nHibernate/WCF. You pick the second one. Do that also if you have the opportunity to change the industry your are in, unless you love it so much you want to become an expert in the domain. The key is accepting pain. Most people like their comfort zones. They resist to change to avoid that pain. The reality is that you have to suffer (a bit) to progress. Just like in sports.

  2. Being an expert is far from being enough. You must develop your interpersonal skills and do some networking. The more people you will meet, the more you will expose yourself, the more opportunities you will get. You can meet them in person of course, but also in online communities like this one. FYI I would love to meet you if we have that opportunity one day.

  3. Seek win-win in every situation you encounter. Keep your words. Respect people. Arrogance is a bug in signal processing. It will makes things harder for you on the short term (it's so easy to be dishonest...), but this will pays on the long term. The good news is that when it will pays, it will for everybody you worked with, not only you.

share|improve this answer
    
+1 Pierre : I liked two points 1) "...Just like in Sports". A very good example I would say. Plus Networking is of paramount importance something I learnt very late in my career. –  Geek Nov 25 '10 at 13:04

I'd guess for many programmers the most important part would be just to pursue a carreer the way you mean it. Many people in our business are just happy with staying a coder and just have no ambition to become a team leader, manager etc., in fact they would even decline a promotion if that meant they couldn't code any longer.

Since you asked, I think that good communication skills are the most important trait of a would-be-manager. Skills in planing, stress tolerance and emotional intelligence are also necessary to survive the game.

share|improve this answer
    
+1 in fact many people doesn't have ambition because they are just happy. And many people have ambition because they are not happy. The most important is to be happy! –  user2567 Nov 25 '10 at 9:48
    
+1. Thier can be vertical growth in Programming as well SE, Senior SE, Principal SE, Senior Principal SE etc etc. I guess the question applies only to those who have ambition. –  Geek Nov 25 '10 at 13:19
    
Geek: I guess that in many organisations where such titles exists, competent people get them more-or-less automatically when they stay long enough. –  user281377 Nov 25 '10 at 13:31
    
@Ammo : If you get the title by staying long enough, I would not define that as ambition. These people would probably fall in the non ambitious category. But where these titles do exist and result in more responsibility, more recognition and more money and you want to achieve it faster than others, what would your strategy be ? –  Geek Nov 25 '10 at 15:19
1  
Geek: Do something good - and talk about it! Work hard, struggle to archieve excellent results and make sure the ones deciding about your promotion know about it. Be offensive, directly ask your boss: What do I have to do become a Principal SE? If the answer is too vague, chances are that promotions are more or less given arbitrarily, so ass-kissing and/or networking are your legal options to get on top of the list. (illegal options include bribery and extortion, but hey, I haven't said that!) –  user281377 Nov 25 '10 at 16:57

To stay on the cutting edge of software development I recommend you:

  • Have a very open mind and be willing to discard older practices.
  • Read new books continually. I read about 1 a week. Yes, that's 52 a year! Some I browse, others I re-read.
  • Join and attend local user groups.
  • Expand your network of fellow technology professionals that you talk to to share thoughts and new knowledge.
  • Find the leading websites for the technologies you are interested. Read the spec, new bugs, documentation about new features, etc.
  • Google the technology. For instance google "new java features". The results are great.
  • Use the Stack Exchange network of sites to see what the latest and current answers are.
  • Pay attention to how current answers are. Sites that have answers and guides that are more than 2 or 3 years old should be treated with caution as the current pace of change is blistering (but don't worry, it will speed up soon).
  • Buy at least 1 new pc every year. If you can afford it of course.
  • Use multiple technologies. I use Windows, a Mac and Ubuntu every day. The exposure to different technologies and different applications of the same technology is eye-opening.
  • Read wired, hacker news, reddit and others.
  • Laugh at CNN technology coverage ;)
share|improve this answer
1  
Why would I need a new PC every year? Mine is 5 years old and does just fine for running Windows 7 (for .Net development) and Ubuntu (for PHP and more OSS oriented development) –  ZweiBlumen Mar 22 '12 at 18:23

At a high level, I'd look at a few things:

  1. Where am I now. What comments were made on my last annual review? How do others view my skills? How aware am I of where I think I am?

  2. What do I want. Where do I want to be going? What kinds of aspirations do I have? Have they changed in the last while? This can get challenging depending on how far out one wants to look.

  3. What is out there? This is kind of the opposite of 1 in the sense that instead of looking around myself, I'm looking at what is going on in the world. What new developments may make sense to explore? What kinds of topics interest me to research and consider?

  4. What did I just do to move forward? This is looking back at what I just finished to see how it fits into going from 1 to 2 really. Part of this is detailing what was done but another side is to consider how well were parts of it done. Was there a part I really liked? Were any strengths or weaknesses noticed while I did that activity.

  5. What am I going to do to move forward? While this is your question, if I have the other answers this becomes a bit easier to pick from a list of possible things to do. Sometimes getting the other pieces nailed down makes this much easier to choose.

Remembering that it is my choice and I have the power of doing what I want is likely a crucial point that I'd argue is worth digging out day after day. Some days it can feel awesome to have the power like He-Man did. Other days it can be a struggle to find something but that's life.

share|improve this answer
    
Comments made by your supervisor at your annual review are often useful, but sometimes they can be biased or even flat out wrong. People should be mindful that an annual review is ultimately just an opinion. If your supervisor is somebody who you respect, then you should also respect his/her opinion, and vice versa. –  Jim G. Mar 22 '12 at 20:19

It depends on whether your interests match with the company you work for. If you are interested in being an Individual contributor for ever, many companies don't cut it - you will invariably switch to a managerial role after a few levels. So before asking this question, choose your company right.

Once you have the company right and the team right, you are usually setup for success. Also note, Career growth need not be the same as personal growth. And if you are chasing money, personal growth has an uncanny way of knocking out career growth at a later stage, IFF you grow enough. To explain, if you get really really good at X, even though you are at a low level career wise, soon you will see that there will be someone else who is ready to offer you a ton of money to do the same job, at their company. This also means you are well known for what you are good at: Make sure you collect trophies/patents/references along the way.

Having said all that, I can tell you what I personally try to do:

  1. Evaluate what kind of growth you are looking at - be true to yourself. Do you want to become the "guru" of X or do you want to become a great jack of all trades or do you want to rise as a great people / product / project manager. Each one of these will mean you focus on different things.
  2. Watch and learn everything the "smart" predecessors in your chosen career path in your team do. In addition to being awed by a fantastic piece of code / design, also question how they got there, and what were the options they evaluated. This is very crucial in growing as a person.
  3. Keep in touch with the outside industry and latest in your field.
  4. As Pierre pointed out above, ensure your networking skills are up to par. Even individual contributors are expected to be very good at social skills above certain levels. I have seen very few socially inept folks go very high. At the least, learn to listen.

Good luck!

share|improve this answer

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