
Please Learn to Code - sgdesign
http://sachagreif.com/please-learn-to-code/
======
VolatileVoid
I'm actually kind of tired of hearing, "there's no other field that lets you
create something from nothing" vis a vis programming. Look: I LOVE coding. I
LOVE programming. I think it's fun and challenging, etc. etc. But it's not the
only creative outlet that has ever existed.

Have you considered a pencil and a paper? Crayons? Markers? Paints and a
canvas? A hammer, some wood and some nails?

"Ah, but that requires something to create something!" Yeah? So does
programming. It requires a computer (or access to one). It requires programs
to run your code - free or otherwise. In fact, I'd argue the barrier for entry
into programming is SIGNIFICANTLY HIGHER than MANY other creative outlets.

~~~
groovy2shoes
> It requires a computer (or access to one). It requires programs to run your
> code - free or otherwise.

I know what you're saying, but I'd like to point out that you don't _need_ a
computer to _write_ programs. I started writing programs with pen and paper
back in middle school (before my family owned a computer), and still often do
that. Nowadays, most of them do end up being digitized and executed, though.

Alonzo Church, Alan Turing, Haskell Curry, Moses Schoenfinkel, etc., were
writing programs before computers were even invented ;)

~~~
scoot
And Ada Lovelace before electricity. :)

 _"The notes [...] include in complete detail, a method for calculating a
sequence of Bernoulli numbers [...] which would have run correctly had the
Analytical Engine been built. Based on this work, Lovelace is now widely
credited with being the first computer programmer and her method is recognised
as the world's first computer programme."[1]_

[1]<http://en.wikipedia.org/wiki/Ada_Lovelace>

~~~
groovy2shoes
_How_ could I forget Ada Lovelace? Facepalm moment. Thanks.

------
edw519
_Think about it: something I did reached 10,000 actual living people and had
an impact (however small) on their life. That would never have been possible
if I didn’t know how to code._

(ability to code) != (eyeballs reached)

I've written blog posts viewed by 100,000 people in one day.

I've also written software used by 1 person to save millions of dollars.

Both are rewarding, but I'd still rather build something. I think _that's_ the
most appropriate metric.

~~~
danso
_(ability to code) != (eyeballs reached)_

Not directly, maybe. But having some acknowledgment of basic data principles
(particularly delimitation, meta-ness, maybe even regexes) can substantially
increase your ability to write digitally. Markdown, for instance. And of
course, being able to maintain or customize an existing platform, whether it's
WordPress or Tumblr.

It's sad to say, but delimitation is __not __a skill that is in the mind of
the average professional adult. Try sending someone a tab-delimited text file
to someone who has only known CSV or XLS sometime.

~~~
roc
I'd agree that there are computer skills that are generally useful, up there
with reading, writing and math.

But they're far less complex than _code_. And I can't say I've ever heard the
"learn to code" people advocating them.

~~~
danso
As a person in the media/reporting industry, I've almost committed to making
it my life mission to teach people the usefulness of basic regexes.

I've taught a lot of "learn to code" sessions...My main goal is to not for
them to remember the specific syntax, but that programming gives you the
ability to repeat a task thousands of times (for loops) and differentiate
between them (if statements)...how many (non-worker-drones) people would be
content spending significant amounts of their dayjob time doing manual
copying-and-pasting and click-series-of-links-to-download-reports if they were
aware of these basic coding constructs?

------
blindhippo
I remember when VBA came out in MS Office.

Now your average tech savvy office drone could morph their excel spreadsheets
into a full blown application capable of processing business data without
having to jump through any of the traditional hoops the evil IT department
normally demands.

And we ended up with a ton of buggy, dangerous "mission critical" piles of
garbage because they were "designed" and built by non-programmers.

Software programming is a discipline on the order of engineering and it will
continue to get more complicated and require more and more education going
forward. So no, not everyone should learn to "code".

We should be encouraging people to THINK like a coder - to approach problems
in a way to identifies root causes and starts coming up with proper solutions.

I'm not in the valley so may it's vastly different down there, but outside (in
Canada) tech is still considered a very specialized field, software
development especially. It is not considered as simple as basic household
skills like plumbing, cooking and building a deck. I would not expect my
lawyer to 1) know how to code or, 2) code in a professional and useful manner.

~~~
kalleboo
I still think those «buggy, dangerous "mission critical" piles of garbage» are
valuable.

If there was no VBA, the jobs these scripts were created for would still be
done manually, with a mouse, by some secretary somewhere. "Getting a
professional to do it" would never enter into the picture when you're talking
about a BigCorp with a conservative, limited-budget IT department.

~~~
pcroom
During my internship at a manufacturing company, I knew enough about VBA to
record a macro in Excel (just record, no actual coding involved) to automate
~10 minutes of work I had to complete monthly and included step-by-step
instructions for how to run the macro and what the macro did.

