Hacker News new | ask | show | jobs
by bunnymancer 3623 days ago

    Not everyone should learn to code, just as not everyone should become a chef. 
    Not everyone will need to program, 
    not everyone will be inclined to learn it and not everyone will enjoy it.
This bothers me a lot.

I see it quite frequently that "Not everyone should learn to code". Especially with comparisons to other professions...

As if "Knowing how to code" is the same as "Being a chef"...

"Not everyone will need to program", in the same sense the not everyone will need to know how to cook?

It's true, you don't have to in this day and age. But for it's bloody helpful if you do...

Don't get me wrong, not everyone should be a software developer.

But the considering that you use things that run on code every single day, for the majority of your waking time, it'd probably be a decent idea to know the basics.

In the same sense that if you are a car driver, having some basic knowledge of the rules of the road and a basic understanding of physics, while not necessary to drive, is still bloody helpful.

Now, to comment, as a developer, on the article, it's still good and the part about tutorials is so very true it hits almost a bit too close to home.

Find a tutorial that assumes you're 5. Learn conditionals, understand them. Learn loops, understand them. One. Step. At. A. Time.

Also, the first point just isn't true. I've spent quite some time teaching kids code and Everyone can learn how to code. Even that dyslexic kid with ADD that's chasing the squirrel during class.

Not everyone can get GOOD at writing code. And being a developer isn't for everyone. But LEARNING HOW TO CODE, is something Everyone can do.

4 comments

There seems to be a thing on the internet where nobody can take things simply. They have to make them epic. "Learn to code" becomes "become a master coder" and "learn to cook" becomes "become a chef". Unless they're writing it themselves, and then they think everyone else should understand what they meant.

I see "learn to code" as the same type of learning as math and reading. The basics really are basic, and just require a very literal and explicit thought pattern that isn't always taught in school.

Not everyone is going to be good at it, and that's okay. But they should be introduced to it and learn the basics anyhow.

I thing you are right.

Everyone should learn some basics, just to get a sense of what is possible to automate and what is hard.

Being a professional developer is another thing. To be happy and not feel miserable at work, you actually need to be rather intelligent in multiple ways, and in addition to that also really like it. A certain stubbornness is also required.

I have had plenty of colleagues that were awfully nice but some how never really got a grip of what they were doing. Most of them quit and some of them got administrative jobs which I think they managed to do rather good if perhaps not great.

I think that some people are just not able to keep all levels and abstractions in their head at once.

Every time a post like this comes up, I make the following points:

- Learning to code does not mean that everyone should work as a programmer, just like learning to read and write does not mean that everyone should end up as a professional writer (or even blogger).

- For millennia, human societies have done just fine without the literacy we take for granted today. Rulers could rule without it. And commoners didn't really have time for it. Plus, no one could afford Kindles.

- Before mass literacy, the ability to read and write was necessary to be a scholar or historian. Or part of the clergy. If you didn't want to be any of those things, you'd be well-justified in not spending a third of your lifespan (or whatever 12 years is to a pre-industrial-age lifespan) learning how to read and write, nevermind math.

- Fast forward to today. Western societies have 95%+ literacy. I don't think I need to enumerate all the ways we benefit from everyone being able to read and write, despite the vast majority of people being bad at writing (if Facebook posts are a loose measurement).

I agree with most of what the OP says but am disappointed that she still has a too narrow view about the scope of programming. Writing is, on the surface, the ability to record thoughts on a relatively permanent and highly distributable medium (compared to oral storytelling). It's a nice skill to have if you like being able to disseminate your ideas without literally having to tell it to each person, in person. But literacy's power goes deeper than that. A poet 500 years ago is able to write about love, and today, those of us who are literate can know his thoughts and perspectives, even though we don't know his (physical) voice or even his exact identity, nevermind his place in society.

