As I get further into this, I want to take notice of things along the way, and specifically how my mindset changes. This is a good thing to do, because one’s interior world is likely to change, and then one can forget how that world used to be. This creates an easy opportunity for misunderstanding, judgment, and other bad times between people whose interior worlds look different.
In other words, I’m taking note of the way this journey changes my interior world because I don’t want to be a dick.
So one of the first things I’ve noticed is: code bears a strange resemblance to how we classically conceive of magic.
Let’s consider the ways that this is true:
- Magic is not done by just anyone. In order to invoke some magic you have to use arcane, exotic, or ancient languages, which are not known or understood by common folks.
- The execution of your magic is easy to mess up — quite a lot depends on mastery of the arcane language’s word order and accent, various preparatory rites, and so on. Attention to detail counts, else you’ll turn somebody into a newt.
- If your spell is phrased and performed correctly, then some unseen intelligence will understand your intent and execute it with blinding, inhuman speed and efficacy.
So … that’s all pretty cool.
For the beginning developer, all of this “magic” conspires to create a feeling of punctuated, electric brilliance for the beginning developer*.
*Which I am, at the time of this writing.
The first time your for loop works, the first time your recursive function does something intelligible, the first time your program responds to user interaction correctly … you feel like a goddamn magician.
This feeling begins to explain why:
- … people can get really into code [because ‘electric brilliance’ is full of dopamine].
- … seasoned developers can become arrogant [because habitual success as a true-to-life WIZARD can really get to your head].
So, as I begin this journey, my overall intent seems to reveal itself: embrace the magic and keep it going; remember not to become a condescending wizard.
Originally published at ianschu.com on November 20, 2017.