
CodeHS Wants To Teach Every American High Schooler How To Code - zachgalant
http://techcrunch.com/2012/11/26/codehs/
======
moocow01
I suppose its an enviable effort but I wonder if its out of touch with the
true state of education. Insisting kids learn to code in the current
educational climate should not be a priority in most American schools. You see
most of us have blinders on whether we know it or not 1) we magnify the
importance of programming and technology because we ourselves make a living
from it 2) many of us are in a socio-economic bracket where we are not exposed
to the average highschool environment (I'm not saying we are hoity-toity but
if you live in SV or make more than 60k/yr you probably dont have a true grasp
on it - consider yourself lucky)

Kids first need to learn logic, math and english at a certain baseline...
every good programmer is probably quite good at all 3 of those foundational
things - those skills are the enablers for unlocking programming in a basic
capacity. The problem is that the average highschooler is struggling immensely
to get to that basic baseline at the time of graduation. Additionally with the
very real budget and over-capacity problems, when new core curriculum is
proposed the first predicament is what is going to have to get axed in its
place. Somebody is going to have to pick something to say goodbye to that is
actually truly core learning. Yes Im sure we all have our favorites of what we
think is non-essential core curriclulum but in reality our opinions don't
count and to be a realist they probably shouldn't - only the opinions of the
district, administrators, teachers and parents count in any real way.
Additionally, when you put programming up against any part of the core
curriculum (geometry, algebra, literature, etc etc) - most will axe
programming - I probably would as well.

~~~
flyinRyan
>we magnify the importance of programming and technology because we ourselves
make a living from it

I'm not so sure about this. Programming is one of the only skills I can think
of that free you from having to find a "job". If the market is crap you can
make something yourself. You don't have that option if you're, say, a SAP
administrator because it takes a fairly large organization to have that.

~~~
steverb
>Programming is one of the only skills I can think of that free you from
having to find a "job".

You're ignoring carpentry, sewing, knitting, smithing, machining, writing,
cooking and a host of other non-STEM related skills.

I'm the only member of my immediate family that doesn't work in one of the
"trades", and oddly enough I'm the only one that doesn't work for myself.

~~~
flyinRyan
You have a point but several of your examples will allow the person to not
have to find a job at a big company but they either have a big up front cost,
a very low ceiling on potential earnings or both. Programming has neither and
_that's_ what I was talking about. Sorry if I didn't express that clearly.

~~~
ams6110
Almost everyone I know in the trades makes more money than the people I know
in software.

I'm talking about really skilled plumbers, electricians, contractors, etc. Not
high-school dropouts hanging drywall so they can buy their next hit of meth or
case of beer.

~~~
steverb
I personally don't see a huge difference between the traditional skilled
trades and being a software developer.

One of my brothers, who is a carpenter, cares as much about wood (species,
age, drying method, etc) and his tools as I care about computers and my tools.
We both spend way more time than "normal people" caring about the things that
matter to our craft.

Disclaimer: I'm a big fan of the software craftsmanship thing. I may be an
idiot.

------
kayoone
With stuff like this, we degrade the quality of our profession over time.

Dont get me wrong, i like the idea and its good to have more people who
understand programming. On the other hand it will also yield alot of low
quality programmers, because the higher quality learn to code out of their own
interest anyway. So in the end i am not convinced that its a good thing to
have even more Rails programmers working for 15$ an hour.

Yes programming is a valuable skill, but i dont agree it needs to be more of a
universal skill to people like carpentry or plumbering for example. The people
that need it for their job will have to learn it, the people that are
passionate about it will learn it, all others will probably never learn it
because it requires a ton of work and they end up on the low end, and we
really have enough of bad programmers.

~~~
jkeesh
> On the other hand it will also yield alot of low quality programmers,
> because the higher quality learn to code out of their own interest anyway.
> So in the end i am not convinced that its a good thing to have even more
> Rails programmers working for 15$ an hour.

