>>10218523As far as algorithms go, the rabbit hole goes deep and it's nontrivial. What they teach you in an introductory algorithms course is very straightforward, but everything else is full of hard tricks/deep insight. Any intermediate algorithms course that covers harder material like using a fast fourier transform to solve pattern matching or anything related to cache obliviousness makes this apparent.
Theory of computation is a vague word for a large field. It has to do with foundations, automata theory, complexity theory, type two effectivity, etc. Honestly, the best course of action is to double major in math and CS. Focus hard in CS theory courses, but also take hard systems courses (not software engineering courses, but things like OS design, embedded systems, processors/VHDL, etc.). I will say that CS isn't all discrete, and a lot of your continuous mathematics like metric spaces and analysis come back, just with different names like valuation and Levenshtein distance in domain theory.