
Programming Is Not for Everybody - reikonomusha
http://symbo1ics.com/blog/?p=1615
======
simonsarris
This would be better titled "The 'What Schools Don’t Teach' video does not
accurately depict the median life of a programmer".

Which is true, and he gives a lot of points to support it, and I'd nod my head
for the entire article if that was the title.

From my perspective though none of his points seem to support his chosen
title, "Programming is not for everybody."

(It gets a lot sillier when you realize that nobody would title an article
"Logic is not for everybody.")

John McCarthy (AI, Lisp) once said something akin to: "I think everyone should
learn programming. It's the language we'll use to talk to our servants."

I think there _is_ something in programming for everybody. It doesn't have to
be compiler design or making the next facebook. Even if its just understanding
what an algorithm means, so that you can write clear directions (a recipe,
after all, is just an algorithm for preparing food, complete with for/while
loops, etc).

Programming is just logic plus communication. And being able to convey ideas
more clearly and more accurately is a delightful skill that will find uses all
over life, regardless of if your job is programmer, EMT, chef, etc.

~~~
jd007
You imply that logical thinking is a desirable trait for everybody, which may
not be necessarily true. I think that programming teaches you a way of
thinking that you cannot really get rid of after acquiring it, and though good
for a lot of people, may not be good for everybody.

For example some artists may not want to "limit" their thought process to just
logical, to more freely connect with and express their emotions (by no means
am I implying that programmers lack of emotional connections). But after being
trained to program it may be quite difficult to think any other way but
logically.

I want to live in a world where I can find and talk to somebody who has not
learned to program, who does not have any idea how computers work, but is
exceptional in some other completely unrelated field, to see how they think,
what their opinions are (which could be very different from my own yet
extremely interesting). A world where (nearly) everybody has learned to
program means it won't be possible (or at least very difficult) for me to do
that.

Getting everybody to program of course has its many benefits to society, but
the "What Schools Don’t Teach" video and similar articles always seem to imply
that there is absolutely no downside, which I personally believe may not be
true.

~~~
robbrown451
So I want to live in a world where I can talk to people who have never learned
counting or arithmetic. So I think we should make sure those people still
exist, by denying a certain percentage of the population a chance to learn
about them.

Seriously, what the hell?

~~~
jd007
You are stretching the issue a bit far IMO. Also counting and arithmetic is
kind of hard NOT to learn even if you do not specifically learn it from
somebody or in school because it is too essential to living in society.
Programming is hardly the case.

And the whole thing is not about my selfish reasons to satisfy my curiosity,
it's about diversity in the thinking process of people in society. Programming
changes how some people think and reason, and it may not be the best for
everybody in the entire world to learn, regardless of profession. That is my
entire point.

~~~
jacalata
so, an alternate example 1\. speaking english will give people advantages 2\.
learning a new language may quite well introduce you to new ways of thinking
3\. so you'd prefer that not everyone had the opportunity to learn english,
regardless of the individual benefit to them, in order to maintain the kind of
society you want to be in.

~~~
jd007
That is not the case at all. I'm not saying that we shouldn't give the
opportunity to learn programming to everybody, I'm saying that trying to get
everybody to learn programming (which, in the ideal case, the end goal would
be pretty much everybody on the entire planet learns to program when they were
young) may not be all good.

Just like we shouldn't force everybody to learn English. People who can speak
English may think quite differently from people who can only speak Korean or
Chinese or German, and I don't think it's good to try to get everybody on the
planet to learn to speak English. Part of it may be cultural, as with learning
languages (programming languages included) you are inevitably exposed to the
culture.

------
gfodor
Of course, the underlying goal is not that everyone should become a
programmer, but instead that everyone should be mildly proficient in what
programming _is_ , how it works, and can hopefully accomplish minor tasks by
writing simple bits of code. In order to get to this less ambitious goal,
code.org aims higher.

If a million more students set out to become programmers, only a small
percentage of them will become professionals, much like any other endeavor.
But if we can even get to a point where this dabbling in code happens for a
majority of young people it will be transformative enough.

~~~
edraferi
I agree, and I think you get at a key concept: literacy vs. mastery.

Relatively few people will become professional software developers, but
everyone will live a life impacted by technology. Learning the basics of
coding empowers you to live in the modern world. e.g. Your phone is no longer
magic, it's just very impressive.

Even then, there's a wide spectrum of "professional coders." There are many
expert data analysts who write scripts all day (in R or Python... perhaps
Stata, SPSS, etc). They're not kernel hackers, but they know why vectorization
is important, and it makes them better.

There are a million office workers who tweak VBA macros, and do it better
because they took the time to learn why variable types are. They're not
Microsoft-certified anythings, but code empowers them to be better.

