We all should be reading more technical papers

Posted on June 16, 2015

Recently, I have been making a conscious effort to get back in touch with the roots of computer science as an engineering discipline. The biggest issue plaguing our industry is our lack of interaction with academia. While great strides are always being made in the latter, we’re only now catching on to functional programming innovations that have been around since the early 90s. I feel a big reason for this is that, as computer engineers, we’re simply not reading the appropriate literature.

I love reading technical books. You know what you’re getting into and are always prepared for them. Programming in Scala. Programming in Ruby. Programming Elixir. Akka in Action. Functional Programming in Java 8. Self-explanatory titles. You can even do some light reading before you deep-dive into these books. And there’s always the comfort of knowing that your prior programming experience will hold you in good stead when you begin reading one of these.

This is not the case with technical papers. Out of the Tar Pit. Reflection Without Remorse. Theorems for Free. No Silver Bullet. (In fact, the very first paper I’m going to talk about in the next post easily has one of the most descriptive titles.) There’s a different kind of masochistic joy to be had from reading them. They are never going to hand-hold you in explaining esoteric scientific terms you may never have heard of (or may vaguely remember gobbling up for that exam you had to score well in during your college days). Google will become your new best friend. (Isn’t that always the case?)

You will spend about an hour and realize that you have just about persevered through a couple of pages worth of information; and not yet comprehended both of them fully. (Kindly note that the exaggeration is meant for effect.) You may even give up on them because they’re too dense, take up too much time, and don’t offer a valuable-enough reward for the investment you put into them. But by the time you finish even one of these, you are guaranteed to be much smarter than before; and end up with about 10 more papers to read - thanks to handy references at the bottom of each one of these.

There is another reason why technical papers make for great reading. Whereas a technical book might water down on a certain topic to make it more accessible to readers of all levels or skim on certain important subjects that may lack “practical” relevance, a technical paper cannot take such liberties; the challenge posed for the writer in terms of conveying the subject matter with clarity and depth is much greater. This also explains why they make for difficult reading for someone within the industry like me.

While we are on the topic of watered-down topics, let us digress a bit. I feel the need to address the functional programmer’s perennial pet peeve: Monads. Not only is this is a subject that is almost always wrongly explained through incorrect analogies, it is also a great example of a topic where reading the literature is essential if you want to understand it correctly and make effective use of it in the future. Amidst the endless sea of blog posts on the subject, I would urge you to consider reading Philip Wadler’s Essence of Functional Programming. I have been told it is the Holy Bible as far as Monads are concerned. I am reading it right now and based on the first 10 pages, I have no reason to doubt the above statement.

I began this journey not too long ago, and I have already read through Why Functional Programming Matters by Prof. John Hughes and Out of the Tar Pit by Ben Moseley and Peter Marks. The reason I chose these two to begin with is because of their regular appearances amongst the plethora of papers floating around my Twitter timeline at any given time. I would highly recommend both of them if you’re just starting out like me. They’re not too dense but pack a lot of punch and will make you think about the concepts discussed therein for several days.

I’m going to discuss what I learned from the first of the above mentioned papers in the next post. Stay tuned!