A Programmer’s DilemmaGeorge AcevedoBlockedUnblockFollowFollowingJan 13Photo by Vladislav Babienko on Unsplash“An investment in knowledge pays the best interest,” says Benjamin Franklin.
But if knowledge is like an investment portfolio, then not all knowledge pays equal interest.
I am writing this article because I was presented with the dilemma of learning Excel or learning Scheme (a Lisp derivative).
It is a dilemma because my time to invest in my knowledge portfolio is limited, I want to make the best return on my time invested, and I cannot learn both.
While oftentimes we are told by most that Excel is better option, I believe that learning Scheme is the better option that pays off in the long run.
In this article, I will address readers that have proficiency in a procedural or object-oriented programming language, such as Python and Java, and are wondering what to learn and do next.
Roadmap AheadI will examine the benefits of learning Excel and Scheme, contrast their benefits, conclude that Scheme is the superior learning option, and argue that one should not learn both Excel and Scheme.
Photo by Mika Baumeister on UnsplashBenefits of Learning ExcelEnter any office, boot up a computer, and you are sure to find an Excel shortcut on the taskbar faster than you can say, “and here is the Microsoft Windows Logo.
” Microsoft Excel has become the lingua franca of spreadsheets, as well as the poster boy for office productivity software.
Its primary benefit is that it acts as a universal format that nearly every member in any company can understand, from data entry specialist to VP executive.
Its record number of users is perhaps only eclipsed by the number of users of Microsoft Word.
Hence, the primary reason to learn it — or at least from a programming perspective — is that everyone else uses it.
No one else wants to read your Jupyter notebooks, no matter how interactive or insightful they are.
Benefits of Learning Scheme, a Lisp DerivativeTravel to the depths of the programming world, and you’ll find Scheme (Lisp) as the same position as Pluto.
Lisp (Scheme) is quarter-century old programming language, known for its applications in AI programming.
Scheme particularly is rarely used in production environments, but rather as an educational tool to learn functional programming concepts.
Scheme has a restrictive syntax, a small standard library, and a huge learning curve.
Hence, the primary reason to learn it is that it will teach you a style of programming — an entirely new mode of thinking and reasoning about code — that you can later import when you are coding in other, practical languages.
If functional programming — looking at you Haskell — is like achieving programming enlightenment, then learning Scheme is the first step to achieving Nirvana.
Photo by Cody Davis on UnsplashContrast of Excel and SchemeScheme is reserved in a small corner in the IT world, unlike its more popular analog.
Thus, it is more practical to learn Excel because more people use it.
However, Scheme will expand you’re thinking, while Excel will detract from it.
I will explain in the next section.
Do not Learn Both Excel and Scheme.
In Fact, Don’t Learn Excel at AllIf all you have is a hammer, then everything looks like a nail.
In the developer community, trendy startups like to use the term “programming language agnostic” to convey the idea that they do not hire for any particular tech stack.
That they hire only for “programming skill.
” But this term is misleading because selection of programming language affects thinking.
Selection of programming language affects thinkingAs computer scientist Paul Grahm writes, “Ordinarily technology changes fast.
But programming languages are different: programming languages are not just technology, but what programmers think in.
They’re half technology and half religion.
” In other words, the conventions of Java forces the thinker to think in terms of classes, beans, and polymorphism, Basic in terms of loops (it doesn’t support recursion), and Haskell in terms of first-class functions and functional purity.
The problem with learning Excel as a programmer is that it takes an abstract thinking process— that is programming — and makes the abstract thinking more accessible by creating a visual UI to define data and procedures.
And in here lies its limitations to the mind of a programmer.
Do you really want to muddle your thinking with a system that forces you to use hacks for trivial tasks, such as sorting a column by the first word in the column, which entails creating a new column with the first words, sorting the newly created column, and then deleting it.
I’d rather learn the weird looking languages with a lot of parenthesis any day.
Reader Note: I am not an expert on the history of Scheme or Lisp.
I may confuse use the two terms interchangeably.