Could you share some examples of the things you learned but then became irrelevant? I wonder if we could find some pattern to help people avoid learning modern stuff that will have the same fate.
Off the top of my head, things I never implement or use anymore:
* socket listeners
* line drawing
* explicit memory management
* old APIs and libraries
* Perl
* Assembly
And things I rarely use:
* Semaphores & other threading primitives
* XML
* C/C++
Now, knowing these sometimes helps, but the amount of time I spent on them probably doesn't justify the benefit aside from the fact that it was necessary at the time.
And somebody is doing these now — I just find I don't need to, as it's always handled somewhere below the abstraction layers where I work.
An equally interesting list would be the things I use now that didn't exist when I graduated from college in 1996.
There's a good course on Pluralsight about learning management strategy. It basically boils down to considering the expected half-life of the knowledge and then apportioning time based on that and stratifying the learning.
I can't recall the specifics but it's something like
10% deep-diving on long-lived fundamentals
25% going deep on your core stack you will be using for the foreseeable future
The rest on the what's in front of you + what's coming next