Prologue
Useful In Theory
Prologue
My intention with this blog is to explore computer science theory from the perspective of a professional programmer. I’ll be using the term theory loosely to encompass almost anything that’s published in a journal, but i don’t feel too bad about that since even the theorists can’t quite agree on what theory is. To say that i’m not a theorist is like saying that my pet chihuahua is not a greyhound: it is immediately apparent but has never stopped him from chasing rabbits.
My sense is that there is more interest in CS theory among software engineers now than there has been in prior decades. Google Trends does not back me up on that, but I would cite the increasing popularity of things like PapersWeLove, blogs like Adrian Colyer’s The Morning Paper and Jeremy Kun’s Math ∩ Programming, and the burgeoning interest in functional programming. This wouldn’t be surprising given the explosion of work on algorithms and distributed systems in big data and cloud computing.
I also think the study of theory is a good counterbalance to the software-as-craftmanship movement, which (unintentionally I think) encourages the idea that programming != computer science. On the contrary I think even the most mundane CRUD app is benefiting from an enormous amount of computer science– we just don’t usually have to think about it anymore.
Anway, here we go. Not surprisingly, the first topic is a variation of hashing