I have been working for 3 years now as a professional software engineer. From my experience working many wonderful engineers, I think everyone is self taught. Doesn't matter you have a CS degree or not.
Most of my colleague are CS degree holder, all of them told me that CS degree is not really helping them. They told me that the university(in my country) doesn't really prepare them for the real world challenges. Which made them a bit hard to secure their first job. Most of the tools and method they use for their work(coding) are learned by them self. Most of them get their way up to higher position by learning new skills by them self.
I am also telling this, because I have a colleague who are self taught. And from my experience working with them, some of them are better than those who have a CS degree.
I am not discouraging anyone from taking a degree. Go take your degree it can be helpful, and maybe you can find a good network. But my question here is, Do we really need to spend more than 3 years to learn those stuff? What do you guys think?