I know web devs who have taught themselves CS fundamentals and the stuff you mentioned, but they started with boot camp doing Rails. And why not? They were able to teach themselves this stuff while working for a good salary and getting experience for their resume.