Hacker News new | comments | show | ask | jobs | submit login
CodeHS Wants To Teach Every American High Schooler How To Code (techcrunch.com)
80 points by zachgalant on Nov 27, 2012 | hide | past | web | favorite | 90 comments

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.

You're right that it's a difficult problem to solve, but it's worth trying to solve.

Programming is a great way to help teach logic.

Also, if taught well, it can be really fun for students and help reengage them with school. We've been teaching a number of low-income students already, and they have learned a lot and really enjoyed it.

We always ask after a couple classes how they enjoy learning to code compared to their other classes, and most students just laugh because they think it's not even a comparison.

I think probably your best trajectory is to try to find ways teachers can easily integrate programming as apart of their current curriculum and subjects. Ex. "build a small program that finds all 3 angles of the triangle" for geometry class. It would essentially have to be simple for a non-technical teacher to integrate with low equipment costs.

I dont have all the details on the program in that the TC post is down but I think if you pitch it as "a curriculum to learn programming" you are going to to run into some very tough and potentially unmovable adversaries (ex. state governments).

That's a great idea, and we're definitely pursuing that as well. We'd ideally like it taught as a continuous class, but we're trying to make it possible for teachers to integrate parts of it into subjects they teach.

Math, physics, and chemistry definitely have a lot of potential here.

Just because a program does not help the bottom 75% does not make helping the top 25% a bad thing. Of course we need to help those on the edge of flunking, but that is a mutually exclusive argument for how and why we help those in the top 25% harness and use their talents.

This is what is called a "False Dilemma"


Thats a fair point but that can turn into a political shouting match pretty quickly so wont say too much about it. I think the difference there is your no longer talking about it in the context of core curriculum if only 25% of schools can afford to do it. I think programming as an elective offering is great. I actually think any type of learning is great but just trying to highlight the unfortunate reality of most schools in the current educational climate. There are so many constraints and pressures that educators are under and can make change very tough when everyone is just trying to keep their head above the water.

>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.

>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.

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.

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.

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.

There are a whole lot of jobs outside of technology. You could just as easily learn to weld and make a living for yourself.

My dad was a welder. It would be hard to convince me there is money in that unless you have a big upfront investment. Exactly what we as programmers don't need.

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.

> 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.

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.

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.

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.

The notion that teaching programming at an early age will somehow degrade the software engineering profession is simply preposterous. The fact that I took Spanish for 4 years certainly doesn't devalue the translation profession. Learning how to code is like learning a foreign language-- it takes time to master and is best learned when being fully immersed in it. But that doesn't preclude from introducing it earlier. In fact, it will probably have the opposite affect that you imagine. After my years of failing to learn Spanish, I have a profound respect for those who can speak it so easily. And because I know good bilingual speakers are hard to come by, I would probably pay a premium for their talents if my day job required me to interface with Spanish-speaking cultures.

Good point, but i dont agree. You learn a language to be able to communicate with people in different countries, to be able to travel the world and find your way through it. Most people dont want to pursue a career in the language they are learning.

Programming on the other hand is a niche skill which you absolutely do not need to know or master in this world. Maths, Physics, Chemistry and languages are skills that are much more important in terms of a general skill-set to master daily life than programming is.

Programming is for people that pursue a career in the IT industry or science. Is it a nice skill to have ? Sure, just like carpentry or mechanical engineering.

>Programming on the other hand is a niche skill which you absolutely do not need to know or master in this world. Maths, Physics, Chemistry and languages are skills that are much more important in terms of a general skill-set to master daily life than programming is.

That's does not compute to me. Why is chemistry an inherently more important than programming?

"Programming is for people that pursue a career in the IT industry or science. Is it a nice skill to have ? Sure, just like carpentry or mechanical engineering."

And we never expose anyone to the beginnings of those disciplines in school, ever, do we?

We do, just like programming, so whats your point ?

That if they are niche skills, like programming, and we teach the beginnings of them, why are you so opposed to people being taught the beginnings of programming?

I am not against that, i am just not a fan of this whole new "everyone needs to know how to program" hypetrain.

So exposing more kids to programming early, allowing them to pick up the basics, become more comfortable with the concepts and in general get better at it earlier - that will degrade the profession?

What colour is the sky in your world? That's the most backward thinking I've encountered in a long time.

Getting more kids exposed to code can only increase the number of good, competent programmers. If it increases the number of mediocre programmers as well so what?

The world is increasingly run on high technology software and hardware platforms, some understanding of this should be useful to everyone, and helping more people towards real understanding and skill in the field is a good thing, not a bad one.

The world also has over 1 Billion cars, individual transport changed everything and is a massive worldwide industry, does that mean everyone has to understand how they work ? No i dont think so, and that can be said about alot of other technological advances that are part of our professional and private lives today.

