Doing a BS in CS would be the best, otherwise you will need a ton of self-discipline to learn even a half of what you would learn in a degree program. If you decide to self study, and have enough "mathematical maturity", you will find everything you need on MIT OpenCourseWare, they have all the core courses available online with video lectures, solved homeworks etc. I would start with going through those two first: S…
It is hard to beat a good CS curriculum with real teachers, peers, assignments, tests and grades. These things don't work well for everyone, and the pressure can be pretty intense at times, but damnit that pressure can really burn stuff into your neurons that would otherwise go in one ear and out the other. The overlapping of topics and repetition of important concepts are also typically lacking in a self-learning en…
I dunno... I think it depends on the individual a bit. OK, to be fair, I did drop out before finishing my B.S., but up to where I was at, I can honestly say that I learned 90% or more of what I learned, outside of class, reading and practicing on my own. The only class I really remember the teacher's explanations helping a whole lot, was in certain parts of Discrete Math.
I could be wrong, but I feel like some people are just "wired' for teaching themselves stuff, learning from books and videos and websites, and then throwing the occasional question up on the Theoretical Computer Science Stack Exchange[1], or /r/askcomputerscience or whatever.
At the very least, I would posit that most people can learn an awful lot through self-study. Maybe not enough to do ground breaking research in C.S., but certainly enough to bump up their knowledge of the "basics" to where they aren't clueless when somebody else in the room starts talking about algorithmic complexity or finite state machines or whatever.
[1]: cstheory.stackexchange.com