It is a super fun piece that attempts to explain software to non-coders. It starts by explaining what a computer is (“a clock with benefits”) and from there it expands into what are programming languages, why are there so many, how are apps made, what the whole process of building software might be like in a business, and concepts like compilers, debuggers, interpreted languages, version control and so on.
But what is so cool about this article is that reading it is a great experience: it has a lot of interactive examples and animations (between my favourites, a keyboard that displays make/break codes as you type, a representation of the whole article as a tree, and a Euclid’s algorithm animation). I have never seen something of this scale, where content and multimedia are so rich, so I thought of posting it here.
There are hilarious analogies all through the text, like
There are 11 million professional software developers on earth […] That’s roughly the population of the greater Los Angeles metro area. Imagine all of L.A. programming. East Hollywood would be for Mac programmers, West L.A. for mobile, Beverly Hills for finance programmers, and all of Orange County for Windows.
Data management is the problem that programming is supposed to solve. But of course now that we have computers everywhere, we keep generating more data, which requires more programming, and so forth. It’s a hell of a problem with no end in sight. This is why people in technology make so much money. Not only do they sell infinitely reproducible nothings, but they sell so many of them that they actually have to come up with new categories of infinitely reproducible nothings just to handle what happened with the last batch. That’s how we ended up with “big data.” I’ve been to big-data conferences and they are packed.
And insightful parts, too:
Books and songs are now rows in databases, and whole films are made on CPUs, without a real ray of light penetrating a lens. Maybe learning to code will give you a decoder ring for the future. Disruption is just optimization by another name. SDKs are just culture encoded and made reproducible, and to an entire generation, they’re received as rapturously as Beatles albums were decades ago.
A nice touch, in this era of 140 characters portions, is that at the end you get a diploma certifying that you have read 38k words.