I like the article. I learned to tinker with computers in much the same way. Not that I'm proud of it, but I remember finding programs for AOL that would fade your text into different colors. I was so interested in how these types of things were done that I tried Visual Basic and bought Borland C++ when I was about eleven or twelve years old.
I appreciate the sentiment, having grown up as a younger sibling surrounded by machines in various states of undress. I'll always remember the time I broke a corner off a mainboard, and watching my cousin repair it.
I firmly believe in giving children room to explore, and never telling them that something is "too hard". But it's a long leap from "this is how I did it" to "we're doing it wrong".
I also question the idea that only some kids can/should learn how to code. A computer is not a saxophone or a snail. Today, computer illiteracy is a disadvantage; tomorrow it'll be a handicap.
And just like kid-sized pots and pans and screwdrivers, some languages are easier for kids to grasp. Going from DOS to QBASIC to C worked for the author; that was the stuff that happened to be installed. Nothing wrong with laying other "toys" around too.
I knew DOS. But what forst got me passionate about making stuff on computers was Doom.
I could move move walls. Make a pit. Add monsters. Try and make the room outside rather than inside...(fast forward a few months)...combine the unenclosed sectors hack with the no-lower-texture-bleed bug and make passable deep water.
In the spirit of letting kids curiosity flow, they can have a great time just by tweaking already existing games. In Scratch, they can open any of the existing examples, play around, change some numbers or images, play again and see the effects of their changes.
I have a 10 y/o girl and she's learning Python (we're following the Hello World book - www.helloworldbook.com) and it's fun to follow, and she enjoys seeing the effects of the changes in the programs to see if they still behave as she expects them to.
I think it's much more important to observe that pattern rather than just discarding a particular language just because it may fix a specific mindset.
The key point of the article is the kid has to want to do it, and do it without pressure. (example: Stephen King's sons taking saxophone lessons because he didn't want to disappoint the parents)
My father gave me a bunch of Turbo C diskettes when I was 8 or 9, and said nothing other than "give it a shot" and smiled. There was no pressure there.
And after I "broke" his computer a few times (one time, I installed some fighter pilot game which broke autoexec.bat, primarily the PATH and PROMPT variables, so I couldn't find anything), he got me a computer of my own, and left me to my own devices. Throughout the years, he would give me random IDE installers (Turbo Pascal, Visual Basic, etc) with no expectations.
All kids are different. Some will eagerly jump into new things, others need some gentle prodding from their parents to get started. Even curious kids sometimes need a suggestion for what to play with on a rainy day.
I think it's important to expose kids to programming, and if they show an interest, to explore it further.
It's possible I never would have become a coder if a teacher hadn't given me a brief intro to Basic when I was 11 years old. I took it from there, and was self-taught until college.
With my own son, I introduced him to Scratch, helped him through a few lessons, and then watched as it became his favorite thing to do. I really can't say enough about Scratch as an introduction to programming. It gives kids a simple environment where they see quick results while learning the basics. Just as important, there is a social aspect in that they can easily share their programs with their friends. There does, however, seem to be a need to bridge the gap between Scratch and traditional languages.
As for the interested ones, you 'impose' certain programming languages on kids because 1) they want to learn to program and 2) you need a standardized way to teach. If you want to develop the manner of thinking required to assemble and organize algorithms, making a turtle move around the screen is a fine way to do it.
No one imposed my first language on me, it was the environment that did (you turn on the computer, there was BASIC; why yes, I did receive an 8-bit computer in the 80s). Worse, the only sources I had were books and magazines, since no one I knew could program (okay, I had two friends with computers, but we all had different ones, which made it difficult to swap programs).
When my wife was younger (I believe 10?), her father tried to force her to program in BASIC. She ended up hating computers and programming in particular.
It was only recently that I was able to get her semi-interested in programming, but I don't think she'll ever really be interested in it.
Personally, I had a similar experience to that of the original author. I inherited a Tandy1000 from my grandfather, and one of my father's friends was a programmer. He had made a version of Monopoly, and gave us the source code as well as the software. I was curious how the thing worked, and spent my afternoons changing the colors of dice, how much property was worth, etc.
For anybody wondering, the giant pink cowboy hat is a reference to the Java Posse podcast. A long running Java podcast - though they mostly talk about Scala these days.
Yeah, this is a disease. When I was in high school, I was essentially told that real programmers only used C++ and Java (since Real Programmers exist primarily to take the AP CS exam, right?) Looking back, I wasted a lot of time in programming contests that allowed any language allocating memory and dealing with shitty numeric types. If I had just used Haskell instead, I would have never had any problems. With C++, I often lost points not because of stupid bugs like calling two variables "i" or something.
Fortunately I figured this out right about when people started giving me money to write computer programs. But I wish someone had told me earlier.
It's interesting that I became so interested in programming when there wasn't anyone I knew or in my family that was into that area. My parent's still wouldn't have the slightest clue about programming and the only reason we really got computers and upgraded them early is because my grandpa was into them early (the usage side of things, not programming).
I guess what really sparked my interest was being able to make games, the programs like rpg maker that come with point and click programming languages, all come from that. So I think rather than focusing on the programming language side of it I would focus on the results with kids, if they can script a NPC walking around the map or script interactions/ map changes and stuff, even though it's only a few lines of quasi programming I think that inspires more than simple text based program learning with a text file that can feel daunting, to may possibilities, not enough hand holding.
Ironically - I spent the day letting my 8 year old niece attempt to write a game in Game Maker. While it's not programming, I knew she wanted to make her own game and simply told her to do the tutorial and go from there. 6 hours later she had the basic tutorial finished and was hard at work on her own game. She figured out how actions worked, started reading about the scripting and designed her own characters. She loves it and I am glad to offer any advice along the way, however if she stops playing with it, that will be fine too.
What do you mean that Game Maker is not programming? It may not be as respectable as something like Java or Python or C, but it's most certainly a programming environment. You can learn about file I/O, event driven systems, data structures (particularly linked lists and trees, using instance ids in place of pointers/references) after you learn the screwy, almost typeless pseudo-C/Pascal mishmash scripting language that's built in. You can also learn a lot about the complexity of programming when you have to debug your code to figure out why things aren't doing what you wanted them to (whether that's because of a typo, unintended effects of the interaction of multiple complex behaviors you wrote, or simply a misunderstanding of language). Not to mention the issues of project management and good design (or lack thereof...)! While it may seem crude, please don't belittle it by saying that it's not "programming".
I should have watched how I phrased things; I think it's a great stepping stone in to full programming; what she currently is doing is almost 100% drag and drop and because of that, what my niece specifically is doing, isn't necessarily programming, but giving her a great resource to understand programming, and indeed making programs. I wouldn't consider her specific actions programming in a general sense, but am ecstatic that Game Maker exists to get her started gradually from the current steps and also in to more advanced steps from one single system.
So Game Maker is programming and I should have been careful in how I phrased it because I did not want to make Game Maker seem anything less than it is (I am buying her the new Game Makers Companion and a license if she continues with it because I would love to encourage programming in her)
From the article: "Parents who don't impose anything on their children, you are blessed." I agree with this, but realize that there is no such thing as a parent who does not impose anything on their children. Creating a child is an imposition.
23 comments
[ 2.8 ms ] story [ 65.7 ms ] threadI firmly believe in giving children room to explore, and never telling them that something is "too hard". But it's a long leap from "this is how I did it" to "we're doing it wrong".
I also question the idea that only some kids can/should learn how to code. A computer is not a saxophone or a snail. Today, computer illiteracy is a disadvantage; tomorrow it'll be a handicap.
And just like kid-sized pots and pans and screwdrivers, some languages are easier for kids to grasp. Going from DOS to QBASIC to C worked for the author; that was the stuff that happened to be installed. Nothing wrong with laying other "toys" around too.
I could move move walls. Make a pit. Add monsters. Try and make the room outside rather than inside...(fast forward a few months)...combine the unenclosed sectors hack with the no-lower-texture-bleed bug and make passable deep water.
It was fun. And simple.
I have a 10 y/o girl and she's learning Python (we're following the Hello World book - www.helloworldbook.com) and it's fun to follow, and she enjoys seeing the effects of the changes in the programs to see if they still behave as she expects them to.
I think it's much more important to observe that pattern rather than just discarding a particular language just because it may fix a specific mindset.
My father gave me a bunch of Turbo C diskettes when I was 8 or 9, and said nothing other than "give it a shot" and smiled. There was no pressure there.
And after I "broke" his computer a few times (one time, I installed some fighter pilot game which broke autoexec.bat, primarily the PATH and PROMPT variables, so I couldn't find anything), he got me a computer of my own, and left me to my own devices. Throughout the years, he would give me random IDE installers (Turbo Pascal, Visual Basic, etc) with no expectations.
He still smiles.
Why not let kids get into programming through curiosity or simply a desire to make things?
It's possible I never would have become a coder if a teacher hadn't given me a brief intro to Basic when I was 11 years old. I took it from there, and was self-taught until college.
With my own son, I introduced him to Scratch, helped him through a few lessons, and then watched as it became his favorite thing to do. I really can't say enough about Scratch as an introduction to programming. It gives kids a simple environment where they see quick results while learning the basics. Just as important, there is a social aspect in that they can easily share their programs with their friends. There does, however, seem to be a need to bridge the gap between Scratch and traditional languages.
As for the interested ones, you 'impose' certain programming languages on kids because 1) they want to learn to program and 2) you need a standardized way to teach. If you want to develop the manner of thinking required to assemble and organize algorithms, making a turtle move around the screen is a fine way to do it.
When my wife was younger (I believe 10?), her father tried to force her to program in BASIC. She ended up hating computers and programming in particular.
It was only recently that I was able to get her semi-interested in programming, but I don't think she'll ever really be interested in it.
Personally, I had a similar experience to that of the original author. I inherited a Tandy1000 from my grandfather, and one of my father's friends was a programmer. He had made a version of Monopoly, and gave us the source code as well as the software. I was curious how the thing worked, and spent my afternoons changing the colors of dice, how much property was worth, etc.
- but I don't want to go... I'm busy with Ruby right now
"No excuse, we've discussed this before. And when you're done with your Java homework you can go back playing with your trains and Rails."
- awwww.... sob
Fortunately I figured this out right about when people started giving me money to write computer programs. But I wish someone had told me earlier.
I guess what really sparked my interest was being able to make games, the programs like rpg maker that come with point and click programming languages, all come from that. So I think rather than focusing on the programming language side of it I would focus on the results with kids, if they can script a NPC walking around the map or script interactions/ map changes and stuff, even though it's only a few lines of quasi programming I think that inspires more than simple text based program learning with a text file that can feel daunting, to may possibilities, not enough hand holding.
So Game Maker is programming and I should have been careful in how I phrased it because I did not want to make Game Maker seem anything less than it is (I am buying her the new Game Makers Companion and a license if she continues with it because I would love to encourage programming in her)