
We should teach all our kids to code - apexauk
http://www.kernelmag.com/comment/column/1264/coding-for-success/
======
mrcharles
I'm not having children, but I have two nephews and a niece, and when they are
old enough to read and use a computer without breaking them, I'm giving them
each a netbook preinstalled with ubuntu, various programming tools, and some
kind of video chat software so that they have access to me to ask questions at
any time.

I want them all to know this kind of thing, regardless of anything else. Plus
it will make me the coolest uncle ever.

~~~
joelhooks
In my experience delivering Ubuntu boxes to elementary aged children, they are
generally unimpressed. This isn't to say you will have a similar experience. I
am interested in how to pull it off, so let us know when the time comes.

------
dragonsky
I'm sorry, but here in Australia and I assume from what I hear it is the same
in the US, teachers are struggling to have kids leave primary school being
able to write a complete sentence and add a row of numbers.

They are already being expected to impart to the kids sex education, anti
bulling education, physical education, sun safe education, how to not eat too
much crap and get fat education and many other things that in a normal society
would be the responsibility of parents but the government now seems to believe
should be imparted by the formal education system.

There are many things wrong with the modern education system, and I don't
think many of them are going to be solved by imposing the requirement to teach
programming on teachers who in many cases struggle themselves to even turn on
a computer let alone be able to make it do what they want in any meaningful
way.

~~~
moocow01
I'd agree that there is a huge disconnect between a bunch of us saying 'yes
coding is a great skill - lets put it in the classroom' and the reality of the
current state of education. There is a lot of sentiment about how coding is
the new literacy... its not. Literacy is literacy. Math is math. You need to
be quite good at both to then be able to program well.

------
DanBC
There's a couple of points about modern programming systems.

BASIC was interpreted, and not object orientated. You'd have a book, and that
book would contain every keyword, with a description of what it did, and some
example code.

So you'd buy magazines or a book, you'd type out the programs in those books,
you'd debug what you'd typed, you'd modify what you'd done, and then you'd
start creating new programs. You'd write a little program, and then realise
that you needed to do X; so you'd read the book and find the instruction for
X, and you'd grok the example and write it in your program and debug.

Where is that workflow, that learning journey, recreated today? Perhaps with
the "learn X the hard way" series?

Also, most people here are either technically brilliant or at least
proficient. Now imagine the general population. These are people who just
don't know how to plug in a printer. (In the days when computers had parallel
ports and serial ports you could not plug the printer into the wrong port. You
just had to look at the cable, and look at the computer, and try to mash the
connector into all the ports. It would only fit one, and it would only fit one
way. Yet I was seen as some kind of genius, by more than one person, because I
could plug a printer in.) Or these are people who will not, seemingly cannot,
read and act upon a short simple error message.

I love to think that maybe a bit of programming / coding teaching could change
that, but I'm not sure it will.

Finally:

> _Learning to code is learning to use logic and reason, and express your
> intent in a consistent, understandable, repeatable way._

Author uses "coding" and "programming" in weird ways. Normally programming is
the design process, with pseudo-code and flowcharts and jackson structured
programming charts and etc, while coding is just taking that and writing it in
some language. Maybe I'm showing my age and the words are now used in a
different manner, but it threw me for a while.

~~~
slowpoke
_> Normally programming is the design process, with pseudo-code and flowcharts
and jackson structured programming charts and etc, while coding is just taking
that and writing it in some language._

That sounds more like software engineering to me. Most people do indeed use
the words 'programming' and 'coding' interchangeably.

------
chillyconker
Just a couple of observations from a (mostly) computer-illiterate person:

The people who learnt to program computers in the 70s and 80s weren't taught
at school by teachers, they taught themselves (maybe with help from friends).

The OSes of the 1980s were much simpler than MacOS/Linux/Windows. In
particular most of them had a standard BASIC built in which was very easy to
start using. One could just turn the computer on and immediately type in a
program.

~~~
hippee-lee
> The people who learnt to program computers in the 70's and 80's ...

I agree, but that kind of programming is very different from the type of
programming that will be useful to non programmer kids when they grow up.
There is also google, stack overflow and a waltz of easily accessible
information on how to do X in language Y that was not online then.

