picture of sin

Sina’s PKM

programmer hero's journey

[ Category - Essays ][ Category - Programming ]

So I read a lot of programming blog posts. It's just the kinda thing I start and can't stop. There's a few kinds of typical programming blogs:

  1. The great rant: Popularized by Steve Yegge in the early blogging era, the programmer rant is a great decree against some popular way of doing things. Usually, it's Java.
  2. The tutorial: These were step-by-step personalized ways of doing things. Usually they had little jokes, code snippets, and source links.
  3. The explainer: These blog posts are the ones the really break down an idea to show how it works. Usually with toy examples, lots pictures, and maybe animations. If done well enough, these usually became books.
  4. The programmer hero's journey

The journey

My favourite style of blog post. It starts out with a (usually ambitious) goal "Let's make a search engine" or "Let's make a static site generator", and progresses like a tutorial. So why isn't it a tutorial?

The author doesn't know how to get from point A to point B.

The journey is what is documented, not the result. Along you come for the ride as they test different frameworks, benchmark different runtimes, and attack a problem from all angles while you sit there reading prose and code in nail-bitting anticipation: is the poor bastard going to pull it off?

A library is found that reduces size complexity by nearly n! The day is saved! But wait, it doesn't work well with NGINX? It was a red herring all along! But what if it re-compiled to WASM...

The programmer hero's journey is story told through code, sweat, and tears.

Following the hero's journey, specifically the adaptation for the story circle:
1. Character is in a zone of comfort: The programmer, king of his own little domain knowledge
2. But they want something: To build a search engine, to create an FPGA, to use databases as file storage
3. They enter an unfamiliar situation: A new language, framework, paradigm, or some super weird side-side-side-issue nobody ever thought of
4. Adapt to it: The best part. Language learnt, library created, hardware bit-banged, Operating system: written.
5. Get what they wanted: It works in this specific sense!
6. Pay a heavy price for it: Hours and hours of staring at an evil glass pane flipping ungrateful bits
7. Return to their situation: The "present" in the blog post.
8. Having changed: Chosing to use the learnt language, approach, or paradigm. Or just appreciating the nuances of something seemingly simple.

In a film theory sense, it is realism. The trial and error of these humble clackers of the keyboard brought together by last-minute hacks, genius tricks, clever macros, abandoned libraries, and random chance, all culminating in a barely-working version which the reader can find on GitHub of course. It has a sense of suture to it. An egotistic identification. Inspiration.

It's the story we can all relate to. You love to see it.

Pages that link here:

hero's journey
[ Category - Programming ] The hero's journey is a story structure of the archetypical novel or film or video game

Current progress:

Loading... articles read πŸ€“

clear progress? 🚨