When I came back a year later after graduating, I learned the process was
again being done manually because my replacement did not have even a basic
understanding of how to interpret what a macro does from the script.

A few months ago, I automated ~6 hours of monthly Excel work through ~4 hours
of trial and error of recording macros and manually editing them. I have zero
training in coding other than osmosis from my brother who is an iOS
programmer, but I wasn't afraid to screw up enough to figure it out.

Based on my first experience, unless my eventual replacement has at least a
curiosity about how macros work I wouldn't trust them to effectively run my
script over the long term--if anything breaks, they won't be able to fix it.

The point is, a lack of basic, basic understanding of coding could end up
costing the company the 75+ hours/year I was able to save with a "buggy,
dangerous...pile of garbage" when I either move to a new role or leave. This
was something which would never have been a high enough priority for our
coders to write for us. Multiply that through 25 people in our finance
department, and you're talking about needing an additional full-time employee.

Can anyone recommend a good place to learn enough VBA to move past the buggy
and dangerous stage?

~~~
sopooneo
You hit on an important point: curiosity. Most of the best programmers are
deeply curious, and I don't think that can be taught, though I do believe it
can be cultivated from an early age.

On the other hand, showing people how to safely experiment in ways they can be
sure won't screw things up may be very empowering and allow them to express
their creative drive.

~~~
sigkill
I kind of agree with you. I think everyone is inherently curious right until
the point when a smart-ass parent says "Because I said so, and now shut up and
don't ask questions."

My parents did not do that. Even today, they pride themselves on the fact that
when I used to asked them a "What would happen if..." question, they'd be like
"Why don't you try it out". Sure I may/may not have got myself in a sticky
situation, but the point is they didn't shut me down. Also, if I ever broke
something (which was fixable) my dad would actually open that damn thing and
fix it during the weekends, talking and explaining to me what the things
inside do. Sure I may be only 7-8 or even 10-11 but hey that adds more to my
curiosity.

At their angriest, my parents have assessed the situation to check if it's
fixable by a human at my age/capacity and given me a stern "fix it" look.
Boom, that was a blessing in disguise as well because now I'd be all like
"Shit, how DOES this work".

