I really don't recommend reading it alone, but Introduction to Algorithms (Cormen/Leiserson/Rivest/Stein) is really popular with the academics.
Lots of math, proofs, and basically everything that the person who just wants to write cool web pages doesn't give two wits about.
If you're looking for something more language specific to Java or C++, then you could probably check out something on Design Patterns instead.