| 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. |