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.

Related Posts

Preparing for a career in the games industry, Ha! Take that HP!, Giving them tools, Tips: Teaching yourself Game Development

lazycovernew_all (Small)

Buy Direct

START A CAREER IN GAME DESIGN AWARD WINNING SCIENCE FICTION COMPLETE SERIES

This is a section from The Lazy Designer, Copyright(c) 2009-2014 Brent Knowles

Brent Knowles

Amazon * Twitter * Start a Game Design Career * iTunes * AnthologyBuilder * Stories * Empire Avenue



  • http://www.facebook.com/lindy.ireland 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.

  • http://www.facebook.com/matthew.r.hansen 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.

  • http://twitter.com/jordanellinger 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 :)

  • http://twitter.com/TheRedThingLtd 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.

  • http://twitter.com/LovingYourLDR Stephen Blake

    Brent – Kodu, Small Basic, or Squeak and  if you have a niece: digigirlz

  • http://blog.brentknowles.com Brent Knowles

    Thanks Stephen. I’ll check into them.

  • http://blog.brentknowles.com Brent Knowles

    Thanks!

  • http://blog.brentknowles.com Brent Knowles

    I never had the privilege of using punched cards!

  • http://blog.brentknowles.com 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.

  • http://blog.brentknowles.com 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!

  • http://blog.brentknowles.com Brent Knowles

    Thanks! I have an old Lego Mindstorms set and enjoyed using it. I’ll look into the newer generation.

  • http://twitter.com/MySOdotCom 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.

  • http://www.orient-lodge.com 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.

  • http://twitter.com/natsteinmetz 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…

  • http://blog.brentknowles.com Brent Knowles

    Thanks Peter.

  • http://blog.brentknowles.com Brent Knowles

    Yes, I’m leaning towards Java, based on the feedback here. Thanks!

  • http://www.facebook.com/profile.php?id=100000797032516 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.

  • http://www.facebook.com/russ.bastable 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!)

  • http://blog.brentknowles.com Brent Knowles

    He’s 10. Music… hadn’t thought of that. I’ll have to consider it. Great ideas, thanks.

  • http://blog.brentknowles.com 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!

  • http://blog.brentknowles.com 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

  • http://blog.brentknowles.com Brent Knowles

    Thanks Bob. Kodu sounds interesting.

  • http://blog.brentknowles.com 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

  • http://blog.brentknowles.com Brent Knowles

    Thanks Ben. I hadn’t heard of Scratch before, will have to check it out.

  • http://twitter.com/dyalad 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.

  • http://blog.brentknowles.com 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.

  • http://blog.brentknowles.com Brent Knowles

    Thanks. I’ll check it out.