Talmudic Truths For Programmers — The Lightning Edition

Yechiel Kalmenson - Nov 19 '17 - - Dev Community

Transcript Of My Lightning Talk At RubyConf 2017

As mentioned in my last blog post, I spent the last week in New Orleans as a Scholar at RubyConf 2017. One of the funnest hours is the Lightning Talks session, when anyone who wants can sign up to give a talk on any topic they want for 5 minutes (we even had a former vet get up and give us tips on how to take care of our 4 legged friends). I volunteered to give a talk entitled Talmudic Truths For Programmers. For those who missed it, I present it to you here:

Me on the stage at RubyConf
The back of Yukihiro “Matz” Matsumoto’s head. Oh, and that’s me on the stage too.
Photo credit: my dear friend Ben Greenberg

Before I was a programmer I was a Rabbi and a teacher. I spent a lot of time, still do in fact, studying Talmud. The Talmud is interesting in that one can find so much relevant on so many different subjects. Ever since I started programming, I started finding insights relevant to my new hobby as well.

This collection of insights can make up a whole talk, but I only have 5 minutes so let me share one or two:

The Talmud tells of a debate between the great Talmudic sage Rabbi Akiva and the Roman provincial governor in Israel at the time, Tineius Rufus, the following is a loose translation:

Turnusrufus the Evil asked Rabbi Akiva “if your God loves the poor so much, why doesn’t he provide them with sustenance himself?” Rabbi Akiva replied, “So that we may better ourselves by helping them.”

Tineius Rufus said “to the contrary, helping the poor makes you guilty in God’s eyes, let me give you an example: suppose the emperor got angry at one of his servants and had him thrown in prison, he commanded all of his other servants not to feed him. Now suppose one servant defied the king’s orders and fed the errant servant, wouldn’t the king be angry at him?”

Rabbi Akiva replied “I will give you a more accurate example: suppose the emperor got angry at his son, and in his temper he had him thrown in prison, he commanded all of his servants not to feed him. Now suppose one servant defied the king’s orders and fed the errant son, wouldn’t the king send him gifts when he found out? Similarly, we are all God’s children, as it is written ‘you are children of the Lord, your God’ (Deuteronomy 14:1).”

This argument may sound arcane, but it’s strangely relevant. Tineius Rufus committed a well-known fallacy known as the Just-World Fallacy; we all have an innate need to feel that the world is just and fair, so if we see someone suffering, say they are poor for example, we try and justify it by saying that the person must be lazy, or that they lack drive, all as a way of justifying why they are poor and, when taken to an extreme, to justify why we don’t do more to help them out.

Rabbi Akiva replied that such a world-view is wrong. When we see imperfection in the world we need to see it as a challenge, a place we can improve.

So now you’re all saying “great, that sounds like a great sermon, but what does it have to do with programming?”

Let me share a quote from Steve Klabnik:

Programming is a movement from a broken state to a working state. That means you spend the majority of your time with things being broken. Hell, if it worked, you’d be done programming.

I recently worked as a coach at the Flatiron School, I helped many students new to coding through their questions and bugs. I noticed an interesting thing. For every student, there was a moment, a “switch”, when they changed from a “civilian” to a programmer. That switch happened when the student learned not to be afraid of an error message.

Civilians are afraid of error messages. It’s this scary thing the screen barks at them, which may or may not be their fault, and usually something they can’t fix without the help of IT. As programmers, we see lots of error messages, but for us, error messages are guides, they are opportunities, they show us where the code is broken and what has to be fixed.

We thrive in broken environments. We view systems that aren’t working as an opportunity to fix and improve.

Let us take this worldview and apply it to the world outside the office, by seeing imperfection and using it as a springboard to improve, both ourselves and the world around us.

Thank you!


This article has been cross-posted from my blog Rabbi On Rails.
You can read more about my coding journey there, or by following me on Twitter @yechielk

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .