Algorithms. I think they are fascinating, scary, and, as the author above states, like poetry. In just a few lines of code, pseudocode, or math, a whole concept and idea can be expressed. But once you get that a-ha moment of understanding, its a great rush, and can be quite beautiful (see fractals, etc..). They require (for me at least), multiple readings and deep study to pull out the underlying meaning. Then putting them to use is another big challenge. As any computer scientist knows, an algorithm can make the difference between a program that runs, and one that will never finish.
To further my knowledge on algorithms, I've enrolled in the Coursera algorithms class which has so far been pretty good. I think they are taking a great approach to understanding the algorithm, and having the students implement them. Thus far my favorite has been Union-Find, of which I'll try to do a writeup of tomorrow.