In the first DotCom boom every John Doe who could write some HTML got a job as a programmer and everyone studied IT in that time to make the big bucks. With the current shortage in the US i bet the scenario is likely going in the same direction and in a few years they end up like all the unemployed lawyers today.

Of course its not bad to expose kids to programming, but i argue that its not very useful because you need years of experience to make anything useful and that point is only reached by people that have the passion for it anyway.

'does that mean everyone has to understand how they work ?'

A little bit, yes, enough to get them maintained, keep them road safe, put the right fuel in, yup.

'i argue that its not very useful because you need years of experience to make anything useful and that point is only reached by people that have the passion for it anyway.'

How does someone know if they're interested of passionate about something if they're never exposed to it?

How do you know to embark on the path leading to years of experience unless you have an intro to it?

This is not about getting every moron into the profession, it's about giving people a start who otherwise might never know that programming is a thing, especially as more and more computing devices are geared to straight consumption.

Dont know about the US, but in Germany everyone will be exposed to programming in some part of their school career.

Of course there are possibilities to totally avoid it, but if you do that you probably have a reason.

I'm not in the US, I'm in the UK, where computer related education seems to come down to 'here is how to write a letter in word, start an excel spreadsheet and open mspaint', which is entirely inadequate.

I disagree. You're concerned about polluting the marketplace when, in fact, the marketplace is already polluted. There are already poor Rails programmers who work for $15/hour -- prob not in the US, but certainly elsewhere. It's not just programming, either. Every industry has the full gamut of high-performing people, and low-performing people.

Managers will continue to have to get better at what they do -- hiring good talent. If you need to hire enterprise sales people, and you picked up a high school kids because they sold clothes at Banana Republic senior year, you deserve what you get. So why would anyone fill an enterprise Rails engineer role with someone just because they took a high school Rails course?

If anything, a basic understanding of what programming is will help elevate the awareness of how complex it is to those managers. Programming is so much more than a craft.

Every programmer knows that feeling of being asked a tech support question. These things obviously have nothing to do with what programmers are great at. More importantly, being good at tech support says nothing about programming. But to most people, it's just "computer stuff."

Designers aren't asked to come paint a house. Accountants aren't asked for stock tips. Someday, programmers won't be asked antivirus questions anymore.

I disagree that programming is "more than a craft". No, I think the craft analogy for programming is quite appropriate. In fact, I am of the opinion that much of the absolute and utter failure of so-called software engineering to deliver meaningful improvements in programmer productivity has been due to its repeated failed attempts to apply engineering discipline to what is essentially a craft problem. After all, we don't have "wood engineering" for carpenters and cabinetmakers. We don't have "fabric engineering" for tailors and dressmakers. Engineering principles are designed to solve known problems in a reliable and repeatable manner. We understand that cabinetmakers and dressmakers don't deal with the same problems (or necessarily even the same sort of problem) day in and day out. That's why we don't apply engineering principles to those positions. So why do we insist on applying engineering principles to programming?

Designers aren't asked to come paint a house. Accountants aren't asked for stock tips. Someday, programmers won't be asked antivirus questions anymore.

Those are bad analogies. Like it or not, antivirus software is significantly more closely related to programming than, say, house painting is to design. Better analogies would have been, "Surgeons aren't asked questions about dermatology. Divorce lawyers aren't asked questions about tax law." Except, that's not true, is it? People do ask surgeons questions about their skin lesions, because, "Hey, a doctor's a doctor, right?" People do ask divorce lawyers tax law questions because "Hey, law is law, right?" And people will continue to ask programmers about anti-virus software because, hey, computers are computers, right?

I'm not sure that is a real concern. Programming has been part of the school curriculum here for a long time. My father, who is now in his mid-50s, even learned programming in high school. I don't see many people coming from that system working as programmers. Learning about something doesn't mean there will be interest in actually pursuing a career in it.

Its a large gap between teaching someone to write code, and program. A lot of current implementations of CS and Programming classes are just teaching a student the basic blocks, and how to use them in an environment like Java. The problem is, without the more complex blocks and the ability to understand how they fit together as a whole (not just in one language), students really just end up with a set of skills in purgatory.

We're focusing much more on giving people a fundamental understanding of what programming is and how to problem solve with code.

The idea isn't just to teach syntax or a specific language, but rather to teach students how to think and give them an intro to what programming is and let them decide if it's worth pursuing as a career or major in college.

I'm confused as to what qualifies a child in your eyes to begin learning programming. Do they have to want to start learning themselves, with no external stimuli? How do you propose that that characteristic correlates with future programming effectiveness?

I agree with you in every point, but don't worry. Laziness is part of the human condition, and in order to properly learn how to program one must be able to overcome that. Most people are not able to do this.

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.

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

Hey teach! Thanks for your support. As a teacher, but also a programmer, I think you can agree that not everything can be automated.

