A good mathematician is someone who can see analogies between theorems; a great mathematician is someone who can see analogies between analogies.
The real challenge in computer science is not to write programs, but to understand the nature of computation.