Lots of people think Computer Science is all about programming. A degree where you get shipped off to University and only learn how to write software, or even worse, how to use a computer.

As per the excellent book, The Structure and Interpretation of Computer Programs, Computer Science is neither about computers or a science. It’s a way of talking about process and the way of doing things rather than talking about what it is.

For example, the standard, declarative way to explain a square root would be to say that it is a number that, if multiplied by it’s self, the result would be your original number. While this tells us how to check if we have a square number or not, it doesn’t tell us how to find the square root of a number. It doesn’t provide us with a simple to follow series of steps that result in the correct answer.

And so, while programming is something I deeply enjoy the more I delve into the theory side of things, the more I become fascinated by trees, graphs, logic, algorithms. The list goes on and on.