Hacker News new | ask | show | jobs
by rafaqueque 4041 days ago
Why there's a need for children to learn coding? This is getting really crazy. Seems like everyone needs to code and everyone is pushing towards that.

I don't see this happening for plumbing, to give you a short example, or any other professional area.

EDIT: I was a coach at a Django Girls event. I support these kind of events, but still, I don't see the reason to really push children to learn coding in their 5 or 6 years old. At that age, they are supposed to play with other children in the backyard, getting dirty. We are losing that. Probably, my generation (1990) was the last having that joy.

8 comments

It's a good question.

Because programming isn't plumbing.

Programming is not just a skill, it's an expressive medium required for effective communication in the 21st century.

Back in the day, you had to be literate. You had to write in cursive. This wasn't something you went to school for and did as a living, it was just a baseline from which you were able to do anything else.

Programming is like that. Why folks think of it as a stand-alone skill is beyond me. Yes, its basis is math. But that's like saying that the basis of writing is painting. The purpose of writing is to enable other kinds of work with lots of people, some of which may be far away. The purpose of programming is to enable helping lots of people do repetitive and boring things from all sorts of problem areas, some of which you will never meet.

>Programming is like that.

No it's not. Making YouTube videos is like that. Knowing how to do social is like that. Being able to look stuff up on Google is like that. Graphic design is like that. (I'm often amazed by the quality of the graphic design and motion graphics on amateur YouTube channels.)

Knowing how to tell when politicians are lying should be like that, but isn't.

Programming is engineering. Not everyone is an engineer. Not everyone can be an engineer, because a lot of people's minds don't work in an engineery kind of way.

I think it's fine to teach kids Scratch and maybe some Python. But I don't think it has anything to do with effective communication - it's just useful practice for basic logical thinking and problem solving.

The kids who are good at it (maybe 10-15%) and enjoy it (maybe 25-50%) can specialise and do the harder stuff.

In any case I don't expect the Web of 2035 to look much like the Web of today, so there should be no expectation that learning any specific language or system is going to be useful later - any more than it made sense to expect everyone would be using BASIC and CP/M in 2000 when we started seeing computers in schools around 1980.

It works the other way around >Graphic design is like that. Graphic design is art. Not everyone is an artist. Not everyone can be an artist, because a lot of people's minds (or "eye) don't work in an artistic kind of way.

But getting the basics of Graphical Design can still help both appreciate a good design and "understand" why "that stuff" feels ugly, and being able to discuss with a graphic designer and talk the "same language"

Same thing with "Programming". No one claims that 100% of the population should understand Rust borrow checker or functional purity

But everyone should understand (and be able to copy-paste some code and "fix" it until it works) the concept of a sequence of instruction, a loop to generate repetitive stuff, the concept of variable (and therefore template and mail merge), a if (and therefore be able to do basic stuff in Excel). So they can talk to engineer and get what they way. And maybe everyone should be able to do FizzBuzz or display the number from 50 to 1 with a loop going from 0 to 49. At least in pseudo-code.

But my point is that a lot of people who aren't trained graphic designers, know nothing about the history or practice of graphic design, and have probably never studied art are able to produce cool designs that are close to the standard of professional work.

And also that being to do this is a huge personal and business benefit.

Being able to code gives you - what? If you're not doing something useful with code - probably professionally - it's not a communicative, practical skill.

Office, much as I hate it, kind of is.

There may be some intangible benefits. But so far as I know there has been no research to suggest that learning to code improves personal, social, academic, or professional outcomes at school.

Meanwhile there's a lot of research to suggest that learning a musical instrument or a second language has obvious measurable benefits.

Obviously I'm not against coding. But I'm definitely against any mythology of coding that suggests it's a key literacy skill - because based on real evidence, there a lot of other skills with a better claim to that.

let me clarify myself. What I see as a "key litteracy skill" is what some calls "Computational Sense" ("A familiarity with the capabilities of computer applications and the ability to easily grasp the difficulty in implementing a computer-based solution. Typically acquired by learning a programming language.") aka https://xkcd.com/1425/

So the "learning to code" is just a mean to an end.

