[CoLoCo] programming for kids
Scott Scriven
ubuntu-us-co at toykeeper.net
Wed Dec 17 13:58:46 GMT 2008
* Andrew <keen101 at gmail.com> wrote:
> I found this neat greenfoot program today.
> http://www.youtube.com/watch?v=Tcwx-I6Arwk&feature=channel
>
> It looks kind of neat. I don't really know how to program, but
> it seems like it would be a very useful skill.
Yup, definitely useful, and it can be fun. :)
Greenfoot looks pretty decent. It's like LOGO, with a bigger
library, better interaction, and a better GUI. The only drawback
I see is that it uses Java, but it looks like it manages to avoid
most of Java's biggest problems. So, go for it.
Java is popular (and therefore good to know), but it's kind of
inconvenient to use and almost always sub-optimal. I'd recommend
using some other language if you get bored with Greenfoot. (it's
a *lot* easier to learn a second programming language than it is
to learn a second human language)
If you find you enjoy programming, it's a good idea to learn
several languages. Each one will reveal new ways of thinking.
Some good ones to look at (for various reasons) are:
- Python
- Shell
- C
- Assembly
- Lisp / Scheme
- Java
If you enjoy those and want something a little more unusual, try
something like Haskell or Prolog. Of course, if you find you
don't enjoy programming, then don't do it. :)
> any suggestions for something to help getting into programming.
I'd look into pygame (Python and SDL), or perhaps a layer on top
of it like GASP. Also of potential interest is Nodebox. I
suggest these because Python is probably the easiest current
language to learn, and has what I think is the cleanest
conceptual model. It can help you learn how to think about
programming, without having to "unlearn" a lot of bad habits
later when you use a different language.
> interesting motivations like trying to create an anthill
> simulation, or to create an asteroids game. I seem to need a
> good directional motivator for me to continuue with things.
Definitely!
What got me really interested was sound and graphics. I started
out making bleeping sounds and some pretty horrible screen
savers, then made some games and a paint program and a bunch of
other stuff. I'm still doing sound programs... working on a midi
processor right now, so I can make cool sounds by dragging my
finger around on a touchpad. :)
Something else which really, really helps is if you can find
other people with similar interests to share with and bounce
ideas off of. Programming is a very social activity, and one of
the best ways to learn is to argue your way through a problem
with someone who thinks about it differently.
For amusing examples of what *not* to do, read thedailywtf.com.
> are there any good project ideas to use with those. If i don't
> have a good project goal, i'm less likeley to stick with it.
It really depends on what you're interested in. Here are some
ideas; maybe at least one will spark something.
- All sorts of games...
- Pretty animations or screen savers
- Puzzle solvers (ever wanted to know how many words you missed
in a game of Boggle?)
- Text toys, like Madlibs
- An ambient sound generator, to simulate different types of
environments... jungle, busy street, ocean, etc...
- Physics simulations can be surprisingly easy to write and fun
to play with...
- Perhaps a book reader which presents text in an interesting
new way
- Text adventures
- Realtime sound wave graphs for music
- Calculators are easy and useful, such as for roleplaying
games (if you're into any of those)
- GUIs can be fairly easy to make with Glade... I learned some
GUI programming by making an anagram generator.
Also, this article makes some good points:
http://norvig.com/21-days.html
:)
-- Scott
More information about the Ubuntu-us-co
mailing list