Even when people are just getting started, there are lots of ways to get stuck.

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.

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.

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 first 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.

> "… most people can’t learn to program: between 30% and 60% of every university computer science department’s intake fail the first 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.

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?

> 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...

"It's never going to happen because it's lost on them just how hard programming is."

This. Becoming a software developer takes an enormous amount of tenacity and patience, and willingness to dive into things you'd rather not dive into.

Someone following a pre-baked tutorial is probably not confronted with arcane showstoppers which require elaborate workarounds or debugging lower levels of logic. I have seen quite some people start a programming tutorial and wishing to become a 'coder', but then hit some brick wall the moment they had to leave the path that was set out for them. Not knowing how to proceed, they eventually shrug and give up, possibly sooner than later. This tendency to give up early is less likely if you arrive to programming from the bottom-up, for example, via electronics engineering. I suspect this has something to do with the expectation that hardware should behave deterministic.

We've also found people are less likely to give up if they get help at the right time. Many people at the beginning get stuck on simple bugs, but don't even know the right question to ask.

I won't say that programming isn't hard, but I also farm and find the farming to be the more cognitively challenging career of the two. You need the same problem solving skills and you need to be able to apply them to an even wider range of applications.

At least it would keep jobs in America and allow people to earn an honest living.

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.

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

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.

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.'

Where you're wrong is that most kids don't tend to know the basics of programming. They know the basics of using a computer but generally have no idea how to program or what that even means.

We're not insisting that everyone should write code for a living just like high school music classes aren't insisting everyone be a musician.

However, just like music, programming is an enormous part of our world and getting exposed to it in high school is really important.

I didn't mean that most kids know the basics of programming. I meant they know general computer skills. I never thought of the music class example. However from what I remember most people I knew hated music. They were being forced to do something they didn't like and had no use for. I think it's the same with programming and important not to make the same mistake.

Yeah, we've been working really hard to make coding accessible and fun for kids and have done a lot of testing to make sure they're enjoying it and learning.

Many kids hate all subjects in school because they feel forced to go and don't find it useful, but you'd be crazy to say that's a reason we shouldn't send them to school.

Programming is no different in that regard, but we have an opportunity to give it a positive image and re-engage students with school.

I think what you are doing is great, and it does look like the way you are trying to achieve it would make it fun to learn programming.

Maybe I'm looking at it from a different perspective as I don't know much about the US school system. Here we have a few core subjects which are required and then we get to pick from a list of others (with various 'rules' e.g. you have to do at least basic science). I have no objections to making programming an option, I just don't think it is a core subject whereas many programmers think it is.

Basic IT skills should be taught to everyone and your product seems like a good way to introduce programming to those students so that the ones who might enjoy it could take on the full programming class option.

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.

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

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.

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.


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.

Your article is really missing the point. You mention that problem solving is what's actually important, and coding is actually a fantastic way of teaching this because it allows you to really look at tough problems and break them down.

Also, the main idea is that everyone should get exposed to computational thinking in school. Then, they will have a basis to make informed decisions for their future fields of study and work.

Teaching CS in high school doesn't mean everyone needs to be a software engineer. It helps teach creative thinking, problem decomposition, and helps prepare students to approach the problems of the future.

tbh even my mother wanted to learn coding, her exact wording was "i have to learn programming too"

i think its a great idea, but i told her the same i tell everyone:

"you need to have a good reason, or a problem you want to solve, otherwise you're wasting your time"

and now that i think about it, it's not really different from any other study out there. you ask the people why they learn it and they tell you because someone told them they'll get a job. and what you have is hundreds of thousands of masters and ph.d good for nothings, which are nothing more than factory workhorses. some professor or company gives them a task and they do exactly that.

That's true, but it doesn't mean we shouldn't teach math in hs. Same with programming. We need to give kids the opportunity to learn.

Great idea! Have you guys thought of creating a foundation to make it easy for people to donate to? To e.g. sponsor a school or something?

Everyone knows how to read and how to do algebra problems because life requires it.

You have an exceptionally optimistic view of "everyone's" abilities.

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.

> 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.

It benefits all the kids who are given an opportunity to learn what they deserve to be taught.

If taught well, kids will understand that coding is an art and requires a lot of practice and thought. We are not claiming you can get a job right out of high school, but merely that they should get exposed in high school and have a basis for continued study.

If every kid learning to code increases the number who choose to continue to study it in college, there will be more qualified coders. Companies will be able to selectively hire good ones, and people will understand that they need to actually practice and get good at it to get a good job.

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.

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.

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.

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."



"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.

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.

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.

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

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

404 means that they most probably removed the post.

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

There was a bad link from the front page before, and now the story is down altogether. Looks like they're trying to fix the problem.

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.

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

Any ideas for suggested projects/games?

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

What a great idea!

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact