Skip to main content


"Everyone should be able to program."

#Poll #EvanPoll

  • Strong agree (11%, 72 votes)
  • Qualified agree (36%, 222 votes)
  • Qualified disagree (31%, 188 votes)
  • Strong disagree (20%, 124 votes)
606 voters. Poll end: 1 year ago

Evan Prodromou reshared this.

This is "everyone should be able to service the car they drive" territory. A view strongly argued in some pubs until about 20 years ago.

My view is that it is a useful skill, needed more in some careers than others. If it's complicated then hire a professional. Just like cars.
@glent Agree. Not everyone needs to know how to service their own car, however they _do_ all need to know how to _drive_ their car
@theblazehen@glent what if we invert that and say that cars should be simple enough that the average person can service their own?
I think computational thinking is a bit different than programming and arguably more important.

I also feel like an understanding of privacy and how the modern internet uses and abuses information is much more important.
@lindsey I think that having the agency to control and modify your experience is important, too.
That is so depressing
The thought that everybody has to align themselves to the machine. It's dehumanising. Most people will never be more than users/consumers anyway and personally I think it's good if we have (lots of) people around who don't see everything in computer terms...
Don't get me wrong, basic computer skills are a necessity these days but I see that as a long way off from "everybody has to know how to program"
You mean should be able to vs has to know how to? Different tone, but basically boils down to the same thing.
@garbageman how about, computers should be made so that everyone can program them?
That is a totally different angle 🙂 Qualified agree.
@garbageman I think I misread the question too as thinking it more as a 'should be educated to' rather than able. Doh.
Qualified agree. Everyone should be able to program in the same way that everyone should be able to write: most people won't do it professionally or bother getting good at it, but they should still be able to script basic tasks.
Everyone should be given the opportunity to learn to program and should be taught the problem solving skills that enable that.

Everybody should be taught that 'making stuff' is not the province of large companies and anyone can do it, if they want to.
Everyone should have the option to, and basic programming should be taught at school, but the ability to put "hello world" onto a screen is akin to playing "Three blind mice" on a recorder.

Not everyone can or should continue a musical journey, the same for coding.

Teach enough to give an appreciation then let the student choose.
It is an extremely rare item that starts with "Everyone should " that fails to get a "strong disagree" from me.
Strong agree. But my definition of programming is not just automation, but data awareness and general understanding of computer capabilities, and privacy.

People don't all have an understanding of the data "value stream". Something as simple as allowing an app to import your contacts data, or using an online form builder to share a questionnaire asking pointed questions of your circle of associates can be quite detrimental.

We need another definition for computer literacy. Usage+safety.
Simply no. That's such a badly worded question. Everyone obviously can't (disabilities/age). And the world's still quite a big place where basic electricity can be scarce.
If maybe you meant something like, "every person in x countries who's in education or economically active should be given opportunities to program" then yes. Plus encouragement for adults outside work in those countries.
strong agree, because almost (sigh, to be consistent should've qualified) everyone CAN program.
@mlinksva well, it's a really heavy lift even for people who do it for a living. It should be a lot easier.
certainly. Strong agree with your post-poll analysis starting at https://mastodon.social/@evan@prodromou.pub/109701221507474258
at this point it's a matter of basic literacy. I don't think this should even be controversial (and yet)
it's like saying everyone should be able to sing, or paint, or cook. Yes most can learn at least a rudimentary level but that doesn't mean their efforts will be valuable to anyone else in the world beyond themselves, and even that can be questionable for some folks.
@lakelady why does it have to be valuable to anyone else?

Everyone should be able to cook.

Everyone should be able to sing.

I'm not sure about painting per se, but everyone should be able to draw.
if you don't use a computer why do you need to code? Cooking - everyone need to be able to feed themselves. Sing - no one needs to teach that. Same with drawing. I'm not sure there's a "need" to code as there is with the other items. Will knowing how enhance your life? Possibly. Will you suffer harm if you don't know how? I doubt it.
As a one-liner, it's a bit like saying "everyone should be able to draft a contract". Basic familiarity is a useful life skill but it's important to know when to say "I'm out of my depth, let's hire a professional".

If the question was "Everyone should be given the opportunity to learn to program", my answer would be very different.
@david how about, contract law should be simple enough that anyone should be able to make and read a contract?

I think the movement toward plain language in government and legal systems is a step in this direction.
I think that’s an excellent goal. I’m not sure it’s achievable, though! Just the nature of precisely specifying an agreement requires a different way of thinking—and writing—than day-to-day communication.

Having said that, when I took an Internet Law module during my degree they emphasised writing with clarity and conciseness; I don’t see much of that in most UK laws, so there’s definitely room for improvement!
I was peripherally involved with OLPC. It enabled kids in the global south (and the US), to gain some access to basic computer programming (python, turtle, scratch, etc). It depends why, for what reason, ease of use. It enables understanding of math, logic, a sense of empowerment of themselves, of technology. If its about becoming employed programmers, not really. As others mentioned, people need skills to understand the internet, media, privacy, technology, none of that is 'programming'.
I'd also object to this for a second reason -- curriculum overload.

There is currently too much crammed into schooling, and that pushes against time for teaching basic life skills. If you want to teach digital literacy then something else has to go. That should be an explicit choice, because implicit choices nearly always remove play and exploration, which are one of the most valuable schooling activities for both primary and secondary learning.
@glent we don't have classes to learn how to post on the Internet or watch Tiktok videos. Kids just learn it.

We could make software creation similarly simple if we put the time into it.
if they want to, sure. Maybe even have it as an optional middle school/high school class. But if that's not what they want to do? Nah
Qualified agree: everyone should have the opportunity to learn, both in school and in free adult courses if they regain interest later. Everyone should have practical access to computers, Internet / network connectivity, and any software or accounts realistically necessary to do actual programming. There should also be types of programming that are simple enough to be accessible to dabblers, children and anyone else who doesn't have time for a degree.

Access is vital, proficiency isn't.
how do you define programming?
@est I have found from experience that doing that kind of fine definition in comments on my polls never works out well.

It's much more interesting if you think of what your own definition is, and respond based on that definition. Feel free to explain here!
i define it as telling a computer what to do, so yeah i think people should get in on this

Evan Prodromou reshared this.

I think basic understanding of technology, the way it had to be understood when it was new, is important - the newer generation is being kept ignorant about a lot to do with privacy and other things that are convenient for big companies to leave out, unless they go full compsci. However, as someone with dyscalculia and ADHD, saying people should be "required to" etc just sounds like another way to get people with disabilities put down and made to feel stupid/less than.
I think having some basic knowledge of how computers work is healthy for understanding things like how platforms use your data, what algorithms do in the background, how info/disinfo propagates and how these things affect your life in general.

So I put qualified agree. I don't necessarily think people need to learn how to code to any significant level. Still, I think it should be an essential part of education today, if only so that people can make educated decisions.
certainly most schools now support this... Just a matter of generational change.
Depends on exact nuance of meaning. Everyone should have access to the resources needed to learn to program, and resources needed to utilise those skills. I don't think everyone needs to take advantage of those resources, but they should have access to them. This is why I'm a promoter of foss.
@MykDowling "able to" means they can if they want.
@Myk
Yeah, that's how I took it to mean, thus my Strong Yes. A lot of commenters seemed to be taking it to mean "Everyone should _learn to_ program", a quite different question.
Strong agree with @est definition of people being able to tell computers what they are supposed to do.

So no, they do not need to be OK-ish programmers in Python/c/Erlang/whatever-lang. Yes, the UX should allow everyone to be able to solve tasks and do automation.

IMHO we fail on the encouraging and UX part quite often.
defining “able to program” as both “not being restrained by lack of tools at different expertise levels” and “there are ways for people to build up their expertise level”. Not as “everyone should be required to program”.
@juandesant yeah, it's weird how many people misinterpreted "able to" as "required to". It feels like there's something important in it that I'm missing.
I think when we see “being able to” many people read “I need to make myself able to” instead of “the system provides affordances to enable me”.
my inner business analyst is quibbling over the world "should". If we mean they should be provided the opportunity, in school or adult training, then strong yes. If should as in an expectation then I think this is a qualified no. To vote, I'll read it literally and thus go with the latter.
@tehstu "should be able to program" like "should be able to vote" or "should be able to say what they want"
@Stu
I would change my vote, in that case 😀 Thanks for the clarification. I have to say, this is why I quite like things like PowerApps, which at least attempts to make programming accessible.
insofar as everyone should also be able to paint and play an instrument. It's an art form and takes time to perfect. As a hobby or job sure. But there are plenty of occupations/people who have no interest. I love cars and love working on diesel engines as a hobby- I am not a mechanic.

It's a spectrum. There is knowing enough to be dangerous, knowing you don't know it all... And the less than 1% that know a shitton more than everyone else.

Agree everyone needs EXPOSURE to the art form.
Should, as in, be free to program if they want, yes.

Need to know how, no. Some people can't grasp programming, or have no interest.

A diverse society is needed for it to be a healthy society.
Reading is the only thing “everyone” should be able to do. Then they can decide what to learn.
This entry was edited (1 year ago)
@peter_weyand

Sorry you don't like polls. You should block the Poll and EvanPoll hashtags.

I didn't finish your post once I realized you were hijacking my thread to make an unrelated point.

Best of luck!
Strong disagree, no one should be forced to learn computers on such a level.

Most people should know how to tell which OS they're running or how to keep their computer updated though.
“everyone should be able to” is different than “everyone should know how to”, imo. Everyone should be able to avail themselves of the resources and community to learn how to program, if they want to. Everyone should not need to know how to program, no.
@phire how about, creating programs should be easy enough that everyone can do it?
I think a lot of this for me just comes down to like, modern life is so complicated and we interface with so many things and systems that we can’t possibly be conversant in all of them, and I don’t see why programming should get special treatment over things like plumbing or sewing or whatever. Everyone should be able to learn it, but if you choose to spend your energy tokens elsewhere I don’t think that’s intrinsically a bad thing.
define 'program'
@philmyboots I don't do specific definitions like that for my polls.

It's up to you to define "program" for yourself, and then answer according to your definition.
@philmyboots it may be interesting for you to look over the conversation on this poll so far.

https://prodromou.pub/@evan/109695408783994717
If you mean methodological, systemic, algorithmical, divide-and-conquer way of thinking about the world around us, then yes.
It's very useful mind model (among others).
For me, 'program' is too wide a definition to answer the question accurately

It encompasses a wide spectrum from optimising microcode for risc processors, to having the ability to change the times on your central heating boiler via the UI

Generally, the further along the spectrum you go, the more advantageous it would be for people to learn those skills

But the short answer is strong disagree

Not everyone needs to. or has the inclination to 'program' stuff
@philmyboots how about, everyone who uses technology has a right to create programs that automate that use?
Definitely.

Everyone should have the opportunity to learn the tools that they need or want. Like maths
Everyone should be allowed to program, certainly. Computing machines ought to be rootable and programmable. Schools to teach it should be available. People shouldn't be put-off or discouraged by teachers.

So I agree: everyone should be able to program.

There will never be a world in which everyone has the capability of programming though. And there will likely always be people uninterested in it too.

So I disagree: no, there will always be lots of people who are unable to program.
@pre what did you eventually go with?
I clicked agree, it is an aspiration that we should strive for but it is not an assertion of any fact.
I think the percentage of people who *can* write some kind of code will go up, but I think that "everyone" isn't a thing that will happen. Some people just don't think that way. Some people don't want to. And that's fine.

I don't want to do my own auto mechanical work, despite that being a thing that a lot of people think "everyone" should/should be able to do.
Right now, or in a distant future?
Qualified agree. If you define “programming” as writing a proper database query, creating a basic Powershell/Bash/Zsh/Automator script, or even a macro in a spreadsheet program then yes, those are things people should in fact know how to do. I don’t think many people regard those tasks as “programming”, though.
@kidehen@Mastodon yeah, I really hope this is one mode for software construction that we can use in the future.
/ #UX problem that’s obscured the issue of natural language based programming to date. Basically, you have a conversation oriented interface that supports voice or typing modalities for input capture.

If you haven’t seen it already, watch the following clip about an iOS shortcut for experiencing this power aptly dubbed “Siri Pro Mode” .

https://youtu.be/BezLkm1bFmU

/cc @Mastodon

#gptChat
Depends on the opportunity costs
If learning to program meant no time to learn how to cook or repair a bike or, I'd rather say no.
Wow. A lot of ambivalent feelings here and in the comments. It's an intense topic!

I am a strong yes, but my definition of "programming" might be different from yours. I think of programming as "creating programs", that is, creating novel computer behaviour.

The main way we've done this, so far, is by writing code in a programming language. It's so engrained that most people think coding and programming are synonymous.

But code is just one way to create programs.
Writing code mostly sucks. It's a tedious process with a lot of busywork. Most people find it needlessly byzantine.

I think computer scientists and software engineers self-select for people who understand and enjoy coding. We think it's great, so we don't try very hard to explore other modes for software construction.

When we do, the visual programming or 3GL systems we create are limited and less powerful than our existing coding model, so we don't put much energy into them.
I think everybody should be able to program the same way I think everybody should be able to attend a city council meeting. If there are systemic impediments to people exercising that power, that's a problem with the system, not the people.

There's an engineered helplessness in most people's experience of technology. I'm a software developer, and about 75% of the time I feel like a total victim of the software I use. It sucks.

People deserve to control their tech and share it with others.
Like, how well? I spent a year of my life as a CS major and play around with projects there and there. But my goodness I can't/don't want to build an actual piece of software. My attempts have been mostly failures, in large part because I am not remotely up to date on what post-2006 engineering is supposed to look like.

To me it sorta seems like writing academic papers. Everyone should have a taste of it, and have an opportunity to get good at it, but nobody should have to.
@ntnsndr everyone should be able to create programs to control the technology around them, such as phones, computers and smart home objects.
If they want to, sure. But I think more likely to be important is that everyone should wield accountability over whoever happens to create those programs, whether through real choice or direct power.
One really dark part of this thread is how many people respond that it would be terrible if everyone were forced to learn how to code.

Like, what an awful comment on the state of software construction that is. Our idea of making software is so miserable that we imagine a horrible dystopia where people are *forced* under duress to use our shitty programming toolchains.
I donate so i don't have to anymore: 🙂
https://opencollective.com/anttipeltola
Hmm. I'm not sure that tooling is the problem with the democratisation of programming (making novel computer behaviour).

I see it more as the problem of needing to be very, very clear about your classifications and intents. Like being a lawyer submitting contracts before a judge who can adjudicate 1M contracts per second but has no common sense.

Should everyone be expected to be able to do that?
Maybe the tooling masks this, but I think it's still a problem underlying everything.
@beardymcnerd the tooling is what requires that level of precision.
I don't think it's (just) the tooling that requires that clarity - I think it's the automation of decision making without generalised intelligence which requires it.

I've spent many years of my life explaining to people why their simple model of the world can't just be automated (because what they mean by 'product' or 'account' or 'license' is not quite the same as what the next team over means).
I read it quite differently.

My take, just as an example, is that I don't feel that I should have the skills to do Edo Sashimono or coffee farming because there are others that have those skills.

Agreed, there should be no barriers to me deciding to pursue those things.

I love computer stuff but I also have high regard for those who avoid it completely.
Spacing or tabs, single/double/reverse quotes, semicolons, pick the brace/paren nesting pairs, plus thousands of flags, libraries, options for single or double dashes, voids, booleans, regex all in a single line? Not problematic at all! 😛ika:

There seems to be no middle ground, where you have puzzle shape make/manipulate a program, and full bore need an IDE with autocomplete + linter to be able to make a hello world.

In 30+ years, the closest I got to being able to do independent, no reference, sit down write code was in TI Extended Basic. Not for lack of trying, it just doesn't click.

Just give me utility so I can do whatever I need to do, and not not trying to teach me to fish by doing the chemistry to make nylon from base chemicals, whilst saying it's easy and anyone can do it. LMAO
I mean, I’d feel that way about being forced to study English Literature and our toolchains for reading and writing about books are pretty friendly! Most learning isn’t fun when you’re not interested.
do you think everyone should be able to replace oil in their car? I think as developers we think that coding is just like learning new language which is not right mindset. There is quite some engineering when it comes to programming and you can clearly see it after working with people right after boot camp. I don't think everyone should learn how to program but everyone should understand the risks of usage of closed source software.
completely agree, and I couldn't tell if #EngineeredHelplessness was a concept other people used did and glad I am not alone thinking about it.
[[Engineered Helplessness]]
I say if they can't program atleast know some terminal/command line commands so they can fix their computer than maybe can understand some code. I know what sudo has to do something with root
Your equation is misguided. "Freedom", "autonomy", and "responsibility" don't mean that people should become unpaid semi-employees of software companies that already abuse the employees they have. Programs are products, not commons goods; I am a customer, you give me the product. I pay for it and if your product sucks, I drop it and turn to the next vendor. Or do you expect everybody to able to grow their own food as well?
@simsa04 I do think everyone should be able to grow their own food, at least in part.
Sad I missed the poll but I agree 100% with this. I wrote a blog post about this a while back (need to get back into blogging)

https://jfred.dreamwidth.org/479.html
:

“I'm a software developer, and about 75% of the time I feel like a total victim of the software I use. It sucks.”

Then, what hope do the rest of us have?
Most people have never been to a city council meeting either Evan.
I really like the notion of visually structuring a program. I always do that anyway, in my documentation.

But it's pretty difficult to encapsulate all the functionality you might want that way, and it adds a very specific IDE requirement.

I'm particularly fond of the node-editor system in Blender, and I can imagine a general programming environment like it (perhaps even integrated with a desktop environment).

But I still don't know how practical it would really be.
That reminds of a semi-lucid weird dream I had once.

I was in a very comfy attic, with afternoon light coming from the windows, I was sitting on a sofa with a wireless keyboard interacting with a large monitor that showed an OS named Ardent.

The fun part is that I knew that ArdentOS used a trance-hypnosis system to be programmed. You need only to have an idea and then the hands just moved on themselves. I remember forcing me to give an 'ls' but it was really hard to interrupt the flow and anyway the command was not recognized, so it wasn't a *nix.

Funnier part: I eventually programmed an instant messaging software (like XMPP) and tried to contact a friend with it. When I started the connection, in the real world the same friend woke me up messaging me on Telegram.
Quite! Apple Shortcuts is an example. It's coding mapped ever so slightly onto a more visual medium. At its essence, it's still speaking machine to a machine. Anemic UX.
I think everyone should know how to program. But we need tools with far more affordable and different mental models to open up the capabilities to non-CS/SWEs.
Many assume that all programmers do the same things and thus should use the same tools. (C++ for all?) They are wrong.

30 years ago, in the first version of the Microsoft Solutions Development Framework, I called for a distinction to be made between the tasks and tools used by "solution builders" who would use macro languages, Visual Basic, etc., and "component builders" who would use C++, assembler, etc.

I still think it is a useful distinction.

https://en.wikipedia.org/wiki/Microsoft_Solutions_Framework
While we (prog-lang guys) maybe make it worse than it should be, I believe programming is fundamentally comparable to math in that it requires abstraction. There's hope that machine learning might help overcome the problem, where "simple" problems will be solved by providing examples of what you want, but we're not quite there yet
@monnier are you a Monnier that I know in person?
Yup, and you also know me as Emacs maintainer
it's been an interesting topic, although coding != programming would have been helpful nuance in the prompt. Plus the "should" clarification. But then maybe they debate wouldn't have be as varied!
For the question as written, I would have voted a strong disagree. But if it was asked "Should everyone be offered to learn how to program?" then I would have answered a strong agree.
@ainali how about, should software construction tools be good enough that anyone can create software?
hmm, if you mean "Do you wish software construction tools were good enough that anyone can create software?" then strongly agree, but if you mean "Is there a moral obligation for every software construction tool developer to make tools that anyone can use to create software?" then I slightly disagree. (As you can see it's the "should" I find ambiguous.)
My ‘qualified yes’ is exactly that - everyone should be able to understand what it means to describe problem solving algorithmically (and ideally, the limits of computability, coding is only secondary
I don’t think knowing HOW is needed but WHY. There are plenty of people who really can’t program. Like I can do some pretty fun things in .NET C# and PHP, but I can’t do Python no matter how hard I try. It also took me longer than I care to admit to understand OOP and why it’s better than transactional programming.
There are a lot of things one can do with a pencil, but nobody ever invented an academic concentration in "pencil science".

Everyone should be able to use a pencil for various things, not limited to filling in checkboxes.
@star if everybody is able to do it, it's no longer specialist knowledge, by definition.
@star
@megaslippers "able to" and "mandated to" feel very different.
@markusl I disagree with your framing.

Everyone deserves to vote, and they also deserve clean water. They have a right to both, and they shouldn't have to wait for one right to be fulfilled before they get to exercise the other.
"Everyone should be _permitted_ or _enabled_ to program" - Strong Agree

"Everyone should be _required_ or _expected_ to program" - Strong Disagree
@LyallMorrison when does "able" translate as "required"?
@Evan Prodromou@LyallMorrison Depends on the reading of "should" and what happens to you if "everyone should be able" and you're not able.
strong disagree in that i don't believe any of our current problems can be solved with software, and that tech people inflating the importance of their industry is actively harmful
@cmddx how are things on the people making games instance?
@cain
quite good! the people here are lovely (in terms of poll results, the distribution seems to be the same as on the original page)
@cmddx cool. Making games is a wonderful experience.
@cain
it is! and it wouldn't be possible without all the artists, writers, and musicians out there, even though their skills are never seen as important enough to be foundational.
@r0ml gave a fascinating presentation a few years ago about whether society sees computer programming more like literacy (in which case everyone should be exposed to at least some level of it) or a protected trade/guild (in which case we gate-keep). As I recall, he ran out of time before reaching a conclusion to that topic, but I thought the framing was useful.
@r0ml
@drgeraint I had a few others: everybody should be able to get healthcare, everybody should be able to attend school, everybody should be able to drink clean water.
This raises important related questions to me because I’m a STEM/STEAM instructor inasmuch as I’m anything these days. Do we start at basic principles or do we start with something much more high level that hides layers of complexity? I tend to think demystifying technology is more important than the pragma around controlling it. But they shouldn’t be mutually exclusive, so my answer here is basically agree. Everyone should have access to learn programming (defined broadly)
@splicer it's weird that we teach programming like "this is how to print out the first 50 Fibonacci numbers" instead of starting with "this is how to cross post to Tiktok and Snapchat"
Ugh. I never learned programming so I was spared the Fibonacci approach. I usually go with a “make the LED go blinky” approach which admittedly sounds underwhelming when I put it that way.
@splicer If the monastery was a response to the "singing lines" of manuscript pages, and the universities to the machined book of pages (Illich) I wonder if we'll need a new institution for screens? If schools were needed to teach reading, maybe classrooms should teach how to use computers to bridge different types of media? I'd like to learn how to keep track of screen discoveries with pages that are printed on paper, or e-ink, something that will stay still for repeated viewings...
@bazkie@markusl yes, many people took "should be able to" as "should be forced to undergo a gruelling multi-year training for"
@markusl Yes, the 'should be' in the question is a bit ambiguous in that regard
Everyone's should take a course about how computers work.

Simple stuff. What's a hard disk, what's a USB, what's windows, what is a web browser, what are internet pages, what are apps, how they work and what in friggin' hell is this Cloud everyone keeps talking about.

I get it - not everyone was born to be a systems engineer, but at least learn the basics of what technology runs your daily lives, people!

I'm going to finish this post with a Carl Sagan quote:
We've arranged a global civilization in which most crucial elements profoundly depend on science and technology. We have also arranged things so that almost no one understands science and technology. This is a prescription for disaster. We might get away with it for a while, but sooner or later this combustible mixture of ignorance and power is going to blow up in our faces.
― Carl Sagan, The Demon-Haunted World: Science as a Candle in the Dark