Ever so often, In consuming technical literature, I find myself derailed by the vast hole in my familiarity with much of the jargon of Computer Science.
In my head, I am familiar with a decent amount of theoretical computer science. Programming paradigms are not strange to me. Design patterns, while not exactly the palm of my hand are near enough to only require added concentration to get me where the author of some literature I am reading wants me.
This morning, however, while looking for a less gruelling way to manage a variable list of objects that would eventually be used as a representation for a histogram in memory, I come across a bunch of terms that I can’t make up my mind If I understand in sufficient depth or not.
One of them is “Closure” (in a literature about programming languages). The only recollection of closure I have is that of a Professor on the fringe of lunacy, back when I was an undergraduate taking Abstract Algebra lectures in a class of 150 people crammed into a lecture room designed for 50 people, whilst the ambient temperature was a bustling 32 degrees Celsius.
Something tells me the two are related, but my ability to visualize the abstract algebraic notion is limited by the aforementioned learning conditions. I could quote the notion to you, but I have never thought about it in a context other than algebra, and even then, it seems to be invisible to me most of the time, that is, I get along just fine without remembering it, which is to say my life doesn’t seem to be influenced much by abstract algebra.
I find it much easier to understand concepts framed in a computational context, so this may yet be my opportunity to better understand closure.
Then there is “Generics”. This conjures images of generic pharmaceutical drugs, the kind we are used to in Nigeria, and weirdly, it also brings up images from the movie starring Will Smith: I, Robot– The scene in the robot factory where Will Smith is looking for the errant robot suspected of committing murder among rows and rows of practically identical robots in formation awaiting further processing in an assembly line. Generic — representative of a class of objects. Here we go.
Did I mention lambda calculus? Greek symbol, and a cornerstone of modern mathematics all rolled into one. It drops the temperature of my spinal chord by the right number of degrees and cycles it back up and then down at the appropriate number of hertz too.
A decent amount of tangential reading will probably ensue, and I need to justify why I need to sacrifice the practical aspect of just getting the darned code segment working, which is definitely possible despite these weaknesses in my grasp of the theory behind it all. I can only hope it is a wise idea to understand what is happening at a deeper level of detail, because it affords you more room for creativity when you encounter stranger difficulties in another situation.
If the mere ability to follow and understand contemporary literature is not sufficient in itself, then the face-saving advantage of not looking like a twit among experts should surely do the trick?
Ah, vanity. Always the hidden persuader.