Very few people would argue that by teaching everyone to write, the job of
being a professional writer is degraded. What we are saying is that coding is
a form of literacy now. We are not advocating that everyone become a
professional programmer; and similarly, teaching people to write is not
advocating that everyone become a professional writer.

In many jobs knowledge of computational thinking will be important.

~~~
quanticle
Computational thinking != programming.

I think the objective you're aiming towards would be better served by
attempting to raise the bar on mathematical thinking and reasoning.
Programming can have a part to play in that, but I'd argue that you'd get much
more benefit for equal cost simply by performing studies on which forms of
mathematical teaching actually taught students mathematics.

~~~
zachgalant
Programming can be really helpful for teaching mathematical thinking and
reasoning. It's a fun way to approach the subject from a different angle.

Many kids _hate_ math but might enjoy programming. It's important to engage
students. They'll learn a lot more if they enjoy it.

~~~
quanticle
Many kids also hate programming. It's _boring_ , sitting there in front of a
screen all the time, typing in incomprehensible text that the computer throws
back in your face because you missed a comma here or a semicolon there.
There's a huge groupthink bias here in favor of programming as the solution to
all problems here at Hacker News because we're all programmers and we tend to
frame problems and solutions in a way that makes them amenable to solving via
programming.

That's why I suggested that we need to figure out what sort of math education
works, rather than suggesting a particular alternative. There is research
showing what kinds of mathematical education is effective. I posit that we
would be much better off asking for those results to be put into practice
everywhere, rather than foisting yet another folklore-based curriculum onto
our already overburdened teachers.

------
teach
After reading just the title, I was worried. After reading the article, I'm
much more optimistic. Figuring out how to scale up tutoring and "why doesn't
this code work" might actually make a difference.

I'm a high school computer science teacher. I've personally taught (face-to-
face) the basics of programming to more than 2,000 students over the past
fifteen years. Quite a few of those have been "low income".

Letting kids struggle and being able to support them when they get stuck is
key to deep learning.

Kudos, and ping me if I can be of help.

~~~
zachgalant
Thanks! We totally agree, and I'd love to talk. Shoot me an email at
zach@codehs.com

------
rhizome
These stories appear about every month or so, right? I think it's apparent
that a certain segment of society would love programmers to be the new
factory-workers.

~~~
sami36
It's never going to happen because it's lost on them just how hard programming
is. I can say with a straight face, & not a hint of cynicism that programming
is second only to medecine, as a wide-practiced* occupation, in terms of the
cognitive effort it asks of its practitioners.

~~~
LnxPrgr3
I am all for making good programming instruction available to anyone who wants
it. I hate to think lack of access to knowledge and mentors is holding
potentially brilliant programmers back. But I'm also sure this isn't going to
turn programming into unskilled labor.

"… most people can’t learn to program: between 30% and 60% of every university
computer science department’s intake fail the ﬁrst programming course."

And that's just to pass a class, and these are people who chose to go to
school and major in computer science. And that says little about future
success writing real-world code, which some people can't seem to pull off even
after getting a degree.

As far as I can tell, programming is part aptitude and part learned skill, and
not everyone has any real aptitude for it. This doesn't mean they're stupid:
they may be absolutely brilliant at something else. That thing just happens
not to be programming.

But I see no harm in letting anyone who wants to learn to program try, and in
giving them as much support as possible. At worst it's another failed
experiment, but if the upside is inspiring a few more people to become great
at this I'm all for it.

~~~
jkeesh
> "… most people can’t learn to program: between 30% and 60% of every
> university computer science department’s intake fail the ﬁrst programming
> course."

You say "most people can't learn to program" because 30-60% fail a university
computer science class. But can you really jump to that conclusion?

There are many other more feasible explanations. What if the class was taught
poorly? What is students had no interest? What if the students never put in
any time? What if the class wasn't fun? What if the students saw no potential
gain from learning this material? What if there are too many barriers to even
getting started and writing your first program?