[Note: I'm neither married/not have kids...yet]

The problem that I've seen with others/their parents/their children is that
they get annoyed quite quickly. And when you shut down a 5 year old, you can
clearly see the pained expression on his face.

They simply lose interest in everything and end up becoming drones. And
they're afraid of doing anything new because they worry if they screw it up,
their parent will come home and beat them up.

------
jenius
Sacha, I am a fan of yours and usually like your material, but I just can't
agree here. You took so much for granted in this post. Deploying a website
that 10,000 people will see is not trivial, whether you personally did it or
not. Here's my beef, specifically:

1\. You already knew how to design. In fact you are a very talented and well
known designer. If you didn't have design skills, chances are a huge huge
amount lower that anything you put out will make the rounds - design is super
important, and you of all people know that. And that's something you need to
learn as well, so tack that on top of the time it takes to learn how to code.

2\. Learning how to code != making websites. In fact, they are very different.
To make a website, not only do you need to either have a designer on hand or
be good at design as mentioned above, but you also need to have a very good
understanding of how the web works. That means filesystem structure, http,
ftp, domain names, web hosting, then add html and css to the javascript you've
been working on. THEN if you want your site to be anything more than static,
throw in back end code, databases, web frameworks, etc. on top of that.

This is a MASSIVE stack of things to learn, and I don't know a single person
who knows all of this and doesn't work full time doing this stuff. "Learning
to code" seems like a cute thing you can make a resolution to work on as a
hobby, and maybe it is. You might be able to pick up the bare basics of
programming in your free time, if you work hard. But making something
significant like you claim here is a completely different deal.

3\. You never dispute or even address the main point behind Atwood's article -
that while programming is great to learn, the trend that 'everyone should
learn to program' as a base skill along with reading, writing, and math is
ridiculous. It's nowhere near as important as these other skills, and he makes
a number of other valid points as well which I'm sure you don't disagree with.
You argument was simply that programming is cool, so you should learn it.
Sure, I agree, and I would have said the same if I only read the title of
Atwood's article. But I feel like the way you contested it was uninformed and
completely missed the point.

~~~
agentultra
_3\. You never dispute or even address the main point behind Atwood's article
- that while programming is great to learn, the trend that 'everyone should
learn to program' as a base skill along with reading, writing, and math is
ridiculous. It's nowhere near as important as these other skills, and he makes
a number of other valid points as well which I'm sure you don't disagree with.
You argument was simply that programming is cool, so you should learn it.
Sure, I agree, and I would have said the same if I only read the title of
Atwood's article. But I feel like the way you contested it was uninformed and
completely missed the point._

I'll dispute the main point.

As computers permeate more of our everyday lives it becomes necessary to
understand them on some level. Nobody needed to learn how to read until there
were books everywhere. No one needs to be an English major to pick up a book
and learn to read. The benefits we know are enormous to adopting this skill.

But lets consider a world where books were everywhere but only an elite few
felt it was useful to teach people to read. Knowledge as we well know is power
and if only a few had the ability to pass on their knowledge amongst
themselves then they would have a significant advantage over those who cannot
read. The unfortunate masses who could not read would never know the full
extent of the forces that work against their best interests. How could they?

Now we're in a world where there is more computing power in your pocket than
that which sent human beings to the moon and back. Yet the non-programmer has
no idea just how useful it is. The only literacy they have with computers are
as appliances. They don't realize that these devices carry with them processes
that may or may not operate in their best interest and they have no way of
knowing that without being able to at least have a basic literacy of computers
and programming.

Becoming a master at programming is still a difficult task that few will
achieve. Just as becoming the next Nabokov or Salinger won't come to every
person who picks up a pen and paper. However that doesn't mean we don't need
to teach everyone how to write. We give them the basics and its up to them to
use those tools if they so choose and pursue their own paths. However if we
keep them in the dark then they'll have no hope.

Teach everyone to code. Computing is emerging as a new medium of expression
and the technology is embedding itself in our every day existence. People need
to be literate so they are able to understand the consequences and benefits of
this technology. It's 2012 and most people I know still think computers are
practically magic. They should know better and its our fault for not educating
them.

~~~
cageface
_As computers permeate more of our everyday lives it becomes necessary to
understand them on some level._

I vehemently disagree on this. Apple has made a silly fortune proving the
contrary.

If you need deep understanding of a device to make it useful then the
designers have failed to provide you with the right abstractions.

~~~
larrys
Agree. And along the same lines an entire industry grew around the fact that
computing products before Apple (particularly DOS, Windows etc.) were
difficult enough that the average person (say someone who might be urged to
code now) did not have the desire or aptitude to learn how to do it
themselves. I'm sure everyone knows many of these people who giggle about how
stupid they are with computers and have no interest in learning how to fix the
simplest of problems.

Some people just lack the appropriate base skills to fool with computers and
certainly programming. They will always need a "tech guy" and have no desire
to change that for a reason. It's not that simple to them. Not because they
are stupid but because it's not their thing.

------
babarock
I expected a similar post to hit HN, since I too was shocked by Jeff's
comments. However I do not think people should learn to code for the same
reason.

Sure writing a website is cool, but then again, learning plumbing is cool,
which is the basis of Jeff's argumentation. Plumbing can empower you by giving
you control over your own house and appliances, etc, etc.

I think the real reason people should learn to code, is because an increasing
number will have to deal with machines in every day lives, often taking
decision affecting the work (and general lives) of others based on their
understanding of those same machines:

\- The legislator who has to pass laws about computers and/or the Internet.

\- The manager who has to assess the usefulness of a new software application.

\- The teacher educating kids and preparing them for the modern world.

\- The consumer who wants to make an informed choice when chosing the latest
gadget, not blindly follow what marketing departments tell her to.

\- The judge and jurors overseeing the Oracle-vs-Google case.

I want to make the distinction that I wish people would learn to Code, not so
they can "make" stuff, but so they can "understand" stuff.

~~~
sgdesign
I don't think the comparison is apt, because learning plumbing only helps you
with plumbing. Whereas coding knowledge can be applied to a lot of fields.

To me, there's an argument to be made that coding can be considered (or maybe,
will one day be considered) like a life skill on par with reading, cooking, or
playing music.

I agree it doesn't look like it right now, but I'm sure that a couple hundreds
years ago the idea that everybody would one day know how to read seemed just
as ludicrous.

~~~
babarock
I am absolutely not arguing agains this. Here's the extract from your text I
disagree with:

    
    
        > I can’t think of many other skills that enable you to create something from scratch and reach as many people as knowing how to set up a simple website.
    
        > Just last week, I was able to come up with an idea and then launch a site in 2 days. That site was then seen by about 10,000 people in a couple hours.
    
        > Think about it: something I did reached 10,000 actual living people and had an impact (however small) on their life. That would never have been possible if I didn’t know how to code.
    

This text is arguing that the value of learning programming is in the software
you will _create_ and the impact it will have on a population. This would be a
valid point when arguing why one should become a programmer.

Drawing on an analogy similar to the one you make: Learning to write is
crucial today, even though I will probably never be a published author.
Similarly, learning to code is important, but not because "you too, can make a
website!".

~~~
sgdesign
Well, I think both point are valid. You should learn to code as you learned to
write, to be able to function in a modern society.

And another good reason for learning to code (just like learning to write) is
that it'll let you reach a lot of people, and possibly become extremely rich
in the process. I guess that second argument is what Jeff Atwood is mostly
disagreeing with.