Also I do think that learning to automate the boring stuff (https://automatetheboringstuff.com/ ) improves at least personal (e.g. do your own taxes in Excel, understand AND and OR so you filter email better), social (e.g. ifttt), academic ( e.g. R ), AND professional (e.g. everything) outcomes.

>learning [...] a second language has obvious measurable benefits

and don't you think that the ability to analyze a process and transform it into a sequence of instructions can have measurable benefits too?

You wrote "it's just useful practice for basic logical thinking and problem solving." I agree. It is only that I would remove the "just".

I like what Papert wrote: " debugging is the essence of intellectual activity".

>And also that being to do this is a huge personal and business benefit.

All the "non technical" startup founders looking for/lacking a technical co-founder, you don't think that they would benefit from learning a bit of coding so they can a) estimate what needs to be done (Computational Sense), b) hire the proper people c) specify what is needed ?

Obviously, I am against coding as "learn js in 5 days" but not being able to FazzBazz(2,7). I am for learning what a computer can do.

Cursive writing is and was less a criterion of literary and more a social signifier. It is an encoding that makes things less intelligible and the luxury of choosing a less intelligible form is a mark of social status, e.g. a doctor's prescription is stereotypically poorly penned but the social status disparity meant nurses, pharmacists and patients just had to deal with it.

Programming since the demise of Cobol has had a similar hermeneutic strand. Languages designed for intelligibility by ordinary persons are limited in expressibility and denigrated by the community of programmers, e.g. HTML isn't deemed a real programming language and its users aren't deemed programmers.

Even though HTML is one of the more directly applicable languages to ordinary school day tasks it is eschewed for real languages and the objective becomes making baubles rather than layering in a communication technique on ordinary tasks. HTML can be integrated into the curriculum. It's forgiving...system failure is in the eyes of the beholder not the god of Booleans. And most importantly, HTML is a rational extension of many Indo European languages as punctuation and annotation.

Definitely don't detract from kids getting a chance for physical play, preferably outdoors. That should be an axiom.

With that said, I don't think it should necessarily be pushed as a career skill, nor necessarily even as an academic discipline, but why not just for fun? Most "educational" use of computers at the grade school level is a waste of the kids time. I'd rather kids sit in front of Scratch, than some glorified flash cards.

Maybe the younger kids are, the less academic it needs to be.

For older kids, my view is that computer programming is becoming analogous to a liberal art, i.e., something that every educated person should have been exposed to in order to be an informed member of society, even if they don't pursue it as a profession.

My parents took me to music lessons throughout my childhood, for which I'm grateful. They also let me spend a lot of time playing outside.

Edit: Kids are under a lot of pressure to choose "careers" before experiencing the subject matter, e.g., in engineering and computer science. Perhaps it would be a service to let the kids who don't like programming, find it out before they hit college.

Why learn mathematics or science?

If kids are good at abstract problem solving, denying them access to computer programming is like denying them sports if they like to kick balls around.

Coding will be more and more the killer app that people have in their jobs. A person can crush many ordinary office jobs just with excel and word macro skills. I teach people simple excel forumulas like vlookup and their life changes forever.

We should also teach plumbing, electrical and financial skills, and cut back on the interpretative dance, music and drama for kids who hate that crap.

> If kids are good at abstract problem solving, denying them access to computer programming is like denying them sports if they like to kick balls around.

Hear hear! We should be identifying students' aptitudes and interests and ensuring they're getting the best training possible towards up-skilling them these inclinations as early as possible.

Not everyone follows the same path, and the disaster is that we make others feel bad for not following the mainstream path laid out in front of them.

I'm one of those who tread from the path and nearly fell of the cliff, but managed to find a way with software in my very late teens, just in time. I can't imagine and almost don't want to think about those who never found a place in society as a failure of early education methods...

I would make the same argument as you but in the opposite direction: everyone has to deal with plumbing at some point in their lives. Schools ought to teach basic proficiency in plumbing.

It's useful to know the basics even if it only helps you recognise the skill that you need a professional for.

Kids do /play/ with water in schools to some extent - whilst not plumbing it might be considered proto-plumbing in the way that the basic Hour of Code (http://studio.code.org/s/hourofcode/reset) is coding.
A. It facilitates teaching some useful skills in approaching problems.

B. Schools don't need to buy equipment.

C. Anything that means running the MS office suite less is a win in my book.

I help out at our local CoderDojo. I don't know how I feel about saying everyone should learn to code, but the main thing I get out of it is that the kids really love it. They use Scratch, they mostly make games, it's all around awesome. This shouldn't be a surprise to me or most people here, I guess, since I also love programming. Why wouldn't I want to share something I love with kids?
Because programming is the most direct way to communicate with a computer, and computers are highly important in our lives?

I suppose you could say the same for plumbing, but programming is in a league closer with reading/writing/math than plumbing, in that it applies to creating such a wide range of art and science. And it's not something bound to technology, the concepts of programming were mathematically sound well before the earliest home personal computer was built.

Agree and disagree. The focus should not be on "code" but exposing them early on to problem solving:

https://www.youtube.com/watch?v=mvK0UzFNw1Q

If coding is the way to go to solve a problem then be it. If plumbing is the solution then that is what they should learn.

The key is to empower them to solve problems early on. The good news is that that can even happen in their backyard getting dirty.