Six! That’s crazy, and I’m so going to teach my kids to program at that age! Yeah, I can see why you wouldn’t find teaching others easy. Still, if you discovered you liked teaching (like I discovered I liked swimming) and spent a lot of time explaining concepts to beginners, I expect you could be a good teacher.
And in spite of this, you’d probably find it even harder to explain how to walk.
Learned to program at five. If someone has the programming gear, five is a perfectly good time to teach them to program. Just show them some Python code (I was reading BASIC, bleah) and see if they can deduce the rules and try writing their own. If someone is meant to be a programmer then a programmer they shall be.
I would think the only hard prerequisites for programming would be knowing how to read and how to do arithmetic. Most people don’t have arithmetic down by five.
I started with Java at eleven; unfortunately I had internalized from my environment that programming was a hard, miserable duty, and so I didn’t get particularly far at that age. I wish there was a way to communicate to children “No, really, this is fun, not scary.”
I completely agree. Unfortunately, a lot of educational languages take an overly structured approach to programming and therefore end up delivering exactly the wrong impression.
One thing I miss about the computers of my childhood was the BASIC interpreter bundled with pretty much every classroom and personal computer; it’s an appalling language, but it does provide a simple and friendly environment for bare-bones programming, and that’s invaluable from a learning perspective. As late as my high school years, similar development environments existed on things like graphing calculators (I once stumbled into teaching my stoner lab partners the basics of programming, as a side effect of competing to discover creative ways of displaying crude messages), but it’s a feature that seems to have fallen by the wayside now.
I suppose we’ve got things like Lua scripting, and of course there’s a copy of gcc squirreled away on every Mac that ships, but I really don’t know how well it compares.
I believe there’s a copy of Python squirreled away on every Mac and most Linux computers, so I’ll call this progress, if we ignore Windows.
I read all my highschool math textbooks within the first couple months of the school year, so I usually spent the rest of the class period writing reversi or minesweeper or snake on my TI-85.
I learned to love both math and programming by attempting to write a Scorched Earth game on my TI-83. I had a really tough time figuring out how to do ballistic calculations, but I thought it was the coolest thing ever when I figured it out.
Out of curiosity, how far down that road did you go? As far as I know you’ve never given any public indication of how well you can program (which is emphatically nonbinary), but some people seem to think it’s important. (I realize that programming skill is notoriously difficult to measure, but a crude approximation, such as log-lines-written, would be sufficient.)
100k lines sounds like a lot, but it isn’t, especially considering the reduced concept-density of both older languages and novice programmers. My first 100k lines were unpublishable.
100000 lines is probably an underestimate. Doing a line count on all the files in my development directory, I find that I’ve got about 35000 lines of code in there, and I still consider myself somewhat of an amateur (I’ve been coding for about a year now). I code probably five hours a week or so, so a full-time programmer with similar productivity who had been programming for a decade would have written 2.8 million lines of code.
100000 lines sounds like a lot, but it’s really not.
I was slow...and I didn’t have a computer to program on until 8. On the other hand, I’ve been teaching for ~20 years, and I’ve been teaching programming for half that.
Learning to iterate through a collection of data structures is the killer feature in programming. Some folks get it....and immediately. Most folks who are not naturals take a lot longer to understand the concept...and most classes jump over it like it’s easy. Usually 3-10 different explanations, and 5-20 examples will get folks over the hump.
Was it your parents’ decision that you were going to learn to program at five, or yours? The latter would be even awesomer.
Somehow I doubt it would have worked for me though. I started trying to teach myself programming a few years ago (I was maybe 15) and I was looking at Python, but it was really opaque to me and even with my dad’s “help” (he had no idea what he was doing either and we proceeded by trial and error) I got pretty much nowhere...I succeeded in writing a program that got stuck in an infinite loop, which I thought was hilarious, and that was it. I did take an introductory university course in Java later on though, and it was the easiest A+ of my life, so maybe I’m not completely hopeless.
Six! That’s crazy, and I’m so going to teach my kids to program at that age! Yeah, I can see why you wouldn’t find teaching others easy. Still, if you discovered you liked teaching (like I discovered I liked swimming) and spent a lot of time explaining concepts to beginners, I expect you could be a good teacher.
And in spite of this, you’d probably find it even harder to explain how to walk.
Learned to program at five. If someone has the programming gear, five is a perfectly good time to teach them to program. Just show them some Python code (I was reading BASIC, bleah) and see if they can deduce the rules and try writing their own. If someone is meant to be a programmer then a programmer they shall be.
I would think the only hard prerequisites for programming would be knowing how to read and how to do arithmetic. Most people don’t have arithmetic down by five.
I started with Java at eleven; unfortunately I had internalized from my environment that programming was a hard, miserable duty, and so I didn’t get particularly far at that age. I wish there was a way to communicate to children “No, really, this is fun, not scary.”
Programming in Java is a hard, miserable duty.
I completely agree. Unfortunately, a lot of educational languages take an overly structured approach to programming and therefore end up delivering exactly the wrong impression.
One thing I miss about the computers of my childhood was the BASIC interpreter bundled with pretty much every classroom and personal computer; it’s an appalling language, but it does provide a simple and friendly environment for bare-bones programming, and that’s invaluable from a learning perspective. As late as my high school years, similar development environments existed on things like graphing calculators (I once stumbled into teaching my stoner lab partners the basics of programming, as a side effect of competing to discover creative ways of displaying crude messages), but it’s a feature that seems to have fallen by the wayside now.
I suppose we’ve got things like Lua scripting, and of course there’s a copy of gcc squirreled away on every Mac that ships, but I really don’t know how well it compares.
I believe there’s a copy of Python squirreled away on every Mac and most Linux computers, so I’ll call this progress, if we ignore Windows.
I read all my highschool math textbooks within the first couple months of the school year, so I usually spent the rest of the class period writing reversi or minesweeper or snake on my TI-85.
I learned to love both math and programming by attempting to write a Scorched Earth game on my TI-83. I had a really tough time figuring out how to do ballistic calculations, but I thought it was the coolest thing ever when I figured it out.
Out of curiosity, how far down that road did you go? As far as I know you’ve never given any public indication of how well you can program (which is emphatically nonbinary), but some people seem to think it’s important. (I realize that programming skill is notoriously difficult to measure, but a crude approximation, such as log-lines-written, would be sufficient.)
Log-lines-written? Probably around 5.
100000 lines? Woah. Where are they all? You didn’t program for money or contribute to open source projects, right?
100k lines sounds like a lot, but it isn’t, especially considering the reduced concept-density of both older languages and novice programmers. My first 100k lines were unpublishable.
100000 lines is probably an underestimate. Doing a line count on all the files in my development directory, I find that I’ve got about 35000 lines of code in there, and I still consider myself somewhat of an amateur (I’ve been coding for about a year now). I code probably five hours a week or so, so a full-time programmer with similar productivity who had been programming for a decade would have written 2.8 million lines of code.
100000 lines sounds like a lot, but it’s really not.
Huh. I was assuming the natural base, e.
I considered that possibility and disregarded it because exp(5) ~ 148), which is way too low.
I was slow...and I didn’t have a computer to program on until 8.
On the other hand, I’ve been teaching for ~20 years, and I’ve been teaching programming for half that. Learning to iterate through a collection of data structures is the killer feature in programming. Some folks get it....and immediately. Most folks who are not naturals take a lot longer to understand the concept...and most classes jump over it like it’s easy. Usually 3-10 different explanations, and 5-20 examples will get folks over the hump.
You mention reading BASIC—did you by any chance have those math textbooks with BASIC programs printed in the appendices?
Was it your parents’ decision that you were going to learn to program at five, or yours? The latter would be even awesomer.
Somehow I doubt it would have worked for me though. I started trying to teach myself programming a few years ago (I was maybe 15) and I was looking at Python, but it was really opaque to me and even with my dad’s “help” (he had no idea what he was doing either and we proceeded by trial and error) I got pretty much nowhere...I succeeded in writing a program that got stuck in an infinite loop, which I thought was hilarious, and that was it. I did take an introductory university course in Java later on though, and it was the easiest A+ of my life, so maybe I’m not completely hopeless.
I had a similar experience, and my two sibling did not also learn to program at age 5, so it wasn’t entirely determined by my parents.