I see a lot of people teaching themselves data science and machine learning but it seems that in the real world you won't be allowed anywhere near such a position without having a degree in the subject.
This is opposed to regular programming gigs where you can get work based on a portfolio.
Also there are efforts to commoditize common methods and algorithms by wrapping them up in APIs and SDKs.
So is it a waste of time to learn it on the side with the hopes of getting a data science job ?
Companies are looking for what you as a candidate can do for them.
Self-study or taking a class signals some level of "I tried to learn this thing." So that's a start.
Even better is "I built X", where X is obviously based on skill you learned. In which case you can omit the class because you have proof of learning, not just trying to learn.
Even better is "I provided business value V to my employer by building X." Because now you're showing how this skill is useful to someone else. So using skill at work is another thing to try.
Ideal is you write the above, but emphasize V (or choose between multiple things you can list) in a way that suggests you can help the needs of the particular company you're applying to.
So there's having the skill (which is good), but there's also how you present it to show it will provide value (also important).
More on the contrast between having engineering skills and marketing yourself here: https://codewithoutrules.com/2017/01/19/specialist-vs-genera...