It's different from a kid learning to become a mechanic. They'd need far more resources for that.
I have a degree but I taught myself after my first programming class. My wife’s dad got her started on a little computer and she took it from there.
Certifications in programming seem like a way to separate people from their money. It might even mark you as an amateur as I’ve never met a real developer (to my knowledge) with a certificate with the exception one software P.E. [1]
[1] P.E. = professional engineer. https://ncees.org/ncees-discontinuing-pe-software-engineerin...
Having a degree is a signal, of something, but I'd argue that it's a pretty weak signal of "is competent at programming". Likewise for industry certifications... they are a signal, but a weak signal.
Note also that this whole setup is a false dichotomy... plenty of programmers are a mix of college educated and self-taught, and may also have one or more industry certifications.
Looking at myself as an example... I have three college degrees (although I never finished my C.S. bachelors), but I consider myself more self-taught than formally educated. I also have 2 of the old Sun era Java certifications. And I have found that this sort of combination isn't uncommon. shrug
Self taught may have fundamental skill sets, but there is benefit in having some sort of educational background which introduces one to some of the more complicated aspects of application design and implementation.
It is that, or being a voracious reader of technical books and being a conference goer, ... ie, basically somehow being able to keep track of and understand the goings-on of current paradigms.