Friday, July 23, 2010

What should I learn now to further my career, Java or .Net? What should be my next steps for career?

This blog is in response to people asking me advice on how to grow in their career.
People ask me should I learn Java or .Net or some other language to get more salary.

In Software Industry to grow you must grow in roles. Technologies keeps coming and going. People should grow in capabilities.

“A person wanting a Carpenter career should strive to become a good Carpenter. His aim should not be to to use a hammer or saw. Hammers and Saws are just tools. In future they may get replaced Electric hammer or better tools. He should strive to making better furniture etc. using these tools or any other tools.”

To grow in a technical line …

Similarly, in software industry .Net and Java are tools for making software products. People should strive to become a better programmer. He should know how to use those tools for building better products. So his concentration should be on learning how to make good software products.

Once a person knows how to make a good product using one tool, then it is all the same. Tools of the trades are in software product is

• Logical Thinking
• Software paradigm like Object Oriented Programming
• Best practices for efficient coding (comments)
• Test Driven Development
• Configuration Management; version management
• Testing
• Data Structures
• Web programming & Client/Server programming …
• …

They are things to learn. Language just brings in syntax and method for making those constructs and concepts. After you have learnt them; they are mostly the same in all languages.

So to grow start to become a better developer --> better module designer --> better system designer --> better product architect --> Enterprise Architect …

Now, you can also grow in a Managerial line…

You strive to manage the project better. You learn to manage small project in dimension of time, people and effort. Tools of the trades are

• Estimation techniques for calculating effort (using FPA, using UseCase Points, WBA …)
• Scheduling the task
• Resource loading (assigning the people to get the work done in minimum time)
• Critical Path Method
• Working in/with Team
• Soft Techniques like Managing Client, Managing team, Writing Mails
• Risk Management
• …

Once you have done this in MS Project you can do it any other product…

Other soft skills come with experience and on the job. You grow in scale from small team/modules to large groups/projects.

So to grow start to become a better team member --> better supervisor --> better module lead --> better project leader --> project manager --> Account manager --> CEO…

People should strive to grow in role (in Scale and in Quality) of making a better product; rest is tools helping you to do your role better.

You will be able to use those tools better if you know how to apply it…

You can use the same with learning new areas like Business Intelligence, Data Warehouse, Enterprise Content Management ....

Here also, you must learn main concepts ... and try to apply using tools relevant. You can replace tools once you have learned the fundamentals.
Here again growth will in scale and growth of complexity.
Like in BI,   growth will be 
                   
Developer of small BI implemtations --> Desinging slightly larger complexity --> Architecting very large complexity -->   Architecting for Enterprises -->

No comments:

Post a Comment