There are close to 100,000 software developers joining the Indian IT industry every year. With so many developers, it is easy to get lost in the crowd. I have engaged myself with the IT industry for over few years now. I have seen the ups and downs of the industry. I have consistently done a decent amount of coding over the last few years. I have put together some of the things I have learnt over my career.

#1: Love coding
If you love coding, you will be interested in a technical career. There are lot of programmers who are in the industry who do not like coding. Their expectation is to become some sort of manager - a product manager, a project manager or a line manager. Everyone is welcome to do coding. But, if you are in for a technical career, you have to love coding.

#2: Application development

Application development is a rare thing. Most applications require maintenance or enhancements. There are lot of products available in the market like business intelligence products: Informatica, Microstrategy or business application tools like SAP, PeopleSoft. There are many developers who work with these products doing various system integration activities. The percentage of people who are involved in hard-core application development is very less. If you like coding, you should find yourself in an organization which does hard-core application development. You will enjoy it much better there.

#3: Choose your platform

There are lot of application development platforms - Microsoft.Net, Java (J2EE), Python, Ruby etc. Choose one and stick to it. Choosing a platform to work on is an emotional decision. It is not a logical decision. All platforms evolve over a period of time. You do not have to work in the best application development platform. You just have to choose one you are most comfortable with and stick to it.

#4: But we do not have projects

I have heard lot of managers saying that they do not have projects in say .Net. I want to narrate an incident that happened to me a few years back. At that time of the incident, I had over 5 years of application development experience. By mistake, I was associated with a project involving MicroStrategy. Soon, I became a BI expert. I remember talking to a manager about moving to a Microsoft specific team. My manager bluntly told me: "You cannot decide which team you want to work with. If the organization wants you to work in a Business intelligence (Data warehousing) team, you have to go to that team". You have to be flexible to the organization. But, not at the cost of your career. I wasted one year of my professional career with that team. But, it is not a complete waste. (humor intended!) I learnt a bit of data modeling - Star Schema design, ETL, BI reporting, and some analytics. It has helped to relate to people who are working in BI. I still have good friends who work in the BI world.

#5: Associate with people who appreciate your technical skills

There are lot of developers who are good in a specific technical discipline rather than posessing a broad range of technical skills. I have seen good programmers who are good in trouble-shooting but poor in design. I have seen some good designers who are weak in trouble-shooting. If you work for an organization where you need to posess a broad range of technical skills, ensure that you associate with people who appreciate your technical skills.

#6: Work on open-source projects

Work on open-source projects. This will help sharpen your technical skills. There are lot of people who will reach out to you. These  people appreciate your technical skills.

#7: Knowledge accumulation

Learning new things is good. But knowing a lot of things does not mean much. Knowledge accumulation is very much the equivalent of building your physique in the gym, or making a lot of fortune in business. Developing good analytical skills, decision making skills, prioritizing and planning skills is more interesting, more valuable than accumulating lot of knowledge. You can be a good technical guy without knowing a lot of things but be able to do a lot of things. Beware of the technical guy who ridicules others for not possessing some knowledge. Such category of developers are very common in India.

#8: Process but not too much of process

Process is necessary. But, if your organization talks only about CMMI, or Greenbelt, you are working for an organization which is an expert in grooming managers (and not technical people).

#9: Beware of colleagues

If you are a good technical guy and  you are in the early stages of your career, then you may not understand your colleague who has developed good organizational skills. Your colleague is on the way to become the biggest manager of all time. So, do not be influenced by him or her. The colleagues with good organizational skills appear to be good backstabbers. (humor, slightly sarcastic, intended) But, they are meaning well, especially for the organization. So, you should learn skills to handle these sort of people. But you should not get carried away by their "cutting-edge" skills to become one of them.

These are tips from my experience. As you can see, I have been an above average developer. So, these are tips for the above average developer. For the excellent developer, the career progression is clear and smooth.

I like to know your comments and what you think about the post.