Live data from Hacker News

We should teach all our kids to code

kernelmag.com

31–40 of 81 posts

Re: We should teach all our kids to code

#32
There's a huge and important distinction between “we should try to teach all kids to code” and “all kids should be able to code”, and it tends to get lost in the discussion.

Programming just isn't for everyone (and that's OK), but everyone should give it a try to find out.

Re: We should teach all our kids to code

#33
post #20
post #18

I remember when we got our first computer, my dad won't let me play any games for more than a few minutes a day, but I could play the games I wrote myself as much as I wanted. That was a brilliant idea - it gave me the taste of the good games, which was a huge motivation. It did take a while to create an actual playable game (back then we didn't have easy to use graphics libraries like Processing), but then it all be…

This seems like an excellent technique. Although I think it'd be much harder today. In my childhood I'd be easily entertained by a text adventure or a pretty simple sprite based game. Now a days your kid would have to create the next Call of Duty. Perhaps a strategy that would make more sense in today's world is to get them the Valve Hammer Editor (or equivalent SDK) and instead have them make levels for their favori…

Massively popular games like Angry Birds are much simpler than Call of Duty. The basic mechanics of such a game are easier to create with today's hardware and tools than a sprite based game was a long time ago. Sure, you won't be able to get anywhere near the professional game quality, but you can still have a lot of fun. I remember buying a C++ game development book that spent a couple of chapters before getting the first shape on the screen with the Windows API. With tools like processing.org the same takes 2 minutes. You can probably get a simple game up and running in the time I spent getting the C++ compiler to install.

Re: We should teach all our kids to code

#34
post #32

There's a huge and important distinction between “we should try to teach all kids to code” and “all kids should be able to code”, and it tends to get lost in the discussion. Programming just isn't for everyone (and that's OK), but everyone should give it a try to find out.

Agreed - we teach math in schools not to make everyone top talented Mathematicians, but to teach a skill that might be useful in life.

Teaching programming in schools would probably get the same result was teaching math: courses that normal people promptly forget a year after school. Because, really, how often have you factored a polynomial?

But still, you got a little taste of Math in school. Maybe you liked it, maybe you barely made it through math. Same thing would happen with mandatory programing classes.

Thinking the talent crunch will be solved by teaching CS as part of mandatory education is probably wishful thinking.

Re: We should teach all our kids to code

#35
There's a couple of points about modern programming systems.

BASIC was interpreted, and not object orientated. You'd have a book, and that book would contain every keyword, with a description of what it did, and some example code.

So you'd buy magazines or a book, you'd type out the programs in those books, you'd debug what you'd typed, you'd modify what you'd done, and then you'd start creating new programs. You'd write a little program, and then realise that you needed to do X; so you'd read the book and find the instruction for X, and you'd grok the example and write it in your program and debug.

Where is that workflow, that learning journey, recreated today? Perhaps with the "learn X the hard way" series?

Also, most people here are either technically brilliant or at least proficient. Now imagine the general population. These are people who just don't know how to plug in a printer. (In the days when computers had parallel ports and serial ports you could not plug the printer into the wrong port. You just had to look at the cable, and look at the computer, and try to mash the connector into all the ports. It would only fit one, and it would only fit one way. Yet I was seen as some kind of genius, by more than one person, because I could plug a printer in.) Or these are people who will not, seemingly cannot, read and act upon a short simple error message.

I love to think that maybe a bit of programming / coding teaching could change that, but I'm not sure it will.

Finally:

> Learning to code is learning to use logic and reason, and express your intent in a consistent, understandable, repeatable way.

Author uses "coding" and "programming" in weird ways. Normally programming is the design process, with pseudo-code and flowcharts and jackson structured programming charts and etc, while coding is just taking that and writing it in some language. Maybe I'm showing my age and the words are now used in a different manner, but it threw me for a while.

Re: We should teach all our kids to code

#36
post #2

This is an issue I'm very passionate about, and I'm sure many others are too. I'd love to hear other's thoughts on how we educate the next generation and the best way to teach coding in 2012.

Raspberry PI, installed with an editor and some programming environment, with links to (or local versions of) some good reference and good teaching system (maybe better versions of Learn Python the hard way?) and, finally, a paper notebook and pen.

Include group work and gentle supervision.

Re: We should teach all our kids to code

#37
post #33
post #20

Earlier quoted context omitted.

This seems like an excellent technique. Although I think it'd be much harder today. In my childhood I'd be easily entertained by a text adventure or a pretty simple sprite based game. Now a days your kid would have to create the next Call of Duty. Perhaps a strategy that would make more sense in today's world is to get them the Valve Hammer Editor (or equivalent SDK) and instead have them make levels for their favori…

Massively popular games like Angry Birds are much simpler than Call of Duty. The basic mechanics of such a game are easier to create with today's hardware and tools than a sprite based game was a long time ago. Sure, you won't be able to get anywhere near the professional game quality, but you can still have a lot of fun. I remember buying a C++ game development book that spent a couple of chapters before getting the…

Developing angry birds whilst considerably simpler than Call of Duty is not that simple.

At a minimum you have to implement smoothly scrolling graphics and quite a lot of physics. Of course there are libraries available which help with these things but then you have a lot of documentation to read (if it even exists).

I believe angry birds cost in the region of $100,000 to develop. Not really a learning exercise for a child.

Re: We should teach all our kids to code

#38
I have a 10 year old son who seems a natural to take an interest in programming. I tried starting him with a Basic interpreter cause that's how I started, and he struggled to stay interested - largely due to the non-graphical nature of the output.

The next thing we tried was Kodu from Microsoft (http://research.microsoft.com/en-us/projects/kodu/). He found that enjoyable - very visually appealing and you can get something basic but interesting running quickly. Getting something moderately complex became hard however due to the limited palette of design tools.

The next step was Scratch (http://scratch.mit.edu/) which is a step down in eye candy but a step up in control. You get a lot more flexibility but it is still very approachable. Everything is visual as well, which makes it really easy to see what's happening. Scratch allows variables and lists, control flow structures, etc and thus gets into "real" programming.

However, Scratch has some big limitations, especially around instantiating new 'objects' at runtime. I think the next logical step forward is Stencyl (http://www.stencyl.com) though there's some additional layers of abstraction that are causing a little consternation.

I keep trying to push Python and Java, but for my son at least, not being able to start with something visual is a big drag. Maybe next year.

Re: We should teach all our kids to code

#39

I'm not having children, but I have two nephews and a niece, and when they are old enough to read and use a computer without breaking them, I'm giving them each a netbook preinstalled with ubuntu, various programming tools, and some kind of video chat software so that they have access to me to ask questions at any time. I want them all to know this kind of thing, regardless of anything else. Plus it will make me the…

In my experience delivering Ubuntu boxes to elementary aged children, they are generally unimpressed. This isn't to say you will have a similar experience. I am interested in how to pull it off, so let us know when the time comes.

Re: We should teach all our kids to code

#40
I've taught several basic programming classes. The ability to code differs wildly. Like sketch art, some people can't draw to save their life, while others do it effortlessly. Having a programming class as an elective would be good, but it shouldn't be forced on people who have no ability for it at all. Not everyone can be great at everything.
Post reply on HN