1. 28

  2. 19

    After nodding along at assertions like this for years, lately I find myself growing impatient with them. The question I now ask is, “supposed to by whom?” It’s worth forgetting the academics (like me) for a minute, and following the money. Some facts:

    • Computers were created by countries warring against each other. The earliest digital computers were created with huge budgets, occupied rooms and were maintained by armies of attendants.
    • The very purpose of software engineering is delivering large-scale projects. We take it for granted – and teach every generation of programmers – that “requirements” are externally provided, and the programmer’s job is to meet the requirements.
    • Software development is a more lucrative career than most. Everyone knows this. Everyone knows that everyone knows this. There’s a huge selection bias in favor of treating software instrumentally. Very understandably, the first question for everyone involved is: What’s the payoff for learning it, teaching it, developing it, consulting on it?
    • The personal computer revolution occurred after 40 years of development. Even if everything that came after was at a human scale (false by a huge margin), we haven’t yet had 40 years of personal computers.

    Putting all this together, software education is almost entirely in the implicit context of building things others want, at scale and for profit. All the tools we rely on were built by industry for large-scale use cases. Is it any surprise that our education is suffused with problems involving bank accounts and customer/sales tables? That we have a hard time articulating more situated uses for computers? That it’s all about getting a job?

    I strongly believe software should be taught to everyone, at least to a basic level before they develop informed consent on whether to learn further. But let’s be clear-eyed about the structural forces opposing this.

    1. 4

      “Computer science” was the word that caused me some trouble here. I spent some time trying to understand what the article was saying, and I concluded that the article, at the same time, managed to be elitist and to be trivial.

      The statement that “computer science was originally invented to be taught to everyone, but not for economic advantage.” is loaded.

      Perhaps it is a reaction against the “We need to teach everyone to code.” craze, but then I found elsewhere in the article a note about how not teaching everyone computers was a threat to a democratic society, so I really could not place it.

      Computers are a tool. Some people build the tools, and a lot of other people use them to do what they actually want to do, like make art or run a business.

      I’d like to compare the use of computers with the use of cars. When cars first came out they were fiddly things and for a while you had to be mechanically inclined to use them. Then they became more and more user friendly because for every one who liked to spend evenings under the motor there were a thousand for whom it was a tool to improve life quality.

      We got to the nice position in society where you didn’t have to know anything about internal combustion, lithium ions, gears or electric motors to use the car for business or pleasure.

      Through the efforts of those employing computer science we are approaching the state where you don’t have to know about bits and bytes to use computers for business or pleasure, and we have been at a reasonable spot with that for many decades now.

      It is not a threat to the free world. If we need to teach artists and entrepreneurs computer science so they can use computers we have failed in the same way as if we had to teach them thermodynamics and electrical engineering so they can drive a car.

      1. 4

        Academics aren’t incentivized to create something like this, because doing so is just “applied” research which tends not to be as prestigious. You don’t get to write many groundbreaking papers by taking a bunch of existing ideas and putting them together nicely.

        Consider electronic voting as a simple example. With a paper ballot, the set of people that can audit the process is huge: basically, anyone who is numerate and not too badly visually impaired. Any candidate who has enough support to stand a chance in a fair election can find people who can turn up in polling stations and monitor the ballots. Contrast that with an electronic scheme where (ignoring the difficulties accessing the code) the number of people who can audit the election is very small. There are a lot of examples like this where power is concentrated into the hands of a small number of people who understand a particular system.

        I’d like to compare the use of computers with the use of cars.

        I think that is an incredibly misleading analogy. 100 years ago, a car was a machine to get you from A to B. Today, a car is a machine to get you from A to B. The value of the car is directly related to how well it performs that specific task. The task is reasonably well defined and (aside from a few changes to traffic legislation) really hasn’t changed much over the last century. The most valuable car would be one that requires zero maintenance and drives itself. Having cars all do the same thing makes traffic management easier and improves efficiency in the system overall

        In contrast, the value of a computer comes from the fact that it can be made to do new things. The larger the space of new things you are able to make a computer do, the more valuable the computer is to you. If enough people need to do a specific thing then there may be some off-the-shelf software that does it already but as soon as you want to do something more specialised then you need to make the computer do something new. This may be something simple, such as entering a new formula into a spreadsheet or writing a macro to automate a task in a word processor, but it still fundamentally a specific thing that you are making the computer do beyond what everyone else does with it.

        If we need to teach artists and entrepreneurs computer science so they can use computers we have failed in the same way as if we had to teach them thermodynamics and electrical engineering so they can drive a car.

        If we are going to say that the only tasks that someone should do with a general-purpose computing device are the set of things that an elite of programmers have permitted that they do, then we have failed them in a far worse way.

        1. 1

          It is not a threat to the free world.

          Events with social media, misinformation, and the like beg to differ.

          as if we had to teach them thermodynamics and electrical engineering so they can drive a car.

          Even mechanics don’t need to know either of those, so the comparison feels forced.

          1. 11

            I have a computer science degree from a fairly well-known college. I disagree pretty strongly with a lot of my friends and colleagues who studied computer science at the same time and place I did, about exactly what specific things are the problems with social media, what information constitutes misinformation, and what the correct political or technological responses to these issues are.

            Expecting people who study computer science to magically have the right answers to these fundamentally-political questions is like expecting everyone who knows how to take apart a car engine to magically have the right answers to public policy questions about what the right road tolls should be and whether it’s a good or bad idea to build a highway in a given location.

            1. 1

              No, of course I don’t expect any X to magically Y in any context.

              What I do expect is that better-educated populartions are harder to control at scale. Would teaching person X that computers can process information in ways A, B, or C make them realise Facebook is dangerous? No, of course not, just as teaching person X to read would not have broken the stranglehold of the church by itself.

              1. 1

                I would agree that better educated populations are harder to control.

                However I lump any “practical” computer science degree in with the least educational vocational schools and schools which don’t take the liberal arts seriously. A liberal arts degree is an education… at some schools. But not others. It’s just as useless as computer science degrees that don’t head for theory land and get lost there.

                To the point where I tell most people who want to code professionally who wish to go to university that they ought study anything but computer science.

                1. 1

                  Oh, of course, most of most current University systems is a shit show. But most people wouldn’t get CS exposure at University anyway because most people don’t go to university. Anyway, veering far out of the topic space now I fear…

            2. 3

              Events with social media, misinformation, and the like beg to differ.

              How strong is the evidence that learning computer science makes one less likely to fall for non-computer-science-related misinformation?

              To the extent there’s a correlation, it seems like it’d be pretty hard to disentangle “learning computer science” (which is what we’re talking about getting everyone to do) from “being predisposed to learn computer science.”

              1. 1

                More that knowing anything about the power of computing would make people less likely to blindly give over all their data and attention to a single black-box program.

                1. 11

                  Is that actually true, though? I know tons of people with CS degrees who are totally fine with Facebook, etc. At the same time, I know a bunch of people who aren’t terribly technical who are concerned about that stuff. I think it actually has much more to do with general civic awareness than technical skills.

              2. 3

                But is social media and misinformation really caused by computers? I’ve been thinking so for a while. It’s easy easier to get into bubbles. It makes sense.

                But lately I am not so sure anymore. Looking a few decades back, you still have crazy terrorists, but you also have really crazy cults, mass suicides, and terrorists with horribly obscure believes.

                At the same time it’s easier than ever to get opposing opinions, even in circumstances where one is watched a lot of the time.

                I think to some degree it’s easier to be professional looking, but then judging things purely by looks has always been wrong. Yes, I think people have to learn to not blindly trust everything, but people had to do that with conspiracy theories in books, newspapers, TV.

                Besides that people really should not forget how history also changed society over these decades. Vietnam war, child war, the wars in the middle east, huge amounts of lies were told by governments across the world. There’s good reasons for people to distrust governments.

                We have a situation now where we see different media telling different stories, but we have had that. Catholics vs protestants, different parties having their own newspapers.

                Of course today media spreads faster, maybe too fast, evoking emotions like the other things I’ve mentioned did. Globalisation, everyone knowing English, information “warfare” being possible by smaller groups or individuals being possible all are part of that.

                However with the history one needs to put things into perspective. And in my opinion it’s not too different from terrorist organizations of any kind having better weapons, because there are better weapons.

                I think social media and a culture that doesn’t care about making stupid ideas public just makes things that used to be thought in private, talked in homes, bars, etc. more public. We get a mirror of society that is real time rather than having investigative journalists having to infiltrate personal meetings. Now you know how your cousin, your uncle, etc. actually thinks about the world.

                I think that being public about all things also lead to other changes. People date to talk about their sexuality, about diseases, as well as many other former taboos for the same reasons.

                I think a lot of this is two sided. I certainly think social media is to blame for all sorts of things, but I do think a lot of what they are criticized for is making symptoms visible and most likely enhancing them. I don’t think root causes are often found in social media.

            3. 2

              John Kemeny’s 1972 book “Man and the Computer” touched on this a little bit. It’s a brief history of computers up to 1972, and then some predictions for the future. Most of the predictions were pretty good, like a world wide network and online encyclopedias.

              But… he also predicted that eventually everybody would know a bit of programming, which they’d use for automating simple tasks, balancing budgets, keeping inventory at home, etc.

              1. 3

                Who uses a computer and doesn’t know a tiny bit of excel?

                1. 3

                  I was born in the 80ies and some form of CS was part of the public education here starting from the age of ~10 (where a math teacher would usually come in and “teach” logo and/or pascal reading from a book…). It was.. not great, but it was indeed recognized. CS was taught to all schools up to university - where I obviously became biased.

                  I’m meeting with fellows from a multitude of disciplines (biologists, neurologists, statisticians..), they all had CS as part of their curriculum. Nothing terribly in-depth in some cases, but I would absolutely consider this adequate for what you wrote above. So we’re not doing anything terribly wrong on the education front. And, just like math, what you were taught is not indicative of what you actually retain.

                  IMHO the real issue is in the 80/90ies any home computer or calculator I got came with a programming manual and full freedom to tinker. Today I’m paying premium on expensive phones I don’t want just to get an unlockable FW.