Live data from Hacker News

Why kids don't program

johnlawrenceaspden.blogspot.com

81–90 of 96 posts

Re: Why kids don't program

#81
post #78

About 5 years ago, in 7th grade, almost the exact same thing happened to me, but with a TI-83 graphing calculator. I would estimate that there are approximately the same number of kid programmers as there were. Modern PCs and macs don't come with compilers or interpreters, and there is no "command mode". Why would the ordinary kid ever open up cmd.exe, when everything you could ever want to do on a computer is on the…

I started programming around 6th grade, and I am in 11th grade now. I started because one of my "really smart friends" was doing it. He started because his dad made his own linux distro .(That's a lie. I know his dad has made his own linux distro, but I honestly don't know why he started, but I am sure his dad is the cause of inspiration.) The point is that I am sure tons of people would love to learn to program if they are simply given the opportunity- the inspiration (and the tools).

Why would I be sure of this? People have come up behind me and asked questions like "Wow, that's a really cool word-like program. Where did you get it?" Of course I tell them I made it and almost always I get asked how. I've even given out a couple of programming "lessons". (That's a lie. I've given out hundreds of programming lessons, and I've written at least ten little programming manuals to help people begin to program.) However, the real point is: If given inspiration, kids are very curious creatures and will start to program.

Re: Why kids don't program

#82
post #73

Probably tangential... I learned what sin() and cos() did experimentally. There was a BASIC program in Creative Computing that used sin() to make a long snake of text scroll down the screen. So, in my mind, sin() and cos() were things that made wavy lines. A little while later I was puzzling over how to draw a circle. I had this epiphany that the X component was drawing a wave, just like sin(), and the Y component wa…

And when kids download "decent programming environments" they have absolutely no idea how to use them. =/

That one comes from personal experience.

Re: Why kids don't program

#84
I have been looking at this for my 7 yr old son. Beyond school, his time is spent getting muddy on a soccer field, swimming, building dens, and generally racketing around with friends.

However, along with every other 7 year old, he want to know how things work. I am finding that many of my explanations get from A to B via "and at this point there is a computer that does ...". - Things: Microwave, car, alarm clock, phone, camera etc. and broader systems: exams, shops, banks etc.

I could explain things in terms of the model that is embodied in the computer, but that seems wrong - at least as the only explanation. If you pull it apart, you don't find the coresponding physical embodiment.

If he does want to dig further into this and explore how to make computers do things, I want to have a good set of resources to draw on - My current short list w/ comments:

- Lego Mindstorms NXT

Start with the provided graphical environment, move on to one of the several text based development environments, eg: NQC, leJOS. He loves Lego, and I have already set up a mindstorms controller+psx joystick to give him a drive+steering component he can use in his own constructions. I find the graphical a bit cumbersome.

- Nodebox (http://nodebox.net/code/index.php/Home)

I think it is great - python & easy graphics. I have already been showing off some simple drawing animations and fielding requests to: "Make it go the other way, go red, faster, jump etc." - Cool, but I am well aware the he'll get frustrated with syntax errors.

- Processing (http://processing.org/)

Also, cool - not used it so much myself, and I am not sure I want to start explaing curly parens & semis, but it does lead into Wiring and Arduino. One thing I would really love for him to experience is making things w/ embedded cpus - even if it just simple things to spin motors and flash leds.

- Scratch (http://scratch.mit.edu/)

Only recently found this. For me, the visual programming was way easier than Lego NXT. Going to have more of a play.

- Nintendo DS homebrew

- C64 - in the form of a C64DTV (http://en.wikipedia.org/wiki/C64_Direct-to-TV)

- Usebox (http://belogic.com/uzebox/)

When I was mucking around w/ NDS homebrew I had him draw some characters, then we scanned them and displayed them as sprites bouncing around (one was under joypad control - no collisions or gameplay, maybe 20 lines of code)

My own experience was that making games was a very powerful motivation - and all these 3 provide a way into that - C64 & Uzebox would provide a similar experence to mine (well, I was a BBC fanboy, but anyway). Nintendo DS would be a bit more up to date, and would have some currency with his mates. Some way of targetting NDS from processing would be a cool halfway house.

Assuming he is at all interested, it will be interesting to see if any of this is appropriate. If not, well, there is another son - and maybe I'll just get stuck in myself.

Re: Why kids don't program

#85
post #21

Earlier quoted context omitted.

I don't see that it is that much harder now. Boot your mac, open a terminal, type python, and start programming. Does it take one more step? Maybe, but it is a joke to say that is somehow more difficult.

Show me a tutorial on Python graphics on OS X that doesn't require installing an external library or learning about a really complicated graphics framework (Quartz 2D) and I'll believe what you just wrote. Apple basic graphics was one of two commands: GR or HGR

http://nodebox.net/code/index.php/Home

Re: Why kids don't program

#86
post #68

Earlier quoted context omitted.

Your requirement that there be no external libraries is unfair. It's perfectly valid for a tutorial to start with "Download this package and run the installer," which is easier than any actual programming the reader might do. There are plenty of great tutorials for PyGame and pyglet. The main issue is that you have to open a terminal. If you look past Python, Scratch provides a very low barrier to entry for this sort…

Your requirement that there be no external libraries is unfair. If the question being discussed is "How likely is an 8-year-old to randomly discover programming", it's not unfair in the slightest. Installation of anything is a huge barrier to discoverability.

Random discovery is so difficult. If only there was an engine of some sort that we could search things with. We could call this engine of search - Bing!

Re: Why kids don't program

#87

I don't agree that programming has gotten harder, I think it has become easier. What is harder now is finding material to learn programming that is simple for kids but also still "real" programming (not just game creation kits). I wrote a freely available book called "Invent Your Own Computer Games with Python" and released it under a Creative Commons license. It's available at http://inventwithpython.com I think Pyt…

I looked over your book at some point and loved it. Thank you for writing this.

I prefer pyglet over PyGame. I wrote a tutorial for it in the style of your chapters 16-19. It's up at [1].

[1] http://www.steveasleep.com/pyglettutorial

Re: Why kids don't program

#88
post #74

Javascript is pretty much the new BASIC for kids these days. 10 print "BAH" 20 GOTO 10 for(i=0;i

Javascript has too many layers to be comprehensible to new programmers. Do you see how many extra tokens you have in the second example? Not only that, but you have to open the page in the web browser, rather than 'run the program.'

Re: Why kids don't program

#89

Earlier quoted context omitted.

There are some very nice programming environments for kids. MIT Scratch ( http://scratch.mit.edu/ ) immediately springs to mind, for example. Any particular reason it needs to be web-based?

Yes, because every kid (at least in the 'developed' world) nowadays has web access but not every kid can install software on the machines they are allowed to use (for instance in school, the library or their parents' machine).

And, they can very easily show it to there friends, if it is in javascript. My niece loves designing webpages that she shares with her mates. Of course, getting her to program rather than put up pictures of twilight is another issue.

Re: Why kids don't program

#90
post #89

Earlier quoted context omitted.

Yes, because every kid (at least in the 'developed' world) nowadays has web access but not every kid can install software on the machines they are allowed to use (for instance in school, the library or their parents' machine).

And, they can very easily show it to there friends, if it is in javascript. My niece loves designing webpages that she shares with her mates. Of course, getting her to program rather than put up pictures of twilight is another issue.

True. I guess these are the same two reasons anything needs to be web-based: (1)Easy to get started. No hurdles. (2) Sharing
Post reply on HN