So, I think there's a strong argument for code literacy as an educational
objective. Just like math literacy or actual literacy, it's an empowering
foundation of knowledge.

------
gavanwoolery
Imagine you are an artist, and you are hired to paint very boring "hotel art"
your whole life. Yes, your job would suck and you might as well not learn to
paint.

The vast, vast majority of programming jobs suck (if yours does not, you are
lucky). Every single one of my jobs has been pretty boring, and many of them
were relatively exciting compared to your average programming job.

But I love to program. Just not for other people. I spend all of my spare time
programming. To me, programming is a video game with millions of unsolved
challenges, each with millions of creative solutions. The more time I invest
in programming, the more empowered I feel, as if I have a second augmented
brain waiting to be instructed.

I agree with the majority of the author's messages. That said, programming may
or may not be for everyone, but there is definitely no harm in just trying it
out.

~~~
brudgers
One of my neighbors makes a living painting. It is unlikely you've heard of
her unless you're in this regional art market. It's a job. She works every
morning. She makes money painting pieces which sell, and she has a good idea
about what will and won't.

But she loves because she loves making art and she loves making art so much
that she uses her non-working time to make art that she knows won't sell.

Her "hotel art" or rather big house art is both a means to an end and a
creative outlet. The choice is not one or the other.

~~~
eshvk
Perhaps hotel art is not the right analogy that OP should have used?

Here is a better analogy: Think of hiring an artist to paint the walls of a
building, where painting them is defined by a rigid instruction set by a PM,
we have two week sprint cycles where your progress on each wall is measured.
You are actively encouraged with generous redbulls to crush painting the wall
and work long hours painting the wall. You furthermore see that industry is
obsessed with dozens of articles on whether people should paint their walls
horizontally or vertically. There are people talking about making their first
millions painting a building which has odd geometrical shapes.

Yet, the reason you got into painting/art was because you loved to design and
create. You loved the fact that art school gave you the opportunity to do
that. You are sometimes hopeful when you go interviews and you are asked
questions on design, ask to create something amazing. Hoping that maybe this
time things will be different and you won't be asked to paint fucking walls.

------
robbrown451
So you shouldn't teach arithmetic, algebra, music, art, literature,
chemistry....or any number of other things because everyone isn't going to use
those things professionally?

Personally I think programming is a better thing for grade schoolers to spend
their time doing than so many other things. I think a very large number of
them would find it fun, and less tedious than most of the other things they
do, while increasing their logical and analytical skills as well as giving
them a practical skill.

------
jiggy2011
Of course programming is not "for everyone", if nothing else simply because
the economy wouldn't work properly if everyone was a programmer.

I do think that everyone with a reasonable intellect can learn _some_ amount
of programming literacy though. The point of having universal programming
education is not so that everyone can become a software engineer, it's so that
you can have a society where >50% of people in the workforce understand the
difference between an if and a for loop and have some notion that you can nest
computer programs inside each other using functions etc.

When I was at school we all had to play football (soccer), the notion that I
would ever become a professional football player is laughable but I assume
that I learnt something about fitness, strategy and teamwork from the
exercise.

~~~
ruswick
On the economic note, I'm actually quite surprised at the level of altruism
present in the industry. Although most won't become professionals, the rate of
matriculation into the workforce will still be greater than that of football
players, and will still have adverse effects. Proliferation of programming can
only lead to a more saturated labor force and lower wages. Yet, people still
enthusiastically champion programming education...

It just seems odd to me. Very few other professions are keen on diminishing
their employment prospects in the name of education.

~~~
cdcox
The demand still dramatically outstrips the supply for the time being and
programming has a social network effect. Every device/store/application
provides a wealth of data and interaction that other programmers can improve,
work on or analyze. 3000 stores ordering by paper catalogues isn't nearly as
useful or programmable as those same stores with computerized systems.

FitBit's value increases with each app that uses it's interface to do
something new. Each of those apps has it's value increased by something like
FitBit coming out. Some areas of programming are competitive but most are
collaborative.

Also I think most programmers see programming as a force of good in the world.
Technology can protect us, help us find what we want, and even get rid of
boring jobs for us, most people who write code that does something like this
want others to be able to do the same. Of course this is the altruism you are
talking about I suppose.

------
nnq
You can use similar arguments to bash on any other profession: _the median
life of a lawyer, md, medical researcher, engineer, architect etc. is just as
boring and unpleasant._