The OP is completely right that people underestimate how hard it is for beginners to learn how to code. I've always thought that once a novice learns how to use a for-loop, they'll have enough of the power of programming to make their lives better. I still think that way, though I'm happy if that epiphany is reached after 10 weeks.

A for-loop turns out not to be that simple when you really think about what it represents, and there's a lack of easy real-life analogies for defining a stored block of code to be evaluated out of your control. But that's why programming is so much more than what the OP seems to believe. Someone who can write well can communicate their ideas to a yet-unknown human audience. Someone who can program can communicate their ideas to a machine with absolutely no brains of its own, but with limitless mechanical power.

How is that not a universally beneficial skill?

> Someone who can write well can communicate their ideas to a yet-unknown human audience. Someone who can program can communicate their ideas to a machine with absolutely no brains of its own, but with limitless mechanical power.

How is that not a universally beneficial skill?

This is a great point. Programming machines is certainly analogous to communicating ideas to people. That said, machines and people differ in some very meaningful ways. As a result, it's not clear that learning to communicate with machines is of comparable importance to learning to communicate with people.

For example, a small number of people can create an application that provides a service used by billions (Facebook, Google, etc). This unprecedented degree of scalability and leverage is certainly a boon to the case that programming is important. However, it's simultaneously a point against everyone learning to code.

Why? Because when a small number of people can deploy solutions to the rest of humanity, the marginal utility of other people chipping in goes down. If 1% of the population can grow food for the other 99%, it frees up all of us to do other things. It's not all that helpful to spend your time learning to grow food if you can buy perfectly good food that someone else grew. And it's not all that helpful to learn to write a for-loop if you download apps written by other people.

I wholeheartedly agree, programming is a universally beneficial skill. Nobody is worse off for knowing how to code. But there are opportunity costs as well. An hour/month/year spent learning to code is an hour/month/year spent NOT learning X, where X is any number of valuable and applicable skills and habits that might benefit our society more than mass computer literacy.

I consider programming to be on the same level as "knows how to properly phrase Google searches". It won't make or break your life but it will make it a degree easier. For better or worse, Google has become a means of finding information - and finding accurate information quickly is a bonus. Programming allows you to automate many trivial but time consuming tasks. Even being able to write a few functions in an Excel sheet can save you hours at your job (and yes, FWIW I consider functions in excel sheets to be a form of programming). Everyone should be able to read and write basic programs, and as you said, people can still leave software engineering to software engineers.

I've easily saved more hours automating small tasks with Javascript (w/ JQuery) then I ever spent learning Javascript & JQuery...

Now on a completely unrelated tangent, please forgive me.

>you'd be well-justified in not spending a third of your lifespan (or whatever 12 years is to a pre-industrial-age lifespan)

Average lifespan was so much lower back in the day because children dying very young was relatively common (winters and illnesses, infections from injuries, etc.). If you made it into adulthood your life span looked to be much of what it is today (living to be 60-70+ years of age). But you didn't need to be able to read and write to farm, smith, or tailor. From a young age, your time was better spent doing minor tasks like gathering eggs from the hens and helping feed the pigs. So what fraction of your lifetime depends if you mean "average lifespan" or "typical lifespan assuming you made it through the early years". :P

Only a small portion of population would personally benefit from programming skills without doing it as a job. That means for absolute majority learning to code would be wasteful.
>Only a small portion of population would personally benefit from programming skills without doing it as a job.

I disagree entirely on this premise. Not because it is wrong, but because it has become less and less true over the past few decades.

Anyone who performs any trivial or repetitive task on a computer benefits from being able to set up a small (think 3-5 lines thrown in a for loop) script to automate the task for them and there is an increasing amount of people who perform trivial and/or repetitive tasks on computers. If it is only an hour once a week and they can have a small program turn that into a few seconds - they save 52 hours of doing a mindless, boring task each year. Having 52 hours to do literally anything else is a personal benefit. Minus time spent on automating the task of course. [0]

