I am big fan of Theory and Algorithms. I had once an opportunity to visit Theoretical Computer Science at Indian Institute of Technology, Madras (IIT-M), India. I have got a know about a lot theoreticians there at IIT-M. When I went there I didn't have any idea about what Theory was, but today I am total love with it.
Thanks to @Kate F for the pointer, yes Hopcroft and Ullman is an excellent place to start.
However here is how I have started,
Read the Introduction to Algorithms by Cormen.<\br> This is an excellent place to start. When you study try to understand each proof in as much length as possible. If you understand the proof well, try to code the same logic in any language of your choice. (It takes a bit longer but its worth a try)
Follow the top conferences in Theory like
FOCS
SODA
STOC
EC (Electronic Commerce) -- Algorithmic Game Theory
COLT (Conference on Learning Theory) -- Learning Theory
CRYPTO -- Cryptography
SOCG (Symposium on Computational Geometry) -- Computational Geometry
CCC (Conference on Computational Complexity) -- Complexity Theory
Even if you don't understand much try to read and THINK as much as possible. You have to do as much proofs as possible..
- This is a wonder place to look at if you are thinking of Computational complexity in particular (This is from Stanford). http://plato.stanford.edu/entries/computational-complexity/This is from Stanford).
- Follow Prof. Sanjeev Arora, Boaz Barak, Jelani Nelson, Madhu Sudan
- Here is a set of synthesized information in the field of Computational Complexity (http://www.cs.berkeley.edu/~luca/notes/complexitynotes02.pdf)Computational Complexity