------
ralfd
I think everybody should visit Reddit, for one simple reason: _knowing how to
make a meme is hugely empowering._

I can’t think of many other skills that enable you to create something from
scratch and reach as many people as knowing how to set up a simple rage post.

Just last week, I was able to come up with an idea and then photographed my
cat in 2 ways. That photo was then seen by about 10,000 people in a couple
hours and I got 2000 karma points.

Think about it: something I did reached 10,000 actual living people and had an
impact (however small) on their life. That would never have been possible if I
didn’t know how to procrastinate on the Internet.

~~~
bcjordan
Your point in the wider discussion aside (sure, population-wide imperatives
are a dangerous rhetorical device), I actually think actively participating in
the Reddit rage comic community can be a very valuable experience. It will
teach you how to tell a story and communicate the humor of a situation using a
simple image editor. You can watch the real failure-learning happen in [1].
Thinking your work is comedy gold and getting it downvoted into oblivion is a
great, highly-concentrated learning experience.

English teachers in Japan are also using rage comics to supplement their
English lessons and inspire their students to learn words so they can
understand their classmates' jokes [2].

[1]: <http://www.reddit.com/r/fffffffuuuuuuuuuuuu/new/>

[2]: <http://www.reddit.com/r/EFLcomics>

~~~
ralfd
I love the non-sensical strangeness of this:

<http://i.imgur.com/Lf6A8.png>

And that on the Reddit comments the ordering of the panels is debated.

------
phatboyslim
Computing is taking a similar path in everyday life as finance. As
individuals, I don't feel we need to learn how hedge funds, or complex
derivatives work, but nobody denies it is beneficial to learn how to manage
money, make basic investments, and plan your retirement. The urge to teach
programming isn't as much about teaching everyone complex and theoretical
computer science, but to teach basics that will benefit them as we move into
the information age where technology permeates nearly every business.

------
photon137
I think everybody should learn to code _at school_ when they're kids. That
way, they can decide if they want to become real programmers/software-
engineers or something else.

Just as every kid learns mathematics does not mean he/she has to become a
full-fledged PhD researching manifolds in Topology. But they still need to
know how to calculate percentages, basic statistics etc to get through life
more easily.

In the same way, giving instructions to a computer the "hard" way instead of
via clicking on buttons and letting magic happen is often a good exercise to
appreciate the power and freedom it gives you. I remember doing this when I
was 9 or 10 and doing locate, print, cls repeatedly in a BASIC loop let me
create an animation I could control quite precisely (well no, CPU cycles came
into play!)

But that's the precise reason, 18 years on, I delve into programming GPUs,
wrote games with advanced Direct3D shaders for them and am currently wrting
OpenCL code to solve complex equations on them.

It's all because of the locate, print, cls loop!

------
tobias3
Discussions where one does not agree on the topic are always kind of
pointless:

You can view "coding" as...

...an extension of mathmatics -- The ability to express an algorithm in a way
that a computer understands it.

...an engineering discipline, where you build complex products by appliying
good practice.

The first thing, can and should be tought at school. In fact where I live it
is tought there. Needless to say it has the same reputation as math...

The second thing is something you have to study and become an expert in,
because if you are not companies loose money or you might even kill people.

------
kareemsabri
"The first step is letting people know that learning to code is not that hard,
and that if they put their mind to it they have a high chance of succeeding."

Is this even true? I think it's pretty well documented that the vast majority
of the population actually has a high chance of failing. Look at failure rates
in intro CS courses. Remember this?

[http://www.codinghorror.com/blog/2006/07/separating-
programm...](http://www.codinghorror.com/blog/2006/07/separating-programming-
sheep-from-non-programming-goats.html)

------
mns2
Both of these blog posts are stupid. They should both really be saying "Please
learn more about the world in order to better accomplish your goals."
Sometimes it's useful to learn how to code because it teaches a different way
of thinking. Sometimes it's more useful to just learn how to think
differently. These choices depend on a lot of things, but one is more optimal
than the other for any particular scenario. If I could get everyone in the
world to read a few articles on rationality, I would, because it wouldn't take
long and the people who could understand it would really get something out of
it. If I could get everyone in the world to learn how to code, I wouldn't,
because it would take longer and I expect far fewer people to get value out of
it. I can't do either of these though, so both are pretty useless to consider.
People toss around information more and more quickly these days, so it might
be useful to share a bit of philosophy. Tell people to try hard. Tell people
to learn. Tell people to find out about the things they don't know, to see if
they could help them. Tell people to reevaluate their goals, to find which
contradict each other and to sort themselves out. Be kind or they won't
listen. Don't be patronizing in your kindness, or they won't listen. If you
want to help people become better, do it for yourself first. Learn more,
become smarter, try harder, do better, and eventually the people around you
just might see it and start doing it, too. Or maybe after a while you'll start
helping other people become better. There are still people who suffer today.
Sometimes you can't help them; sometimes you can.

