Ask HN: Will the general-public one day be able to code?

3 points by paisible ↗ HN
Had this debate with a friend a while ago ; we're both developers and have completely different views, I wonder what the HN crowd thinks about this.

IMO, today's "mainstream information knowledge base" already involves concepts that a few years ago would have been considered the domain of coders.

One example is the use of markup tags in blog comments (<b> and <i>). Granted, this is a simple concept to understand, yet it is the foundation of HTML.

As people are increasingly subjected to concepts like "markup language", and unknowingly end up assimilating them, how long before more complex knowledge is added to the mix ?

Keeping with the markup example, once you understand what <b> does, it's a small step to understand what <div> does. One applies style, the other structure.

With HTML5 being a "language" that allows infinite power of expression on the web (both structure and style), how long before students decide that this is a language that they ought to know, because it gives them the flexibility that existing tools simply don't ?

The success of Codecademy seems to confirm that given the right tools, the general public includes an intellectually curious bunch that finds it fun to learn these concepts.

What do you guys think ?

8 comments

[ 2.2 ms ] story [ 24.4 ms ] thread
It is hard to define what the "general public" is in your post. But I will assume, that you mean, at one day will 50% of the population that has access to a computer will be able to code.

And from me, I think that is an easy "No". I don't know why they would want to either. A lot people are not interested in buildings things (physical or digital) and are not interested in how things work. If they were, then I think by this point the general public would know how a car works, but I would say most people don't have a non trivial understanding of a simple motor.

Moreover, I think you are highly overestimating the ability of the general public in that it is a "small step" from going from wrapping text with some kind of special marker (<b>,<i>, etc...) to change the font style to how a DOM and layout engine works. In my experience, obviously this is very anecdotal, it is hard to explain the difference between block elements and inline elements, margins and padding to people that are smart (at least in my opinion) and truly want to learn.

You are right about it being hard to explain the difference between block and inline, even to smart people who want to learn. My argument is that there could simply be more people who want to learn, having been exposed early on to similar concepts, and that an increasing number of those people won't necessarily come from CS backgrounds.
I think the car analogy is spot on, most people do not want to crack the hood and get there hands dirty. There have been many attempts to create visual languages as well as user friendly development environments. Probably the two that have come the closest would be Flash and Microsoft Access and as history has shown even development in those two technologies gets relegated to a development roll. The problem is that development get's complicated fast and these environments by their nature just cant deal with that complexity, and if they do deal with it, they do so by dropping back to allowing the user to write code.

If and when computers advance to the point of being able to read our thoughts and translating that into an application, then we will see the nature of programming truly change. But I would suspect at that point most people would not be using vendor written software, but would be thinking up custom tailored software that works the way their mind thinks. The very nature of computing will have changed at that point so whether or not there are programmers, would be akin to wondering if their will be coopers to make barrels for grog. It depends on a plethora of variables that may not even exist due to the nature of the product being totally different by that time.

I guess that depends on how loosely you want to define your terms. I'm a former homemaker whose writings on some emails lists were seemingly popular for a time. This led to a couple of websites. I eventually learned a little (x)html and css to manage my sites. I suppose you could define me as "part of the general public" and "someone who can code". But I certainly don't think of myself as a hacker or programmer and couldn't qualify for a job writing code, just like I know a little conversational German, can count to 10 in Russian, know a smattering of Spanish words and can read and write a smidgeon of French but I don't think I'm a linguist or even bilingual. I'm simply not that fluent. I just dabble.
tl;dr;

Its funny, I've been thinking about this recently, and the conclusion I came to was, People doesn't need to code actually. Coding is the process to getting desired output, which can be totally abstracted out for most common tasks. Look at ruby on rails, It hugely reduces all the mundane tasks that programmers needed to do.

If programmers care about DRY principle, they won't design yet another shopping cart.

Look at google forms, Its so easy anybody can do it without knowing to code, imagine coding a form with same complexity within the time it takes to set it up. Its not possible.

So, my point is customers people want, nine in holes in their walls, not nine inch drills.

coding is kind of nine inch drill ;)

The general public will be limited to typing homework problems into wolfram alpha...