I am all for self-teaching; it's how I learned. That said, I've been bitten by it a few times as well, so, this is speaking from experience.
With self-teaching, what constitutes "knowing" a thing? Getting it to work or understanding what it does? Using code you don't truly understand can lead to problems down the line (things like public vs private variables, scope, race conditions, too much resource consumption, loose security, etc).
Additionally, extra effort needs to be made to pay attention to how the industry expects you to work. Things like source control, frameworks, package managers, etc...none of that stuff is NEEDED to make an application and there are many of those things out there to suck up your time and brainspace...however, if you plan to work with other developers in the future, they will want to use these things because that's what the industry is doing and you may have to unlearn what you've learned in order to adopt them.