Hi Ankur,
You've asked a great and fundamental question. One of the ongoing themes in my book, Making it Big in Software is that you need to follow your passion and have fun. It's a very personal thing, because what I may find fun you may not. I know some people who love working on research problems and others who can't stand it. Some who enjoy public speaking, and others who you couldn't pay to get in front of an audience and talk. For many it's the thrill of growing a business that excites them. For some people in fact the most important thing is just having the company of friendly colleagues.
I would also add that software is a bit like math - it's a tool. While people can study it for its own sake it has greatest value when it is applied to important problems. Many people who tire of programming are actually just tired of the problems they are using software to solve (e.g. banking and insurance systems), and if they had a chance to use their software skills to do something that was more meaningful to them (searching for a cure to cancer, or developing a new social networking platform) their love for sofwtare would flourish.
My advice to you is to figure out what you love. In order to do that
you should consider all the opportunities that careers in software can offer. Such as:
- programming at many levels (application programming, web programming, middleware etc)
- quality assurance
- project and people management
- research and innovation
- authoring trade or research articles and/or papers
- writing a book (technical or otherwise)
- starting a new business (few other fields have as low a barrier to entry as software!)
- performance tuning analysis
- business development
- customer advocacy, travel
- public speaking
Sam