Slashdot Mirror


Introducing Children to Computers?

Years ago, kids could be gradually introduced to computers through learning languages like LOGO and educational computer games. Many of us started our computing careers at our parent's workplace, logged in to a word processor to type away, only to become fascinated with the whole computing thing. So Slashdot, let's hear how you were lured into the digital life. What was it that drew you to a life of programming? How old were you when you first used a computer? What pieces of modern software do you think would be a good way to introduce today's kids to the world of computing? Two of our readers had a few related questions: "A family friend has asked me to help teach her 13-year-old the art of computer programming. I initially thought this would be easy to approach but times have changed since I cut my teeth on text-only, ROM-based, BASIC interpreters. Twenty years ago, it seems there were much more clear and concise paths one could take to learn programming. Now I'm at a loss as to what language and resources I should use. Everything is so high-level that I'm having trouble finding convenient, simple tools that promote the fundamental tenets of programming, allowing newbies to jump in and see immediate results, without getting bogged down in corporate-centric APIs. It seems nowadays most programmers end up spending more time learning the development environment (and thus being confined to specific platforms) than core, transferrable programming knowledge. I'd like to ask my fellow Slashdot dwellers what tools, languages and approaches they have used to help introduce new people to programming?", and from sagefire.org: "My daughter is a huge fan of TuxPaint and ChildsPlay. We use Linux and MacOSX (and occasionally Windows) on different computers. We like to have stuff for her installed wherever we go. The two I mentioned go a long way, but we would love to pick the collective Slashdot brain on this one."