I am drawing a distinction between coding and programming. Let me explain -
When I graduated from college in 1999 the career office was very assertive
that I should use and describe my ability with the MS Office productivity
suite. When and how it had become an important enough to include on my resume
doesn't matter, it was an important skill to have for the types of jobs I was
going to be applying for. So programming and programmers will always have to
dive deep and be able to develop complex systems. I am using the word coding
in the same context as what I started with: I worked in a laboratory and
collected lots of scientific data. I learned how to automate the tedious parts
of manipulating, formatting and emailing out the results to save my time and
reduce the errors I made doing it manually. To me, this was a self taught
journey to learning to code with vba and even back in the first half of the
Aughts there were decent places to figure things our for VBA.

I think in the future, kids or prospective employees in general that are not
programmers, being able to put "can write JavaScript and VBA to automate
repetitive tasks" will not be required. But, the candidates who can will have
a marketable skill that sets them apart from their peers even though they are
both trying to get a job in Supply Chain or Regulatory Affairs.

And these days, JavaScript is very easy to get started with, fire up a modern
browser, open up the console and type in your program on any web page. It's
been a while since I worked with VBA but I assume it is discussed on stack
overflow.

------
cabacon
I recently watched Randy Pausch's "Last Lecture"
(<http://www.cmu.edu/randyslecture/>) where he promoted Alice
(<http://www.alice.org/>) as a tool for teaching kids to code. I downloaded it
and played with it, and it looked pretty good. Like logo, it makes programming
more fun by giving you immediate visual feedback. Like the "If this, then
that" thing the article liked, it promotes the idea that programming is a lot
like storytelling; the entities do what you say they do, nothing more, nothing
less.

I found in it the potential for excitement that I found when I recently looked
at the demo programmer live coding at <http://iquilezles.org/live/index.htm>

The live OpenGL editor he uses for immediate feedback made me figure out how
to get an OpenGL triangle rendered on my laptop right quick. I can imagine
that having storytelling control over 3d characters could do the same for
kids.

------
apexauk
This is an issue I'm very passionate about, and I'm sure many others are too.
I'd love to hear other's thoughts on how we educate the next generation and
the best way to teach coding in 2012.

~~~
bwarp
I wouldn't bother. Why?

It takes a certain mindset to write code. Not everyone has it or is interested
in it. My children couldn't care less about it and that's up to them. They'd
rather be digging holes in the garden and covering things in paint. I'm not
here to indoctrinate them with my own interests but to nurture their
interests.

Education is fundamentally flawed on the basis that it mandates knowledge on
political whim and percieved societal need rather than nurturing and
developing interest. Consequentially society is filled with people doing what
they are bad at and hate.

~~~
miahi
We had programming classes in high school in Romania, teaching Pascal or C.
They don't really work. Some students don't understand programming. Others
don't care. Only 20% of a class can actually program very simple programs by
themselves. Only one or two can really understand what is going on. And
sometimes they just want to do something else.

~~~
4ad
I'm Romanian, not everyone takes programming classes, very few do, only those
enlisted in Mathematics-Informatics (in Romania curriculum varies greatly
depending on what profile did you chose).

Indeed it has many problems. The first problem is that the Mathematics-
Informatics profile in high school is considered elite, and every parent sends
its children there. The effect is that the class will have the best, most
intelligent students, but not necessarily the students interested in the
curriculum. Neither the children or the parents know anything about the
curriculum, all they know is that all the smart kids go there.

I've been in this class in one of the top-5 colleges, nation-wide. Some poll
in the final year yielded 80% of the students hating both math and
programming. Most preferred literature. Because of the inherent bias in
Romanian education, the highest graded students will always be the ones who
like liberal arts, and not the ones with a mathematical background and because
of the way enlistment to high school works, these will be the ones that end in
this class.

I mentioned I was in one of the top 5 classes nationwide to illustrate the
second problem. Even though I was in one of the best classes, professors that
taught programming were execrable, both in their talent as educators and in
their talent as programmers. Incompetent is a word that's too mild to describe
them. Reasons are easy to guess, high school teachers are paid poorly and
anyone with any talent in CompSci will find a better job elsewhere. It's funny
that the only two skilled professors that taught programming were two guys
that did something completely different and only taught at high school because
they enjoyed teaching and working with young students.

The third problem is that the curriculum is very abstract, way too abstract
and far from reality, and very old, nothing feels like today, students are
still required to write DOS applications with a DOS editor.

------
rue
There's a huge and important distinction between “we should try to teach all
kids to code” and “all kids should be able to code”, and it tends to get lost
in the discussion.

Programming just isn't for everyone (and that's OK), but everyone should give
it a try to find out.

~~~
rpwilcox
Agreed - we teach math in schools not to make everyone top talented
Mathematicians, but to teach a skill that _might_ be useful in life.

Teaching programming in schools would probably get the same result was
teaching math: courses that normal people promptly forget a year after school.
Because, really, how often have you factored a polynomial?

But still, you got a little taste of Math in school. Maybe you liked it, maybe
you barely made it through math. Same thing would happen with mandatory
programing classes.

Thinking the talent crunch will be solved by teaching CS as part of mandatory
education is probably wishful thinking.

------
narrator
I've taught several basic programming classes. The ability to code differs
wildly. Like sketch art, some people can't draw to save their life, while
others do it effortlessly. Having a programming class as an elective would be
good, but it shouldn't be forced on people who have no ability for it at all.
Not everyone can be great at everything.

~~~
Volpe
Not sure I buy that arguement.

You wouldn't accept that if we said: Well not everyone has a "natural ability"
to read, so we'll only teach the people that are show some "talent".

(Quotes because I don't actually believe those things exist, you can be taught
everything, and be good at everything).

~~~
moocow01
I don't think he's saying some people literally can not program one line of
code. As with everything there are degrees of aptitude based upon ones
interest, personality type and cognition. This is true with every skill in
life - most people show degrees of aptitude in different areas. (As a note,
Ive always struggled with being good at reading since I was a kid... Im really
damn slow and have a hard time concentrating)

~~~
Volpe
So are you agreeing with not teaching reading to people (such as yourself) who
struggle with reading, because they don't show an interest/aptitude?

If that's the case, which subjects are the "essentials" that should be
'required' and which ones are 'elective'?

I'm not sure I think coding is up there with reading, or arithmetic... But
it's probably more important than some currently required subjects.

~~~
moocow01
Essentials are foundational subjects that have the highest probability of
preparing a student to become more productive and useful to society. So your
question about required versus elective courses centers around 1) what society
collectively decides is useful and 2) what a student at a certain level can
practically grasp and grow from. I think we'd both agree reading is an
essential by this definition but truthfully socially and communally controlled
influences make these decisions (thing like the economy, elections, and
enrollment) not you or me.

