an aspiring student here :)
Relational databases and SQL. Learn the relational model.
C, a core skill that teaches things common to many languages and tools. I would learn C first, and then C++, but some people suggest going right to C++. If you reasonably master C++ then Java and C# are pretty easy to pick up.
Unix/Linux. System admins and people who can set up and keep servers running are always in demand. Programmers who can use the Unix tools get a productivity boost.
Lisp or Scheme. Learn another way to think about programming.
If you want to get into web development it helps (a lot) to understand the HTTP protocol, DNS, web application security, HTML, CSS, Javascript.
If you want to get into machine learning that's a different world with its own tools and fundamental skills to learn.
1. Tech stack != Successful software developer. Don't worry too much about them.
2. Pick one and go with it. If unsure, start with any of the top 3-4 backend languages which could be Python, Go, PHP, Ruby (in any order). For frontend, start with JS and Jquery. then go play around with any of the frameworks like React/Vue etc.
3. Don't be a "React Developer". Be a Developer who solves problems.
4. Learn to think about WHY you are writing a piece of code and how it impacts the end user. If possible, don't write any code at all. Less code is better (almost always). More code means more possible bugs.
5. ABL. Always be learning. If you stop learning, you stop being a great developer.
6. Do side projects on your own time. My personal opinion. If you don't want to code after work, that could be ok but you will never become a great developer if you don't tinker on your own stuff. Build anything. Small. Big. test project. Run it.
7. Learn version control and Git. Learn to work with teams if possible and remember that it is always about the team.
8. Learn about "other" stuff like servers, scripts etc etc. Don't just build an application. Learn to deploy it. See it all the way through.
9. Be humble. You don't know shit. You will always learn something you didn't know even after 17 years. Someone out there knows more than you. That's ok. It is not a race or competition. If you become good at your craft, be proud but don't get arrogant.
10. Never stop learning. Did I say that already ?
Tech stacks come and go, and which one you should use right now depends on where you live and what you'd like to do in the near future (web development? text processing? deep learning?). Algorithms, Operating Systems, Software Engineering and Networking basics, OTOH, are not going away anytime soon.
For a more empirical answer, keep your eyes open for the next StackOverflow developer survey. You can find the 2020 report in [1], but the 2021 report should be coming soon.
The easy short answer is: here's a very early version of an onboarding document we used to send newly hired people, or candidates we have not accepted who asked us for pointers[0].
The longer answer is: get your fundamentals right. What you learn (in university?) and the above are table stakes.
Now...
"Mehr Licht!", as Goethe would say. Work in well lit environments. Reminder that you should be looking for "Lumens", a measure of the total quantity of visible light emitted by a source per unit of time[Wikipedia], not "Watts", a unit of power. i.e: energy per unit of time.
If you are fortunate to be able to see, take care of your eyes.
Ergonomics: hands, shoulders, wrists, back, neck, eyes, etc... Spending on these is one of the best investments you can make as it compounds.
Learn consistency, diligence, problem solving, communication, marketing, and sales. If you have side projects, don't optimize for portfolio: go all in and try actually to make a product and sell that. You may not be successful but it will prioritize work, teach you tradeoffs, make you interview people and teach you how to peel solutions one layer at a time until you get to the actual problem.
It will teach you that most things are easier on UML than in the real world, and the assumptions you made because it was more comfortable to whiteboard it than to talk with an actual human will knock your teeth out and kill your project. It will teach you a bit of this, and a bit of that.
You still will hack around, but you'll know you're going the solutionism route for fun and definitely not for profit. Many people get confused about the two. Inability to tell things apart leads to bad decisions later on, succumbing to hype, being reckless with the stack, and giving some architect/guru/conference speaker proxy power over your brain.
If you are like everyone else, you'll be treated like everyone else. Learn not to bullshit your way out of things. Honesty to say you don't know, curiosity to want to know, and drive to see things through are amazing qualities the right people look for. Learn when to be the elbow and when to be the grease.
Learn when to be a reagent and when to be a catalyst. Learn to talk with people, you'll get things done faster.
Now is a good time to start curating. Good books to spend time with and learn from. A graph of authors and companies and books recommended by authors of books you liked that were recommended by authors of books you liked or people who have done interesting things. You'll either note down or remember to check out the book recommended by someone who mentioned the title in an interview. Note these things. This is how you cut through all the crap and go straight to the good stuff. I push this a bit and pause videos that show a bookshelf. Case in point: look at my comment on this video https://www.youtube.com/watch?v=8aW5gdRRn_U. Someone even helped me out.
Read good content voraciously, including getting intimate with the same content. There's a special feeling when you read the same book at different times and things you had missed before hit you like lightning. You had read that paragraph before but it didn't click until now. Holy cow! It was there the whole time. In some cases for centuries or millenia
Learn to shape your message to your audience, and learn to write in a way that addresses points relevant to everyone in your audience. I call it "fractal communication": the piece should make sense at different abstraction levels. You'll be in meetings with, and write emails to, executives, engineers, used-to-be-engineers, domain experts. Learn what matters to every "profile", how everyone thinks, what everyone optimizes for and you'll know exactly how to present things that hit the mark with everyone. You'll expose a business objective in terms executives care about, link it to activities sales people care about, that are tied to issues and bugs and lines of code the most technical people care about. Multi-stage impedance matching, or multi-adapter if you will.
Solving people's problems will teach you so many things that wil be so, so, useful when you add software. They will give you real life experience that will be very relevant in some project or another involving software. It will help you expand your network: you'll know musicians, poets, and writers, physicians, and physicists, engineers, and lawyers, cops and farmers, business owners and actors, mechanics and dancers. It's easier to build a model of the world early on as opposed to later, in my opinion. Learn as much as possible, keep learning. Principal and interest reinvested.