Advice to My Younger Self

When I was 16 I was visited by a man who said he had come from the future. He had traveled twenty years back to 1999 to sit down with me and have a chat.

We talked for an hour or so, and in the end he gave me a few pieces of advice. I have lived by these and they have served me well, and now I dispense this advice to you.

Become allergic to The Churn

First he warned me about the churn, and I have since learned to recognize it.

The Churn is losing a day debugging because a transitive dependency changed a function signature. The Churn is spending a week just to get a project you wrote a year ago to even run. The Churn is rewriting your front-end because a shiny new thing came around.

Many people are blind to The Churn. They waste days, weeks, months of their lives without blinking, or worse, they get a perverse sense of achievement because the thing which was working fine works again.

The Churn is a resource sapping disease, and the first step to recovering from The Churn is to recognize The Churn, the second step is realizing it doesn’t have to be this way.

There are a plethora of techniques available to combat The Churn that have been around for decades, but our industry is slave to a hype cycle driven by popularity contests, with little regard for upgrade paths, backward compatibility, and long term support.

Luckily many people do see The Churn for what it is, and once your doors of perception are cleansed you will learn to recognize these people and the work they do. You will discover vast ecosystems of languages and tools that will go to great lengths not to break what wasn’t broken.

These are the olives of technology. Olives aren’t candy, and tasting them the first time isn’t always pleasant, but soon you will develop a taste for them. They have been here since ancient times, and they will remain for centuries to come. They are good for you, solid, reliable, nutritious. Eat less candy and more olives.

Examples: Clojure, Common Lisp, HTML, Make

Counter-examples: JavaScript, Ruby, React-Preact-Vue-Angular-…

Study the Great Traditions

He then went on to speak about The Great Traditions. These are technologies that have been around for so long they form their own worlds. They are like great philosophical traditions, with foundational documents, and generations of commentaries and derived works.

From the outside looking in they are like alien civilizations, complete with their own languages and cultures, perhaps unlike anything you’ve come across before.

The combined effort and experience that has gone into creating each of these traditions is measured in millenia. These people know things. They have seenthings. And when you scratch away the hipster veneer of your technology stack you will find they are everywhere.

So how do you go about approaching something this vast? First off, don’t rush it, time is on your side. Maybe you are Young and have More Important Things To Do First. That’s fine. These things were here before you, and they will patiently wait until you’re ready.

If possible find a mentor, someone to be your shifu and teach you these ancient arts. Stay humble, and let your curiosity guide you.

Some of the things you learn will be eminently practical in your day to day work, but beyond that you will develop an appreciation for technologies that stand the test of time, and the design, the culture, the principles they are born from.

Examples: UNIX, LISP, The Web, Emacs, TeX

We spoke about many more things in the end, and maybe one day I’ll write about those too. And then he left, mysteriously as he had come.

Now twenty years later, prepping my time machine, I know that person was me.