I can tell you that we have a 5 year old, 9-10 year olds, high schoolers, and
80 year old grandpas on CodeHS, and _all_ of them are able to learn. This
speaks to the importance of introducing concepts in the right way, and making
it fun and rewarding.

~~~
LnxPrgr3
A big part of me hopes I'm wrong about this. Even if it's not what everyone
wants to do for a job, being able to code is incredibly empowering. I was
lucky to appreciate that early on.

I'm an odd case: I was a _really_ stubborn kid, and I decided to learn to
program while I was in grade school, so I picked up a language manual and dove
in. I was obviously more than interested; I was deeply obsessed, and I
happened to be good at plowing through ridiculously dry reading and fighting
with something until I made it work. My experiences aren't typical, and I
don't have a good handle on what _is_ typical. (I also learned BASIC, then
assembly for two CPUs, then C, then some higher level languages. My path is
undeniably strange.)

I'd think most people choosing to study computer science would be interested
in it, but I also know I met people in college who had no idea what they were
getting themselves into, and they didn't exactly meet a kind introduction.
There has to be a better way to teach this than what I saw.

It'd be really interesting to see how many students who go through your
program go on to pick up a few programming languages or who can ultimately
understand deeper computer science topics. Basically, what impact does this
have on the world?

~~~
jkeesh
> Basically, what impact does this have on the world?

That is a big question, but I think the answer is that this helps teach
critical thinking, and prepare digital citizens. I think another think allowed
by teaching programming is helping students be able to create ideas they have.
I wrote more about this here: [http://blog.codehs.com/post/33113754964/the-
factors-of-knowl...](http://blog.codehs.com/post/33113754964/the-factors-of-
knowledge)

------
k-mcgrady
I've never liked the movement to get all kids to learn how to code. It's not
an essential skill like Maths or English (or the language of your country). If
we are doing our jobs right the only people who should ever need to write code
are the ones who want to. Schools should offer computer classes for students
who want to learn, obviously, but insisting everyone learn more than the
basics (which kids growing up these days tend to know anyway) is a waste of
time.

~~~
Nursie
Indeed. Why should the peasants learn to read when there are priests to do it
for them?

~~~
ams6110
It's more a question of trying to fit everyone into the same mold. Literally
teaching every student to code makes about as much sense as teaching every
student to weld, or play piano, or learn Latin, or <insert other specialty
skill here>. Not that knowing any of those things is bad (most are probably
beneficial) but it's ignoring the individuality of the students.

Not every kid is interested in programming. Schools would do better if they
could do a little more to nurture the abilities and interests of their
students rather than try to fit them into a one-for-all standard curriculum.

~~~
Nursie
At my school we were taught an instrument (for a while, to see if it took),
introduced to shopwork including welding, and taught Latin for several years.

That last one is less useful but I wouldn't compare it in any way to basic
computer programming, which allows some insight into the running of the modern
world.

Just saw an amazing comment about this over at the register - 'Democracy
requires every person to understand the world to some degree. Computers are an
important part of our world. So people need to have at least a general idea
about how they work. They need to know what they do where their inherent
limitations are.'

------
yesimahuman
I truly wish them the best of luck, better CS education in HS is sorely
needed. When I graduated HS in 2006, my school was just starting to phase out
our programming classes that were still taught in Pascal by a soon retiring
teacher. I remember those classes fondly, but I also remember how difficult it
was to get other students to care.

------
zachgalant
New link that isn't broken: [http://techcrunch.com/2012/11/26/codehs-is-on-a-
mission-to-b...](http://techcrunch.com/2012/11/26/codehs-is-on-a-mission-to-
bring-computer-science-education-to-every-high-school-in-the-u-s/)

------
rjzzleep
and highschools teach everyone how to math, in the end it's still up to the
individual

~~~
econner
True, but I think the idea is more about trying to make computer science
thought of more as a fundamental skill as math is. It's only going to be more
important to know how to program as computers rule almost every subject.
Pretty soon they'll stop putting "computational" in the front and it will just
be an assumption.