The whole point of life is to get _your_ life _as far from the median-zone as
possible_ , because _all the fun is in the extremes_ (it can be the extreme of
algorithm design, software engineering or maybe another extreme that is the
edge of programming with another field, like social science - an such an
"edge" extreme may actually require very basic coding skills!). Even if you're
a farmer, you can find the extreme zones of farming do some kind of
"extreme/experimental farming". The "fun" part with programming is that you
can easily bounce from "median zone" to extremes, and even easily fall in the
negative ones when you end up not even having rent money...

------
jasonshen
What the OP doesn't get is that there are tons of other industries that have
distorted and glamorous brands attached to them. Many smart, ambitious people
set out to become doctors, bankers and lawyers because they can make good
money, work on interesting challenges and be respected at cocktail parities.
Sure they have lots of downsides too, but the benefits are more emphasized.

If some of those smart ambitious people became programmers because they got to
see the benefits (financial or otherwise) of being a developer, that would not
be a bad thing.

------
christiangenco
The distinction for me, and the point I made in my TEDx talk "You should learn
to program" [1] (shameless plug), is that learning to program is like learning
to read and write. It's the new literacy. Just because you know how to read
and write, you aren't a writer.

Two hundred years ago if you knew how to read and write, it probably meant
that you were in an eclectic group of people whose profession was reading and
writing (just like knowing how to program 15 years ago meant you were probably
a professional programmer), but we've reached the point now where computers
and the code to talk to them are so ubiquitous that you're doing yourself a
disservice if you don't understand the rudimentary building blocks of coding
(just like knowing the rudimentary building blocks of mathematics helps you be
a better world citizen - you don't have to be an expert in second order
differential equations to survive in daily life, but you need a working
knowledge of fractions and percentages).

1\. [http://tedxtalks.ted.com/video/You-Should-Learn-to-
Program-C...](http://tedxtalks.ted.com/video/You-Should-Learn-to-Program-Chr)

~~~
dragonwriter
> Two hundred years ago if you knew how to read and write, it probably meant
> that you were in an eclectic group of people whose profession was reading
> and writing

While there weren't the quality of literacy statistics that there are now,
most of what I can find indicates that in at least Northern/Western Europe and
North America, literacy, while not as near universal as today, was something
that the majority of the population possessed 200 years ago, not limited just
to people whose professional occupation was reading and writing (certainly,
things like a "Farmer's Almanac" make little sense if people whose profession
is "farmer" aren't, at least reasonably frequently, literate.)

Now, if you said _four_ hundred years ago...

------
zachgalant
The video is clearly meant to be inspiring. A lot of people think programming
is too hard for them or not accessible at all, but that's simply not true.

It's worth inspiring them to give themselves a shot. Of course, not everyone
will be good at it, like all things, but it's better to try it out and find
out.

It's horrible to say to someone, "Hey there, coding is actually pretty hard,
and while there are some really great perks to knowing it, you'll probably
fail at getting there, and even if you don't fail, you might not end up at the
place that has all of the awesome perks, just some of them, so you basically
shouldn't even try."

That's clearly an exaggeration of what he's saying in the article, but I'm
sick of professional programmers trying to discourage non-programmers from
trying out coding. It can only be a good thing for them to learn a little, so
let them have dreams even if they aren't totally realistic. Who knows, many of
them may reach them.

~~~
ruswick
Why? It is generally preferable to occupy one's time with productive action.
Learning to program is going to be a futile exercise for 90% of people, and
will not result in any change in income or overall happiness for 99% of them.
We should not be encouraging people to attempt things from which the won't
derive any benefits.

It doesn't make sense to abandon pragmatism in the name of "dreams." People
should be encouraged to improve talents that they do have, not coerced into
attempting inordinately arcane ones for which they have no affinity. This is
true not just of programming, but of all skilled practices.

Programming is too difficult and the opportunity cost is high to assert that
_everyone_ can and ought to learn to program. It's best to be forthright with
this fact towards those who ostensibly want to learn, but may just be
infatuated with the idea that they can make Facebook.

~~~
shubhamjain
I guess 90% people don't know what they are good at. They can't spend time
polishing their talent when they don't know what it even is. I accept people
should not be coerced into it but ir may not be as futile as you assume.

------
ianstallings
It's cool man. The barrier to entry on programming is that the craft itself is
hard. We don't need to toast their pants to let them know it's not for
everyone. They'll figure that out quickly on their own. There's very little
hand holding in this industry. People will help you but you have to really
show you've tried first.

------
dragos2
Extremely well said. I too found myself recently in a position where a friend
asked me if I could teach him how to code. I often found myself saying that
coding is easy, coding is just a tool that you have to master (like a farmer
has to master [insert agricultural tool here]). But I knew this is actually
false. Coding is easy only after you get the hang of it.

The thing is, although coding IS just a tool, mastering this tool is not for
everyone. Even if you have a strong mathematical background, coding will not
come easy to you and you most likely will not end up being a guru. Robert
Smith is absolutely right - coding is not for everyone. I find coding to be
different than anything else I've done before. It requires a different,
sometimes weird way of thinking.

------
mncolinlee
The author comes off as an elitist snob.

People DO start from humble beginnings and rise to become decent programmers.

One of my cousins dropped out of high school and spent many years driving a
truck delivering potato chips. He eventually impregnated and wedded a young
lady whose parents insisted he get a GED and go to college on their dime. He
earned a computer science degree and now makes a respectable living creating
medical device code.

Don't give me this "only the sun-touched chosen few of heaven get to hack
code" line of tripe. It's utterly ridiculous. Programming is a skill and you
should give it a chance just like you maybe tried juggling at some point.

~~~
eshvk
I didn't actually see it as that. I saw him pointing out that his brother
might be motivated from a financial reason to become a programmer. I thought
of it a rant on the state of the industry as it exists and why work as a
programmer even in the Valley is the same as the skill that you learn.

~~~
mncolinlee
I'm sure I'm not the only one who reads this as a rant against his own brother
for being naive. It's like he's saying, "how could he possibly ever become as
good as me?" I highly doubt that his brother is much more of a screw-up than
my cousin was when he moved from trucking to programming.

The video oversells by hyperbole a little bit, but it's really not too far off
of the mark. The bigger issue is tech schools who sell programming as if it's
not ever difficult or tedious work. Of course, they do the same thing for
every "exciting profession."

------
roma1n
Better title: "A programming _career_ is not for everybody". Hell, I came to
realise it is not for me, and I have been employed as a programmer for years.

Coming up next, "Painting Is Not For Everybody, Math Is Not For Everybody,
..."

------
kunai
I was about to blog an article like this yesterday, but it seems I do not have
to anymore.

Another thing I might add to this exceptional piece of work is that whenever
you force anyone to do anything, even if it is intrinsically "fun" (such as
mathematics, science, or history, and, yes, coding) it becomes something that
people don't want to do anymore.

I'm a teenager; 14 years old to be specific, and I see this on a daily basis.
I used to teach my classmates algebraic concepts that they didn't understand
fully, and once it "clicked" for them, they usually said something along the
lines of "Wow, that is really cool!"

So, this is the main conflict we're facing. You raise a generation of "forced
coders," and suddenly, nobody will want to code anymore, which is one problem.
However, the other problem is that if you DO end up making forced instruction
fun for kids, you will end up with mediocre programmers who think a "Hello
World" is the equivalent of earning a CS degree, and startups will have to
sift through dozens of perhaps low-quality applications rather than just
sifting through the few that have the dedication to learn how to code.

Here's the solution: make CS more _accessible_ to students. Have a bunch more
electives on CS and encourage kids to take them. Trying to make
coding/programming a part of the curriculum will take away time from important
subjects such as composition, literature, science, and mathematics, all of
which are arguably now more important than ever with test scores at record
lows.

------
olive_
"Running across the court is a necessary element in basketball, but it is
certainly not what is sufficient to be successful at it. In fact, you can run
across the court so perfectly every time, but be completely unsuccessful."

I do not understand why success is so important. I sometimes play football
although i know i am pretty bad at it. Because it makes me happy. One does not
have to be good at programming as far as he/she wants to explore this area,
learn new things and see if s/he is capable of doing it.

~~~
slurgfest
I think success is mentioned because of all the people who have begun to enter
the industry just to cash in somehow.

------
concerto
I would say that programming is for everybody who is interested in how stuff
works. While a career as a programmer might not be for everyone, it can be
useful for someone who needs to create presentations or word documents to be
able to write basic macros in vb, or for people who have websites to
understand what is going on in the html/javascript. I think that is the thrust
of the argument of the "everyone should code" brigade. Not that we should all
be full time java/ruby/c# programmers.

------
eevilspock
Math Is Not for Everybody.

Literature Is Not for Everybody.

Art Is Not for Everybody.

Science Is Not for Everybody.

The sooner we start funneling people into narrower education channels, the
sooner we'll get to our _Brave New World_.

~~~
reikonomusha
I'm wondering if there is any other insight you could provide beyond a simple
and naive extrapolation of the title.

------
Create
_(By the way, those people obtained their own wealth largely by hiring what
they say they want.)_

practicing what was called "the mushroom theory of management." It was an old
expression, used in many other corners of corporate America. The Eclipse
Group's managers defined it as follows: "Put 'em in the dark, feed 'em shit,
and watch 'em grow."

<https://en.wikipedia.org/wiki/Mushroom_management>

------
lsc
>Not everyone can program (beyond simple tasks)

This is true. And not everyone can write like shakespeare, but that doesn't
mean that those who aren't going to ever be very good at it don't benefit from
learning the basics of reading and writing.

Most people can learn how to read and write, and yeah, even though most people
never get very good at either one? even basic literacy vastly improves your
economic value.

I would argue that programming is a lot like basic literacy; Sure, most people
aren't going to be able to do anything very complex; but if you can't handle a
spreadsheet? you are at a serious, serious disadvantage.

Personally, I think most people would be vastly better off if our schools
taught some very basic variant of python (or basic or something) High school
should teach average and above children the basics of putting together a
database interface with something like 'access' (or some other GUI...
personally, I think something open-source would be most appropriate, but I
don't know anything open-source that is as dead simple as microsoft access of
the '90s.)

But yeah, things like programming spreadsheets? that should be taught to
everyone; like basic math and reading, pains should be taken so that even the
worst students get some of it.

------
CubanSandwich
Some thoughts from a n00b at the coal face:

Eight months ago I committed to learning "to code". At 31 the world has
changed a lot since the days when I played around with BASIC in the early 90s.

There so much to learn. The most helpful book so far has been Lesley Anne
Robertson's, Simple Program Design. It's a basic algorithm book utilising
pseudocode. My greatest and most recent victory has been completing the first
two Project Euler challenges. The first challenge there is basically the
famous FizzBUzz test.

 __* Warning __* If you hire me because I can FizzBuzz and conclude a fortiori
that I can code then you're gonna have bad time :D

Hopefully it means that I do have the potential to code though..

It seems to me that a lot of the quick fixes out there aren't going to cut it
on their own. Codecadamy is something I've used a little bit and it's a great
learning tool for language specifics, but I don't feel like it taught be to
think like a programmer. It doesn't break newcomers free from the old
question, "what's the best language for a beginner". A slightly deeper
understanding is required for that.

CarlH was very useful starting point:
<http://www.computerscienceforeveryone.com/>

------
pshin45
Almost everyone in the US knows how to read, but only a small percentage are
actually great writers and most people are downright terrible at it.

The same goes for programming. It should become a prerequisite at schools
because software is indeed "eating the world" but only a small percentage of
people who learn how to program will ever become highly competent programmers.

------
jyap
"And it never stops, because the work is never ending. There’s always some
feature to add or some bug to fix. There will always be a reason for you to
have to stay an extra hour or two."

So the point to the whole video is marketing coding as a profession as there
is current and future high demand for the profession. The video isn't a
documentary.

~~~
kyllo
Get some basketball players, musicians, and billionaires to make programming
seem cool to kids, so that 10 years later, you can get new Java developers for
$40,000/year. Brilliant.

------
halcyondaze
Come on now, there are very few things that are for everyone...what is the
point of this article?

~~~
Pkeod
To complain. He could change his life. He could code fun games. It's his own
choice to code things uninspiring. Many people work in careers not right for
them. Why is he doing something he doesn't enjoy when there is so much other
opportunity for him to enjoy his life.

Making things come to life through code is a joyful delight. Writing an entire
complex programming at once in a rush, compiling it, running it, and it
actually works... first few times, hundredth, thousandth time sometimes it's
still amazing. And I'm no expert programmer. I mostly paint.

Based on his writing, I believe this Smith is at risk for burnout.

~~~
evanmoran
As someone who quit his fancy tech job and started a video game company, I can
say with certainty that games are not as fun to code as you would think =).
The fun part (gameplay, game balance, story-telling, level creation) all
happen near the end. In fact, they happen so close to the end that games often
don't finish. They will have one third great story, two thirds great levels,
and the rest is just rushed and crap.

The reason for this is the tools we made -- game engine for rendering & AI,
level editors, resource packers, art post processors, etc, this is how the
game really is put together. You don't make a game, you make a series of tools
that help other people (game designers, artists, writers, AI scriptors) make a
game. Now it is a blast making a work of collaborative art -- because writing
and art are awesome -- but making a tool for a game is VERY similar to making
an office suite or a complex website. It is all just data and interfaces. All
the same usability/complexity tradeoffs apply.

I guess what I'm saying is the author's attitude made sense to me, and I know
for sure that I'm not not at risk for burnout -- I love this shit. I love
making games, but really it is because I love to program. Stories and art and
gameplay are all bonuses, but if I didn't love the code it would still be
terrible. That makes me wonder if coding is for everyone. I would love for it
to be, but I'm really not sure.

Lastly, I recently taught someone to code from the ground up and the biggest
single lesson was this: You will spend most of your day not knowing the
answer. You will think and think and wonder and wonder. Is there even an
answer to find? Is rails just too slow or are my queries crap? Can the iOS
animation engine handle what you are doing or did you just add too many
quartz-level effects and that is why it is super slow? You won't know the
answer, you will doubt yourself, but over time you will actually become
comfortable with not knowing. And even then, you will still be surprised (and
pleased) when you figure it out. It is unending and I think it takes a special
someone to enjoy that sort of life.

tl;dr Changing your life isn't always the answer. Coding is hard, doubt is
hard, and games aren't as fun to write as you would think.

~~~
Pkeod
I never had a fancy tech job, or really any fancy job. I've had jobs. I moved
industrial pipe for a few years in my teens. Not my favorite thing, but it was
a choice. I worked for Sears for a few years up until I was 18. Worst years of
my life. Also a choice. I've been making games since I was 11 and I'm just
about 25. When I was 18 I decided to take it seriously and now here I am. I
choose to do this. I can do programming, but I like art more, and I work with
people who are just as passionate as I am. I love programming when I do it. I
have a game on Steam, games on iOS and Android. I am dead set on doing great
things not just with games but with culture and the future of humanity.

>The fun part (gameplay, game balance, story-telling, level creation) all
happen near the end.

Then you are doing it wrong. There are so many tools available which allow you
to skip so much of the technical parts and get to the parts you like. You can
choose to use them, or you can choose to build your own.

>You don't make a game, you make a series of tools

That's a choice, and a huge thing newbies to game development are cautioned
against. Don't make tools - make games! The tools are already made, don't
reinvent the wheel. Yet so many insist on doing just that, and I have no
sympathy for them.

------
jostmey
Higher level Math is not for everyone either, but schools still teach it.

------
rlu
This is one of the better negative responses to the video that I have read.
And everything he says is true. However, I think there are a few things that
are missing which I think are important. Firstly, I think he thinks the point
of the video is to get more kids into a CS career - I can't quite disagree
with that as it would in fact benefit most of the people in the video if that
happened. However, I personally think the larger purpose of the video relates
to the opening quote by Steve Jobs which goes something along the lines of
"everyone should learn how to code because it teaches you how to think".

This is not to say "learn how to code so that you can code in your job -
whether it be a CS job or any other job" - it's saying that people should
learn how to code for very similar reasons as to why people learn math. There
are many, many majors which do not require advanced math and yet many kids
take Calculus classes. It's not because you need Calculus for your job: it's
because learning Calculus will give you problem solving skills, reasoning
skills, and other skills which can be applied at your job.

Then there's the whole aspect that, hey, you might actually have FUN coding!

I definitely agree with the author squinting at the "all you need to know how
to do is add and subtract" and other things of that nature. I agree that is a
half truth. But IIRC, someone in the video elaborated by saying "it's all
about breaking things down" - and that is extremely true. Break problems down,
solve each one individually, tie things together. That is basically how I go
about coding everything I do. Relates very much to abstraction.

Finally the OP article mentioned that the video seemed to be deceiving kids
into thinking that (a) it would be easy to get hired into a company like
Facebook and that (b) every company is as fun as those shown in the video. As
for (a), I disagree. The video never says anything along the lines of "you'll
become an expert at coding within a week!" or even within a year. It just says
"you should try this out, start today!". I would think that most people in
high school would know that getting hired by "a Facebook" would be just as
challenging as I would imagine it would be to get hired by "A
NASA/Boeing/Lockheed Martin" if you're an Aerospace Engineer - and I'm not in
that field. But what's wrong with shooting for the stars? If that sort of
company interests you then by all means SET THAT AS A GOAL! But I reiterate
back to one of my earlier points: this video isn't even saying "get into a CS
career" - it's more of a "this is good for you, and hey, if you end up loving
it, there are some really cool jobs you have the ability of applying to".

So, overall the post had some good points but it seems a little misguided.
Frankly the author seemed somewhat jaded. I don't know if I'm in the camp that
wants everyone to be forced to take a programming class - but I would
definitely be in the camp that would encourage all schools to offer it as an
elective. While I agree with the author that programming is not for everyone,
I certainly think that programming is something that everyone should be
encouraged to try out. Not because everyone should get a career in CS, but
because coding might turn out to just be a fun (and useful!) hobby for you.
And hey, if you do end up really liking it, there _are_ some cool jobs out
there. Just keep in mind they're the equivalent of the NASAs and Boeings and
Lockheed Martins - it's not a piece of cake to get hired into those.

*small aside: I'm pretty sure any kid that ended up really liking programming would figure out that coding is a little bit harder than the video portrays it to be by the time they decided they definitely wanted to pursue a career in it. So perhaps I can conede the video may have a bit of a "bait and switch" as far as that goes, but the switch will likely happen before kids waste a bunch of time pursing a job they won't get.

edit: and this ended up being much longer than intended. sorry

~~~
Tichy
It seems unlikely that the ad was put together because "programming might be
fun", and the people behind it just want kids to have a little bit more fun.
Why not make an ad about skateboarding instead, or playing video games?

In the end it is probably all about finding cheaper developers on the market.

Or maybe not as "evil" as that, maybe they really feel they could progress
technology faster if they had more developers at their disposal.

~~~
mimiflynn
I'm sure those companies must understand that they need _good_ developers too.
Seems like they are throwing a wide net by saying "programming might be fun"
to see how many people try it and stick with it. I've tried lots of hobbies
that didn't stick, but programming did, and now its more than a hobbie, its my
profession.

It reminds me of photography. There are a lot of really good amateur
photographers out there, but they can't all get professional jobs as a
photographer. Why can't programming be the same, or, at least similar? It
would be nice if everyone could write a script that made their life easier by
using something like AppleScript or Automator or Python or the like... does't
mean they could keep up with the rigorous programmer lifestyle, but at least
they could understand.

------
rmrfrmrf
Talk about missing the point entirely. Wow.

------
Evenjos
Right on. Most of what he said also applies to the visual effects industry.
Most people have a misapprehension that creating and animating a 3D character
can be picked up over a few months of learning. In reality, it takes decades
of dedicated practice to get to a professionally competent level.

------
hcarvalhoalves
The irony in this "What Schools Don't Teach" is that none of the people
portrayed got rich programming.

~~~
allsystemsgo
Well, Zuck did. Gates did. The other people portrayed didn't, you're right.
But, they enjoy it. And they admire those that can create something out of
nothing by programming. Sure, it was romanticized a bit. But, it doesn't
change the fact that you _could_ get rich by coding. You could make something
that people REALLY love to use. This is pretty unique to the profession, I
think. Yeah you could be a writer and write a novel people love, or a painter,
etc. But none of these things pay particularly well.

I think coding is a pretty neat and unique skill set that is relatively
limitless. And, if this isn't true, I think I'll just keep thinking that it is
true, because it keeps my head in the game.

~~~
sltkr
Arguably both Gates and Zuckerberg got rich by starting a company -- there are
plenty of Microsoft and Facebook programmers that didn't get rich, and plenty
of CEOs of tech companies that earned money without writing a single line of
code. I'm somewhat dubious that learning to program is what makes people
successful at starting innovative business the way Gates and Zuckerberg did.

> Yeah you could be a writer and write a novel people love, or a painter, etc.
> But none of these things pay particularly well.

For a few it does; Stephen King, J.K. Rowling, E.L. James -- they're all
millionaires. Not quite billionaires like Gates or Zuckerberg, but rich
nonetheless. By comparison, the vast majority of writers aren't rich, but
neither are the vast majority of programmers.

Yea, "you could get rich by coding", but learning to code in order to get rich
is about as sound of a strategy as playing the lottery.

------
zenbowman
Sounds like the author doesn't really enjoy programming.

For those who like it, its the closest thing to magic.

That "life sitting down" line at the end is a salient point, but pretty much
everyone sits down at a computer these days to work.

~~~
eshvk
There is a difference between programming as a creative piece of work and
asking to figure out why project A designed by a moron can be glued together
with project B which is another clusterfuck. The true answer might be to
redesign both projects with open extensible interfaces to connect with each
other. However, you won't have the time to do it in the 16 hour deadline
period.

~~~
zenbowman
Sure, but there are sucky jobs in any field. For the most part, I've had very
positive experiences in my 8 years as a software professional, with the
exception of when I wrote J2ME ports on 64kb phones. There are tons of
interesting problems in the field and in general, my coworkers have been very
smart people.

------
acedip
I think the article was probably written when he got really bored and
frustrated at his own life and probably was contemplating his statement "why
am I living sitting down". A little exaggerated but true.

------
ntoll
I wrote about this, from a UK based perspective, 18 months ago:
<http://ntoll.org/article/teach-our-kids-to-code-or-not>

------
LogicX
tl;dr of article: [http://tldr.io/tldrs/51349537b9073aaf6b0001f1/programming-
is...](http://tldr.io/tldrs/51349537b9073aaf6b0001f1/programming-is-not-for-
everybody)

------
njittam
I've to agree with title. however it is the same with science. everybody had
had it but not everybody will find a job in it. So what' s wrong with
introducing coding to a wider public?

------
realrocker
In context of schooling(India), drawing and arts was not for me too, but they
taught us anyways and I am glad they did. It helps me design things better as
a programmer.

------
DGrutt
Lets get one thing straight: you don't play poker against the house but
against other players... Maybe this is a game can be beat... but you have to
play sitting down.

~~~
martinced
Actually when you put players of similar levels together and make them plays
tens of thousands of hands together, all these players are going to be break-
even... If not for the rake that the house takes.

This is _already_ seen in online poker in cash games at some limits where
there are a lot of regulars. And it's very often discussed (and criticized) in
online poker forums, where they say that these regulars are just shifting the
money all around, with the house being the only real winner.

So your oversimplification doesn't get anything straight.

When you play poker you play against other players _and_ against the house
(rake and buy-in fees).

To give you an idea: there are semi-pro who would be losing players but who
are actually making quite a decent profit only thanks to the partial rake-back
that the house gives them (regulars players playing lots of hands get back a %
of the rake they paid, which is called the rakeback).

~~~
adaml_623
I think his point was:

Programming for a company = Playing in a casino (virtual or otherwise)

Programming for your own startup = Playing against players of a wide level of
skills without a 'house' taking your money.

------
james1071
The obvious point, which people here seem reluctant to make,is that 'everyone'
is not intellectually capable of programming.

~~~
exodust
If you can teach someone "10 print hello", and they replace hello with their
own words, everyone able to be schooled can therefore participate in
programming, and enjoy it within 5 minutes.

These days there's an awesome range of tools and help for learning, just
awesome. And the variety of scripting languages and low-level programming to
get people started is really good too.

I liked the original video's message. Can't really see why the article here is
reacting. The woman in the video saying how she wish she'd known that software
was for helping humans achieve things. Great message right there!

~~~
seanp2k2
>"The woman in the video saying how she wish she'd known that software was for
helping humans achieve things. Great message right there!"

+1. It's all about solving problems more efficiently or making things
better/easier to use. This is a large part of why computers frustrate me so;
it seems that most software companies wholly discard the notion of /user
experience/.

------
tlarkworthy
heaven knows I get angry in front of the screen _a lot_

------
pinaceae
You want to know what they should teach at school?

The basics.

Programming is the application of basic skills, it in itself is a secondary
skill.

Which basic skills do I need for programming?

Reading, Writing (as in Grammar,etc), Math, Logic

Over here in Austria we still have the concept of apprenticeship. As a 15-16
year old you can switch over from the more formal academic track to an
apprenticeship (more here
<http://en.wikipedia.org/wiki/Apprenticeship#Austria>). Coming from a
background in constructional engineering I had a lot of opportunity to talk to
employers about their opinions on the current apprentices.

Common complaint: Apprentices coming out of the modern school system are
useless. They arrive with practically none of the basic skills. Quickly, we
need to cut this 6m board into 2m long pieces - how many do we get out of it?
The more intelligent ones reach for their phone to calculate it.

The world has gotten more complicated, we have a lot more knowledge and facts
to teach. But a young brain can only learn so much in parallel. The good ones
will teach themselves anyhow, read books or wikipedia from back to back. But
there needs to be commonality and this one needs to be along the basic skill
set of language, comprehension and logic. Why are so many people in debt?
Because they can't understand interest if their lives depended on it - which
it does.

Teach programming! Teach art! Teach philosophy! Teach whatever I find
interesting!

~~~
dagw
_Quickly, we need to cut this 6m board into 2m long pieces - how many do we
get out of it?_

Two, and a leftover piece shorter than 2m. Due to the fact that saw blades
have a non-zero width, and you want to err on the side of cutting them
slightly too long. What do I win?

~~~
jacquesm
Hi there!

I'm from ACME corp, and I would like to introduce you to our - no, your! - new
water-jet cutting machine!

It cuts anything, including that 6m board there with a cut so fine that you
will be able to get 3 pieces of 2m out of a board of 6m, there is so little
waste that within the acceptable margin of error for woodworking the cuts will
be 0 width.

Sold?

~~~
bo1024
How will that help me catch the roadrunner again?

------
martinced
It's not for everybody and what people don't realize is that the day it's
going to be for everybody is the day we'll have reached technological
singularity.

And all bets are off when/if that day comes. My take on it is that we won't
need anyone "programming" anymore by that point.

Until then you'll need people at least understanding the physical limitation
of our devices/networks and being able to use at least logic (probabilities
being a plus) and some "maths" to get the (programming) job done.

This is _definitely_ not for everyone. Just as writing books is not for
everyone.