It's death by a thousand papercuts - except most people are failing to see the papercuts because they don't have an education enough to see what they could be automating with little effort. They go through their daily routine doing the same trivial tasks hundreds of times because the possibility of automating those tasks never crosses their minds.

Are the benefits minor? In most cases, yes. Just like the benefits of being able to properly phrase your Google searches is also minor.

Leave programming a photo-recognition app to the professionals. The average person won't need to know how to program that. Creating a small AHK macro that writes today's date? "Life changing"; actual quote from a coworker. The "life changing" program?

    :R*?:mdyy::
    FormatTime, CurrentDateTime,, MM/dd/yy
    SendInput %CurrentDateTime%
    return
>It won't make or break your life but it will make it a degree easier.

[0] https://xkcd.com/1205/

> Anyone who performs any trivial or repetitive task on a computer benefits from being able to set up a small (think 3-5 lines thrown in a for loop) script to automate the task for them and there is an increasing amount of people who perform trivial and/or repetitive tasks on computers.

I agree, this is the main reason (nearly) everyone should be taught to program. I often draw parallels between levels of programming and levels of mathematics. Not in a sense of understanding, but of complexity, and often when describing languages.

But I think that's a useful comparison here. Few people would say that teaching everyone arithmetic is a bad idea. Because being able to count is essential to surviving in our society (just from handling your own basic finances). More, but still few, people would argue against teaching everyone algebra (the high school sort, not the abstract sort). Because it enables people to take their understanding of arithmetic and extend it with variables, create more complex expressions and solve them for common problems. Same with geometry. Trig and calculus are where the "everyone should learn" part stops, those topics are for everyone who's going into STEM fields, and other (non-STEM focused) students that are sufficiently advanced and interested.

The parallel to programming:

Everyone should learn basic algorithmic thinking. Writing out a series of steps and understanding looping and conditional expressions and subroutines. These are the things that BASIC, shell scripts, and other (relatively) simple languages provide. These are the skills needed for automating many office jobs.

Fewer people need to know low-level bit twiddling, network code (to the point of implementation of protocols rather than application of libraries that implement protocols).

Fewer still need to understand more complex data structures, more complex algorithms, and full-blown application development (whether it's server-side, mobile, web-app, desktop, doesn't matter).

although i agree with you, the argument breaks down because (at least in the us) most people don't know how to cook, and most people don't know how to drive or know anything - literally nothing - about how a car actually works. there are entire states where it's even illegal to pump your own gas.

have you looked at what people buy, even at high end markets like whole foods? it's an endless sea of prepared and packaged food. it's how they make most of their profits. whole foods isn't even expensive for real ingredients.

competent well rounded people like that are in the tiny minority. i would guess 10% or less. the cross section of people who are capable of both like you or i and others on hn has got to be minuscule. in fact i would bet the anti-car pro-Soylent contingent is bigger.

> most people don't know how to drive or know anything

That's a little like the sort of statement you hear from people that get into auto accidents, but always because someone else did something wrong.

I'd recommend listening to podcasts or something if getting behind the wheel becomes an exercise in grading other drivers' skills. I half suspect that using your phone and texting friends while driving, to take your focus of other drivers, is safer than getting agitated enough about their incompetence that driving turns into a competition.

uh, i'm not even sure what the question was, but distracting yourself with your phone is not the answer.

sounds like you're probably one of the people i'm talking about.

Okay.
No.
> there are entire states where it's even illegal to pump your own gas.

??? Seriously? Can you document that? Because I have never heard of that.

Or is my sarcasm detector on the blink again?

Oregon and New Jersey have laws, adopted for safety reasons long ago and still in force, prohibiting self-service at gasoline pumps.

See, e.g., http://www.bergencounty.com/trivia-and-fun/why-you-can-t-pum... -- focused mainly on the NJ law.

Resident of NJ here, it's been like this as long as I'm alive(34 years). Now, how much it's enforced, on the other hand...