We're All Coders Now: Why everybody should learn to code
wired.com
wired.com
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.
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.
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.
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.
However, I think there is a great deal of power available in allowing users to provide some simple level of control, i.e. via DSLs.
Still, we should encourage all students to go through at least one programming class in high school. We don't want to lose any potential programmers from not exposing them to programming.
You miss the point, so let me rephrase it for you. A few centuries:
A: Everybody should now Mathematics.
You: It's an insult to us, not everyone can understand discrete Math.
A: Dude I do not mean they should know how what graph theory is, I am just saying they should know basic math so one they can become bank tellers, do their own basic finance, measure how much water is in the cup etc...
Edit: I am a firm believer that only a certain % of the population are able to think in that funny way we programmers do.
Wrong. Anybody is able to think like a programmer. It is not as if programmers, doctors, or physicists were born with certain brain functions that others lack. Every single professional developed their skills over time. It makes more sense for a athlete to say "not everyone can do what we do", then it is for an engineer to say the same. That being said, I have admiration and respect for what software engineers can do.
Okay, well if that is indeed all that is being suggested - fine and I couldn't agree more - but it is so often the case that people want more than the simple system allows them, very quickly in fact. Seriously, look at any work MS access sheet for evidence - without fail things get very complicated very quick and in the end a developer has to sort it out.
Wrong. Anybody is able to think like a programmer. [snip]
We are just going to have to agree to disagree on that. I totally agree that it is largely about work, lots and lots of hard work (I'm a developer myself, so don't I know it); but there is a certain kind of structural way of thinking about things which I just don't think most people possess, in the same way that most people don't possess the type of mind which just 'gets' music. Talent is totally overrated, but it it is a pre-requisite to being able to do difficult things. And yes, I do think that is literally being born with a certain type of brain, or at perhaps also early life too to some degree...
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.
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.
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.
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.