Giving the Gift of Programming (or: How did you learn to code?)
So I’ll start right away with a question for the programmers reading this:
How did you learn to program?
The reason I’m asking is that I was assembling a ‘programming package’ for my nephew… basically a bit of a programming tutorial to get him started with coding… but then I realized that operating systems don’t have default compilers installed anymore.
And that got me to thinking.
I learned to program because my early machines (starting with the Adam) had the Basic language available to use. As a kid I made dozens of RPGs using Basic… it just seemed the thing to do because it was built into the computer and so easy to access. Which was good since I was never really taught programming in school (beyond using Logo or whatever it was). If not for the included basic compiler on those early machines I might never have started programming.
So how did you start? Was it through school or friends or did it wait until college? Or did you just search for compilers on the web, downloading the ones you were interested in?
A second question would be if you have any links to programming resources geared towards children and young adults to get them started (easily). I’d like to have something simple I can send to my nephew that he can install on his family’s computer and get started with programming but I haven’t found an ideal solution that doesn’t involve me actually traveling to his home (which is somewhat impractical in the short term) and doing the install for him.
Much appreciated and have a great weekend.
37 Comments
Lindy Dale Ireland
Brent – I have no suggestions, but I hope you’ll write a post sharing the feedback you receive from this one.
Randall N
For her birthday, we bought my daughter a Lego Mindstorms set. It’s a robotics kit, idealy for kids 10 and up, but she is loving it. It has a very simple programming language, but it’s a lot like the software dev environment I do tech support for.
Matthew Hansen
I’d consider starting him on Javascript. It gives quick visual feedback (fun and rewarding), doesn’t require an installed compiler, it’s relatively easy to understand, and it can provide a segway into html5, and server-side technologies. Plus, javascript isn’t going to be obsolete any time soon.
Wakeofjake
That is also what i would propose as you can very soon see the results of your programming efforts.
Jordan Ellinger
There were these old “choose your own adventure books” that, depending on your choices, you could type in some code that had been written in BASIC that would make a game based on what you did in the book. I typed in the code, and that’s how I got started…
Anne Thomas
Interested also to hear what is out there to start with these days… My first 2 programming classes used punched cards :)
The Red Thing Games
Books, trial and error. Make sure you have a compiler. Great books to start with: The C Programming Language, by Brian Kernighan and Dennis Ritchie. Herbert Schildt C++ The Complete reference. A lot of stuff to learn is online these days though.
Stephen Blake
Brent – Kodu, Small Basic, or Squeak and if you have a niece: digigirlz
Brent Knowles
Thanks Stephen. I’ll check into them.
Brent Knowles
Thanks!
Brent Knowles
I never had the privilege of using punched cards!
Brent Knowles
Those were awesome! I might even have one of them somewhere… I’ll go dig into my old books and see if I do.
Brent Knowles
Great idea! The ease of getting access to a compiler is important and I had forgotten about Javascript. I’ll dig into that. Thanks!
Brent Knowles
Thanks! I have an old Lego Mindstorms set and enjoyed using it. I’ll look into the newer generation.
Kevin Green
Interesting to see the response
Peter Radzio
I’m not a coder but have taken some lessons from http://www.thenewboston.com
MisterCliff
A combination of work and owning a small business where we engaged a friend as a contractor to set up a website, and he ended up teaching me code so I could make changes on my own. Nothing fancy, of course, mostly just HTML stuff, but useful as an insight nonetheless.
ahynes1
I started writing a quick comment about my history and languages I like. Quickly, it grew to the equivalent of a long blog post, so I put the blog post up, and am sharing a link here:
Free Computer Gifts for Kidshttp://www.orient-lodge.com/node/4753Enjoy. I’d love to hear what you end up doing as well as the age and interests of your nephew.
Nathalie Steinmetz
Hi Brent, I remember using Logo in early school days as well :) But I later started programming at university, learning C and Java more in-depth. I recommend starting with Java, as it’s easy to learn and easy to grasp the notion of object oriented programming…
Brent Knowles
Thanks Peter.
Brent Knowles
Yes, I’m leaning towards Java, based on the feedback here. Thanks!
Michael Morris
How old is your nephew? If we’re talking 6 to 10, I’d say focus on learning music, specifically how to read, write, and play it. The processes behind programming and music are fundamentally the same, except that in music *you* are the interpreter instead of the computer. More specifically, it helps condition the mind for handling different forms of input and output in the same way that learning a second language makes it easier to learn a third.
If he’s older, I’d go with a scripting language like PHP as a starting point. He can get setup very quickly with a LAMP install, which is nice. One of the most important factors of keeping kids motivated with something that’s challenging is making sure that they are able to observe or produce useful things as they learn, which scripting languages are great for. There are also tons of beginner tutorials and resources out there for this.
My last recommendation, especially if he’s into gaming, is to get him started with Lua. There are a lot of games, like World of Warcraft, that allow customization based on Lua. This type of setup is great because it allows immediate testing, as well as gratification on creating useful results rather than just some random program that simulates a tax calculation for a payroll sample.
Russ Bastable
Auto Hot Key! Free, downloadable! With Team Viewer (also free) you can assist remotely. Scripts are a nice intro to programming, and AHK is easy to learn. They can be converted to exe files, although I’ve never had a need to try this so I can’t vouch for smoothness.
I learned with BASIC, like you. Then went to college and learned PASCAL. Then for a stupid reason I stopped studying programming. (Regret!)
I don’t think the language much matters early on, it’s basically the structure of the coding process. If/ then/ else, subroutines, function calls etc. No? It’s been a long time since college, but I did teach myself AHK recently and the algorithm foundations made it a breeze.
I guess it depends on whether he just needs some exposure or wants to do something productive. (Although there are plenty of good uses for scripts!)
Brent Knowles
He’s 10. Music… hadn’t thought of that. I’ll have to consider it. Great ideas, thanks.
Brent Knowles
Thanks Russ. Mostly I just want him to have exposure to programming and then have him figure out uses for it. The scripting idea is a good one and I’ll look into that more. Mostly I need something that I can easily said up remotely for him and walk him thru the process. Thanks!
Brent Knowles
Great post Aldon. I’ll keep you posted on what I end up doing for my nephew (who’s 10 btw). Thanks!
Anonymous
I’ll second the kodu comment. It’s a free Microsoft tool. Really easy to build a wide range of fun, diverse games. We played around with it in a design class at the college and the students were creating games like Portal and soccer with it. Not really a coding tool, but good for understanding programming from a visual perspective since you’re using a NWN-style radial menu to set your IFs and THENs. :) Plus, it has a built-in memory tool to help you start to grasp the concept of scope. :)
Don Moar
Hi, Brent
BASIC was my first programming language, first on the TI 99/4a, and then on the Coleco Adam. At junior high / high school they taught us some BASIC and Logo. Then I learned C/C++ and Pascal (as well as a little Lisp, Prolog, Fortran, and Assembler) at university.
I think the thing that helped me most were a couple of very basic books on programming simple games (just simple text or character-graphics turn-based programs) as well as reading computer magazines that actually included code listings. I’m not aware of any magazines that do that anymore, which is a shame as I think you get more out of entering the code yourself than from copying/pasting from a webpage. The other thing is the listings had to be short and so had to try to give you something interesting in only a page of code. I’m not even sure that’s possible these days. :)
Here’s an upcoming title that looks like the kind of book I would’ve read as a (nerdy) kid:
http://www.amazon.ca/gp/product/toc/1435461169/ref=dp_toc?ie=UTF8&n=916520
Brent Knowles
Thanks Bob. Kodu sounds interesting.
Brent Knowles
Don,
Seems you and I had fairly similar development paths, regarding programming.
I’ll take a look at the book, it seems promising! A series of little programs, slanted towards what interests kids is probably what I need here. Thanks,
Benolds10
I would definitely recommend Scratch to young people interested in learning to code for the first time (http://www.scratch.mit.edu/). Its intuitive building-block style interface is a perfect transition before hard-programming everything. I personally used it as a young teen and it kick-started my love of game design and programming. When I was 15 I taught myself to use Actionscript 3 with Adobe Flash Professional and have been making games with it ever since.
Hope this helps,
Ben Reynolds
http://www.as3gametuts.wordpress.com
Brent Knowles
Thanks Ben. I hadn’t heard of Scratch before, will have to check it out.
Dyalad
We had computer classes in high school with projects in Logo Writer. http://en.wikipedia.org/wiki/Logo_%28programming_language%29 . It’s an interpreted language, however it was a executable that was ran on super old (Windows 3.0) PCs. I don’t know how that would behave on today’s computers. I found a link with several versions for you.
http://www.nostalgia8.nl/logoversies.htm
Logo was pretty great for me as a starter programming language, it’s basically a cursor that you can move in space through mathematical commands, you can program it to draw lines, and shapes, etc.
Brent Knowles
Thanks Dyalad. It turns out that he’ll be over for a visit shortly so I’ll sit him down and try a few things on my machines and figure out which attracts his attention most.
Greg Door
Alice (http://www.alice.org/) was designed specifically for this purpose. :) Might be worth checking out.
Brent Knowles
Thanks. I’ll check it out.
Pingback: