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?

New contributor
J. Doe is a new contributor to this site. Take care in asking for clarification, commenting, and answering. Check out our Code of Conduct.
  • What resources do you have available? Just books and the internet, or are you a student also. If not a student, are you near a school or university that can help? – Buffy Nov 6 at 13:20
  • Books and internet, maybe I can do some courses in a academy or something similar. But nothing that takes too long (less than one year maybe), I can't go to the university right now, I'm 40 years old and I need to work. – J. Doe Nov 6 at 13:35
  • If I understand the question, you want to continue as a programmer, but in some "interesting" and maybe "hot" application area. And you are looking primarily for how to get the background in one of those areas. Is that about right? – Buffy Nov 6 at 13:39
  • No, an example, I don't want to study VirtualR if the 90% of the time I'm going to work modeling in 3D, I want to know a hot area where the programming is the main part of the process – J. Doe Nov 6 at 15:24
  • 1
    This does not seem to be a question about teaching. – ctrl-alt-delor Nov 9 at 11:11

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.

  • "Both Steves were needed..." such a beautiful turn of phrase! – Ben I. Nov 6 at 19:00
  • +1 For: "Pretty much any application area of CS requires some deep knowledge of the domain, not just the techniques and mechanics of programming." I emphatically second that as a software engineer with a CS degree who often had to acquire domain knowledge on the double while working in industry. In my experience it's (much) easier to have the domain knowledge and learn whatever kind of programming is needed than the other way around. – njuffa 4 hours ago

What's "hot" changes. And, as Yogi Berra said: "It's tough to make predictions, especially about the future."

However, fairly often, kids (high school, college, and school drop-outs) are among the ones who spot (or create) the "hot" trends earliest. So, one possibility is to attend "hackathons" and "code camps", ones that attract a fairly young audience (but preferably not the commercially sponsored ones that are an attempt to exploit some free coding), and find out in what areas the "kids" are coding, as well as what tools they are using. Hopefully, you've learned to hunt down and learn from online resources, as these things can happen a year or years before physical books and corporate courses appear. And they can die out fairly quickly as well.

  • Re "hot", also keep Wayne Gretsky's words in mind: "Skate to where the puck is going, not where it has been". – njuffa 4 hours ago

Your Answer

J. Doe is a new contributor. Be nice, and check out our Code of Conduct.

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.