I was always a bad speller. My knowledge of geography is frightening. And I was the last kid in his class to pass the timed-arithmetic tests in the third grade (you had to retake them until you passed). I got a C in Earth Science. I struggled in Chemistry. And spectator sports never interested me in the least. Now what do all of these things have in common? Up until recently, I just thought that the only thing they had in common was that I was bad at them. But I have a new theory. These things all involve the arbitrary. And I hate the arbitrary.
What is "the arbitrary", you ask? I define "the arbitrary" as anything that involves the memorization of facts that are, well, arbitrary. Or to put it another way, "the arbitrary" are large groups of information that you can only learn by memorizing each discrete one. For example, the spelling of the word "beautiful", which I didn't learn until Jim Carrey's "B-E-A-utiful" line in Bruce Almighty. Or how you need to know that 9 x 8 = 72, without having the time to work it out by addition. Or how a student needs to learn the names, positions and capitals of US states, or the elements of the periodic table. Or even how a sports fan learns the names, positions, teams and numbers of their favorite players. They're all arbitrary facts. You can't conceptualize. You just have to memorize.
Most of lower and middle school is spent teaching students the arbitrary. So, I thought I was pretty darn dumb up until around 8th grade. That's when I started one of the least arbitrary concepts of all: functional computer science. And I learned the name for the opposite of the arbitrary: "the elegant". In 8th grade, I started learning Scheme, a dialect of Lisp and it changed my life.
Scheme (and other functional languages, like Haskell and OCaml) are build upon one of the most elegant computational theories out there, Alonzo Church's lambda calculus. The basic theme is centering all mathematical computation around functions. And through a very small amount of rules, anything in mathematics can be derived: the natural numbers, booleans, and my favorite, recursion. (What is "recursion"? Let me google that for you. Just make sure it's spelled correctly!)
Now, what's the point of all of this categorizing? Most people are good at memorizing the arbitrary. Millions are die-hard sports fans; thousands compete in geography and spelling bees; and almost everyone is better at mental math than me. That's a good question. One reason I'm spelling out this dichotomy is to help explain my own likes and dislikes. Another is to help others categorize themselves in a way that can help them understand their own strengths and weaknesses.
|The Arbitrary||The Elegant|
A girl I was tutoring in high school physics once lamented, "Why can't high school be more like lower school? I was so good at memorizing. Now it's all about understanding and I don't understand!" And she's right. She was really good at memorizing. We sat next to each other in 4th grade and I would get 80's when she would get 100's. She is really good at the arbitrary.
Unfortunately for her, high school is all about the elegant and that's my house.
Recently, I was selling show tickets when I was handed a $20-bill for a $12 ticket. I quickly handed the guy $7 and he walked away. A minute later, after I realized the error of my ways, I was running down Locust Walk Abe-Lincoln-style with a dollar in hand. So, for those of you out there who are bad at the arbitrary, never fear! You may just find peace in the elegant... and become a functional programmer.