------
tgrass
I wonder how many folks suggesting everyone should learn to code will replace
a punctured car tire instead of plugging it.

------
hesselink
I think learning to cook is an interesting comparison. Would people react the
way they do now if someone wanted to learn how to cook instead of learning how
to code? I think learning to cook is a really worthwhile skill. It will teach
you about food, ingredient and chemistry. It will maybe get you thinking about
how we produce food in our world.

The same goes for coding. It will get you thinking about a lot of things that
really matter to your life and the world.

~~~
debacle
Learning anything is a good comparison. There is no harm in learning. Better
to be a mediocre guitar player than not be able to play to guitar at all. It
expands your mind, and lord knows you were just going to spend the time
watching Desperate Housewives reruns.

------
islon
Programmers thinking their specific skills are universally useful and should
be taught at school... Yeah right. Most people don't even remember the basic
math they learnt at school. I wont say programming skills aren't useful and
rad but one could say the same about basically every skill and I don't see
electrical engineers saying "please learn electrical engineering, it's very
useful".

------
k_kelly
Programming is an adult way to treat a computer as opposed to the absolute
infantilism most people approach their computers, or devices with. It's as
much to say I understand that what happens on the hardware end is what is
happening as the consumer, even though the processes seem completely
different.

And none of it is easy or obvious. Dijkstra said teaching computer science was
absolute cruelty because it does not truly reflect anything else in the world.

If you are going to work with computers don't think that an email server is an
online mail room, don't go down the road of thinking that copyright law holds
from one medium to the other because the idea behind the product is the same.

Don't think that skype is a telephone, don't think that facebook is the
beatles of today, do know what something is, do know that the only
intersection between life and computers is via maths and logic, do understand
that these things matter now and will matter in the future.

------
DennisP
So we complain about politicians passing stupid technology laws, and as soon
as a politicians says he wants to learn something about the tech, a prominent
programmer tells him "don't bother?"

If you don't know how to code, it probably seems perfectly reasonable to have
a computer that you can't program yourself, with everything locked down. If
that's the future you want, then sure, tell politicians to leave the coding to
the professionals.

If you can code, you start to see the computer as a machine that can do
anything you want, instead of just the things some app store makes available
to you. That freedom is addictive. You start demanding it.

Cory Doctorow's fears about the end of general computing will come true unless
lots of people get addicted to that freedom.
<http://boingboing.net/2012/01/10/lockdown.html>

------
grovulent
I'm going to leave this here - since I've been talking about this for a while.

[http://reviewsindepth.com/2011/04/why-everyone-should-
learn-...](http://reviewsindepth.com/2011/04/why-everyone-should-learn-to-
program/)

I really think the issue is deeper than current commentators are addressing.

------
pefavre
Interesting point: people need to know how different it is to customize a
WordPress theme and building a Rails CMS. If, before knowing how to actually
code, people can judge of the quantity and quality of work required to build
something, the world will certainly be better.

------
brudgers
As I recall from the 1980's, there are two types of people in the world,
programmers and victims.

I think Atwood's point is valid in so far as the world probably doesn't need
politicians coding the software by which government services are provided. Nor
do we need everyone writing their own web pages, one GeoCities was enough.

On the other hand, it seems to me that programming is going to increasingly be
seen as a part of basic mathematical literacy. It's just a whole lot easier to
solve a layered arithmetical problem with javascript than with a conventional
calculator.

In other words, most people should try to learn the lightweight scripting
which allows for better exploitation of all the computing tools.

------
unreal37
A lot of people are confusing "learning how technology works" with "learning
to code". I think society would benefit if more people understood how things
worked. But not necessarily if everyone could code.

Perhaps learning to code is a gateway to understanding technology. But that's
a pretty steep learning curve just to explain to someone how a web page is
generated and served.

To keep the plumber analogy, I'd be a better homeowner if I understood what
all the pipes in my house do, and the importance of proper care and
maintenance. Or when something breaks, how to turn off the water main without
calling 911.

------
__abc
I can hear it now, "but hey, during code year I learned how to hello world,
why is your estimate so hi, it's not that hard".

We should REALLY do this with healthcare. Who needs doctors. All hail self
diagnosis year 2013!

~~~
gk1
> We should REALLY do this with healthcare. Who needs doctors. All hail self
> diagnosis year 2013!

Did you ever take a biology class?

------
Osiris
I think the discussion should not be that everyone _should_ learn to code but
that everyone should have the _opportunity_ to learn to code, if they want.

We shouldn't be arguing why we should or shouldn't learned coding over other
skills, like plumbing.

I praise people that put in work to make learning (such as coding) an easily
accessible endeavor for those that want to learn. I would also praise Khan
academy and universities that have made learning a variety of skills easily
accessible to the people.