~~~
codinghorror
No, it won't be. Computers used to boot to a flashing command prompt where you
could program your ever-lovin' heart out. The fact that they don't today is
progress.

[http://www.codinghorror.com/blog/2012/05/please-dont-
learn-t...](http://www.codinghorror.com/blog/2012/05/please-dont-learn-to-
code.html)

~~~
starkness
Let's replace "code" with "write." Please don't learn how to write. Only
writers do this, and we really don't need more of them anyway. There was a
time when this wouldn't have sounded crazy.

Learning to code teaches problem solving, new ways of breaking down complex
scenarios, and a means to actually build something. It's true that not
everyone needs to be a software engineer, but not everyone needs to be a
mathematician either, and we don't use that as a basis to tell people not to
learn math. Much like math, coding can be abstracted to a form of thinking in
a way that plumbing cannot.

I have a friend right now that is using CodeHS to teach 10 year olds, and
they're absorbing it like sponges. And I have met so many people that, in
retrospect, have _wished_ they had learned to code at a younger age. Maybe if
people had told them to learn how to code, they would have.

------
sakopov
Here is my $0.02. While this may be a great idea, coupled with the current
state of software industry this is absolutely terrible! Let me elaborate. What
does it take to get a job as a programmer? Next to nothing. After graduating
with my computer science degree I've spent a few years working with the most
incompetent people who were cooks, business graduates, poured concrete 2
months prior (you name it) and then decided to become programmers because they
coded a formula in a spreadsheet.

I've spent some of the most agonizing hours unclusterfucking big bowls of
pasta code with meatballs and all kinds of other shit all sprinkled with
cheddar cheese. Then I had to hold their hands so that they wouldn't make such
a stupid mistake again, and again and again. Then i left and you know what?
These people still work there. This is exactly what this kind of thing
encourages. It encourages coders, not software engineers/developers and it
ends up hurting the industry more than helping it. Yes, you'll have some high
school kids who'll like coding. They'll graduate from school and will be
sucked into their first programming job right out of HIGH SCHOOL writing
shitty code, making way more than their friends and making someone's life
miserable. Then a small fraction of those kids will get better (some much
better) and maybe get formal education, while the majority will remain damn
coders. The industry allows this and it only gets worse. Look, we're not
professionals by any formal definition of an engineering profession, but at
least we can try to get there some freaking day. But it's incredibly hard to
do when you have so much "noise" entering the work-force. Don't get me wrong,
i think programming IS essential and I DO believe it should be taught, but i
just don't see how this benefits anyone at this point in time.

~~~
jkeesh
> I've spent a few years working with the most incompetent people who were
> cooks, business graduates, poured concrete 2 months prior (you name it) and
> then decided to become programmers because they coded a formula in a
> spreadsheet.

If we make CS education accessible earlier, you could imagine that more people
would actually be more prepared to enter the field.

> Don't get me wrong, i think programming IS essential and I DO believe it
> should be taught, but i just don't see how this benefits anyone at this
> point in time.

A few immediate benefits: Giving job opportunities to students who would have
never had them before. Allowing students to complement their other subjects
with knowledge of programming. Demystifying the use of computers. Creating
their own projects.

Those seem like benefits to lots of people at this time.

------
ph0rcyas
It is about 'meaning'. I'll elborate: there are so many things you can learn,
so many areas of art, of science, of mathematics, of history and what not -
but _why_ should we learn them? Because they are useful? They make us a better
person? This is the elephant in the room. Education and learning is more of an
attitude instead of constantly stuffing yourself with 'potentially useful
information'.

Programming is arguably one of the best ways to derive pleasure and seeing
meaning in the learning process. You create, you design, you implement, you
learn from others and in the end - most importantly - you have something
working (and to show off), together with the thrill of knowing that this
existed _because_, and solely because, you made it happen.

