The Present of Coding, Late 2021
It's fun to talk about the future of coding. It's good to have a destination. But as I age and worry less about seeming impressive and think more about just getting results, I'm more interested in working with the present state of the world. This perspective comes from balancing the needs of Replit's different customers, watching what my own kids get excited about, and reading and writing code.
A founder told us to “keep lowering the barrier to entry. It should be possible to build something interesting in 2 minutes.” That advice deals with an ideal future. It's also a useful measuring stick for the present.
Plenty of people sit down to code with a clear goal in mind. Work through this tutorial. Complete this bootcamp. Teach this course. Build a website.
If you know what you want to do and how to do it, then you sure can produce simple output within 2 minutes. Unless something goes awry. You're missing a library. Some dependencies come into conflict. The network's slow.
Sanding down those bumps takes time. It's usually gritty engineering. Sometimes you can design away a whole class of problems. As we make progress here, more and more people who know what they want to do and how to do it will be able to accomplish their goals in ever shorter bursts of time.
What if you know what you want to do, but now how to do it? You can take the time to learn how to build your project, but that will take much longer than 2 minutes. You can find a project that's close to what you want to build, copy it, and start changing stuff. You might make the change you mean to within 2 minutes. Or you could flail for an hour and give up.
Tools, templates, and tutorials can all help here. The more examples there are, the easier it will be for people to find the one that's closest to what they want to build. But the real stumbling block is emotional.
People don't like to feel stupid. People don't like spending time on something only to have it not work.
Learning how to build in any domain takes practice. You have to practice the skill, of course. You also have to practice reading and managing your emotions. Right now, the best way to learn to do that is by finding a mentor/coach/friend to listen to you and nudge you forward. Someone who expects something of you.
Seeing people you respect struggle and ultimately succeed helps too. Building means going from a tiny working program to a slightly bigger working program, with lots of not-working in between. Finding a way to condense that process into 2-minute videos might help. We celebrate the end result of the process without really teaching the process.
What about people who don't know what they want to build and don't know how to do it? That happens more often than you'd think. I definitely have moods when I'm itching to do something but I'm not sure what. One of my children will sometimes come to me and say “I want to make something.”
Another way kids express this feeling is saying “I'm bored.”
You can't fight boredom head on. Asking “why don't you go do such and such?” elicits an “I don't want to” every single time. Boredom is a feeling. You're not feeling energized. You'd like to, but you're not.
To deal with my own boredom, I find I have to change the frame. Go for a walk. Or a run. Do an errand. Get outside.
For other people's boredom, the best tactic I've found is to get something interesting going for myself. Start a game. Start a puzzle. Go yank some weeds. If the bored person wants to join you, then they can choose to. It doesn't have to a big deal. They don't have to explicitly listen to “why don't you go and do such and such” advice. They can just join in.
Computers are both great and awful for boredom. You can slip off and make a web site. You don't even have to show it to anyone. You don't have to announce I Am Officially Making Something! But it's even easier to passively entertain yourself on a computer. You can even read about building stuff instead of building stuff.
In general I try to stay away from computers when I don't know what to do with myself.
Apparently I've long held a fantasy of engineering my way around boredom. That doesn't sound like the right move. Where coding stands currently, we can keep making it easier for people who know what they want to build to get to building it. That'll probably have outstanding knock-on effects.