As a society, let us push to make education and learning open and accessible
to all.

~~~
sgdesign
Very good point, I should've phrased it that way.

But I think the first step in _giving someone the opportunity to code_ is to
_make them want to try it_. So that was the intent behind me saying "everybody
should learn how to code".

------
Czarnian
Learning how to code has about as much real-world utility as learning how to
rebuild an engine block. It's necessary to know if you're in the industry.
It's interesting information if you like that sort of thing. For everyone
else, it's a non-factor. They'll never be in a position where coding will
solve a problem for them. Even if they are made aware of a potential solution
involving code, they won't be bothered to try. Knowing how to change the oil
in your car is a far cry from wanting to change the oil in your car.

------
elisk
I agree more with this rather than the other one - I see coding as speaking,
writing, cooking [food], or composing music. Sure, not everyone in the world
HAS to know how to compose music, but we still know how to compose a simple
melody in our heads, and we sure as hell need to know how to write.

Coding isn't hard, coding is simple - simpler than a lot of other complicated
things we have to learn as we grow up - and as such it should be mandatory in
a world governed by computers.

------
trustfundbaby
<sarcasm>I think everybody should learn to do basic medical procedures, for
one simple reason: knowing how to do it is hugely empowering.</sarcasm>

Quite a few people don't have the time or the inclination to sit down and
learn how to code, and to keep making like its really simple is kind of silly.
I took my first programming class in Java many years ago, and even on basic
things like operators and variables, half of the class was completely lost.

Not everybody can do what we do.

~~~
j_s
Drifting off on your carefully-tagged tangent: Basic medical procedures like
CPR, the Heimlich Maneuver, using an epipen, applying a tourniquet, etc. ?

~~~
objclxt
It was tagged in sarcasm, but to expand upon the dodgy analogy couldn't you
argue that's just the medical equivalent of basic computer literacy?

~~~
j_s
Well, CPR certification requires some effort but I certainly couldn't argue
the others on the same footing.

------
jwoah12
It seems to me like there are ulterior motives behind a lot of programmers'
hostile attitudes toward non-programmers learning some of the craft. If I
didn't know any better (and I don't), I'd say that people think, consciously
or otherwise, that it will somehow cheapen their skills or experience if some
newbies learn basic development. I disagree. I think that if anything, it will
give others more of an understanding and appreciation for what we do.

~~~
cageface
Not me. I'm just tired of once again seeing all the hoi polloi rushing in
because some dumb photo sharing site just sold for a billion dollars and this
is going to be a easier way to earn their boat and summer home than taking all
those boring business, law and medicine classes.

~~~
jwoah12
I agree that people trying to learn in order to get rich quick is good for
nobody (it's akin to the 100%+ increase in CS enrollment around 2000 that I
remember some of my professors telling me about). That being said, Bloomberg's
initiative to bring NYC up to speed with the technology through better
education and a high-tech business environment certainly predates Instagram's
sale.

------
sopooneo
I used to teach physics and the kids who didn't love it would often ask why
they had to learn it. I didn't give them any baloney. I admitted that the vast
majority of them would never need it professionally. I did point out that
logical thinking was important and physics would help them with that. But I
think the truth is that science, like most other aspects of a good education
in the "arts and sciences" is actually for the benefit of society as a whole.

I would bring in articles from major News outlets and ask my kids to spot the
blatant scientific errors. Do you know how many articles report things that
clearly violate conservation of energy? It is so rare to see a science article
in the mainstream press without errors, that I don't even get surprised
anymore.

Having people with basic science knowledge will allow them to be savvier
consumers, better citizens, and, in those cases where their lives take them
there, vastly better public servants.

Knowledge about programming is not an exact parallel, but I think it's
reasonably close. I agree with Atwood that programming is not as foundational
as reading, writing, and math, but it's right up there with a few other things
that would be very good to teach everyone the basics of.

~~~
platz
relevant: <http://xkcd.com/1050/> "The only things you HAVE to know are how to
make enough of a living to stay alive and how to get your taxes done. All the
fun parts of life are optional."

If we measured everything by how much we used it professionally, we wouldn't
learn music, play sports, or any number of things we focus on in schools.

------
EternalFury
If "learn to code" means "learn that coding is a laborious profession", then
yes, by all means, learn to code.

I am definitely wary of people who tell me: \- "Why don't we..." \- "We just
need..." \- "How hard could this be..." \- "Quickly change it so that..." \-
"We can always change it later if it doesn't pan out..."

The disconnect between people who know how hard it can be and the people who
assume it's as simple as talking about it is way too large as it is.

------
mattschoch
For learning to code: -You develop analytical and problem solving skills.
Similar to math, but more practical (how many people really use Calculus on a
daily basis?) -You understand how computers work. No explanation necessary.
-All the other good arguments people have made.

