How should I go about learning CS?
gills: My opinion might stray a little bit from some of the answers here.  I don't think a CS education is complete without an understanding of how the whole stack works.So work through the Scheme lessons in SICP or HTDP, it's a fun and playful language!  You can easily build interesting algorithms and watch them in action to get a better feel for how computation behaves.  You will also be introduced to FP which will help you in the long run as a dev.From there I like to think of two directions you could explore.Down => compilers, OS design, processor/memory/machine architecture, networks, circuits, physics.Up => automatons, language theory, complexity, ways to mitigate complexity (approximation, optimization, AI).Sideways => the wide world of application programming.It depends on what tickles you...but in my opinion a basic understanding across the spectrum will provide you with the framework to explore more specific areas without feeling lost.