I've often used the metaphor "computers are magical" to convey the idea that the average user has no idea how the most important tool in their daily lives operate. Thus, it follows that if we can say computers are magical, then computer science is, well, magic.

(And that sounded more like a math proof than I intended.)

Perhaps one of the most iconic scenes in the Lord of the Rings trilogy is in the Fellowship of the Ring when Gandalf shouts "YOU SHALL NOT PASS!" at the Balrog as Frodo and the fellowship flee to safety. (Then the Balrog doesn't pass and it and Gandalf fall to the fiery chasm below and we're left to watch five minutes of Frodo making weird emotional faces and Aragorn being, you know, badass-leader-Aragorn... But that's outside the scope of this post....)

For those of you who didn't know, Tolkien, the author of the trilogy (ahem - not Peter Jackson) was a linguist. He studied and invented languages (like, Elvish. And Dwarve-ish. Orc-ish. Men-ish, etc.) and all magical creatures in Middle Earth had some sort of power of language - Elves could heal by speaking magical words, Gandalf stopped the Balrog simply by telling it to stop. In Middle Earth, language is power.

In this regard, programming is power. Computer science is magic. Just a few seconds of tip-tapping away on the keyboard can create something from nothing almost instantly. As computer scientists, our tool for creation (if we choose to accept the cliched toolbox metaphor) is language. I can't help but geek out that I can literally (well, kind of literally and hyperbolically literally) use words to conjure action (without the persuasion of others, that is). Who needs a Hogwarts letter when you can code?!

Okay, maybe I would still take the Hogwarts letter.

But my point is that computer science is beautiful because it invokes language - perhaps one of the defining characteristics of humanity - to create.

It's art, it's math, it's science, it's engineering -  computer science feels like magic. It is.