Future of Coding Plan

Last month, I set aside a single day – October 16th, 2017 – to write my life plan. It summarized my past and current philosophies on life. It also help me set my priorities. My work is #8.

Speaking of work, creating this Future of Coding plan has proved difficult. I produced a number of different versions over the past few weeks. This is the 5th.

Table of Contents

Versions of this plan

I think it’s important to explain how I arrived at my ideas. Let me show you my steps. You can even see the eraser marks.

1. /about

My first draft did a good job of justifying the path I was currently on. I articulated my goal of making “programming as intuative as Facebook”, and my strategy of getting there by building “a functional reactive Scratch.” The next steps, according to this plan, are FRP research, working on my design principles, and starting to prototype!

2. /plan v1

Where the last version was justifying, this next version was inquiring. It was directly inspired by Chris Granger’s SPLASH 2017 keynote, which I highly recommend. It refocused my attention on the end-user. What do they want to do with coding?

In it, I also created the follow chart to help organize my dozen ideas on how to move forward:

# Customer Sustained by
1 Students Parents
2 Students Patreon / OC*
3 Adults Companies
4 Adults Open Collective
5 FoC Ppl* Patreon
6 FoC Ppl* VC Management fee
* OC stands for Open Collective. 
* FoC Ppl stands for "Future of Coding people", other people working on future of programming tools

3. /plan v2

I showed the above table to Dan Shipper last week. He was really excited about #5: doing research, creating prototypes, writing essays, and recording podcasts for the Future of Coding community. It does seem like a good match for me: allowing me to focus on my favorite activities, and get to skip dealing with the logistics of revenue, customers, and employees. This path makes sense as long as I don’t care about money (beyond basic sustainability) or having control.

The open questions from this plan are:

  1. What if nobody listens? What if nobody builds the future of coding that I write about?

  2. How do I write content that people read? How do I develop a following?

  3. How do I sustain this strategy financially?

  4. Will I enjoy being a full time “researcher”, instead of an entrepreneur?

4. /plan v3

In this version of the plan I started keeping this running tab of past versions of the plan. (Something that the unbreakable-links library may one day do for each of my files automatically.)

I also articulated my mission as “empowering creative expression through programming” and my design principles, which I refactored out to their own page.

The central question is to build or to research?

But first, I need to make sure things are wrapped up at The Coding Space, WoofJS.

Then I need to do research on FRP or a blockly competitor.

And also think about sustainability.

5. /plan v4

This is the current version below…


Inventing on Principle

The lens for this version of the plan is Bret Victor’s Inventing on Principle.

Delicously Embaressing

I haven’t watched this video since I was a freshman in college, five years ago. I can still remember buzzing with excitement as I wrote an email to Bret Victor immediatley watching, saying something to the effect of, That is how I want to live my life. Tell me what to do next.

I wish I had a copy of that email. I bet is deliciously embaressing… oops I found it:

Hey Bret,

I just watched a few of your lectures and was especially impressed by Media for Thinking the Unthinkable and your DBX talk. At the end of Media For Thinking The Unthinkable talk, you mentioned that if we’d “like to help you find [this new medium], let me know.” So this is me letting you know that’d I like to help you find it.

I’m not exactly sure what that’ll entail, but you’ve convinced me that it is an incredibly worthwhile project.

Best, Steve

So it seems like my memory is failing me here. While I did love Inventing on Principle, it sounds like I waited for a few more videos – and an “invitation” – to email him.

Anyways, last week I rewatched it last week and was blow away all over again. There was so much that I had forgotten!

Fighting for a cause

First of all, the main point of the talk is the concept of “crusade” or “fighting for a cause,” which I’ve recently been refering to as “living for an outcome,” without realizing the similarty. I thought I was doing an Elon Musk, Juan Benet thing. If forgot about Larry Tesler (no modes), Bret Victor (immediate connection to creation), and even my hero Seymour Papert (microworlds). I have been having trouble figuring out Alan Kay’s.

Last night in discussion with Jonathan Leung, we articulated Elon’s as “averting existential disaster.” Juan Benet’s is something like, because Elon’s taking care that, I’ll work on “accelerating innovation via Bell-Labs-style research.”

For contrast, I don’t think Steve Jobs or Bill Gates had a cause they were fighting for.

Trick question: how do you find your cause?

That’s not the right question because your cause doesn’t exist somewhere nebulous “out there”, either somewhere else or some time else in the future. You don’t have a cause. There is nothing to find. You must create your cause based on your beliefs and priorities about the world. (In fact, nothing is discovered. Everything is constructed. I just wrote almost a thousand words on the subject.)

How do you construct your cause?

Bret gives some good advice: do things. Interact with the world. Try a lot of different things. Reflect on your reactions, your responses. What attracts you? What repels you? What lights you up? See what you create. Keep a list. It make take years.

Then reflect on it. Can you synthesize all of what you’ve created and what lights you up into a unifying vision?


A cause can not simply be to make simple products. That’s too general. There’s no insight. There’s no umpgh. You can’t wage a crusade on a platitude.

(Disclamer: The actual historical Christian crusades were horrific in basically all ways, save the one: fighting with ones life for what one believes in. However, if this wording bothers people for all of the negative connotations, I will look for a better metaphor.)

If you want to fight with your life for something that everyone already agrees with you on, you’re going to have a boring life. You need to have an insight that others disagree with because they don’t have the context to appreciate your vision. As YC says, the insight that Airbnb has was that strangers would pay to stay in other strangers’ homes. Imagine Airbnb without this insight: making travel accomidations better. It’s un-actionable.

“No modes.” Now that’s an insight. “Creators need immediate connection to what they create.” That’s an insight. “Microworlds can be what the gears were for Papert.” That insight is responsible for making me who I am.

I think Elon’s is something like “save the planet from existential risks as a by-product of selling people what they want.” It’s the Tony Stark method, funding your superhero exploits by selling weapons, only Elon is combining them, which if I recall Tony Stark eventually did too.

Constructing my cause

I have thrown out a few different poorly articulated ideas in the past, including enable thinking (which I’d currently rephrase to the Engelbart augment thinking), or transform programming into a medium for creative expression. However, the first of those was too broad and the second too specific to contain my and what I want to fight for with my life.

So how do I construct my cause. There are a few ways to do this:

1) Pickle myself

Marinate in the ideas that pull me close. That’s Bret Victor and all of his influences, particularly Seymour Papert, but also Alan Kay, Vaneer Bush, Douglas Engelbart, Jerome Bruner, and all the people Alan Kay talk about, including Mountessouri, Marshall McLuhan, and of course Papert’s model Piaget. I’d also include a few more modern influences including Juan Benet, Chris Granger, Pete Hunt, Lloyd Tab, Paul Chiusano, Omar Rizwan, Nicky Case, Chris Granger again because his last Strangeloop keynote was fire, Jonathan Edwards, Mitch Resnick, Andre Staltz, and the almost 100 people on my twitter list.

Read all of your influences. Everything they’ve written. Read their sources. Of the things that you have fond memories of, read them again. Takes notes. Reflect on them in length in writing. This is what I did yesterday with the Dynamicland zine and it got me thoroughly pickled.

2) Look at what I’ve done, and generalize

I haven’t done this part yet. Will do when I resume writing this plan at some point next week…

Next Steps

1. Construct crusade

1a. Bret Victor Deep Dive

1b. Visit Dynamicland

And maybe Protocol Labs.

1c. Continue pickling, building & reflecting

2. Construct “real” plan