Against learning to code: -More bad programmers. -Even worse, more non-
programmers who think they can code. Example: Someone does CodeYear and
suddenly thinks they are a expert coder. Starts web design business. Sells
poorly built wordpress themes to unsuspecting small businesses. If they have
low prices, it makes potential customers think that all coding should be
cheap("if they can do it for practically free, why should I pay you more?").
Thus, the entire industry suffers.

That isn't to say CodeYear is bad. I like it. It's great for people who
actually want to learn to code and don't know where to start. It's bad for
people who think they can sell websites after a few hours.

------
jwwest
What's frightening about the nativity in Atwood's post is that his basic
assumption is that the more people know the worse it is. This is in direct
contradiction to the fact that generally speaking the more educated people
are, the better and stronger our workforce, communities, nations, etc are.

Learning to code != becoming a professional programmer. I can't count the
number of times I wished that a graphic designer I was working with had even
the basic idea of how HTML works.

Non developers should learn at least a bit of appreciation and even a baseline
knowledge of what we do if they work with us on a daily basis. Also,
developers need to actually learn some basic design skills to enhance their
communications as well.

------
WiseWeasel
Maybe people don't necessarily need to learn a particular programming
language, API set, platform, etc., but a basic awareness of how computers can
be used to automate tasks, how loops and conditionals combined with arithmetic
can be organized to make something useful, would really help people realize
the potential benefit to be unleashed with an understanding of computers.

I had a computer class in high school where we were taught BASIC, and we were
eventually taught to use HyperCard in a likely atypical "humanities" class I
took; those experiences were certainly very enriching and empowring to me,
even if I never touched BASIC or HyperCard again since.

Is programming even still a part of high school curricula?

------
S_A_P
I think that there are many assumptions being made here. The biggest of which
is that everyone is even _interested_ in writing code. I know many people
whose eyes glaze over the second I mention the word code, and would consider
it akin to water boarding to learn code. I don't know that everyone is even
wired to write code. Its certainly a certain type of person that can abstract
problems logically and create good code from these abstractions.

I personally think computer literacy/competency is much more important than
the ability to code. Unfortunately we still aren't to the point where we can
say that most of the population is there.

------
peterwwillis
I'd say coding is really a lot like learning a martial art. You get exercise
(brain/body), you can use it to overcome difficulties (formatting complex
documents/leg-sweeping a belligerent drunk), and you can develop it into a
career if you focus. But really it's just a set of tools that have a wide
ranging use. Of course, you also have to practice so you don't get rusty.

I think everyone who has a mind for problem-solving should learn to code.
Heck, even people who aren't especially right-brained can use code to be
creative and artistic. And sometimes it's just fun, damnit.

------
orbitingpluto
Learning some VBA counts as learning to code in my opinion.

I've temped before and been told to do nothing more than prettify and unify
formatting in an Excel spreadsheet (for later insertion into a db).

(555)555-1212, 555.555.1212, (555) 555-1212, 555-555-1212, and so on to some
standard format is a 10 minute job regardless of size.

Not everyone needs to be able to really program, but a healthy respect and
knowledge of what a couple of one liners can do saves lots of money. That's
money that could be spent on truly productive tasks that would actually drive
the economy and not burden it.

------
docgnome
I think I just don't understand a growing population on HN. Since when is
programming about building websites? Or desktop apps? Or making money? What
happened to ars gratia artis?

~~~
ckolderup
This is the boat I'm in. Everyone seems to be applying this exclusively to
BUSINESS and DAY JOBS and MISSION-CRITICAL APPLICATIONS and CLIENTS and
CUSTOMERS.

Why not empower people to spend their leisure time or their artistic pursuits
in a new, challenging way?

