
We're All Coders Now: Why everybody should learn to code - fogus
http://www.wired.com/images_blogs/magazine/2010/11/18.12ST.thompson.pdf
======
singular
This is such a common idea brought up time and time again - the problem is
that most people _can't_ program beyond a very simple level.

The fact is that once you get past the simplest level, you are effectively
programming, whether or not the interface is designed for 'non-programmers' -
and all that complexity you can't get away from remains there (i.e. the
essential complexity of the problem at hand), as well as accidental complexity
arising from the fact that as soon as you make it easy to do a certain thing,
other things become more difficult in any programming environment.

You only have to work in an internal IT dept. where the users have access to
excel/access to realise the impossibility of this goal.

In many ways it's in fact insulting to software engineers to suggest that
'anybody could do it' - then what, exactly, do we do?

We are a victim of our own success - applications look almost, straight-
forward to users they have no idea the complexity involved in getting just
about anything substantial working.

Having said all that, I think encouraging people to use their computers more
effectively is great - they just have to accept that programming is actually
hard. You can pick up a guitar and play a lick, badly, very early on. Actually
becoming any good is way, WAY harder.

I am a firm believer that only a certain % of the population are able to think
in that funny way we programmers do (I recall Knuth suggesting it was 2%) -
that's not an ego thing, just literally that we lot have the right 'type' of
brain for it.

~~~
kondro
As a software engineer, I disagree. I think more people should spend more
effort learning how to write software.

Every day I see people doing jobs that would be better completed by automated
systems, or human-assisted automated systems. If these end-users would 'wake
up' and realise that every time they do something more than once they can
automate the task, they would live happier lives.

I think problem solving, researching and programming skills should form part
of the core curriculum for school-aged kids. Learning to learn and research
are much more valuable than being able to recall facts that will be forgotten
5 minutes in the future.

~~~
commieneko
You would be surprised how many normal adults simply cannot reliably save a
file in a known place, much less retrieve it. I'm not talking about dummies
either. Try teaching some community education classes some time, it will give
you a enhanced appreciation fornthose who design user interfaces for things
like ATMs, pointnof sale systems and such.

Kids do do better than adults, but the are learning a particular set of
interface conventions, and worse they are learning it as a language, rather
than as a set of abstract principles. When the paradigm changes they often
have just as much trouble as their parents.

~~~
singular
A real-life example:- a _significant_ chunk of people I have worked with, who
are working with computers _every day_ , don't know how to open an application
if the application's icon does not appear on the desktop. Seriously.

~~~
hackerblues
I am 23 years old and today I watched a youtube video to learn the proper way
to cut up an onion. I cook a lot with onions, maybe two or three times a week,
and before today I didn't know how to dice an onion except to slice it into
rings and then hack at it a lot. Seriously.

Is this evidence that I am fundamentally unable to cut an onion? No. After I
watched the video I went and did it. It's just that in the past I knew enough
to get the job done and so learning anything more on the topic didn't have a
huge priority.

~~~
commieneko
I have spent hours in a class room trying to teach adults to reliably save a
file in a known location and later open it. How to create folder to hold
related files for a project. Some students are insulted by the simplicity of
those exercises, but others _never get it_. I can walk them through the
motions, draw tree diagrams till we are all sick of them. Some times I can
train them to recreate a particular example, but they are still unable to
generalize what is going on. And the are not dummies I'm talking about.

------
woid
"Software, after all, affects almost everything we do. Pick any major
problem—global warming, health care, or, in Finnegan’s case, highway
safety—and clever software is part of the solution."

what? global warming?

A simple reason why people should learn to code os because then they get
independent, they don't need to work that much, machines will do.

~~~
brudgers
Reminds me of the old saw, "There are two types of computer users: programmers
and victims."

------
commieneko
Years ago, we're talking late '80s, I would take normal office workers, with
essentially zero computer experience, and have them creating useful
applications with Apple's HyperCard in a few weeks. It was tremendously
useful, but not with out pitfalls. One worker would make a tool, say a
bibliographic utility, another worker would think this is great and get a copy
and immediately start making their own modifications and mutation. You can see
where this is going...

Still I can see that with better tools and some type of data authority, users
could greatly benefit from being able to roll their own apps.

I had hoped that the web would offer the same the same types of opportunities,
but web programming quickly became a mess, or more charitably, too complicated
for general office workers to program.

~~~
kondro
Oh, that's the other core tenant that normal office workers need to be taught.
Source/version control.

The amount of issues I've had with exchanging and modifying Excel/Word
documents via email with groups of people is uncountable. Some basic
understanding of version-controlled file-systems (like git or svn) with users
writing actual comments on how they have modified their files would make this
type of editing much, much easier.

~~~
commieneko
Source control for office documents would be great, but git, svn, your
favorite flavor goes here, are NOT suitable for general office workers. It's
possible some type of shell or scripting interface could be slapped on, but it
would need to be so thoroughly tested and bullet proof that you would probably
be better to use a tool developed for that environment.

~~~
kondro
I don't see why not. It isn't rocket surgery. I say, if you employ smart
staff, they can learn new things and smart staff always provide more value
than cheap staff.

------
Isamu
Everyone should be given the opportunity to create their own solutions, in the
space that is currently called "programming".

Maybe this is a contrary point of view, but I think very little has been done
to enable this for everybody. The op seems to think everybody should man up
and learn one of the current generation of languages. I think the whole space
of end user programming is mostly unexplored.

