All of this will provide a foundation that you can build on for the rest of your career, no matter which direction the industry happens to go in.
But overall, the goal should be to get a broad range of experience in different platforms so the technology you use is irrelevant. From that point on you just need to decide where you want to invest your time.
For example, when I was doing internships in college I invested in getting Java experience because I knew that it was used by large companies (companies who pay more). This paid off and I was hired by a company who paid me a lot of money to use Java straight out of college. Now I'm paid a lot of money by another company to use Java.
So you want to have the capability to code in anything, but you have to decide which technologies to put on your resume based on what's out there. Knowing Java, JS, and Web Application Development is never a bad idea.
It's also one of the best bang-for-your-buck things to learn, time to usefulness wise. Whether you're writing JS, Java, C#, Python, Ruby, etc and have a backing DB - SQL is probably associated with the project. When it comes to NoSQL, there's a lot of great stuff out there for specific situations, but the querying is either fairly simple (with complexity on the application code or infra), or the query languages are very specific and less applicable to other software.
The core of SQL is very versatile and it'll be there whether you're at a three person startup or Wells Fargo.
After initial big corporate SOAP/servlets buzz in 1990s, Java itself was trending down for a while. Stuff we have now (mostly due to borrowing a lot of good things from C# and other even more "dynamic" languages) gave it second life.
Well also strong PR and push for it in academia (because there were many big corporate jobs for it). But without improvements it had (and continues to have) - it would've ended like Visual Basic.
And I'll leave JavaScript mini history lesson (or rant) to someone else
Like you said, the classics aren't going anywhere
1. Solve problems.
2. Communicate complex issues in a way everybody can understand.
3. Discover the real problem that is trying to be solved instead of the perceived problem or per-determined solution.
The technical tools at your disposal are constantly evolving but the principles remain the same.
Picking up new details is easier than evolving your understanding to a completely new paradigm, so if someone wants to learn something today and have it be relevant in 10 years, just work lower and lower in the OSI model.
And both of you seem correct.
Looking at short enough time window, and especially if you don't know those lower/deeper levels (concepts) - even more so if you focus on buzzword/trends - it does seem to change a lot.
With deeper and longer term context, and focus on concepts - IT is seemingly doing circles. From mainframes and thin clients to fat clients to big servers, to "serverless".
Last time I checked "serverless" it went from it's initial "So it's basically like CGI scripts - each request executes a program from scratch" to "And now it's faster with persistence" (so like FastCGI/Plack/etc).
Of course with orders of magnitudes improvements in memory size, execution & computation speed and bandwith/latency...
Every now and then, some things which were impractical/gimmicky and maybe even not possible (e.g. text to speech, sound/image to text, 3D/VR/raytracing, ML/AI ...) finally become possible.
And on occasion the sum of those "new but theoretically/conceptually old" things unlock something that's really kind of new - like video deepfakes.
To me personally - ChatGPT and similar still seem like just much less (but still a bit) gimmicky variant of those end of 1990s IRC and early 2000s phpBB chat bots.
If you are serious on going into research, seek out (abstract) mathematics. It's a language in itself and (in my experience) takes the longest to become comfortable with.
I found these two courses to be really good foundations for kicking off in my own reeducation post-bachelors (in CS). They filled in blanks and reinvigorated my internal monologue of "yes i can do/learn that" growth mindset.
That is why you should have a solid foundation on general skills, and be able to move fast in whatever direction opportunity arise. And this is also where communication will help you, because it will teach you to listen, to understand people and their problems, to find opportunity and maybe also how to take them for you.
That doesn't make them a bad skill to have in ones toolbelt. Just keep in mind that companies love tech without techies and LLMs could be one of those tools where usage is bimodally distributed, with hardcore experts on one side building the tooling, and domain experts on the other side using the tooling; which may not leave much space in the middle-ground for someone knows a little bit of both sides.
Coding the transform isn’t trivial, so we’ll get some contract dollars to solve it, but it will still be done faster than the naive approach.
These are pretty sophisticated customers, but they don’t have a deep math background. Without that you wouldn’t find the “obvious” solution.
Would those be stuff like carpentry/construction, animal husbandry, distilling alcohol, making "green" petrol/diesel (from vegetables), cooking gas (from food scraps and manure) ...
And anything and everything else that might be considered long term and post fall of civilization prepping?
At that point you might as well also add knowledge of some Germanic (that includes English), Slavic and CJK/Asian language... Though French, Spanish, Portugese and such could also come in handy.
Knowing how to actually apply computers directly to solve problems quickly is always quite valuable outside silicon valley
How to test backups
Unidirectional networks, and how to use them
Microkernels, multilevel security and capabilities
Along with the popular answersJust because quantum research is in demand doesn't mean you will be in demand or successful.
Take Elon musk for example.
He knows a Stanford PhD is highly valued. But it only took him two days to realize that he doesn't have the IQ that match his classmates and he is not smart enough to be a leading researcher. He realized it early enough.
Had he decided to continue to stay at Stanford, he would have probably dropped out after 2-3 years feeling demoralized with imposter syndrome.
So the best skill I can think of is always knowing your limits.
It is literally asked and answered every week at least.
Not using search before asking shows disrespect to community, am I wrong?
Every dying community I've ever seen was full of low quality and repetitive questions.