The everyone-should-learn-to-code movement has been going strong for a few years now. It will be obvious for anyone who does code that coding isn’t for everyone. While everyone might have the potential to learn some of the basics, “coding”, no matter how you define it, involves an enormous network of deep, deep rabbit holes.
If you had asked me 5 years ago what it meant to be a good programmer, I might have said: I donno. You need to be good at math? Whereas now, I’d almost certainly say that the most important ingredient for the aspiring coder is persistence. The basics are there for anyone to learn — learning about strings and arrays and writing some x + y functions is possible for absolute beginners in almost any language — but the road past that, towards http and APIs and GET and POST and on and on and on, is long.
Noah Veltman has written the best piece I’ve read to date on this:
Learning to make things for the web – If I set aside my own bias as a web developer, this is probably the category I’m least sanguine about for a broad audience. I certainly think a basic working knowledge of HTML and how the web functions is necessary, but I’m willing to buy the argument that we shouldn’t send journalists who really are just looking to write too far down the web rabbit hole. This is mostly because, whereas a journalist who dabbles in using code to analyze data can get real immediate value out of a few tricks, the same is less true of the web. Once you get past the frisson of excitement you get the first time you switch from web consumer to a person who just made a real live web page, there’s a long road before you can make something complex that could go on your news organization’s website. You have to put in a lot of reps before you can wrestle with all the little gotchas of making something for public consumption on every imaginable browser and device.
And finally, as a 5-year home owner, this one paragraph resonated loudly with me:
Learning to code is not like learning calculus, with some big fixed corpus of knowledge you need to absorb. It’s more like learning to be handy around the house. You start off knowing nothing, and then as needs come up you learn bits and pieces without a grand plan, weekend by weekend, with plenty of hammered thumbs and structurally unsound carpentry. Slowly but surely, those bits and pieces coalesce into something approaching expertise. You build up the confidence to be bold and take on problems you don’t yet have any idea how to solve.
One day you’re at Home Depot buying a hammer and a carpenter’s square, and the next day (years later), you’re laying hardwood floors and rewiring a nursery. At least that’s the idea anyway.