It gives one a purpose. So in order to bring things that're only in your
imagination into reality, you learn to code better, and learn about what
you're trying to code (say, history, or science, or Tarot decks if you're into
that).

Instilling this sense of purpose to our young is a very lofty goal. In our
current context, programming seems to achieve this goal in a far more time-
efficient and rewarding way.

~~~
jkeesh
Thanks for your comment.

> So in order to bring things that're only in your imagination into reality,
> you learn to code better, and learn about what you're trying to code (say,
> history, or science, or Tarot decks if you're into that).

I think this is one of the most powerful aspects of learning to code for
students. They can create something that is important to them. They can build
something that complements their learning in other areas.

... and if this comes to schools... they can directly apply things they learn
in school.

------
haubey
As a high schooler, I think its' good that companies are trying to reform
computer science in high school. Comp Sci AP scares away too many kids, I
think, because Java at first is an intimidating language and you don't get
much out of the programs you create. Just seeing lines come out of the console
isn't as gratifying as building a simple paint app in canvas. The key is
teaching students how to build practical applications right off the bat. If my
school had offered iPhone app making, I'm sure a ton of kids would have taken
the class (granted Objective-C probably would have scared many of them away
within the first few days). Making something with a UI makes computer
programming seem more practical and interesting than sorting and searching an
array in Java and spitting out its position in the console. On an unrelated
note, Karel the dog and his (her?) world reminds me a lot of Greenfoot and
GridWorld.

------
Uchikoma
This may be partially "futile". Though my experience (from teaching and 15y of
recruiting) is inconclusive I still lean strongly towards the "double hump"
theory is true.

"All teachers of programming find that their results display a 'double hump'.
It is as if there are two populations: those who can, and those who cannot,
each with its own independent bell curve."

<http://www.eis.mdx.ac.uk/research/PhDArea/saeed/>

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

------
pflats
"You are using Internet Explorer, an unsupported browser :(

You should download Google Chrome so you can get started!"

Just a warning from a high-school teacher: this is a non-starter in a _lot_ of
schools. High-school IT departments have a lot on their hands keeping kids on
approved sites, and (for historical reasons, as I understand it) IE is one of
the easier browsers to deploy in such a way.

I know you probably don't want to develop for IE, but if you want to hit the
market at large, you'll have to. I can probably get my IT department to put
Chrome on for an approved list of students, but not every school will be
willing to do that.

------
netcan
_While students will likely get the most out of CodeHS if it’s being offered
in a computer science class taught by someone familiar with CS, the platform
allows teachers to learn right along with their students._

That there is putting a finger on a huge cultural hurdle. Not just for the
adoption of this problem bu maybe to adaption to the modern world. The rule of
thumb is that teachers need to be 5+ years more advanced than their students.

A teacher that finds the material hard is a very different role.

------
cafard
I want to teach every American sexagenarian how to reverse dunk, taking off
from the free throw line. My "Show HN: Hacking Levitation" will be along
shortly.

Teach kids math, teach kids to write, and let those who care to find their way
to coding. The schools are doing badly enough on math, reading, and writing
that this is the area that requires concentration.

------
moocow01
Anyone else getting a 404? ... seems ironic given the headline

~~~
starkness
Down for me as well--looks like TC is having some issues. Clearly they could
use some coding help too.

~~~
halayli
404 means that they most probably removed the post.

~~~
zachgalant
Yeah, the post is down. If you're interested, you can check out
<http://codehs.com> or <http://csinhs.com> to read about us.

------
codefanzz
Best of luck! The education system is incredibly antiquated; it's time to give
future generations the tools to not only compete, but to thrive in the 21st
century.

------
justhw
Wish you success. Have them get a project, personal side projects can teach a
lot.

~~~
zimmyer
Any ideas for suggested projects/games?

------
klrr
Crap, I don't want programming to be a mainstream job when I grow up

------
zimmyer
What a great idea!

