Hi NH.
A couple of years ago I realised I was a mediocre programmer. After 5 years of work experience with unfinished degree I knew only one language (php of all...) and some good practices on a surface level. I set that for change. For 2 years I studied in my spare time, learned a bit of Java, go, clojure, learned some fundamentals and good practices classics (gang of four, DRY) started reading blogs and following the industry.
Except, it's too much. I realised I am into too many things. I know a bit of everything, but not too many things well. I want to study data science, maths, devops and find that my desire is driven by fear of becoming outdated and irrelevant. I would appreciate a piece of advise on managing the learning process, get the joy of tinkering back and conquering the anxiety of ever changing rules to the game. Thank you.
As someone who's been at it for years, I'll just give you one little piece of advice. If you've already been through the fundamentals, you've done enough. Now, instead of focusing on learning technology, focus on building things, this is what real engineers do.
Let me explain. You'll probably get much better with at least one thing once you ship a real project to the end, and this is where you'll get better.
One of the best programmers I've ever worked with was a PHP guy when I met him, and he was good because he shipped efficient, tested, and working code fast, all while being able to document and communicate about it with his team. That's what being a programmer is. You won't become a good professional programmer by chasing after hip technologies (even though learning different paradigms always help), but by building things, and preferably with people, because this is how things work in the real world.
As long as you stay with startups and technology companies, you'll see that any CTO or lead dev worth his salt would rather hire a smart Perl programmer with strong fundamentals who shipped things over someone (maybe smart too) who knows a bit of JS, a bit of Java, and a bit of Haskell. This is, however, not true with a lot of non-tech companies, where keywords on resume, a professional-looking attitude, and some good sales skills will usually get you better positions.
It's never too late, don't fear irrelevance, build things, and have fun!