How can I remain a programmer and move into currently "hot" areas? I'm a programmer, and I want to continue as such, but I want to explore new areas. I know the future is in the big data, and virtual reality (for example), but I don't know if they have less coding and more of other knowledge. To explain it:


In big data or machine learning, I need to know statistics, but will I use it more than python and/or R?
In Virtual Reality or Video Games I need to know Unity and there's a lot of 3D in it, so, will I do modeling in 3D more than programming on C++?


I want to explore other things of current interest that do not include web design but I can't see clearly what is required for each option.

What do I need to learn or do to work in currently interesting ("hot") areas, but remain primarily a programmer?
This depends a great deal on how you want to drive the ideas of the programs you write - and on who drives those ideas. Pretty much any application area of CS requires some deep knowledge of the domain, not just the techniques and mechanics of programming. Even game programming is pretty deep stuff these days. As you say, both VR and Machine Learning requires background far beyond programming, both in CS (algorithms and such) and in the application area and associated tools such as statistics or ray-tracing or whatever. 

If you want to be self driven in the development you will just have to face the need to get that background. Online courses might help, or evening classes in a local university. 

However, if you are willing to let others drive the direction of the project, then you can build stuff quite happily though the vision will be that of others. Agile software development is especially well suited to this, separating the specifiers and the developers quite comfortably. At a large company like IBM, there are separate departments for idea development and refinement and the developers who build those ideas into code. The "idea department" is full of graphic designers, business specialists, product testers, etc., while the development department is full of skilled programmers and database specialists. In an agile workplace these two groups of people work closely together over the life of a development project in a way that is flexible so that goals can be changed along the way. 

It can be rewarding to do this, though the vision driving the project isn't your vision. The others are, then, responsible for having the deep domain knowledge that you don't have. 

But if you want to do it all yourself, you need to develop that knowledge too. You can probably do it incrementally, but you still need to obtain it. 

It might be true that you already have domain knowledge about some things. If you can also come up with problems that need solving in those domains you may have the basis for building things. At least for a while. 

If there were an easy path through this, it would already very likely be well travelled. Not many of us have a brilliant idea that will open a completely new domain along with the skill to develop it. Both Steves were needed in the development of Apple.