48 of 886 comments (clear)

  1. Linux, the open OS. by garcia · · Score: 4, Interesting

    My first memory of using a computer was plugging a HUGE game cartridge into the back of my family's Vic20 and being in some castle (like Dracula's Castle or some shit). It was a text adventure game that I really never mastered. I think I was about three years old.

    My father started me writing programs in BASIC before I was four (as that was what he was doing and of course I wanted to know how). I could read most things by then and this was not much more than just copying what he did anyway. I mostly remember playing around with simple things like PRINT, GOTO, and INPUT. Nothing very complex although I suspect (but don't know for sure) that my father never did anything terribly complex in BASIC.

    We progressed through the Commodore stages (C64, C64C?, C128D) and when I was in 7th grade we upgraded to a Packard Bell 386SX-16 with a whopping 2MB of RAM and a 40MB HD. This is where my love of computers really started... I sat down my first day and discovered the DOS prompt (PBs at the time had a simple GUI menu that basically sucked) but quickly found myself unable to load anything from the 3.5" disks.

    LOAD "*",8,1 was giving me "Bad command or file name" repeatedly... Dejected, I sat down and read the DOS 5.0 manual from front to back (several times actually). I spent time writing crap in Q-Basic (and eventually QuickBasic) and then moved on to Turbo C++ (which I must say had a far less interesting manual than DOS believe it or not ;))

    What I enjoyed most of all (and I have posted about that on Slashdot before) was thumbing through the old-school Computer Shopper looking to build my dream machine and making sure I priced it the best I could.

    I miss the days of old-school computing when everyone knew at least some part of what was going on inside their machines and the OS even allowed you to! I missed that part of computers until I moved to Linux in 1996.

    I'm just glad that with Linux I can continue to allow it to remain that way. I can forever live in the world that I had grown up in. So to answer your question about what I would do to introduce a child to a computer... Linux!

    Linux allows you to get right down there in the trenches with your machine. You get to see what the hell is going on when it boots up. Sure, most people don't care (because they don't have to) but we all grew up watching DOS boot before Windows. We knew how to edit config files and save on what little memory we had so that we could run NewGameFoo.

    I enjoyed learning about computers and playing around and finding out how they ticked. It scares me that NO ONE will know how soon as Windows does NOT really allow you to know. Everything is behind a shroud of secrecy and hard to find registry settings that are buried in deep trees of information.

    At least with Linux a child gets the best of both worlds. A modern operating system GUI with nearly all the comforts of Windows while still being able to learn if they want to.

    But that's just me. I learn by doing not by example. Using a computer that is open to explore was the best option for me.

    YMMV.

    1. Re:Linux, the open OS. by Pfhreakaz0id · · Score: 4, Interesting

      As a person who has spent some time programming and troubleshooting windows, I'll throw out my favorite saying "The more you learn about Windows, the more you are amazed it works at all".

      Seriously, I remember troubleshooting a boot/registry problem and I got this freeware/shareware program to log all registry activity. It would even do it for a whole boot. At the time, a win2k boot had between 120,000 and 150,000 registry read/writes!!!

    2. Re:Linux, the open OS. by jawtheshark · · Score: 3, Interesting
      I think you started a good topic. I'm 28... My girlfriend is 23, and her brother is 12. I only say this because I started at 12 myseld. In the days where you tweaked bootdisks to play games, the days you tried to take all of the machine as much as you could.

      However the 12 years old of today... They want to do what we wanted: program games. However for us the threshold was PacMac or Space Invader.... for them the threshold is Need For Speed Underground 2. Hey, I showed him the orginal Prince or Persia... The one he knows from his Gamecube. Worlds of difference. They know they can't do it... Heck he was absolutely high on the fact he could have colour on his GameBoy advance... Then I showed him my Sega Game Gear, which is about 10 years older that the GBA. I don't think he understood the meaning of it yet.

      Our worlds are so different.

      --
      Ahhh...the great dumpster continuum. Many a free computer will be found there. -- sowth (748135)
    3. Re:Linux, the open OS. by Flammon · · Score: 2, Interesting

      Eerie. I felt like I was reading my own diary. The dates, the computers the mags, everything matches up quite nicely with my life, right down to the very close Slashdot Id. You must have read Chips n Dips in the good ole Rob Malda blogging days? How about Slackware, was that your first distribution? Don't tell me you installed it from 12 floppies. You probably played Space Quest but that's too easy. How about Bard's Tale? You're probably familiar with AT&V, AT&Z and the whole AT command set. How about the demo scene, where you into that? It always seemed like the Finnish guys ruled. Ok enough of that reminiscence, I need to complete my PHP/MySQL project and start my new Ruby app.

    4. Re:Linux, the open OS. by p00ya · · Score: 2, Interesting

      My brother and sister taught me how to program BASIC on the family C64 when I was four-or-so. Mostly I was just interested in playing games, the best of which were written in assembly, but it was fun to hack the games written in BASIC (once I knew the demand function for lemonade, I was suddenly a great businessman). PEEKs and POKEs would have been the most advanced I ever got in those days.

      As for learning now, I'd recommend sticking with something high-level. Something high-level like Java is good, because you can produce applications that look like the other applications you use everyday with very little experience, which can be highly satisfactory. Starting off with assembly and getting "hello world" printed to a console will be novel, but too far from the non-hacker kid's general experience with computers to give the impression that programming can be genuinely useful in practice.

      If the kid was a real nerd/hacker, they'd already know some flavour of assembly by the time they're 14. So chances are you're dealing with someone who will benefit most from learning how to use computers and programming more effectively to help them day-to-day; not someone who wants to know the best way to balance a tree on a sequential-access medium.

    5. Re:Linux, the open OS. by The+Fourth · · Score: 2, Interesting

      It all started with the movie Wargames. The concepts of modems, AI, war-dialing that movie had it all. For me it started with my puny 16k Funvision (aka Dick Smith Wizard) computer and basic cartridge. I of course moved on to Amiga, then PC and am now a Systems Engineer.

      The hook for me was knowing something that others didn't. Friends had ColecoVisions and C64's playing these awesome games like Elite... I had thousand line text adventure games coded by me, all stored on the B side of my Pseudo Echo Cassette. Today one's a pharmacist and the other welds trains back together, I'm still writing games...

      You do it because you want to, you can't force it.

  2. BASIC by gaber1187 · · Score: 3, Interesting
    I got started when my cousin, who had a TRS-80 and a 386 gave me a book called "It's Basic". I started programming on Apple II's in our classroom and then got really interested in building a computer for as cheap as possible. Well, with 512 MB hard drive and 4 megs of RAM and a 486 DX 66 MHz running only DOS 5, I ran into one problem after another trying to get everything to work. Needless to say, I learned a lot and ended up getting a job at a local internet service provider based on my experience when I was 16.

    I'm going to bet practically everybody else here had a very similar beginning... :-)

    1. Re:BASIC by Khomar · · Score: 2, Interesting
      In my opinion, the best solution is to simply give the kid the tools he or she needs to get started, and see what happens from there.

      My dad took a little more direct tactic. When we got our new computer when I was in the fifth grade, he proclaimed that he was not going to buy any games. If we wanted games, we would have to make them ourselves, so I started working on very primitive games using BASIC. My dad later changed his mind(?) and purchased games for us for Christmas, but by then, it was already too late for me. I was hooked. I started with a statistics based baseball game and then moved onto a windows based teachers gradesheet program. I went on to get a CS degree and have become a decent application designer/developer. It all started with my dad giving me a little push to see what I could do. Go Dad!

      I would argue that you might need to give kids that little push (in one way or another). With all of the advanced games and applications out there, they may see little need or desire to even learn how to create on their own.

      --

      I believe in de-evolution. God made the world perfect, man fell, and its been going downhill ever since!

  3. When I was young... by trisight · · Score: 2, Interesting

    My father had subscriptions to Atari magazines that used to come with programs in them and he would sit me down with a magazine and I would type the games straight out of the magazine to play them. It was an Atari 400 with a tape drive on it for storage (remember that loud screaming noise that sounds like it would be on an industrial song track). I was 5 or 6 at the time. Later he would teach me how to change different things and teach me what they meant.

    I program for a living now and always let him know that I owe it all to him. Feels good when he comes to me with programming questions now. Kinda brings a little tear to my eye...

    --

    The Nomad
    "Men of lofty genius when they are doing the least work are most active."-da Vinci
  4. The most important thing (imho) by wcitechnologies · · Score: 3, Interesting

    In my humble opinion, the most important thing that we need to teach children at a young age is to TYPE. Just as everyone doesn't remember learning a first language but always struggles with a second, teaching kids to type is much, much easier than teaching teenagers to type. At that stange of life, your mind is designed to soak up new information like a sponge. I learned in 1st grade, then grew up watching my peers (from other schools) struggle through intermediate school.

    --
    Electrons are free; it is moving them that becomes expensive.
  5. About 12... by jawtheshark · · Score: 2, Interesting
    It was the DOS days. Daddy bought a brand new IBM PS/2. I wanted to know how to calculate things on it and he showed me good old GW-BASIC (That is indeed Gates-William-BASIC, I started off as a Microsoftie).

    He showed me statements. I figured out how to write a scientific calculator in BASIC. It never became my thing until daddy gave me a Pascal book and Turbo Pascal 4 (?). It was a dream! I reinvented bubble-sort, and stuff like that. I was sold. I knew I was going to go into computers.

    That's why I enrolled after highschool in the computer science classes in a not too remote University. I learned about Linux and BSD, became a OpenBSD fan... I managed to get through my eductaion and get a job as a programmer. I launched Java in the company that took me (and it was a big commercial success), and now... after 6 years... I quit that company. I left to become a teacher... I'll be teaching computers to high schoolers... and so the circle ends.

    --
    Ahhh...the great dumpster continuum. Many a free computer will be found there. -- sowth (748135)
  6. Logo is a good... by tekiegreg · · Score: 2, Interesting

    way to start on computers, as it is simple and imaginative. If you can find a PC Logo Emulator/program I'd start with that :-) and I'm sure there is one available out there.

    You know what also would probably be an easy way to get someone in on programming? Straight up line number GW-Basic or AppleBasic. Simple, and teaches basic programming concepts fairly well (If statements, loops, etc with simple input and output). Beats trying to teach the principles of OO design at an early age. Little baby steps would be key...

    --
    ...in bed
  7. Parallax Basic Stamp by mainlylinux · · Score: 3, Interesting

    Check out the Basic Stamp from Parallax. There are kits that use it to teach logic, programming, electricity/electronics, etc. Price is good (radio shack has the whole kit for $79 bucks - it's called the "What's a microcontroller" and it comes with everything you need to do a bunch of nifty experiments). User forum support is pretty good too: http://www.parallax.com/ Dan

  8. Re:Duh by slungsolow · · Score: 2, Interesting

    Yes, it is amusing... but one of my greatest memories ever dealt with downloading a topless picture of Cindy Crawford off of a BBS. I think it took a good 15-20 minutes to download and my brother had previously installed a program that let you view the image as it came in. Oh man it was killer.

    Now the earliest I remember would be playing some tape based games off of my brothers Commodore 64. I don't remember the games that well, and I know my brother hated to let me use his computer, but I think it was worth it.

  9. Start 'em young by J-Doggqx · · Score: 2, Interesting

    My dad (also a computer programmer) enrolled me in a programming class at the YMCA when I was 7 years old! He then got me a Tandy computer that plugged into the TV and used a cassette player for storage. That got me writing small programs.

    Ever since then (and my impending video addiction with the Nintendo systems a few years later to present) always kept me hooked on computers. My small programs became larger hobbies and eventually my career.

    So I guess my point is to start the kids young, they can handle it. Dust off a copy of BASIC and show the kids what you can make a computer do. It doesn't take much.

    --
    END OF LINE
  10. F5 by kngthdn · · Score: 2, Interesting

    LOGO is waaaaay too turtle-centric. If you really want to screw up your kid's brain, teach the 'em BASIC. I don't mean Visual Basic, either. QBASIC is the only way to go. If they learn that, they'll be stuck drinking Mountain Dew forever. ; )

    I got started using DOS on my dad's 386 "lunchbox" computer when I was 5 or 6. My dad taught me all the important commands, like "cd", "mkdir", "del", "format" (that one was *really* fun), "edit", and "cp". He was very patient, and even brought home PC World from his office each month, which was much better than it is now.

    DOS is (almost) gone now, but I suspect the GNU tools & BASH might be be best for kids just getting into computers. Forget Windows...they'll just use IM & surf the web. Java is far to high level, and C++ is too complicated. A few years messing around with gcc and Dr. Dobb's journal should do the trick.

  11. Lego Mindstorms by LWATCDR · · Score: 5, Interesting

    What more can I say. Let's face it kids today are not going to write a video game to be proud of today like they could back in the Apple/64/Atari day.
    However something like mindstorms is fun and accessible. Also a good way to get your feet wet programming.

    --
    See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    1. Re:Lego Mindstorms by grumpycat · · Score: 2, Interesting
      Let's face it kids today are not going to write a video game to be proud of today like they could back in the Apple/64/Atari day.

      I don't think that's true. Buy them a Gameboy Advance, a FLASH cartridge and download Dragon Basic. They can advance onto GCC (or even ARM assembly for time-critical code) over time.

      The GBA has C64-era (Amiga maybe) graphics (sprites, rotation, scrolling) and programming for it can be very rewarding (press LEFT, the blob moves left). Dragon Basic is apparently very capable for beginners.

      Grumpy.

      GBADEV

  12. Doom did it for me... by farsideofthemoon · · Score: 2, Interesting

    I became addicted to Doom and Wolfenstein back in the day and only in between playing doom did I mess around with the computer to do other things and gradually gained more and more knowledge. Also when I was much younger my dad wouldn't let me touch his computer so when I was finally around one that I could I did everything I could imagine(except that you sick bastards).

    --
    I know what's on your hard dr
  13. The making of a hacker by Dark+Coder · · Score: 2, Interesting

    It started with a toaster.

    At 6 years of age, I received a toaster (with a cord cut off) and I rabidly rip it apart down to the heating elements of which I made slinky toys out of them. Many more appliances were "gifted" to me for adventurous disassembly efforts with glee.

    At 8, I received my very first ATM card, I learned to deposit an empty envelope of $1000 and managed to withdraw $100 max. on the same hour! Bank later called and said "we made an error, pay it back."

    At 10, Captain Crunch cereal featured a toy whistle. I learned that free phone calls can be made at payphones.

    At 11, blue box was made using those Japanese 250-in-1 electronic kit box. Radio Shack becomes my best friend.

    At 12, TRS-80 Model I was purchased. I started work as a BASIC programmer for designing a paypoint station in accepting Visa/Mastercard at gas pumps using 8' drive TRS-80 Model II with a sporting 640KB memory... Hooha! Mastered 300 baud communication using 250-in-1 electronic kit.

    At 13, Exposed to PET computer, Commadore and a 6502 microprocessor. Mastered assembly language. Actually memorized the entire instruction matrix.

    At 14, designed a payroll, general ledger, account receivable program on HP-1000 with those huge disk pack array.

    At 16, tweaked and enhanced several BBS software. Ran a BBS station.

    At 18, left for college with my various computers. Wired dorm room for wireless alarm (using Tandy car alarm transmitter and a pager, tied to serial port of computers).

    At 19, left to work for an undisclosed company who requires mastery of 236 network protocols and other unintended usages. Been there ever since.

  14. QuickBasic... by Paralizer · · Score: 2, Interesting
    I started programming in QuickBasic around 8 years ago. I remember making a program which asked simple questions like, "Enter your name:", and it would reply, "Hello ." For some unknown reason, it fascinated me. I started reading through the documentation which was provided with QBasic, learning as much as I could. Within months I created a nice little tile-like maze game.

    I doubt this type of solo introduction would be effective with kids today, but starting them out with an easy language which is not very in depth, such as QB, and having the ability to produce some sort of low level game would probably help hook them (unless they are just completely uninterested).

    In the end, and no matter which way they get started, it is going to boil down to their own motivation, and their wanting to learn it.

    I am now a second year college student majoring in Computer Science, and program in C and C++. :)

  15. TTL first by Anonymous Coward · · Score: 1, Interesting

    I remember that I saw an ad for the Commodore VIC20 in the summer of 1983, and I showed it to my father and said, "Dad, I want a VIC20". He said, "Okay, you can have a computer, but first you'll learn how it works".

    A few weeks later I got the first module of some course on TTL for my birthday, consisting of a circuit board, a few LEDs, capacitors, and resistors, and (most importantly) four NAND gates on a 7400 chip. I had to put it together from those pieces (which was a lot of fun; I had tinkered with electronics before, so that this part wasn't a problem).

    Every week, a new module appeared, covering issues like Karnaugh maps, JK flip-flops, binary counters, etc., eventually leading up to a module built around a simple ALU that appeared a few weeks before Xmas. In other words, I had a pretty good idea how a computer worked before I'd ever seen one.

    I'll be eternally grateful to my father for taking this approach. (In case you're wondering, he's a carpenter; he always wanted to be an electrical engineer but had to take over his father's woodworking shop for reasons beyond his control).

    As for the question of how to introduce kids to programming these days, I still think it's a good idea to have kids tinker with TTL chips so they won't be tempted to think of a computer as a black box. When it comes to actual programming, I would propose a dual approach consisting of a high-level language (e.g., Python) plus a low-level one (MIX would be great, but C seems more realistic).

  16. I've been teaching programming using Flash by jbum · · Score: 5, Interesting
    One of the nice thing about early 80s PCs was that the individual pixels were large. So you could accomplish a lot with a simple program like this one (which I often entered into floor models at the local radio shack):

    10 COLOR RND(15)
    20 SET(RND(20),RND(20))
    30 GOTO 10

    Sadly, it is harder to find programming environments for kids that provide this kind of simplicity these days.

    Last year I started teaching high school aged kids to make simple videogames using Flash. My class is called "Make your own videogame in Flash Actionscript". Essentially, my class is an introduction to programming, and something of a "stealth math class." I would much prefer to be using BASIC on old VIC-20s, but Flash isn't too bad for this activity.

    I'm aware of the huge anti-Flash sentiment on Slashdot - one I generally share when I see it needlessly used on websites. However, I think Flash is pretty good for teaching kids to program.

    Since it's vector based, the equivalent code to produce the effect of the above (raster based) BASIC program is too large (see http://krazydad.com/bestiary/index2.html for my implementation), so I have had to rethink how I approach things. I have to start with programs that are simple in Flash, not programs that were simple for me in 1981.

    Still, I have to spend a couple classes getting past some unnecessary high-level concepts integral to Flash (like "timelines" and "the stage") but eventually we do get down to programming.

    When a kid writes that first program in which they can control something on the screen, they invariably yell "Yes!!" or "Alright!!" This is why I like teaching programming.

    The reasons I chose Flash, over something like LOGO (or Squeak) are:
    • It provides a hands-on enviroment for the kids to paste in their own artwork and manipulate it without yet knowing how to code.
    • It's possible to make some very simple games that look good without a huge amount of coding.
    • The kids can share their games with others by publishing them on a website.
    • It's a real-world technology that may get them a job or money.

    1. Re:I've been teaching programming using Flash by Downbass · · Score: 2, Interesting

      I'll second this. Flash may be a proprietary technology that has the ability to irritate the hell out of people on websites, but it's probably the best learning tool for budding programmers out there at the moment. As well as the basic animation, graphics, tweening, etc, there's real programming depth there now. With the newer versions of Flash and Actionscript 2.0, Flash has become more or less completely object-oriented, and most of the syntax is similar to that of C++ or Java. So not only is it a commercial skill that is viable in the jobs marketplace, it also teaches the basics of how to use fully-fledged object-oriented programming languages. The trick, of course, is to have it accessible to all without having to acquire it through warez channels... Macromedia, are you listening?

  17. Python by Beowulf_Boy · · Score: 2, Interesting

    I am in college for a game design major. There are 2 sets of courses. One leaning more towards art, and one more towards programming. I switched to this major, and am having to take alot of freshman classes this year (I'm a sophmore), so I can speak from kind of a "already knowing how to program" kind of stand point.

    I would have to say that Python would be a rather easy language, but with all of the neccesarry parts, to teach the child. Its very easy to get a game programmed. It only took me about 20 minutes on my first try to make a simple program that opened a window, created a border, and let me move a sprite around the screen with the keys on the keyboard.

  18. Females are so different by Specabecca · · Score: 4, Interesting

    I grew up in a geeky home with both a dad and older brother consumed with computers.. yet it was not something I wanted to be a part of until I hit college. Females take to computers in a whole different way. I didn't care how to do the little tasks here and there, like fixing little problems that I deemed 'computer janitor' type jobs that periodically sprung up when I was doing basic gaming and word processing. What I wanted to know was the big picture. I needed things explained to me in terms I could understand/ relate to. Something like 'computer story time' would have sparked my interest when I was little, breaking down how the various components communicate with one another and what their jobs were inside the computer first on a broad scale, then breaking it down into finer pieces as time passes. Starting a task like 'ok, we are going to install a new nic into the computer' and explaining WHY you are doing it before you do it, what it does, etc and then displaying the results in a meaningful fashion might useful too. Long story short, fixing something because it is borken just didn't excite me. It doesn't excite a lot of females. Fixing something with a story, with a purpose, with results you can prove to her after the fact.. now that's exciting.

  19. the way I intend to do it... by bonezed · · Score: 2, Interesting

    give him a non gui *nix box.

    make sure it has some text/curses based games and let em loose on that. Also, have some *nix manuals lying around.

    If they figure out how to get access to the outside world/install X, then all power to them (feel free to give them hints)

    the general idea is they learn gradually through exploration

    --
    ---- Put Sig here:
  20. Re:Wanna-be programmer was discouraged by Creepy · · Score: 2, Interesting

    I don't know about that - I really wasn't interested in the Apple ][ until Sabotage (paratrooper on the PC) came around. After playing that, I wanted to learn to write something like that and learned BASIC. BASIC was too slow, so I learned Apple ][ Assembly. It cascaded from there. I sucked at algebra, myself, but was a god at Geometry, so that made up for it. Quite honestly, I use so little math in my day-to-day coding it doesn't really matter.

    A friend of mine from HS was encoraged to learn computers because her dad worked with Seymore Cray. She was never quite the programmer my group was (very few people were - how many 12-14 year olds do you know that are writing code professionally?), but she was the only female geek I knew in that era. Her dad encouraged creativity - think of something you want on the computer, then try and create it. He would then help her design and help her when she got stuck writing code.

  21. My experience/rant by slapout · · Score: 2, Interesting

    My first experience with a computer was when I was five. My dad had an Atari 800. (He ended up selling it because he couldn't afford a disk drive! This was when disk drives cost hundreds of dollars.) I remember one night he typed in a program that acted like an etch-a-sketch.

    I few years later, my parents bought me an Atari ST. I was hooked on computers from that point on. One day I was reading an article in Atari Explorer magazine about programming. The article presented a simple "Hello, world" type program in BASIC. I decided to play around with it and see if I could change it slightly. (This was back when every computer came with a copy of BASIC.)
    I ended up teaching myself BASIC over the summer.

    Anybody remember when computer magazines used to publish type-in programs? :-)

    I know nowadays a lot of people don't like BASIC because of goto and what not. But I think it is a good language to teach some basic principles (what a variable is, what a loop is, etc).

    I'm currently learning python. I've wondered if it would be a good first language for someone. I'm not sure it would be. For one, I'm not sure if someone who learns it would appreciate all the things it does for you. Second, when they learn another language, I'm not sure what the learning curve will be like. It might take them a while to get used to the new ideas. On the other hand, maybe starting fresh and not carrying some of the baggage of older languages would be good for a new generation of programmers.

    I've never used Pascal, but I've heard it's a good language for learning programming.

    Now, I've heard some people say that OO is the way to go and should be taught to newbies. But even with OO you still use parts from procedural programming: you still use variables, still use loops, still call functions, etc. I see no harm in using a simpler language to teach the fundamentals before moving on to objects.

    Maybe what we need is a version of knoppix set up for teaching programming.

    Python links:
    Main python site: http://www.python.org/
    Dive Into Python book: http://diveintopython.org/

    Pascal:
    A free Pascal compilerhttp://www.freepascal.org/

    Basic:
    I don't have a link for a version of basic. But I know there are some on the web. And Win 95 & 98 have a copy (buried) on the setup disk. Look in the other\oldmsdos folder.

    More:
    http://thefreecountry.com/ Has links to free compilers & more for various languages.

    Old computer magazine archives:
    http://www.atarimagazines.com/

    --
    Coder's Stone: The programming language quick ref for iPad
  22. lured into digital life by rhendershot · · Score: 2, Interesting

    Electronics. Heathkit ET-340 trainer. Assembly. Being able to plug in hardware to make the platform do what I wanted.

    Then the Vic-20. There was a space rocket missile type game in the handbook. I modified it a LOT. Called it "Dense Pack" after a politico-social concept of the time. (once you ran out of missiles you were dead ;)


    I don't think you can force this on a kid. Nor should you. But offering the right teaser is still fair! lol

    Even the new scrip language in O-Office1.9 is a start. There's several Turtle-like things around.

    or like I did, give my son an old phone to tear apart...

  23. The Commodore PET! by notchcode · · Score: 2, Interesting

    My mom worked for an AlphaMicro Systems dealer in Colorado in the early '80s, and she brought a CBM, and later, a PET, home for her and us to all use. I remember playing some very basic games on it, word processing, and even getting into programming a bit on that huge box.

    My brother and I later got further into programming when the VIC-20 and C-64 came out, but I will always think of the PET as my first computer.

    The best thing, aside from the thrill of the computing experience, was seeing the autographed photo of William Shatner, holding a PET, with the inscription "Glad to have you on the team" on it.

  24. your sinclair magazine by Krafty+Koder · · Score: 2, Interesting

    "Twenty years ago, it seems there were much more clear and concise paths one could take to learn programming. Now I'm at a loss as to what language and resources I should use."

    He hits it on the nail - when i started off on the ZX Spectrum way way back in 1983, it was very very easy to get into programming.

    1. Buy zx spectrum
    2. Buy Your Sinclair magazine

    Your Sinclair was just packed full of Sinclair Basic programs for you to type in - through that, you learned about programming. It really was kind of an open source way of learning about programming and it was just BASIC , but at least it gave my former 12 year old self a leg up and a way in to murky world of coding.

    Fast forward to today and i dont see a "Your PHP" or "Your Python" kind of weekly magazine. Dr Dobbs magazine comes close, but that's really seriously high level.

    Yeah, i know - PHP and Python have tons of websites, but in reality , a printed magazine on the newstands would make an impact. Maybe we , as in the Slashdot crowd or the more general open source community, should seriously think of going back to "old media" and think about doing a printed monthly magazine with nothing but code in it in order to give the youngsters of today a bit of inspiration.

    maybe we've been too self-centred and too self-obsessed with the whole "internet" thing that we've forgotten where we've come from.

    we need to reach out and get the kids that dont use the internet involved. maybe that's what might happen over the next few years - new media re-discovers the old media. a kind of influx of new media types into the world of real world publishing.

    just my 2 euros.

  25. Python works by uber-human · · Score: 3, Interesting

    Being 14, I hope I can shed some light on the problem.
    I started out writing simple programs for the basic interpreter in my Ti-83 graphing calculator. Noticing I was interested, my dad got me started using Python.
    I'd say python is by far the best choice:
    -It's interpreted, so you get instant feedback
    -It's simple! I could teach my 10 year old brother to use it
    -It's not 'write only'; you can look back on old projects and understand every line of code
    -Lots of good documentation


    Give it a try and you'll see what I mean.

  26. Re:Python by uber-human · · Score: 3, Interesting

    I learned for the same book. It's perfect for people without prior experience.

  27. The magic of embedded BASIC. by Anonymous Coward · · Score: 1, Interesting

    I trace my introduction and facination with computers back to ye 'ole Tandy Color Computer I and Extended Color BASIC... back then, if you wanted the computer to do anything remotely useful you had to program it yourself. The manual was quite well tuned to beginners and children.

    It was quite fun doing things such as piggy-backing RAM chips on the motherboard to "upgrade" your memory, or adding LED's to the serial and cassette cables to indicate status and activity.

    These are the kind of things that hook a child for a lifetime. :)

    Sadly, I can't imagine Microsoft Visual Basic having the same effect, as it isn't as "needed" and always just "there" at the prompt as part of the OS like coco BASIC was.

  28. Where to start... by DanteBlack · · Score: 2, Interesting

    I personaly started on a PET, but that's not really important. The real question is 'Where to start?' Regarding programming the answer is simple, the begining. Start with concepts and leave variable types, apis and syntax for later. Psuedo code is your friend. While this may not seem particularly satisfying it doesn't take long to lay the ground work, controls structures, methodolgy and that lot.

    After the core concepts have been taught, and perhaps in parallel, choose a /simple/ language. Avoid languages with beastly syntax and apis. Pascal was a teaching language for a reason, it was/is very simple. I personaly moved from 'playing' with basic directly to C.

    I remain to this day of the opinion that C is a simple and powerful language where the fundamentals count. I admit that there are some concepts that can be a bit 'hairy' when dealing with C, pointers for example, but they can be taken in stride. I'm not suggesting that C is the only way to go but syntacticly it's simple, the api is small and straight forward (mostly), types are 'reasonably' understandable and the syntax has been largely adopted/adapted by most newer high-level langagues.

    One drawback to C is that while it teaches pragmatic programming, things break if you get careless, without apis it's not flashy. You're teaching concepts though so that should be less important. If you're looking for something with more exciting immediate gratification look to another language.

    I'd recomend PHP if that's what you're looking for. Again, it's a relatively simple language, and it's typeless which avoids a stumbling block. It can be combined with HTML to give some 'graphical' results.

    Why PHP instead of Java? I think Java's api is a bit overwhelming to start with, but that's my opinion. Why not C++? 1) It needs an external api for graphics. 2) In my opinion it's inheritence/overloading syntax *bites*.

    Basicly take things in step. Start with concepts. Move to application of concepts. Next, 'practical' application of concepts. Advanced concepts and techniques will come with time/experience. Don't rush things, no good comes from it. A strong background will make learing other langauges and more advanced concepts, OOP for example, less of a task.

    That's 'Where to start?' from my perspective. Of course this is all my opinion, and it's based on my experience, so it may be a bit skewed. Take it for what you will.

    --
    I am invisble, and you can't see me.
  29. Philips MSX-2 VG8235 by owlstead · · Score: 2, Interesting

    I really wanted the Sony (2 x double density disk drive), but it was deemed too expensive by my parents. They bought the darn PC after quite a time of nagging from my side. It even had floppy disks and quite good graphics and sound for that time.

    But the most important thing: it came with a MSX DOS & BASIC handbook. The thing booted in BASIC and I became used to loading the first games from that. The first BASIC programs (starting with the print statement in a loop), but in a few years I was even doing assembly stuff. Z80 is a fun and easy processor to program.

    The problem back then was finding people with the same interest. There were a few that did some basic C64 stuff and even a few MSX owners around the place, but nothing fancy. The only advanced refference I got later was an MSX 2 reference book, but it was stolen out of the library by a misserable sod, who happens to be my friend until this day. I stole it back and got it laying around somewhere.

    Currently the problem is getting a nice programming environment. HTML is just data, and JavaScript is awkward and ugly to program. No programming tools are installed with Windows as well (and Windows scripting is just too much). I wouldn't recommend scripting and OO is a bit much to start off with.

    The good thing is the internet. LOGO is still around, and is probably a great thing to start off with (it's free you know). I've got LEGO mindstorms and that learn children the basics really easy, using flow diagrams, but it is pretty expensive (~250 dollars for the one you can program). Anything that is easy to learn and visual may sufice though. And make sure they've got plenty of refferences - get the school involved or something.

    If everything fails, fall back to BASIC, even using an MSX emulator if you must. Don't forget to unlearn it though once they get the basics. Visual Basic is the worst PL on the planet.

  30. IENJINIA by magoghm · · Score: 3, Interesting

    You can take a look at http://www.ienjinia.com/. It is designed for teenagers rather than for kids but my 9 year old son likes it a lot.

  31. Re:Amazed? by John+Miles · · Score: 2, Interesting

    Well, were you as amazed by typewriters then as they are by computers now?

    I gotta throw my lot in with the other guy here. Mom's Smith-Corona manual typewriter was already an Antikythera-class artifact by the year I was born, but even though I was exposed to various early microcomputers while growing up, I was never inclined to take the Smith-Corona's complexity for granted. The guys who designed those old typewriters were not exactly the slow kids in class. (Do some Googling sometime about how IBM implemented a multicharacter typeahead buffer in the Selectric with a tube full of ball bearings.)

    Later, I read a comment by Jim Williams of Analog Devices about an old-school Tektronix oscilloscope, the kind you could heat your living room with: "The thing just radiated intellectual honesty." Same deal with the Smith-Corona. Both instruments belonged to a time when what something did was intimately obvious from what it was... and how it worked was readily apparent from how it was made. Even a modern-day '1337 haX0r can still learn from the design ethos behind those old clunkers, and find reasons to be amazed by them.

    --
    Dahlmann tightly grips the knife, which he may have no idea how to use, and steps out into the plain.
  32. Guida van Robot by Noksagt · · Score: 2, Interesting

    GVR is like karel, but with more python coolness. They also maintain a list of a fes karel-related links on their site.

  33. Re:Amazed? by Omestes · · Score: 3, Interesting

    I think the thing that got me, wasn't that they were new, since even old computers were new to me when I had no real contact with them, but that old computers were blatantly open, no gui, no man pages, no helpful hints on what to do, just a flashing prompt. Now computers look like their meant to do specific thing, I have a media player icon, I have a word icon, I got a Doom3 icon, thats what I can do.

    On my first computer (a c64) all you had was the little flashing ascii cursor, from there it was up to you, you had to figure out what the hell to do with it. I still remember the first time I got my c64 to load something, when I figured out the load "*" 8,1 command. My heart lit up as I waited for the loading text to go away, revealing Qix. This was even better because my parents didn't even know how to do this, for once I knew more than them. And that was the beginning of them be really confused everytime I get within 10 feet of a computer.

    Samething when figured how to get my c64's modem to init to a BBS I found in a free newspaper. Possibility. Discovery. Control. All the things the children need to be stimulated. Granted I never really got into programming, and can program C as well as I could in high school, which isn't saying much.

    Basically all you need to do is get the kids hooked on the open ended possibility of it.

    And yes, I actually was quite enthrawled with my mom's old Underwood, it was scary, and I still remember using it with reverence when my c64's dot matrix died, and my parents refused to see that I didn't break it, and it needed a ribbon instead.

    Dropping kids on a bash prompt wouldn't be a bad idea, IMHO, especially after letting them get used to some random windowing system. How can Windows or OS X get you intreged how it all works, when the works are well hidden?

    --
    A patriot must always be ready to defend his country against his government. -edward abbey
  34. Re:Short and simple... by djdavetrouble · · Score: 3, Interesting

    I don't want my daughter (3 1/2) to come near a computer until she is well into her teenage years. Then, she can learn about computers on some sort of Unix variant. Until then, I want her to be a child and play, read, color, run, jump, etc.


    I understand where you are coming from, but most of us cut our teeth on computers around 3rd grade. My friends and I could write basic programs, and operate the TRS-80 better than our folks. For me the computer turned out to be the only thing that made me any money, all thanks to my engineer dad who was excited about the first personal computers and found a way to buy a Trash-80. I wasn't athletic, didnt sing or dance, hated drawing and painting, but loved to sit for hours fiddling with that piece of junk. My friends were into computers too and when we weren't doing kid stuff outside it was a great wholesome way to pass the time. It certainly is better than getting a playstation or xbox for your young impressionable kids.

    A more sensible approach would be to expose her to it and see if she shows an interest or apptitude for programming or computers, then nurture that if it appears. One of the most adept network admins that I know grew up in a hacker/unix family and was exposed very early to some pretty advanced stuff. If she likes dancing and acrobatics or riding her bike better, then nurture that instead. Besides, by the time a girl is a teenager she won't be the least bit interested in 'unix variants', more like Corey variants and make-up shade variants.

    --
    music lover since 1969
  35. I started on reader-freakin-rabbit by Brained+Child · · Score: 2, Interesting

    and a lot of those types of games. Eventually my dad moved me over to duke nukem and bunch of other weird 2d sidescroller games.

    If you want them to learn programming, I'd say start with html. It may not be object oriented (as everybody is friggin obsessed with) but they can see the results immediately and it only takes a month to memorize all the basics. Then you can move them on to css/dhtml and javascript. See, HTML is a gateway language!

  36. Re:Amazed? by hob42 · · Score: 2, Interesting

    Well, assuming you have a spare computer to set up as their sandbox. In my house, the kids have admin access on the kids' computers, even the 3 year old. When they screw up, they don't get to play their games for a few days until I have time to get it running again. Eventually, they'll be responsible for fixing it themselves.

    They've got limited accounts on my and my fiance's computers, though.

  37. Get them a pony by Animats · · Score: 2, Interesting
    Why should kids learn to program? It's a specialist skill with declining value.

    Get them a pony. This will teach them to deal with an animal that's cooperative enough that you can do something with it, but independent enough that it's not easy. This prepares them for management.

  38. Re:Lego Mindstorms? by ICantFindADecentNick · · Score: 2, Interesting

    Absolutely - Mindstorms is fantastic for this. Last year we ran an event at a school for an introduction to programming for 13 year olds. Ths school has lots of computers - but they're mostly used for word processing, web design, etc, etc. No programming. The Mindstorms kit is brilliant for this age group for getting across the fundamental idea that it does exactly what you tell it. We pre-built a Roverbot type line-follower (to avoid wasting too much time on hnting for the right bricks) and built up from just making it move and turn into a line following race between teams by the end of the day. We knew we had them hooked when they were asking to stay in at break time to tweak it to make it go faster.

  39. Kids and computers by Rhathid · · Score: 2, Interesting

    This is just my 2 cents. I started on a TI-99 back in 83 I think. I was 5. I played a few basic ANSI graphic games but I remember one Sunday morning I came into the family room as saw my dad typing in BASIC from a computer magazine. I remember having a radio shack tape recorder to save the program too. Well, after about 2 hours of typing either he or I tripped over the power supply and I remember him cussing about losing everything he just typed. Next thing you know I'm retyping everything from the computer magazine, later that day I was playing an ANSI game flying a helicopter to save people from a burning building. Then in the late 80's my Dad regained his interest and picked up an Amiga 500 with a Star Color printer and 1200BPS modem. I spent a lot of time on BBS's, they didn't seem to have a purpose but I was fascinated with what an E-mail was and that I could talk to another computer. The modem went in a box for a couple years. Fast forward to High School, the 500 was still kicking and pretty well. I met a couple kids who asked if I had a modem once they learned I had a 500, they showed me what BBS's has become. I took a programming course in High School. I was on the football team, we all took it. We went through GW Basic, but a lot of us couldn't wait to show off and see if we could learn C. Fast forward passed building computers and all that junk. In 96 I walked into Best Buy, asked for a job, they asked me what I knew about. I looked around, not really sure and said computers. So they interviewed me, one question was "What is a Pentium Processor?" I remember saying "It's a dual 32 bit processor which has [whatever the raw processing power was]". I was hired, then I found out I knew a lot more about computers than I thought. Back in 96 was when all the kids who grew up learning on the computers were just entering the part-time workforce, we were good, a lot better than kids you run into at these box shops now. Fast forward again, I landed a career with a Fortune 100 company, still working with computers. I thought the way to go was networking, as of right now, I'm a consultant and do a TON of intergrating and programming. I also started my own consulting business scripting in CGI/PHP to coding in Java/VB/C++. So what is my answer? Well, it's simple. When I was 13 my dad bought me an RC plane. I flew it a few times and crashed it, I wasn't interested in it again. I'm 27, 2 months ago I suddenly started buying RC planes again because it was something I did when I was younger and I have some great memories. So, I say expose a kid to computers at an early age. They might not to take it, but there is a good chance as they get older they might really want to learn exactly what it was they experienced at a younger age. Also, tell them not to do it, when you tell a kid not to do something, they automatically are interested in it. I remember that anytime I was told something if for High School or College kids, I instantly wanted to do it. So tell them it's for the big kids, all little kids want to be like the big kids. So, if you want them to learn programming, who cares where they start, it's where they end up that matters, you can't force a person to become a person, they have to do it on their own. I would suggest if you want to get them into programming, have them write a basic program in your language of choice that actually accomplishes something. I interview people all the time who took programming in college but didn't have practical use for it. They had no interest in learning what a class was, or proper syntax. They need to program something where they can directly see not only a result, but a use. I can teach a kid 'Hello World!' in any language, but the gratification of that doesn't last very long and just gives us web sites that popup annoying practicaly joke alerts over and over. Find something your kid is interested in and have them write a program for that. Learning to change a tire, now that's practical. Kids don't want to learn it? Weird, how'd this tire go flat

  40. How to learn a programming language... by raehl · · Score: 2, Interesting

    Trying to learn a language through a book that teaches the parts of programming can be a pain. I'd suggest that you instead find an existing program that you can modify to work on.

    For me, I learned most of my C (which I later transalted to C++) coding on a MUD. I didn't code the MUD from scratch, but editted one that already existed.

    Find some open source code that does something you're interested in and start hacking away. It's much easier to pick up things one item as a time through editing something that's already there than to try and think of (and implement) a whole new package to program from scratch, especially when you're still a novice.