“Surely there must be a better way of doing this”, I thought to myself, as I scoured the relevant directories for “proof” (in the form of a blurry jpeg) that X person was a graduate from Y university.
This was part-and-parcel of the process of legal due diligence, where every material statement necessitated “demonstrable evidence” - a Herculean yet seemingly Sisyphean task.
“If only there was a way to run a directory-wide ‘command-f’ on images and scanned PDFs.”1
Instinctively, I consulted the Internet and came across Tesseract OCR. Back then, Optical Character Recognition was an entirely foreign concept to me - I was oblivious to its existence and of its potential use cases. From my research, I discovered that I could utilize this wizardry through Python, so deeper into the rabbit hole I fell.
Ever since I was an undergraduate, I’ve had a vague desire to dip my toes into programming. It was not until this incident that I felt the pressing need and urgency to do so. Why had I not done so earlier? Perhaps it was due to self-doubt - I didn’t want to risk being confronted with the bitter truth that I was incapable of learning programming, despite my best efforts. But I had nothing to lose.
I flirted heavily with this idea for a few hours, before deciding that the prospect of dramatically increasing my productivity was too great to ignore. If not now, then when?
I enthusiastically embodied the archetype of the Fool, and started learning Python by reading Automate the Boring Stuff.
Since then, I’ve embarked on project after project, picking up Scheme2, Clojure/Clojurescript3, Javascript, and Solidity along the way. With this new-found, insatiable hunger for all things computational, I consumed and produced at an equal pace, iteratively approximating my competence ceiling and subsequently breaking through it. I vigorously followed my natural curiosity, plunging into the depths of algorithms, Artificial Intelligence, data analysis, and smart contracts, striving to appease my latent, now-awakened knowledge Leviathan.
And that’s how I fell in love with computation.
-
This was the first “real” script I wrote, an inelegant solution which involved writing filenames and file content to a csv, from which I could search. The code was messy and hacky, but it was functional. The productivity gains were great; the fulfilment was several magnitudes greater. ↩︎
-
From Structure and Interpretations of Computer Programs, my first “proper” textbook. I believe that going through all the exercises in this book contributed significantly to my knowledge base of computing. Some of my solutions for the exercises can be found on the SICP-dedicated Scheme Wiki under the username x3v ↩︎
-
A combination of Paul Graham’s feverish passion for Common Lisp and binges of Rich Hickey presentations led me to Clojure. ↩︎