I joined a small team at a startup. Those guys did their best to make me produce quality code as soon as possible. They were reviewing my code several times a day, and teaching me what to do to, to make it efficent, easy to understand and well designed. Early on they even made me read the "Clean code" and I am eternally grateful for this.
Now I think part of being self-taught is actually having to find teachers on your own. Software Engineering is always about knowledge - whenever you code, you're probably solving a problem, which hasn't been solved before. Otherwise you'd just use some library to do the trick. It means that programming is about inventing new stuff, and so when you tell someone about your code, you're actually teaching them about it. Whenever you join a new project, someone has to teach you how to work with their system. If you're independent contractor building software for your client, you have to learn their ways of doing business.
High tech jobs are all about knowledge transfer, this way or another.
During my college I didn't learn that much from my professors, when it comes to software engineering in the trenches. I did learn a lot during college though. It was a time of meeting other people who were passionate for technology. We could exchange our insights, and do college projects our way. We would give each other feedback on our work, and so we were actually teaching each other.
I think above applies to meetup groups, code retreats and similiar initiatives. Programmers gather together to learn. Software engineering is all about knowledge transfer, and you have to want to learn, but it doesn't mean there's nobody to teach you. You just have to find your teachers on your own.
You are self-taught, but never alone!