The problem with discussing this on a forum on HN is that we're all biased. We
all think programming is incredibly important to society because its
incredibly important in our lives personally. If you go onto any forum where
everyone has a collective interest, they'll all say subject A should
absolutely be taught in school because of X, Y and Z. Truth be told on a macro
scale every skilled field is battling for the attention of capable students to
eventually join their ranks.

I think what many on HN are missing is that if your going to introduce
programming (especially as a core subject) into formal education, you'll need
to sacrifice other subjects to make room with the way education budgets work.
Of course everyone is going to say something like oh well you should cut down
on art, music, social studies etc but its not a helpful perspective unless
expressed in a truly diverse forum.

------
dools
Coding is easy and can be learned in a matter of months by anyone with a basic
understanding of computers.

I'd rather teach my children things that get them out of the house exercising
and learning to be friendly, well adjusted humans.

------
jbattle
I have a 10 year old son who seems a natural to take an interest in
programming. I tried starting him with a Basic interpreter cause that's how I
started, and he struggled to stay interested - largely due to the non-
graphical nature of the output.

The next thing we tried was Kodu from Microsoft
(<http://research.microsoft.com/en-us/projects/kodu/>). He found that
enjoyable - very visually appealing and you can get something basic but
interesting running quickly. Getting something moderately complex became hard
however due to the limited palette of design tools.

The next step was Scratch (<http://scratch.mit.edu/>) which is a step down in
eye candy but a step up in control. You get a lot more flexibility but it is
still very approachable. Everything is visual as well, which makes it really
easy to see what's happening. Scratch allows variables and lists, control flow
structures, etc and thus gets into "real" programming.

However, Scratch has some big limitations, especially around instantiating new
'objects' at runtime. I think the next logical step forward is Stencyl
(<http://www.stencyl.com>) though there's some additional layers of
abstraction that are causing a little consternation.

I keep trying to push Python and Java, but for my son at least, not being able
to start with something visual is a big drag. Maybe next year.

~~~
neilparikh
I just tried out Processing [0] right now, and it seems like you get a lot of
control in it, and it looks pretty good on the eye candy side too. You could
try that out.

[0] - <http://processing.org/>

------
code_pockets
The year was 1986, and I was on my first Disney World trip. After a couple of
days of traveling up and down Florida visiting the various theme parks, my
parents decided to stop at a local electronics shop.

Now, back at home we didn't have many fancy electronics stores, so this huge
emporium of transistors was pretty amazing for all of us.

My mother hinted that they were going to buy us a Nintendo (NES), and I was
ecstatic. I had never heard of such thing, but seeing Super Mario Bros. on the
display machine was pretty mind blowing for an eight year old.

But, my oldest brother (who was a bigger nerd than me) did not want the NES.
Crap. I was furious, and really disappointed. Instead, he wanted some stupid
computer. It was big, bulky, ugly (light brown with black function keys!), and
required a huge monitor to be of any use. It also required a disk drive (a
1541 model).

Yes, my brother wanted a Commodore C64.

So, my parents decided against the NES (oh the humanity!), and purchased the
C64 with a 13-inch (I think) color monitor, a 1541 disk drive, and a color dot
matrix Okidata printer. They must have spent like a million dollars. An
amazing feat, because we were barely middle class.

After learning how to turn it on, writing to the diskette, printing demo
images, playing Ultima, I started to code some BASIC. Nobody taught me, I just
picked the manual and started coding.

My first programs were something along the line of:

10 PRINT "HELLO" 20 GOTO 10 30 END

Now, for an 8 year old kid who was teaching himself how to use the damn thing
it was pretty awesome to pull such simple programs.

Then at age 9 I bought my first "computer", a Tandy PC-7 at the local Radio
Shack (after saving my lunch money for months).

Now, as a hacker/programmer/software engineer/whatchamacallit I look back at
those days and appreciate what my parents and brother did.

Such experience has led me to teach my nine year old niece how to "program" in
HTML. She enjoys it very much, and even asked me to put Ubuntu on her desktop.
My daughter will also learn how to code, even though I don't expect her to
follow in my footsteps.

tl;dr: Teach your kids how to code. They might go on to become hackers
themselves.

------
DanBC
A few people have mentioned simple computers and BASIC.

They may be interested in these links.

([http://hackaday.com/2012/01/23/maximite-harkens-back-to-
the-...](http://hackaday.com/2012/01/23/maximite-harkens-back-to-the-days-of-
basic/))

(<http://geoffg.net/maximite.html>)

> _The Maximite is a small and versatile computer running a full featured
> BASIC interpreter with 128K of working memory.

It will work with a standard VGA monitor and PC compatible keyboard and
because the Maximite has its own built in SD memory card and BASIC language
you need nothing more to start writing and running BASIC programs.

The Maximite also has also 20 input/output lines which can be independently
configured as analog inputs, digital inputs or digital outputs. You can
measure voltage, frequencies, detect switch closure, etc and respond by
turning on lights, closing relays, etc - all under control of your BASIC
program.

The design and the firmware including the BASIC interpreter is free to
download and use._

------
simonbrown
> try telling that to anyone who has tried to hire developers in the past
> three years. Sure, much great talent is out there – but the supply and
> demand balance is off the scale.

Really? Computer science has the highest unemployment rate of all degrees in
the UK.

<http://www.bbc.co.uk/news/10477551>

~~~
apexauk
Yes, really. That's an interesting link, thanks. But to be honest, I don't
find the stat surprising. I spent a term studying CS at Surrey in 2004 - I
couldn't immediately find the 2004 rankings but it ranked 8th for CS in 2008:

[http://www.thecompleteuniversityguide.co.uk/league-
tables/ra...](http://www.thecompleteuniversityguide.co.uk/league-
tables/rankings?s=Computer+Science&y=2008)

That first term consisted of multiple choice exams in C and HTML, where one of
the questions didn't have a correct answer.

In short, I sadly don't think that any lines can be drawn between 17%
unemployment of CS graduates and a supply of great available talent.

Speaking as someone who's processed 200+ applications and hired 7 engineers in
London the past 2 years, sharing stories with my colleagues at other companies
- great talent is very hard to find.

------
andolanra
So we want them to learn problem-solving (i.e. "given tools, solve problem"
for any set of tools and any problem.) Given the experiences I've had trying
to teach things to programmers, I'd like _them_ to learn problem-solving, as
well. Most programmers have a small tool-box of solutions (i.e. languages,
libraries, platforms, &c) and the bad ones (i.e. most of them) run DFS over
that tool-box until the problem appears to go away, and start quaking in
terror if you give them new tools or radically different problems.

Programming is a _kind_ of problem-solving. Learning it makes you better at
solving the kinds of problems it solves. I have seen no evidence for the
assertion that the kind of discrete-approximation problem-solving style
inherent in most programming necessarily makes you better at solving problems
in the general case.

------
rayhano
Way back when, the BBC funded a programme that gave schools BBC Micro
Computers and even had TV shows supporting the education and awareness... we
should be embarrassed that TV today is more about the objectification of women
and the whim of producers who have saturated the topics available for quality
programming.

------
dfischer
We're trying really hard to educate the next wave of talent... a lot of open-
source community effort in the Ruby community.

<http://www.kidsruby.com>

------
mkr-hn
I was introduced to QBASIC when I was little. I found (and still find)
programming tedious and unfulfilling, but it _did_ prepare me for when I
needed to know basic HTML to publish a static blog a few years later. The
early stuff probably wasn't essential since I would have picked it up to make
basic websites and blogs later, but it might have helped a little.

------
rorrr
I remember when we got our first computer, my dad won't let me play any games
for more than a few minutes a day, but I could play the games I wrote myself
as much as I wanted. That was a brilliant idea - it gave me the taste of the
good games, which was a huge motivation. It did take a while to create an
actual playable game (back then we didn't have easy to use graphics libraries
like Processing), but then it all became easier after.

Most of my friends with computers at that time spent 5-6 hours a day playing
games instead of learning.

~~~
drbawb
This seems like an excellent technique. Although I think it'd be _much_ harder
today.

In my childhood I'd be easily entertained by a text adventure or a pretty
simple sprite based game. Now a days your kid would have to create the next
Call of Duty.

Perhaps a strategy that would make more sense in today's world is to get them
the Valve Hammer Editor (or equivalent SDK) and instead have them make levels
for their favorite game engine.

~~~
RodgerTheGreat
Last summer I taught introductory programming courses for middle-schoolers,
and one of the first things we did was play Zork for about half an hour, as a
class. Then I started showing them how to make their own text-based adventure
game with rooms, a basic inventory and simple puzzles. All of my students were
having a blast with Zork, and they seemed to find making text adventure games
highly rewarding. I think you underestimate the imagination of today's kids.

~~~
aiscott
I second that sentiment. I think text adventure games engage your brain more
than, say, battlefield 1942. Similar to perhaps books vs movies/tv.

~~~
mtrn
One of the first games I wrote as a teen was a (as simple as it gets) text
based simulation/adventure dealing with horse races (I read _The Difference
Engine_ at that time). Even though it wasn't sophisticated at all, it felt
interesting (and good) to play one's own game (and to think about the story
and how to develop it further).

------
georgieporgie
I think the author has not met enough variety of people.

Yes, all schools should have a fantastic Computer Science department. And it
should be more than CS, it should be "doing fun stuff with computers".
However, there is a very large segment of the population who _cannot_ program.

I've got a friend who's quite smart. She's charming and extremely capable at
her job. I discovered that she has absolutely no ability to think in three
dimensions. She cannot follow even a very simple series of motions. She parked
her car near a post, came out, got confused, and destroyed the whole side of
her car because she couldn't work out the spatial problem to get out.

I've known people who simply _cannot_ grasp calculus. They're interesting
people who offer value in the world. Calculus is a fundamental and wonderful
thing to know, but that doesn't mean everyone can or should learn it.

I love programming, but I respect the variety of humanity enough to understand
that it should not be mandatory.

~~~
yelsgib
You have no idea whether the author has "met enough variety of people." You
have no idea if people are innately able to program, learn calculus, or "think
in three dimensions" (btw - driving is a 2d problem). I don't. You don't. No
one does. We do not have a framework for discussing the fundamental (genetic)
basis of human intelligence. We do not understand even its most basic
components. Some people seem to have "good memories" or be "fast at
computation" but that's about all we can actually, honestly, meaningfully say.
Culture is so ridiculously complicated and so powerful that it's impossible to
impossible to distinguish between what is innate and what is imprinted. The
fact that basically no one is able to predict the intellectual abilities of
future humans is an indication of this (e.g. what would a mathematician from
the 19th century say about the "fundamental" mathematical abilities of his
fellow humans?).

The point of the article is that coding is in some sense a core/intrinsic
skill. That anything you do is actually deeply tied to coding in the sense
that "something you do" (technology, in the general sense) is equivalent to
"algorithm." Weaving is coding. Playing a game is coding. Building a house is
coding. Painting a picture is coding. Proving a theorem is coding (Curry-
Howard Isomorphism). Sure, they're different, more intuitive, weird types of
coding, but the fact that you can't see that they -are- coding implies a
limitation on your ability to abstract the concept of "coding" sufficiently.

The fact is that coding is a deeply human activity, and that by understanding
coding we are really understanding ourselves and the fundamental means by
which we -collectively- understand reality. The fact is that we need some
shared understanding of ourselves, of our logical facilities, of the basis of
our ability to produce and thrive and know how to interact with the universe.
Without a shared framework, communication is useless/impossible.

~~~
georgieporgie
_You have no idea whether the author has "met enough variety of people."_

Which would be why I said, "I think..."

 _driving is a 2d problem_

Uh. Okay, sure. I submit to you that it's possible I was referring to more
than simply driving, and that your claim of driving being a 2d problem is just
silly.

Programming is not a deeply human activity, not in the least. It involves
strict, logical thinking, abstraction, and hierarchy. You disrespect the
variety of humanity by claiming it to be intrinsic.

------
theDaveB
Me and my son (aged 15) are trying to develop our first iPad app but he is not
interested in the programming side at all. He is happy drawing out stuff on
paper for the levels etc... So am not forcing the programming no him, if he
has no interest. I just want him to have the experience of getting a app on
the app store and knowing he was part of it.

We are using the Corona SDK (in case anyone is interested).

Dave

------
billpatrianakos
So the title is misleading. Really, he's saying we should teach our kids to
_think_ like programmers, not to actually teach them code which is a far
better idea.

In all honesty, people have an aversion to code like they have an aversion to
anything math related besides simple arithmetic. I also disagree with his
slight criticism of Codeacademy as being a place where people simply learn
syntax. I was 10 years old when I wanted to know how we pages were made. I
learned the HTML, then as I grew older learned the syntax. I only learned what
I wanted to get something done. Eventually, through learning simple syntax I
gradually began to understand the logic and theory behind programming. Of
course I got much deeper into it during CS classes in college. My point is,
people get turned off by code. Teach them how to print 'Hello World!' and you
eventually teach them the underlying principles of programming in a sneaky
way. It's like wrapping medicine in a piece of cheese so your dog will swallow
it. If the dog knows its there he'll likely spit it out.

The title got me angry at first. I don't think we should be teaching children
any specialized skill they don't have an interest in. My father is a pilot and
tried to make me like flying because of the same kind of "this is good for
you" thinking but it didn't work out. Also, as far as everyone using computers
but only a few programming them, I think that's fine. It's more important that
people get a broad overview of how hardware and software works and thats all.
Does everyone need to know how to rebuild an engine to drive a car? No.
Knowing how to check fluid levels, change a tire, and filter your oil will
suffice.

Maybe I took it wrong but we don't need to teach our kids to code. There are a
lot of ways to teach critical thinking skills (which is what he's getting at).
Critical Thinking was a first year college course I was required to take. They
should be teaching that course far far earlier here in the States. I was in AP
classes all the way through school and even the Advanced Placement kids
weren't offered a course even close to critical thinking.

~~~
drcube
So you don't think kids should be taught to read if they don't have an
interest in it? What about math?

Computing is a basic skill on the same level as math and literacy. It's only
getting more important. You don't have to be an aspiring author for reading
and writing to be relevant to your life. And you don't have to be an aspiring
software engineer for basic computation and programming ability to be
important in today's digital, networked world.

~~~
moocow01
"Computing is a basic skill on the same level as math and literacy"

Its actually not as basic of a skill as math and literacy. Proof of this is
that it takes math and literacy as foundational skills to then program. I
agree that programming is a good skill but please don't pitch coding as being
at the same level as basic literacy. The difference between someone who is
illiterate and someone who is illiterate at programming is vastly different.

~~~
drcube
It's getting less different over time.

Let's go back a few thousand years and ask Plato. Suppose he says "Literacy is
not as basic of a skill as speaking and remembering. Proof is that it takes
speaking and memory as foundational skills to read and write."

He's probably right for 500 BC. You could get by just fine without reading or
writing. Literacy was for specialized purposes such as government record
keeping. But society grew more sophisticated, to the point where, in the last
century or two, it's hard to get a job or function on a basic level in society
without being literate.

Well the world turns quicker and quicker. It used to be that one could get by
on brute force mental work. But a mere 70 years after the first gigantic
electronic computing machines, computational automation is becoming a
necessary part of our lives. It may be possible to avoid it now, but it's
getting less possible every day.

Abstract computation is a new way of processing and understanding information.
It is the next stage in the evolution of information processing, beginning
with spoken and then written language. It isn't on the same level as speaking
and reading yet, but it's getting there, and we won't do our children any
favors by letting them think it's optional.

