Duplicate of: Is it better to go broad or go deep
Question Brief:
In order to be rich and prosperous, is it a better idea to be niche or sparse? Should I continue to vary my skills, or predict the market and become a master of X next popular technology? (I do recognize that a technology doesn't need to be "popular" to be profitable).
Longer Question/Ramblings:
The obvious answer is "you don't have to do anything!", but that's not what I'm looking for. In order to be successful and rich, do I need to dedicate myself to programming in a certain few languages and master a select set of technologies, or can I be a jack of all trades, 'pretty good in most' programmer?
I'm currently working a coop job, where my tasks vary intensly. I write Php/MySQL/Html/Javascript/CSS to do webpages, Perl/Python/Ruby to do scripting, Java and C++ for some projects (not on the same project mind you), DITA/XML/SQML for documentation.
I enjoy programming in any flavour (I prefer to avoid web programming due to the incompatibility of browsers), so I'd be happy being a C# .Net developer, one of those beard wielding C++ masters, or an OpenGL Guru, etc. I'd even become a master of Turing if it paid the bills. I dabble in cryptography, security, optimization, compilers, interpreters; you name it! If it's in this field, I seem to take an interest in it. I even write programs for AVR Robots.
Summary:
If I don't care about what kind of programming I do because I seem to enjoy it all, what are some of the best ways to make money?