------
justinj
the implication that learning to code results in 10,000 viewers? please. it
wasn't your coding skills that brought in those UVs. by your logic, all of the
sites created by shit-hot coders like us should hit 10,000 views in the first
two hours easy. you're propagating the kinds of myths that i debunk daily with
friends and family, who grossly underestimate the difficulty of attracting
eyeballs to their content (and whose motivation sadly erodes when said
eyeballs don't instantly materialise).

if people have something to contribute, there are so many tools and services
out there that negate the need for coding it isn't funny. i always advocate
non-coders to test out their market theories using tumblr, wordpress,
facebook, twitter, posterous, pinterest, et al before rushing off to pay
someone to develop something. (in fact, i think us developers should bill
ourselves for our own time on our own projects, but that's fodder for another
post).

should the average person understand tech? definitely. understand the web? for
sure. hypertext markup? why not. javascript? yea, you can skip that.

jeff atwood, you are right on the money.

------
AndrewWorsnop
I think learning how computers/software works is just as useful as learning
history or geography or science, which we already make students learn.

------
bryze
I have to agree with Jeff Atwood's original post, here. The complexity of
modern society is requiring individuals to be more specialized. If anything we
need improved communication so that inter-disciplinary projects proceed
efficiently. As much as we exalt the individual here in the states, a team
almost always surpasses what an individual can accomplish.

------
27182818284
In the Information Age, literacy isn't defined as being just literate, it
means being computer literate. All of these people have it wrong by saying
people need to learn coded to like build a website or start a startup, they
need to learn basics so that they aren't overwhelmed when they need to export
something to CSV from Excel and shutdown.

------
guscost
Here's my take: C is a precise language, in a certain sense, whereas English
is not. If I can successfully communicate information to another person using
C, that person can put a lot of trust in their understanding of my idea.
Precise languages are very useful, and everyone should learn that they exist,
if nothing else.

------
m3rv
When this crap about "learn to code" will stop? Most of people don't know how
to code his TV set. Why? They don't care!!! You won't sell them Your
programming course!! You won't sell them Your ebook... You're just making
mess.

\--> To all, who want to sell something, with this "learn-to-code"
propaganda...

------
diego
_"knowing to code is hugely empowering."_

That is not a good reason to learn to code. Being beautiful and rich is
empowering. Being tall and strong is empowering. So what?

A large number of people cannot be beautiful, rich, tall, strong, or good
enough coders to feel empowered.

On a completely unrelated note, everybody should learn CPR.

------
acoyfellow
I love your mind Sacha. You are brilliant in my eyes, but I don't think the
Mayor of NYC needs to code.

------
alexchamberlain
Dear Author, are you a mediocre coder?

Edit: This wasn't a derogatory comment. I merely wanted to point out that the
Author probably isn't a mediocre coder and those people that are probably
can't touch 10000 people in just 2 days. I really like thetoolbox.cc.

~~~
sgdesign
I would probably call myself a mediocre coder compared to the average HN'er.

But I don't think you necessarily need great coding skills to reach people.
The Toolbox really is nothing more than a customized WordPress theme, and I'm
sure I could find lots of similarly successful sites that are not overly
complex from a technical point of view.

------
sasha-dv
A slightly off-topic question:

How much can you learn about computers by doing the code year?

Isn't this (<http://www.codecademy.com/tracks/code-year>) just a JavaScript
course?

(not being a jerk, just curious)

------
tedmiston
I agree with the thrill of being able to impact millions of people in some
substantial way. For some people, that's through code; for others, the medium
is paint, magazine articles, blog posts, books, posters, music, ...

------
jheriko
I've found coding useful in every non-coding job I've had where I have sat in
front of a computer in an office...

Office jobs, and general running of any business can be improved with
knowledge of code - or code itself imo.

------
atirip
"I think everybody should learn to code, for one simple reason: knowing how to
code is hugely empowering."

Oh please, before lecturing what everybody should do - first learn some
empathy, that will blow your socks off!

------
T-zex
Please do not compare coding to cooking.

~~~
nicholassmith
Please justify _why_ you think it's a bad comparison?

I think it's apt. Cooking shares many qualities with coding, you're under time
deadlines to produce something for a end consumer (for the most part). There's
lots of competing methods and you have to select which ones work best for the
product you want to produce.

Most importantly you can cook something amazing that everyone loves, or a
charred lump that no one will touch. Much the same as coding.

~~~
T-zex
Cooking is way more simple compared to programming. The recipes are easily
understood - a complete opposite to software specs.

Cooking does not evolve that fast compared to programming. Everybody loves
their grandma's pie.

And most important cooking is manufacturing and programming is designing.
Regular cooking is trying to reproduce something that was done as close as
possible, while programming involves dealing with lots of specifics.

~~~
nicholassmith
Really? I think the molecular gastronomy
(<https://en.wikipedia.org/wiki/Molecular_gastronomy>) chefs would disagree
with you about that.

The argument still holds, programming can be ridiculously simplistic and so
can cooking.

------
davtbaum
Anyone else bothered by the crappy coding style in that screenshot?

~~~
sgdesign
What's so crappy about it?

~~~
sasha-dv
No comment on coding style, but you may want to look into this:
<http://imgur.com/sE7ul>

Horizontal scrolling - a possible bug?

Screen resolution: 1024×768.

UA: Mozilla/5.0 (X11; Linux i686; rv:12.0) Gecko/20100101 Firefox/12.0

------
crazy_eye
Please... read the original article.

------
berntb
Some free advice to the kids (and then _get off my lawn!_ )...

Remember that Buffet quote -- he has seen a few bubbles: "... try to be
fearful when others are greedy and greedy when others are fearful."

Edit: If it isn't obvious -- the meme "everyone should learn to code" is the
largest top-of-a-bubble signal I've ever seen.

------
georgieporgie
Skilled programmers are already horrible at effort and time estimates. The
last thing I need is a client who "programmed" some barely-functional shell
and who is certain he/she only needs me to "finish up" some of the details.

