I tried searching "what to learn" or "what should I learn" but all of the results are either specific to a certain area of software development or to certain technology stacks. My question is slightly wider/more complex.<p>Given a list of the current sci/tech trends that are influenced by software, how can we pick one in which it is convenient to invest time, money and energy, to learn and apply, for the future? Here's the list (off the top of my head), feel free to let me know if you think something is wrong or missing:<p>- AI and machine learning (includes computer vision, NLP, translation, etc.)<p>- Cryptocurrencies and blockchain (Bitcoins, Ethereum etc.)<p>- Domotics and IOT<p>- Autonomous vehicles (cars, drones, etc. intersects with ML)<p>- Quantum computing<p>- Space exploration<p>- Data analysis and visualization (intersects with ML)<p>- Bioinformatics<p>- Virtual/Augmented reality<p>- Cybersecurity (intersects with quantum computing, with regard to quantum-resistant crypto)<p>- Human-Computer Interaction (e.g. wearable computing)<p>I find it hard to believe that with so many resources at hand (free books, online courses, dedicated communities) on all of the topics above we, mostly software developers, end up using most of our time to learn (or write) the new, trendy backend/frontend framework rather than focus on things that will have (arguably, of course) a greater impact on our lives. I'm all in for learning React (which I am, by the way) but in the long run having a strong background and be competitive in one of these areas will likely pay off forever, both in personal satisfaction and financially, other than act as a career boost.<p>The answer is, ideally, "all of them". The following question would then be: where would you start from?