Slashdot Mirror


The Little Coder's Predicament

An anonymous reader writes "There's an interesting article on Advogato about the world of computing that kids today find themselves in compared to the world that kids in the 80's found themselves in. Learning to program in the 80's was simpler because the machines were more limited, and generally came with BASIC. Now we have Windows, which typically comes with no built-in programming language. What can be done to improve the situation?"

1,073 comments

  1. Second hard disk + Linux by A+nonymous+Coward · · Score: 2, Interesting

    That ought to do the trick. Pick some easy to install distro, does loadlin still work on WIndows, well, make a boot floppy if need be.

    1. Re:Second hard disk + Linux by los+furtive · · Score: 3, Insightful

      Wouldn't it be easier to just install perl on the windows machine? Your technique is neither easy nor intuitive. And I can't imagine it being something that _most_ 12 year olds can do (I wouldn't let my 12 year old inside my pc).

      --

      I'm a writer, a poet, a genius, I know it. I don't buy software, I grow it.

    2. Re:Second hard disk + Linux by shokk · · Score: 4, Insightful

      No no no. The kid wants to do something productive and actually program, not get trapped into setting up a whole new system and get involved in patches and unrelated packages. All he has to do is get a hold of a free language package on the web like Tcl/Tk or Perl or even LISP and he's good to go with one download and a double-click. So why go through the trouble of all that for something so simple? Talk about overengineering the solution.


      This is the problem with Slashdot readers: they automatically assume Linux=freeware. You know, freeware *does* exist for other systems. However, the author of the article didn't necessarily state that Windows was the system that was loaded on the theoretical 12 year old's target system.


      --
      "Beware of he who would deny you access to information, for in his heart, he dreams himself your master."
    3. Re:Second hard disk + Linux by JohnFluxx · · Score: 1

      Jeez man, get your son another machine then.
      I was coding C by 12, and sure knew the inside of my machine.

    4. Re:Second hard disk + Linux by rkz · · Score: 5, Informative

      give them a game to play which sneakly teaches them to program.

    5. Re:Second hard disk + Linux by los+furtive · · Score: 1

      Did you see the _most_ part of my comment? I'm sure you were a great kid, but you don't sound like the average. Would you let a 12 year old child replace the alternator in your car?

      --

      I'm a writer, a poet, a genius, I know it. I don't buy software, I grow it.

    6. Re:Second hard disk + Linux by x00101010x · · Score: 1

      Or just snag a copy of VMWare and load redhat on it.

      --
      DONT PANIC
    7. Re:Second hard disk + Linux by the_2nd_coming · · Score: 3, Insightful

      no, it would be easier to install python.

      you realy think an 8 year old can jump right into perl?

      Basic was popular to learn on in the 80's becasue it was such a simple language...python is even better than basic and it enforces good programming techiques.

      --



      I am the Alpha and the Omega-3
    8. Re:Second hard disk + Linux by saintan · · Score: 2, Funny

      Then get the kid a second car....jeeesh!
      I've been wiring stereos and cleaning carbs since I was 12!

      --
      ****--- A fortune cookie once told me the meaning of life...so I ate it. ---****
    9. Re:Second hard disk + Linux by saintan · · Score: 3, Insightful

      you're average box does indeed come with a programming environment:
      HTML and JavaScript (and any other web pluggable scripting)

      they are even simpler than say, Python (although Python is definite a great first language) and they come bundled with your average browser...its also a good first lesson in platform dependencies, standards, and the do's and don'ts of implemeting those standards (no names will be mentioned here *cough* IE *cough*)

      albeit they are narrow in scope and limited in features, but we're talking somthing to whet the newbies appetite right?

      --
      ****--- A fortune cookie once told me the meaning of life...so I ate it. ---****
    10. Re:Second hard disk + Linux by walt-sjc · · Score: 1

      Then download a distro like Knoppix that's easy and comes with ALL the languages people are touting.

      Sheesh. The fastest way to tun a kid off programming is to have them work on a windows machine. People promote Linux for this kind of thing simply because it's the best teaching tool out there and Unix systems were DESIGNED for programmers.

      Look, with programming, your not going to point and click your way out of it. You are going to use the keyboard. Hell, you can even start off with shell programming as the first step which has the advantage of teaching something quite useful that can be used with all sorts of projects in other languages.

      So yeah, we know freeware exists for windows, but getting a freeware programming environment going on Windows isn't all that easy either. One of the first things you need is a decent editor - notpad doesn't cut it. What you end up doing is installing a ton of stuff that comes Standard in most linux distros.

    11. Re:Second hard disk + Linux by missing000 · · Score: 4, Insightful

      "I wouldn't let my 12 year old inside my pc"

      I have to say you are way off base here.
      The fact is that unless you let your 12 year old break/fix pc stuff, providing they show an interest in it, you are telling them not to be interested in science.

      When I was 12, I was building clones from components, at 16 I was selling beige box's for a tidy profit. If my father had told me no when I wanted to see how the family machine worked, I would never have played with electronics very much.

      Today itâ(TM)s so much easier. Just buy them a cheep ebay throw away, an you have nothing to worry about. They will learn more from an old DOS machine then the bloated XP box you probably run anyway.

    12. Re:Second hard disk + Linux by los+furtive · · Score: 1

      Thank you, that's the best suggestion I've seen so far. And although it's weak, Javascript offers a good introduction to OOP.

      Let's hope you get modded up.

      --

      I'm a writer, a poet, a genius, I know it. I don't buy software, I grow it.

    13. Re:Second hard disk + Linux by BlackHawk-666 · · Score: 3, Funny

      and yet you'd let your 12 year old code in Perl? Aw, c'mon, show the poor little tyke some mercy and at least let him start with a structured and easy to learn language first.

      --
      All those moments will be lost in time, like tears in rain.
    14. Re:Second hard disk + Linux by BlackHawk-666 · · Score: 3, Informative
      Would you let a 12 year old child replace the alternator in your car?

      It was compulsory in our family when young to help dad repair cars. So yes, he did get me replacing alternators (relatively easy) or striping parts, cleaning and then re-assembling.

      --
      All those moments will be lost in time, like tears in rain.
    15. Re:Second hard disk + Linux by tankbob · · Score: 3, Insightful

      How about, as it states they've already got windows, they just install the .NET framework (which is available on Windows Update) NotePad to edit then just run the command compiler. Manual is available on MSDN (or you could download then entire SDK!). Failing that download #Develop (www.icsharpcode.net) if you want an IDE.

    16. Re:Second hard disk + Linux by Austerity+Empowers · · Score: 2, Insightful
      I hope that you would if that 12 year old was your own child. I probably have the relatively high paying (albeit economically uncertain) job I have today because at some point my dad let me do what I needed to do. I guess I started swapping simple cards in and out at around 9-10 (about the time when "sound blaster" because a game requirement).

      When I was 12 I desperately needed to swap my 286 for a 486. My dad was complaining about the $1000+ price tag associated with a new PC, so I told him I could do it for a few hundred. I'm sure he had his doubts, and feared for the life of his machine, but I swapped out the old board and voila. He gained a money saving computer techie for free, and ensured my early financial independence!

      Now I think linux is great and all, but the REAL reason I learned all of the above on a PC (as opposed to a mac) under DOS was because that was where the games were. If you give linux to a 12 year old they're not going to learn it, because the really good games you find in stores are on the PC. So the point about installing Perl on Windows is valid.

      The linux community REALLY needs to get gaming on linux to the point of being "real" if we want to have widespread appeal to youngins.

    17. Re:Second hard disk + Linux by los+furtive · · Score: 1
      I agree with you whole-heartedly. Enough people have repeated the same thing. The original point I was trying to make was that for the average joe with a computer adding extra hard disks and installing an extra operating system isn't a viable solution for learning how to program, but rather a flight of fancy for the typical linux booster (I'm a linux booster too, so lets not get started on that one). Installing perl (or python, which I have not used but will now check out since so many recommended it) is sooo much easier than opening up the PC, adding a 2nd hard drive, installing Linux and only then getting acquainted with a programming language.

      You comments concerning games are bang on, I owned my first C64 (bought with my own money saved up from babysitting neighbourhood kids) at age eleven, and my first experiences with programming were getting games to run, followed by typing out ML code from the back of Compute! magazine. If it wasn't for experiences like that I'm sure I wouldn't be a successful developer today.

      --

      I'm a writer, a poet, a genius, I know it. I don't buy software, I grow it.

    18. Re:Second hard disk + Linux by mrlpz · · Score: 1
      And, of course, people being so naive to think that there's no "automatic" language included within Windows.....Yutzes.

      If you're running any newer version of Windows, you can always download, install and use the Windows Scripting host. It's much like VB, in that you can create windows, buttons, loops, if-then-else, etc. Sure, it doesn't have a nice IDE, but then again...I don't remember any of us having an ide beyond the character ']' on Apple ]['s !

      Then again, has anyone seen the cost of student oriented development software these days...it's insanely cheap. So there's VB for them to learn ( if you MUST teach them something ).

      And who was the yutz who said to teach them Perl ? Are you kidding me ? Get real.

      Hell, if you have to teach them a HLL, then teach them something structured first, like Pascal. Teaching Free form languages to a kid as their first language ( IMO ) will only lead to poor coding behaviors.

      Or jeez, use JavaScript for crimoney sakes. It's built into practically every browser, and they can see their results in a window almost immediately.

      Linux by Choice, Windows by necessity ( gotta pay the bills ).

    19. Re:Second hard disk + Linux by JohnFluxx · · Score: 2, Interesting

      hmm not unreasonable.
      If you have a kid that wants to learn that sort of thing - then why not grab an engine for him to play with?
      Start with a diesal engine, and get it working, with a pump or something.

    20. Re:Second hard disk + Linux by yiantsbro · · Score: 1

      I think this is the perfect answer to the original question. This combination (available out of the box) provides the same learning capability as my C64/Basic setup did.

    21. Re:Second hard disk + Linux by Goldberg's+Pants · · Score: 1

      Or you could just grab Codewarrior from P2P and use that:)

    22. Re:Second hard disk + Linux by Anonymous Coward · · Score: 0

      Nice looking program! Reminds me of a few games on the Amiga that would teach you programming, with my favourite being Omega, by Origin. You'd program your tanks to drive around the landscape and blow up the other tanks which ran their own programs. You could then take your winnings and upgrade your tanks with accelerator boards to speed up their processing, better weapons, better armour, etc.

      C-Robots was another game like this, but I never really played that one.

    23. Re:Second hard disk + Linux by MikeFM · · Score: 2, Interesting

      I learned most my PC skills from breaking the family PC and rushing to fix it before my parents killed me. Of course it wasn't long before my parents were breaking the PC and asking me to fix it. I'll definately be giving my children a PC each as soon as they can sit up and teaching them how to take it apart and rebuild it. I'll probably wait until they can read and write to teach them programming. :)

      Is this any different than giving your kids legos or teaching them to build a tree house or any other hands on skills? At 2 I was already learning about chemistry and machines. I tried to build a time machine. As a kid I built robots and rebuilt my Atari.. all before the age of 10. I'd feel bad if I held my own children back.

      --
      At what price learning? At what cost wisdom? The price is a man's peace of mind, and the cost is his life.
    24. Re:Second hard disk + Linux by jericho4.0 · · Score: 1

      This isn't flamebait, stupid moderator. There are 20 good arguments as to why a kid would be better of learning Python than Perl.

      --
      "A language that doesn't affect the way you think about programming, is not worth knowing" - Alan Perlis
    25. Re:Second hard disk + Linux by eatdave13 · · Score: 1

      The average kid doesn't program.

      --
      "Verbing weirds language." -- Calvin
    26. Re:Second hard disk + Linux by Anonymous Coward · · Score: 0

      The linux community REALLY needs to get gaming on linux to the point of being "real" if we want to have widespread appeal to youngins.
      The problem is the linux community can't really do anything about it by itself (I know there are good coders in the linux community, but good code doesn't make a good game, have you ever tried freecraft ?), apart from putting pressure on game companies (but I'm afraid the community is too small for that, although there is some progress, e.g. Neverwinter Nights).

    27. Re:Second hard disk + Linux by RailGunner · · Score: 1
      While it would be easier to just install Perl on the Windows machine, I'm not sure you'd want a child who is learning how to program complete and unfettered access to the PC.

      While I'll admit Perl is a fantastic language, I'm not sure I'd start a beginner out on it. A better solution might be Java, which is also a free download / install, and then you don't have to worry about your registry getting screwed by your curious new programmer who wants to understand the way things work in your PC. While the JVM has it's limits, it is a pretty good sandbox for your aspiring developer to play in, without the nuances of pointers and memory allocation. Pascal would be another fine choice, except that I'd argue it's more of a dead language.


      Now I fully expect my fellow C/C++ programmers to point out that any programmer should know pointers and memory allocation, and I'd agree, but let the child walk with Java in a protected environment before running barefoot in the rough with C/C++.


      And really, the above applies to people who already have Linux and the gcc tools - Java for Linux is still a free download, and will still be a good environment for a first language.


      Finally, you'll also be giving your child a head start, as many universities are starting to teach Java as the Computer Science intro class instead of Pascal or C.

    28. Re:Second hard disk + Linux by lord_nightrose · · Score: 0

      That's totally irrelevant. His point is that MOST 12-year-olds would not be able to do it. You were obviously not the average 12-year-old.

      --
      This is not part of my post. It's my signature. I bet you're disappointed.
    29. Re:Second hard disk + Linux by Anonymous Coward · · Score: 0

      Wouldn't it be easxier for the youngster to kill himself instead of wasting his life away with Perl?

    30. Re:Second hard disk + Linux by justin74 · · Score: 1

      get the kid involved in irc using a windows client such as mirc, then expose them to the wonders of mirc-script...within days you'll have a leet script kiddy on your hands.

    31. Re:Second hard disk + Linux by petecarlson · · Score: 1


      Would you let a 12 year old child replace the alternator in your car?


      By the time I was 12 my dad would ask me how to replace the alternator on his car. It was easier to do it myself.

    32. Re:Second hard disk + Linux by dtfinch · · Score: 2, Insightful

      I didn't start programming until I was 9. Got a PCjr for free, with no software, turned it on, and after not finding a boot disk it would load up Cassette-BASIC from rom. What else could I do but learn to program? I had few friends, no game consoles, and little interest in doing homework or playing outside. Watching TV was fun, but it got boring at times. Programming was my only escape from boredom.

      Put a kid in a situation where they can do little more than program, keep them interested, and they'll catch on really fast. They'll write games to play games, etc.

      Although nowadays it's becoming gradually harder to protect kids from the temptations of the non-programming world. They sure don't make computers like they used to.

    33. Re:Second hard disk + Linux by Doctor+Cat · · Score: 1
      (Warning, self-promotion ahead)

      I designed the "DragonSpeak" scripting language in my game Furcadia primarily to be easy to learn and easy to use, rather than for power. I've seen 12 year old girls pick it up with ease and make fun things with it. I also know one guy that got really good at it, and then when he took his first programming class in high school, realized to his surprise that he was the best student in the class. Anyway we do need better editing tools and such, but I'm fairly proud of the language design in a lot of ways.

      (End shameless bragging)

      --

      Furcadia - A free online game with user created content, DragonSpeak scripting, & more.

    34. Re:Second hard disk + Linux by Anonymous Coward · · Score: 0

      My mistake, I didn't realize that everyone on slashdot is a former boy genius, and smart ass to boot.

    35. Re:Second hard disk + Linux by the_2nd_coming · · Score: 1

      but basic was the python of its time...easy syntax and simple to learn.

      --



      I am the Alpha and the Omega-3
    36. Re:Second hard disk + Linux by mesach · · Score: 1

      I always figured the answers to everything that we haven't discovered yet were locked away in our minds when were little, and by the time that were old enough to understand whats in our heads, were being told that everything won't work.

      I guess thats why I have to try everything for myself at least once, because maybe I was right and they were wrong.

      Always trust your instincts the first time, then if it doesn't work, listen to everyone else

      --
      moo.
    37. Re:Second hard disk + Linux by MikeFM · · Score: 1

      I sort of figured the same thing which is why I was good at the more uncharted areas (like AI) when I was a teenager.

      I'm still fairly good at such things largely because as you said I try things for myself. Obviously, if the experts have no luck then they aren't really experts. All really amazing things are invented by people regarded as crazy or foolish by the experts of their time.

      If it doesn't work.. tweak.. then try again.. repeat forever. Even if you don't discover what you were looking for you'll often discover something just as good. :)

      --
      At what price learning? At what cost wisdom? The price is a man's peace of mind, and the cost is his life.
    38. Re:Second hard disk + Linux by Anonymous Coward · · Score: 0

      I did this too and started a company. Dell.

  2. A couple places to start by David+E.+Smith · · Score: 4, Informative
    First, for those interested in the subject, get them a basic "how to program" book. One that's gotten fairly good reviews among the (few) teachers I know is How To Design Programs. It has the remarkable benefit of being free (as in beer) online, and I believe its learning environment is equally free also. (OTOH, it's Scheme. Some people are allergic to parentheses.)

    Second, once they've got the basics down, get them something a bit more practical. Cygwin is free, and comes with gcc/gc++ and friends. Or even break down and spend a few bucks on Visual Basic (or, if they're really bright, a second hard drive with Linux/*BSD/whatever, so they can pick up GTK+ or QT or whichever widget set is trendy these days).

    Most of the advogato article's suggestions are at best silly. I think he's promoting the return of LOGO, or whatever that language was where you did everything with a "turtle". Except that e apparently expects Microsoft, Sony, Nintendo, and everyone else to agree on a single standard, which is at best laughable. None of those game consoles even come with a keyboard any more, and I don't think you can even get keyboards for the GameCube...

    1. Re:A couple places to start by Anonymous Coward · · Score: 0

      GTK+ has been built under cygwin. Easy to find with a google search.

    2. Re:A couple places to start by borgdows · · Score: 1

      actually, you CAN!

      (it is used in Phantasy Star Online)

    3. Re:A couple places to start by PunchMonkey · · Score: 2, Informative

      None of those game consoles even come with a keyboard any more, and I don't think you can even get keyboards for the GameCube...

      http://shop.store.yahoo.com/pandorascube/gamkeysol out.html

      And no, it's not the result of a fark photoshop contest.

      --
      I'll have something intelligent to add one of these days...
    4. Re:A couple places to start by Dark+Paladin · · Score: 4, Insightful

      It's the lack of a standard that I think the real problem is.

      A few years back, I remember the rumors of a standard Windows Scripting Language that would be to Windows 9x systems what bat was to DOS. (I haven't power used Windows in years except to run games on, so forgive my ignorance.)

      But the biggest issue with this would be what language? Do you make it uber simple like bat, which could do some interesting scripting things but no real programs? Do you let people actually make up some "interpreted language" programs (like BASIC) so they can do some things, then deal with the headaches from users messing up their systems (or, worse, the viruses that would span if the language actually let you do "stuff" with it - Windows has enough problems with Office macros running amuck in the world without adding more headache).

      And what kind of language? Visual Basic is still around, but I don't know of any serious programmers who really use it hard core - it's more for very small, internal apps (yes, there are visual basic apps out there, but last I checked, nobody's programming Doom III in Visual Basic, move on). So would you build it in C, C++, C#, Java, Perl, Python, Pascal - as soon as you do, there's another group of people (even inside the company making this "Basic scripting language") who have thier own near religious ferver regarding how it should work.

      Odds are, it's just easier to go out, get yourself the Java SDK and notepad/Cygwin and Perl/Python, and go from there.

      Oh, and you can get a keyboard for the Gamecube. I'm not sure if they're selling in the US yet, but they're mainly used for Phantasy Star Online addicts. (Though I would not mind a "Typing of the Dead II" - that game kicked ass.)

    5. Re:A couple places to start by Anonymous Coward · · Score: 5, Insightful

      Kids don't want a "how to program" book. They want to write small, simple programs that do cool things. Gcc/gc++ and friends? For a 10-year-old? I don't think so.
      What is required is a very simple interface with simple commands. Programming is about Problem Solving (I resisted the urge to put that in caps). It is not about coding style or compilers or interfaces, any more than a sports car is about the CD changer in the trunk.
      Logic is logic. What we need *is* a return to a simple environment for kids. The smart ones will run into restrictions of the environment and branch out into other environments on their own.

    6. Re:A couple places to start by Eight+01 · · Score: 3, Insightful

      PHP or VB/ASP are very simple and easy to learn.

      I'd suggest a kid get an inexpensive web account or learn how to install a web server on their computer (such as PWS for Windows). Messing around with server-side scripting is very approachable, and the UI is a webpage, which every kid understands.

    7. Re:A couple places to start by jmccay · · Score: 2, Interesting

      From what I have seen of it. i would suggest teaching them ruby. It seems to be a decent language, and has lots of built in types. They used to advertise it as bringing the fun back into programming.

      --
      At the next eco-hypocrisy-meeting, count the private jets used to get to the meeting. Should be interesting to see that
    8. Re:A couple places to start by sdjunky · · Score: 2, Informative

      "Visual Basic is still around, but I don't know of any serious programmers who really use it hard core - it's more for very small, internal apps (yes, there are visual basic apps out there, but last I checked, nobody's programming Doom III in Visual Basic, move on)"

      Wel.. There is this feature rich, stable and FREE CD Burning Software written in Visual Basic 6.

      You can find CDBurner XP here
      VB does have it's uses. No. Nobody's going to write Doom 3 with VB but it's not as limited as people tend to think it is.

    9. Re:A couple places to start by gallen1234 · · Score: 2, Insightful

      So is JavaScript. I've had some luck teaching kids to do client-side scripting this way. The language is straight-forward and they can get the immediate gratification of seeing a web page (which you're right - every kid understands) do dynamic things.

    10. Re:A couple places to start by tomhudson · · Score: 4, Insightful

      Another place to start is with the javascript interpreter available in most browsers. You can run a lot of javascript code locally w/o the need for a server, just make sure everything you need is in the file. Make all sorts of interactive calculators, games, whatever, via javascript/css/the DOM. Easily passed around via email/floppy/printed code listing/cd :-)

    11. Re:A couple places to start by Planesdragon · · Score: 1

      And what kind of language? Visual Basic is still around, but I don't know of any serious programmers who really use it hard core

      You're talking about a replacement for batch files, and "not hardcore" is a problem?

      VB makes an ok framework for accessing the extant systems in Microsoftie land--it's used for Office automation, for instance.

      Plus, its simple enough that even codephobes like me can pick up and do something with it. ;)

    12. Re:A couple places to start by Eight+01 · · Score: 2, Interesting

      The point of the article is to hilight programming languages and environments that are approachable for kids and can teach some basic logic and simple programming.

      VB would be good for this except for the required overhead (Visual Studio).

      VBScript or PHP scripts fit the bill nicely.

      Expecting a 10 year-old to pick up C++ and start working on the next Doom is ridicuous. Kids want something that is simple, easy to understand, and allows them to create fun applications. They don't want to get mired in the arcitecture and process and years of time neccessary to write a modern commerical application.

    13. Re:A couple places to start by RevAaron · · Score: 4, Interesting

      I've never heard about any standard Windows scripting *language,* but there is a standard Windows scripting system, called the Windows Scripting Host, WSH. It's not quite as nice the the Open Scripting Archetecture in Mac OS, but it isn't horrible.

      WSH, like the OSA, is neat in that you can plug-in a number of different languages into it. In some ways, sort of a proto-.NET, as you can share functions between languages. That is, if I write up a function in Perl, I can share it throug the WSH to JScript, VBScript, or any other WSH language. Or vice-versa. PerlScript- the bridge between perl and the WSH- comes with the ActivePerl distro for Windows.

      WSH is a neat toy, and I've used it for some automation on my work windows machine. But having done a lot of AppleScripting on my own and work Macs, I can say that WSH isn't as useful- most apps have no idea was WSH, and the apps which do support it, don't support the wealth of actions like Mac OS's OSA does. Mind you, AppleScript is just one language in the Mac OS OSA, and it happens to be the default one. However, you can get language extensions to script apps- just like you would in AppleScript- for Perl, JavaScript, Ruby and Tcl and more. (that was just off the top of my head)

      Nobody is programming Doom III in anything except C, assembly, and maybe some C++. Does that make every other language irrelevant and worthless? No! I personally couldn't give a flying fuck about Doom III, and thankfully, never have to use C++. I must work on phantom appliacations! OOOOH SPOOKY!

      I can't say I enjoy VB or use it anymore, but even being a staunch Smalltalk programmer, will not hesitate to use RealBasic (with which I can support Mac OS 9, X, and Windows) for an application for which it makes sense. There are a lot of applications out there which are written in VB, a lot more than you seem to think. Not just for very small, internal apps. Heck, a fair amount of people write a bunch of their code in C++, COMize it, then use it all from VB.

      --

      Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
    14. Re:A couple places to start by Anonymous Coward · · Score: 0

      Just a couple of nits and a comment. First, LOGO did not require you to do everything with a turtle. LOGO was (and still is) a full featured variant of LISP as is Scheme. See "Interactive Problem Solving with LOGO" (with H.-D. BÃcker and H. Eden); Lawrence Erlbaum Associates, Inc., Hillsdale, NJ, 1991 to see just how rich the language is. Second, one can add a keyboard to the PS2 and indeed must to use the Linux system for it.

      And the comment. As one who teaches computer science to undergrads, I find that students whose first language experience is functional (i.e., LISP, Scheme, LOGO, SML) have a much easier time picking up procedural languages than when the inverse is true. So show kids that LOGO is more than turtles and they'll find programming easier as adults.

    15. Re:A couple places to start by Java+Pimp · · Score: 1

      This is a bit overkill for kids. I don't think Scheme is a very good beginner language for some 8 year old who just wants to write simple text/graphic games or whatever. (At least that was what I was doing at that age...)

      Windows used to come with some simple version of QBasic but I haven't seen that around for a while. What we need is some SIMPLE language that will hold a kid's interest (not LISP!) while they can create fun/cool programs.

      Maybe something like pascal? What would be better would be to develop some simple basic-like language for creating [insert modern GUI desktop OS here] based applications that handle I/O, graphics, animation, etc... without the kid needing to know about the underlying platform. The modern look will keep the kid interested (as opposed to cryptic command line apps of the past) and possibly the kid might just learn a little about programming.

      I learned on the TI-99 back in the day. It had a really cool beginner book for learning programming in their Basic. (Complete with cartoons of a number 5 jumping into a cardboard box representing a variable!) I have not seen an equivalent of that for kids in quite some time.

      --
      Ascalante: Your bride is over 3,000 years old.
      Kull: She told me she was 19!
    16. Re:A couple places to start by Anonymous Coward · · Score: 0

      There is some sort of windows scripting language in existance. It's in the form of a .scr and is oficially called a "windows explorer command".

      There are already a couple on your computer (show desktop, show channel bar, etc.). AFAIK (well a quick google turned up nothing revelant), further documentation is non-existant, so it does practically no good.

    17. Re:A couple places to start by RevAaron · · Score: 1

      And no, it's not the result of a fark photoshop contest.

      Ha! You read my mind- I had at first thought it was something along those lines, too ugly to be real...

      --

      Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
    18. Re:A couple places to start by czth · · Score: 1

      PHP or VB/ASP are very simple and easy to learn.

      For the love of all that is holy, we don't need more script kiddies or PHP programmer-wannabes. The article's suggestion of Logo is actually pretty good - instant results; for a clean scripting language, give them Ruby (and perhaps they can graduate to Perl later if necessary e.g. for better library support), but dear God let's not create any more Visual Basic users (bah; I refuse to refer to them as programmers). Even Delphi (or Kylix) would be preferable (for RAD Windows development), or Turbo Pascal in DOS (i.e. a Win9x console), and if they can handle Delphi they can handle Visual C++, especially with all the wizards it has. Preferable not to start kids dependent on Windows, though; the suggestion of the web as a first "platform" is a good idea (especially as it can do graphics relatively easily). My kids are gonna use Unix and they're gonna like it.

      czth

    19. Re:A couple places to start by Anonymous Coward · · Score: 0

      Visual Studio is not required, however, to write .vbs files. Notepad can do that.

    20. Re:A couple places to start by Creepy · · Score: 1

      Programming is also about creating and creative process - a programmer with no creativeness isn't going to get far in the industry. The objective may be to solve a problem, but how you get there is 99% of the battle.

      I also don't fully agree with your 'simpler is better' arguement - I started coding around 9-10 years old, and moved quickly to assembly programming (the only alternative to BASIC) because BASIC was too slow for the stuff I wanted to do - write games. The one thing I wanted to learn as a 10 year old was how to move a sprite around the screen and make it blow up. Later, when I'd learned how to do that by writing Space Invaders, I wanted to know how to scroll the entire screen to one-up my friend's Space Invaders (plus, we'd seen it in Ultima and some newer side-scrollers).

      The kicker was when I was asked for help in scrolling the screen by a 13 year old on IRC last week, so I guess times haven't changed much :)

    21. Re:A couple places to start by LilMikey · · Score: 1

      The problem with lettings kids get their roots in web programming is that it's fairly inaccessible away from the classroom. Once school's over you can't expect a bunch of 10 year olds (or their even more clueless parents) to set up and configure a web server and hosted sites cost money. If you ask me, JAVA would be an excellent start. The tools are free, there's a ton of documentation, it's cross platform and fairly easy to use. I'd say that JAVA programming using the SunONE studio is only slightly less obvious that VB. On a side note, the problem with these darn kids today is they just aren't as impressed with what you can do. Back in the day, a happy birthday animation writting in BASIC wowed the entire class. Most of them had hardly ever used a computer and feared the command prompt like kryptonite. Today, there are so many computers and so much software that the things you can do after a couple hours of learning just aren't that impressive to them.

      --
      LilMikey.com... I'll stop doing it when you sto
    22. Re:A couple places to start by cduffy · · Score: 1

      Dunno -- Ruby's got some nice features (ie. pure OO), but it strikes me as more of a coder's language; the mandatory braces are just one more place where a newbie can make syntax errors, the REs clutter up the syntax without really adding features over having them in the standard library, and it just doesn't Feel Right to me.

      Python, OTOH -- well, a few years ago I volunteered to give an after-school programming class at a local junior high, and every last student had Python's syntax (and an understanding of program flow control and other basic concepts) within the first few weeks. We wrote a simple wxWindows-based graphical program demonstratinh for loops, if/elif/else conditions, functions and such just a bit later, and just about all of them could, if asked, read the code and trace through it by hand.

      They mostly didn't realy get the "algorithmic thinking" bit needed to actually *write* code of their own, unfortunetly -- but probably that would have been easier if they'd taken an algebra class first.

    23. Re:A couple places to start by e2d2 · · Score: 3, Informative

      Expecting a 10 year-old to pick up C++ and start working on the next Doom is ridicuous. Kids want something that is simple, easy to understand, and allows them to create fun applications. They don't want to get mired in the arcitecture and process and years of time neccessary to write a modern commerical application

      http://turtletracks.sourceforge.net/

      Or any other Logo implementation might do fine for young ones. Nice and easy way to teach logic.

    24. Re:A couple places to start by Grotus · · Score: 1

      .vbs files are for VBScript.

      VBScript != VB just like JavaScript != Java

      --
      "From my cold, dead hands you damn, dirty apes!" - CH
    25. Re:A couple places to start by operagost · · Score: 1

      Most ISP's offer web space to their customers. I know Earthlink does, and they're the biggest after AOL and MSN. Every other ISP I've had does as well- although all of them are dead now!

      --

      Gamingmuseum.com: Give your 3D accelerator a rest.
    26. Re:A couple places to start by jdh-22 · · Score: 1

      ppffft, I made my kids not start out on this crap. They started out learning how to program in assembly.

      --
      Every Super Villan uses Linux.
    27. Re:A couple places to start by GnuVince · · Score: 1

      Why exactly can't you write simple text/graphic games or whatever with Scheme or Lisp?

    28. Re:A couple places to start by qtp · · Score: 1

      LOGO is not a bad place to start, even if it is a little out of vogue.

      It is a subset of LISP, it is easy to learn, and you can write programs that have some amazingly complex behavior (simple AI).

      Not everyone is wowed by the "make pretty apps with lots of buttons" school of programming, and LOGO (or LISP) allows you to expiriement with some complex logical systems without having to face a steep learning curve.

      There are some rescources here.

      --
      Read, L
    29. Re:A couple places to start by Anonymous Coward · · Score: 0

      Yes to LOGO. When my 3.75 year old is
      older (it helps to know how to read
      if you're going to program :-) I'll start
      him on LOGO. No need for him to spend
      time looking at a CRT until then.

    30. Re:A couple places to start by jafac · · Score: 1

      There was a /. article about a year or so ago about a Microsoft initiative to develop a scripting language that was an enhancement to the DOS environment, was object oriented, and was an interface to .NET functionality.

      Sounded like an unholy hybrid of command.com, csh, and ActiveX.

      Haven't heard anything about it since then.

      --

      These are my friends, See how they glisten. See this one shine, how he smiles in the light.
    31. Re:A couple places to start by crisco · · Score: 2, Insightful
      I completely agree. The learning curve is short. You start by not even programming, but putting HTML together to create your own Geocities page. Then you want rollovers and swipe some JavaScript.

      From there you might move on to Flash, where you've gotta learn their ActionScipt to do anything useful. And Flash is pretty much what the Advogato author was describing, play sounds, move graphics. Only it costs money unless the kid snags it from p2p.

      Better yet, the kid decides that he wants something on the server so he has to learn about webservers. Somewhere he finds Apache, PHP and MySQL that run on Windows. He gets an introduction to PHP, Perl, maybe some other languages. He finds out that his web server is going to run better on Linux so he grabs a distro and checks it out.

      So by now he's decided he likes computers. CompSci for college? Definatly an option. Even if he were to choose a major in some other field, he's got some experiece programming and making complicated systems work.

      --

      Bleh!

    32. Re:A couple places to start by BlackHawk-666 · · Score: 1
      *prepares to receive flaming*

      Visual Basic is still around, but I don't know of any serious programmers who really use it hard core

      We use it every day here at work and we're serious :-) We use it mainly because it's fantastic for producing middle tier COM components quickly and easily. The site I develop for takes 100,000,000 hits / month, so I'd say VB is serious. Personally though, perhaps PHP, Python or some other langauge might be better. And definitely buy a small cheap machine that the kids can trash whenever they like. They'll learn better when it's their machine and they know they can destroy it.

      --
      All those moments will be lost in time, like tears in rain.
    33. Re:A couple places to start by Java+Pimp · · Score: 1

      I can. You can. I'm pretty sure most of us that read Slashdot can.

      The article isn't about us, it's about kids that are just being introduced to computers and programming. There isn't a simple, free tool shipped with computers anymore that is a good place for kids (we are talking elementary school here) to start.

      Basic was good, it provided instant feedback without needing to learn a whole lot of other crap.

      10 PRINT "Hello Johnny!"

      was all that is necessary for instant results instead of something more convoluded as:

      #include <stdio.h>

      int main (int, char**)
      {
      printf ("Hello Johnny\n");
      return 0;
      }

      "What the hell is all this other crap, I just want to print my name."

      Think like an 8 year old who's never seen a programming construct. If the language isn't simple and able to provide immediate feedback without needing to learn all the details of a language, your average 8 year old is gonna lose interest.

      --
      Ascalante: Your bride is over 3,000 years old.
      Kull: She told me she was 19!
    34. Re:A couple places to start by Anonymous Coward · · Score: 0

      By "serious programmers" he means Comic Book Guy types who fetishize anything *nux. To these guys, anything made by Microsoft is "the worst product ever!".

    35. Re:A couple places to start by Cruxus · · Score: 1

      Exactly. In fact, this is how I began programming. After learning HTML, I heard about JavaScript and what it could do for webpages. It didn't really fix my craving for learning real programming to make a nice computer game, but it was better than trying to edit pre-existing *.EXE files in Notepad or EDIT.COM to try to see whether that would change anything!

      Eventually, I did get a real C++ compiler, Visual C++ 6.0; and this was about a month after I had begun learning C++! Yes, DGJPP did exist, but it was for DOS, and it was too large a download for my connection at the time.

      --
      On vit, on code et puis on meurt.
    36. Re:A couple places to start by F452 · · Score: 1

      On a side note, the problem with these darn kids today is they just aren't as impressed with what you can do. Back in the day, a happy birthday animation writting in BASIC wowed the entire class.

      You got that right. I remember how proud I was back in 1982 when my dad showed me how to "hack" in to Oregon Trail running in BASIC on the school's Commodore PET computer. We'd change the text prompts to use all kinds of hilarious (to a 12-year-old) foul language.

      Ah, yes, and then there was the poking of colored blocks on to the family television set with the VIC 20...

    37. Re:A couple places to start by Anonymous Coward · · Score: 0

      As the book mentions, Scheme as it is used in this book was developed in part by watching Rice's comp lab students.

      Though I was not one of the aforementioned students, others at Rice conveyed the hatred of Scheme quite deeply, but the best one expressed his hatred in a Truly Great Way:

      Rice uses Solaris fairly commonly as far as UNIX labs went in the mid 90's. Scheme was implemented through these machines, requiring a campus-wide account for access (usually set up early in a freshman's tenure).

      One individual discovered at the peak of his frustrations with Scheme that a divide-by-zero would crash the program AND the computer. After complaining without much success to the COMP dept and IT, he set his .logout to run a DIV/0, promptly taking out the machine he was on.

      While this isn't too bad for the SPARc 1+'s and SPARc4's, it also worked on the major servers
      (UltraSPARc 1000's, etc.), causing much panic and many emergency pages for the IT staff.

      The IT staff suspended his account and he promptly went to U-Court, where he testified to the affect that "if you allow such crappy software on your system, you deserve this". He then pointed out his previous attempts with COMP and Owlnet (IT dept) to have it removed.

      COMP (and other depts) complained it couldn't get work done because the servers were down. Owlnet was screaming murder because it was their damn software that allow the servers to go down in the first place. COMP refused to remove Scheme in light of nothing better to teach students with. So the problem kept existing, as other frustrated students kept adjusting their .logout files to keep from having to turn in programming assignments on time. And then getting their account suspended, which was even better than just having a few hours without a server because now they can't do the assignment at all...

      After much fighting, someone finally found and fixed the problem in Scheme... but apparently other "interesting issues" still exist

    38. Re:A couple places to start by HiThere · · Score: 2, Insightful

      You don't even need CygWin. Just download the latest Python. Or Ruby. Or even Squeak (Squeak may be more fun..though I find it less job related).

      And get a good book on programming, and translate it's examples into your downloaded language. ("Hello, World" is easy, but it quickly gets more complicated == interesting.) By then you're started enough to work on something that *you* find interesting.

      But this *is* assuming a lot of internally generated motivation.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    39. Re:A couple places to start by mentin · · Score: 2, Insightful
      VB would be good for this except for the required overhead (Visual Studio).

      Move to VB .NET - you don't have to use Visual Studio anymore. Microsoft's .NET distribution comes with free (as beer) VB .NET compiler (vbc.exe in frameworks folder) which does not require Visual Studio. You can program in Notepad or any editor.

      Of course most people would still like to use VS - VS can generate lots of useful code in minutes, which would take hours to write manually. I've not seen anybody creating complex UI "manually" these day, it just does not make sense. Same with Web Services etc.

      But if you have good editor (like SlickEditor) that can perform many of "manual" tasks and don't do UI, you can probably live without VS fine.

      --
      MSDOS: 20+ years without remote hole in the default install
    40. Re:A couple places to start by Anonymous Coward · · Score: 0

      Heck, a fair amount of people write a bunch of their code in C++, COMize it, then use it all from VB.

      Yup. For instance, I find GUIs are very easy to create in VB, but for the main "guts" of most of my programs I prefer to use C++. So, I do just that - I write the core of my programs in C++, and use VB for the interface. Best of both worlds!

    41. Re:A couple places to start by autopr0n · · Score: 1

      The point of the article is to hilight programming languages and environments that are approachable for kids and can teach some basic logic and simple programming.

      VB would be good for this except for the required overhead (Visual Studio).


      Whats wrong with overhead? The helpfull environment of Visual Studio would be great for kids. (I mean, if it wasn't for the fact that it was single threaded and an unbound loop in your code would crash the program, killing all your work since the last save... ahem...)

      A powerfull IDE with a good programming language would be a lot better for kids to learn on then shell scripts and command line compilers.

      --
      autopr0n is like, down and stuff.
    42. Re:A couple places to start by rmstar · · Score: 1


      What's wrong with

      (format t "Hello Johnny!!~%")

      Think like an 8 year old who's never seen a programming construct. If the language isn't simple and able to provide immediate feedback without needing to learn all the details of a language, your average 8 year old is gonna lose interest.

      Well, something interactive, then. Like -- Scheme or Common Lisp.

      Having the simplest and most regular notation should help too.

      rmstar

    43. Re:A couple places to start by Elbows · · Score: 1

      The problem with java is that it's very heavy-weight. The APIs are complex, and you have to write a lot of boilerplate code before you can do anything (i.e. public static void main...).

      Something like LOGO or basic is ideal -- you can type 'print "Hello world!"' and get instant results.

    44. Re:A couple places to start by Reverend528 · · Score: 1

      How about reviving Duke3d? It offered a simple interpretted language (.con files) that offered quick results and offers a slightly more interesting environment than LOGO. It was one of my first programming experiences. Kids can start small, changing values, giving themselves more ammo, etc, and eventually work into programming their own rocket-launching trashcans of death. There's a lot to be learned from a stable existing program base that's open to hacking. Not to mention, it now fits the technical/ethical preferences of those open-source types.

    45. Re:A couple places to start by Anonymous Coward · · Score: 1, Funny

      > My kids are gonna use Unix and they're gonna like it

      Your poor kids are gonna get beat up a lot.

    46. Re:A couple places to start by aserra · · Score: 1

      I read it as he was trying to get people to understand that it is difficult for *any* newbie to get up and rolling nowadays, especially a person StarLogo that has been created by the brains at the MIT Media Lab. While targeted for 13+ year olds, it can be a great place to begin for the youngins! They even have a reasonable resource site for those who are trying to teach or expose this language to others.

    47. Re:A couple places to start by aserra · · Score: 1

      I read it as he was trying to get people to understand that it is difficult for *any* newbie to get up and rolling nowadays, especially a person under 10.

      If you are looking for updated LOGO (which is a good place for a 7 - 8 year old to start since they have just begun reading and really beginnign to understand things instead of just mimicking), one should take a click over to StarLogo that has been created by the brains at the MIT Media Lab. While targeted for 13+ year olds, it can be a great place to begin for the youngins!

      They even have a reasonable resource site for those who are trying to teach or expose this language to others.

    48. Re:A couple places to start by Goldberg's+Pants · · Score: 1

      Programming is about Problem Solving

      Erm... No it's not. How is programming "Doom" problem solving? If you mean the actual programming itself, then no, it's not problem solving either. It's no different than learning a foreign language. Nobody calls learning Japanese problem solving, so why in the hell is learning C/C++/Java/Whatever problem solving? I see this a lot, and it's simply not true.

    49. Re:A couple places to start by Anonymous Coward · · Score: 0

      The overhead per se isn't bad, it's that it is expensive overhead. The spirit of the original post is to have a programming environment accessible on the everyday computers that kids are around.

    50. Re:A couple places to start by Marc2k · · Score: 2, Informative

      No one's writing Doom III in C#, Java, Perl, Python or Pascal either, Cap'n, those are all relatively horrible languages to write graphics intensive apps on. It sounds like you don't know what you're talking about with VisualBasic either. Update your analogy or update your list of what's '1337'.

      --
      --- What
    51. Re:A couple places to start by Anonymous Coward · · Score: 0

      I got started programming at probably an average age for most people not having the benefit of having computer-learned relatives or friends (16), and I didn't have $35-50 to blow on computer books, nor would I have known where to find the Squeak environment or a Python interpreter. Hell, I'd have no idea what you were talking about when you said 'environment' or 'interpreter'. The difference ending with my generation of coders is that the internet was just starting to flourish in the consumer sector. Before kids had the internet, they may (like myself) have started tinkering around with qbasic or something else built-in, sometimes because that's all that was installed on the machine of interest. It's true that today's children have access to a literal treasure trove of programming information at their fingertips when they hop on a computer...but with clever marketing and targeted ads, which do you think they'll surf too, ArsTechnica or Nickelodeon.com?

    52. Re:A couple places to start by Marc2k · · Score: 2, Interesting

      Hm...following your logic...then you've read aloud the Doom binary in Japanese before? I doubt it. However, to his credit, you could describe Doom (however excruciating) in boolean logic, and of course logic is a means of solving problems.

      --
      --- What
    53. Re:A couple places to start by Q+Who · · Score: 2, Informative

      Nobody is programming Doom III in anything except C, assembly, and maybe some C++.

      Doom III engine is written in C++.

    54. Re:A couple places to start by kfort · · Score: 1

      how is that easier than

      (display "Hello Johnny")
      (newline)

      ?

    55. Re:A couple places to start by d3faultus3r · · Score: 1

      Microsoft has probably created around a dozen "standard" programming languages. Every single one was either utterly useless or horribly buggy. The world doesn't need another "standard" programming language. Having a standard programming language would probably hurt programmers due to the necessity to learn a whole new programming language. After all, most programming languages are good for specific tasks: Java for platform independent web enabled programs, Perl/cgi for network and web related tasks, C/C++ for most large scale programs and BASIC for beginning programmers. To try to create an overall programming language would be nigh impossible since it would have to incorporate all this from the ground up. It's much better to just stick with what already exists and works.

      --
      read my blog
      musings on politics and technol
    56. Re:A couple places to start by awol · · Score: 2, Informative

      I don't think there is anything inherently wrong with javasript that would make it broken enough to suggest that it is a bad place to start.

      It is with every machine you can think of. It has procedural aspects, some decent obect oriented features, yep, I reckon it just might work. Nice idea!

      --
      "The first thing to do when you find yourself in a hole is stop digging."
    57. Re:A couple places to start by Anonymous Coward · · Score: 0

      That would be .vbs, not .scr...

    58. Re:A couple places to start by Cromac · · Score: 1
      Yes but how many of those ISPs that offer free web space allow ASP or CGI scripts? None of them would be my guess.

      http://www.webhost4life.com has a plan for less than $5 / month. If the parents can afford a computer for the kid and internet access they can manage to find $5 a month for a place to host their site that does allow that, assuming they don't want to install IIS on W2K/WinXP (yes, IIS installs on W2K pro, not just server).

    59. Re:A couple places to start by Goldberg's+Pants · · Score: 1

      I had this debate with my wife after posting this:) I still don't buy the "programming is problem solving" paradigm, at least not how most people use it.

      And I'm not sure what you're trying to say with then you've read aloud the Doom binary in Japanese. From a brain perspective, the exact same parts of the brain that are stimulated while learning Japanese are those that are stimulated learning, for example, Java (like I am currently.) You have to learn the appropriate syntax etc... Japanese is the second hardest language on Earth to learn (I think Mandarin is the first).

      So, while programming can be USED to solve problems, in itself, the language is not problem solving (unless you want to pedantic and count the actual learning of syntax and structure.)

    60. Re:A couple places to start by Anonymous Coward · · Score: 0
      It's the lack of a standard that I think the real problem is.
      I agree, Yoda.
    61. Re:A couple places to start by HiThere · · Score: 1

      I think they'll use a search engine.

      If they don't have the cost of a good text, they sure don't have the cost of MSVB. But if they look in Google for... well, that didn't work. I ended up at Java and C (with a bit of VB). I guess they'll need someone to point out that Python and Ruby are better choices. And Squeak is more fun. But that's still where they should start.

      But they could even start with Logo. There are free versions of it around... starting at, say, http://el.media.mit.edu/logo-foundation/logo/progr amming.html they can even get a tutorial (N.B., that link has no spaces).

      But learning to find things on the web and to use search engines would probably be a more valuable skill than programming, anyway, even if it is easier.

      N.B.: I'm not really reccommending Logo. That language has always looked more promissing than it turned out to be. I used to expect better of it. OTOH, it's easy to pick up the basics quickly.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    62. Re:A couple places to start by Uart · · Score: 1

      Oh god, not Logo. I learned very little about actual programming from that. My 8th grade "computer programming" class consisted of Logo and Hypercard...

      --

      Opinionated Law Student Strikes Again!
    63. Re:A couple places to start by Anonymous Coward · · Score: 0


      The Bank of America telephone banking system VRU software is written in Visual Basic 6.0. Used to be on the dev team at PTEK in Atlanta...pretty damn big project... now I just code web/db apps in Linux :)

    64. Re:A couple places to start by MikeFM · · Score: 1

      I'd say Linux (or BSD) would eb a better sand box to learn to program in.. since it's impossible for a child to accidently crash the system. They can do anything they want in their own account and things will keep running.

      I'd suggest Python as an easy language to learn. I've been making a somewhat LOGO-like module for Python that uses Pygame for it's display. That could be a nice starting place for children.

      --
      At what price learning? At what cost wisdom? The price is a man's peace of mind, and the cost is his life.
    65. Re:A couple places to start by johnnyb · · Score: 1

      I prefer Python for scripting COM components - it really is a better language.

    66. Re:A couple places to start by Anonymous Coward · · Score: 0

      How about Flash MX?

      It's a bit more intuitive than most programming languages and ActionScripting is object oriented (and can be quite powerful)...

      Not to mention, it is all wysiwyg.

      Of course, for the rest of us who can't afford to buy Flash MX (about 500 bucks!), there are much cheaper alternatives like Swish2 that costs between $20 and $50 (depending on what features you want) and is even easier to use.

      This will get kids learning on a programming environment that can be instantly gratifying (they make their own little web pages) and can get them interested in object oriented programming / visual programming, and who knows!

      Definitely something more within the league of a first time programmer (I wish it was around when I was first programming a computer... beats the heck out of ROM basic or assembly).

    67. Re:A couple places to start by Keeper · · Score: 1

      Does Apple still make Hypercard? That fits the bill to a T.

      Incredibly simple to use, and you can do some really fun stuff with graphics and sound with little programming knowledge.

    68. Re:A couple places to start by tonyl · · Score: 1
      WSH is a neat toy

      I agree (and I'm rather anti-Windows in general), but the biggest problem with this is the difficulty of distributing WSH scripts to someone else. It's not fun: you really need a professional installer program if you want people to be able to easily use the program you wrote. For many little one-off's, that's a lot more effort than the script was.

      --
      -- Tony Lawrence
    69. Re:A couple places to start by blix5 · · Score: 1

      VB is single threaded by default, but anyone that has gone beyond the level of 'Teach Yourself Visual Basic in 21 Days' knows that VB can use the Win32 API to create additional threads. As for the unbound loops that crash VB apps, proper (and common sense) error handling would avoid fatalities in the program.

    70. Re:A couple places to start by RevAaron · · Score: 1

      I've never done anything big in WSH, only creating a bunch of small scripts, here and there. Distrubuting them was easy- I put the entirity of the script in one file and double-clicked it on the other computer. It isn't an exe, but for the little on-off's, why would you want anything more complex? Why not just share the .wsh file? (Or whatever the extension- the XML WSH files)

      --

      Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
    71. Re:A couple places to start by Hoch · · Score: 1

      I for one learned how to program on a calculator. Ti-Basic is found on all the Ti series graphing calculators, and it can get the job done for a variety of things. They might be a bit expensive, but they are required by most schools so it does not hurt to start early. One benefit of this is that it frees up the family computer. There may be some restrictions to programming on a calculator, but when the kid is writing programs that he/she can use in class, he/she will certainly feel ahead of the game. Another side benefit is that when the teacher asks the kid to add all the odd numbers between 1 and 2003, the kid can say "Screw algebra, I will bruteforce this."

      -hoch

      --
      2*31*37*263
    72. Re:A couple places to start by tonyl · · Score: 1
      Why not just share the .wsh file? (Or whatever the extension- the XML WSH files)



      While newer MS systems will have WSH, older systems don't necessarily..

      --
      -- Tony Lawrence
    73. Re:A couple places to start by LiquidCoooled · · Score: 1

      I started coding because it was an option on my desktop (sic) when I booted up my spectrum 128.
      I wouldn't know what I wanted to do if it wasnt there.
      Kids dont just think "ooooooh i want to learn programming"
      its more like "What does that do?"

      --
      liqbase :: faster than paper
    74. Re:A couple places to start by Anonymous Coward · · Score: 0

      I always thought english was the hardest non-first language?

    75. Re:A couple places to start by NortWind · · Score: 1
      I think he's promoting the return of LOGO,

      LOGO is certainly a much better first language to learn than VB! It is available for the Palm computers, a $100 Ziare and this make a nice setup for a kid to use. (there's even a keyboard if needed.) There is open source for LOGO too.

    76. Re:A couple places to start by G-funk · · Score: 2, Informative

      www.icsharpcode.net

      sure it's not visual studio, but it's damned good value. :-)

      --
      Send lawyers, guns, and money!
    77. Re:A couple places to start by eatdave13 · · Score: 1

      I'd have to disagree with you on the Ruby thing. I decided to check it out after hearing the buzz here, and I fell in love with it in the first hour.

      Picking up the syntax took about 15 minutes. Granted, I already know ~15 languages so I have an advantage there, but other than the blocks and iterator usage, it's pretty standard stuff. My knowing other languages actually probably hurt me when it came to the iterators and blocks. For someone's first language, I can think of very little that would teach what they need to know for today and the future's programming tasks. It's got very good OOP support, exceptions, and a nice clean syntax.

      Oh, and mandatory braces? Not sure what you mean there. There's very little use of {} in Ruby. [] is used for hash and array access, not much different than any other language. The regexes... I dunno, I've never had a problem with them, but I do see how they might be seen as confusing at first. If you're teaching the language, just ignore them until you're ready for them.

      --
      "Verbing weirds language." -- Calvin
    78. Re:A couple places to start by RevAaron · · Score: 1

      While newer MS systems will have WSH, older systems don't necessarily..

      Nope, Windows 95 doesn't. However, if you are supporting a really old machine like this, you can simply have the user install it- it's nothing complicated. If they're already installing the PerlScript runtime especially, it's not that big of a deal...

      --

      Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
    79. Re:A couple places to start by rsheridan6 · · Score: 1
      Did they complain about the language itself or just a crappy implementation?

      You might as well say you hate HTML because there are tags which can crash Internet Explorer.

      --
      Don't drop the soap, Tommy!
    80. Re:A couple places to start by FireBreathingDog · · Score: 1
      How many of those 100,000,000 hits/month require calls through the VB-programmed COM objects? Are *all* of your pages dynamic?

      And how many web servers are you running?

      I'm not trying to argue, as someone who isn't intimately familiar with the performance of MS-based web technologies, I'm seriously curious from an architecture standpoint.

    81. Re:A couple places to start by BlackHawk-666 · · Score: 1

      10,000,000 of the hits are to an ASP page, and all our ASP pages use at least 3 components to display. Many use more components. All hook up to a back end database. At peak times we are getting 14-16 page impressions / second, which is all handled by a quad xeon processor with a dual xeon for the database server. The web server is now running at capacity, so if demand keeps increasing we will need to cluster.

      --
      All those moments will be lost in time, like tears in rain.
    82. Re:A couple places to start by tonyl · · Score: 1
      Nor do some Win98 machines.

      Look, the point is that you can't just easily distribute some simple little thing to unknown recipients.

      That doesn't mean Windows is a sucky OS : there are other reasons for that :-)

      You CAN write a DOS bat that will work anywhere (maybe a few things you have to avoid if you might have some very old boxes out in your path). But DOS batch files are really limited - hard to call them a scripting language unless you are in a real generous mood.

      VBScript is not so awful. I'm no great fan, but it's a reasonable tool and you can do simple tasks fairly efficiently. I'd much rather have even a Bash shell, but it's better than nothing. But there IS a real distribution barrier for simple, non-commercial little thingies.

      --
      -- Tony Lawrence
    83. Re:A couple places to start by ProfKyne · · Score: 1

      Or even break down and spend a few bucks on Visual Basic

      I've never used VB, but everyone tells me that you're better off not learning VB unless you actually need to use it, because it promotes some bad habits. In other words, it's not a good learning language. I might be wrong about this, but that's what I've heard. Why not just install Python? Python is easy to pick up, you can see instant results in the interactive interpreter, and costs less than VB. ActiveState has a Windows port (or better yet just install Cygwin).

      --
      "First you gotta do the truffle shuffle."
    84. Re:A couple places to start by cduffy · · Score: 1

      Yes, Ruby is a good language, and I have no doubt that anyone with substantial experience could pick it up quickly. I'm not sure about it boing a good beginner's language.

      Wrt my mention of "braces" -- oops -- I had ruby confused with a something else on that count. Nonetheless, it *does* suffer from the issue I intended to refer to, explicit deliniation of blocks. [From here on I'll refer to the explicit beginning or ending of a block as a "brace", for brevity].

      The thing about braces is that folks can end up with bugs due to missing braces or mismatched braces or be confused when reading code that hasn't been indented such that the braces and indentation indicate the same flow of control. I've been spoilt by Python -- where the indentation-sensitive syntax ensures that the flow control is what it appears to be. That's not an essential feature for most purposes -- but the class of errors it helps to eliminate, and the good habits it attempts to teach, are most important for rank beginners, who are (as I understand) the target of this discussion.

      If I'm not muddling my languages again, btw, I think I recall Pascal as being rather similar in terms of having words as begin and end tokens.

      As for the regexes, my issue with them is that they're syntax -- and as such they clutter up the language spec and make it harder to write a parser. Regexes belong in the standard library, not the language itself.

      That said, I mostly like Ruby, and its syntax is by-and-large quite pythonic (indeed, both have some of the same recent features -- iterators, for one). That said, however, I still hold that Python is probably a better language for teaching.

    85. Re:A couple places to start by sjames · · Score: 1

      When I was 10, I managed to do it in FORTRAN on a mainframe. Surely if that's managable, gcc isn't too bad. Next, I had BASIC and FORTH on a C63, then BASIC and Pascal on Apple][. The ][ is where I started doing machine language from the monitor (call -151)

      Bash scripting is a good sort of instant gratification language. Perl is good for that as well. CGI scripts on a local Apache is a good choice (and in only 2 months, they'll be better at it than many of the 'professionals' out there :-). For cool graphics, write it in Postscript and run it in Ghostscript. It IS a complete (if odd) language which will expose the concept of the stack and recursion as well as graphics.

      When that gets old, time to fire up Glade.

      A HUGE advantage to choosing Free Software is that all of the code is open to learn from by example, the compilers and other tools are all the right price, and nearly any language be it popular or obscure is available in Free Software form somewhere.

  3. Perl by MattBurke · · Score: 0

    Activeperl and a copy of the camel (O'Reilly Programming Perl)... it's all you need!

    1. Re:Perl by Anonymous Coward · · Score: 1, Informative

      Perl would be good, but python would be better--especially for newbies.

    2. Re:Perl by Anonymous Coward · · Score: 0

      I taught myself perl, starting at age 15 (I'm about 18 now)...
      I liked it then, and I like it now.

      I start writing CGI-scripts, and running programs in MS-DOS boxes. Interestingly, learning perl made me hate windows, and switch to Linux. :)

      Perl's, um, flexible syntax is a good thing for kids, I think...

      foo() if $something or if ($something) {foo()}, good stuff.

      Ruby might also be good, because of its english-word thingies. But ruby is a bit complicated for the beginner. lexical vars by default, and such...

      Regexps... Now that would be abuse.

  4. Um.... Linux? by ryarger · · Score: 4, Insightful

    Free... Multiple free programming languages, includng BASIC... GUI Editors and debuggers... Copious documentation... Responsive community...

    Seems like a no-brainer to me.

    1. Re:Um.... Linux? by Anonymous Coward · · Score: 0

      Responsive community...
      Uhh yeah. I'm sure the open-source community would be a real positive environment for a 10 year old kid. Think about this one for a bit.

    2. Re:Um.... Linux? by Anonymous Coward · · Score: 0

      No-brainer indeed. Maybe they also like being able to play all the latest games, use their cheap MP3 players their parents bought them for Christmas?

      Why do you think most kids who owned a C64 bought one when it came out? Do you think it was because they wanted to learn how to program, or do you think it was because they heard about a great game, or played one at a friend's house and wanted one too?

      I don't mean to flame here, I really don't..but for most kids, even the ones interested in computers, Linux really isn't going to look all that interesting. Most of them want to have fun, too. It's free, it provides a lot for free that other operating systems don't, but other than that there's not much incentive for most kids to choose it over the copy of Windows XP that's likely on the computer their parents already bought them.

    3. Re:Um.... Linux? by Anonymous Coward · · Score: 0

      Definitely. Actually there are a bunch of us professional BASIC (not just VB) programmers eager to help any young'un out there.

      Also, if Dad's computer has Microsoft Excel 2000 show the young'un how to record a macro and then display the VB script code. Any halfway talented and driven kid (6 years or older) could create some significant macros in VBscript in months if not weeks.

      I wish to G_d I had that kind of tool in early 80's programming with my Trash-80! I had to spend days typing in programs from magazines before I had something to tweak and play with but anyone with similar drive and patience can now easily learn to tinker with selfmade VB script macros in Excel within hours. Then the kid could do run some experiments like "what if I changed that 'if' statement?", "what if I changed that cell reference?", and 1000 other "what ifs" like we did with early 80's BASIC programs.

    4. Re:Um.... Linux? by Anonymous Coward · · Score: 0

      Isn't "professional BASIC" an oxymoron?

    5. Re:Um.... Linux? by Saige · · Score: 1

      Sure, because any 10 year old who's just starting to get interested in taking computers beyond exploring the web, sending e-mail, and playing games is going to be able to convince their parents to change the OS on the home PC, know what to download, and how to install and configure Linux on their machines.

      Sure, there's a lot there for someone wanting to get seriously into development - but it does not in any way currently work as the first step, unless perhaps the child has a geek parent who can set up everything to allow the child to learn at a good rate without getting frustrated. That's why old machines that had BASIC built in worked so well - just turn on a C-64, or a TI-99/4A, and presto, BASIC is there. Always. Quickly and easily.

      --
      "You know your god is man-made when he hates all the same people you do."
    6. Re:Um.... Linux? by xophos · · Score: 1

      Trouble is most People nowadays consider using a decent editor rocket-science and installing Linux beyond thinkable. We both know different, but the Windows folks out there... they still think there is no alternative, how else would they stick to something like vb-script |-P

    7. Re:Um.... Linux? by Anonymous Coward · · Score: 0

      At least they'd be in the same mental age bracket :D

  5. Every industry/hobby/field advances by Idimmu+Xul · · Score: 1

    all the time, requireing people today to learn more in the same space of time as people years ago had to. It's not just limited to the computing industry.

    Get used to it.

    --
    The problem with slashdot is that most of its users were bullied and stuffed into lockers as kids!
    1. Re:Every industry/hobby/field advances by Anonymous Coward · · Score: 0

      "Get used to it."

      No.

      Fuck you.

  6. Wrong by borgdows · · Score: 4, Funny

    Now we have Windows, which typically comes with no built-in programming language

    Windows comes with VBScript built-in!

    er..can I really call it a programming language? ;)

    1. Re:Wrong by oliverthered · · Score: 1

      ....and javascript in IE.

      --
      thank God the internet isn't a human right.
    2. Re:Wrong by mAineAc · · Score: 2, Funny

      you mean VBScript errors built in don't you?

    3. Re:Wrong by jandrese · · Score: 1

      It still comes with .bat batch file support too if you're going to count VBScript. I have to admit though, for something that could do basically nothing, those little batch files were supprisingly annoying to program.

      --

      I read the internet for the articles.
    4. Re:Wrong by corvi42 · · Score: 1

      So the next generation of programmers will have their start writing virii!

      --

      There are a thousand forms of subversion, but few can equal the convenience and immediacy of a cream pie -Noel Godin
    5. Re:Wrong by mingot · · Score: 1

      It still comes with .bat batch file support too if you're going to count VBScript.

      There is really no comparison between VBScript and batch files. You can actually a LOT with VBScript since it's easy to use all of the windows COM objects that are lying around.

    6. Re:Wrong by Anonymous Coward · · Score: 0

      The .NET runtime is also starting to be shipped with windows, but I don't know if the compilers are... If they are, then either VB or c# would also be available out of the box.

  7. Guile by SWroclawski · · Score: 1

    No Windows Scripting language?
    No problem.
    Give them Guile, the official scripting language of the GNU project.
    http://www.gnu.org/software/guile/guile.html

    - Serge Wroclawski

    1. Re:Guile by Anonymous Coward · · Score: 0

      *phewf*.

      I read your comment as having stated that Guile was the official scripting language of the planet. Probably because I just woke up 10 minutes ago, but I was petrified.
      I've never touched Guile, and I never intend to.

      I develop my applications soley on Windows, though I write them to be portable (specifically, to run on Linux as well) -- could you please make a case as to why I might want to use Guile, and how well it would work for me on the Windows platform?

    2. Re:Guile by ichimunki · · Score: 1

      You're kidding right? Is it even possible to write standalone applications in Guile? Are there any GUI bindings that work with Guile? Can I even script for emacs with Guile?

      When it comes to freely available scripting languages, I'd think that Ruby, Perl, and Python all trounce the heck out of the competition. All three are available on a wide variety of platforms, have GUI bindings available (some of which bindings are also cross-platform in varying levels of freedom), are powerful, but also easy enough to learn to use. In fact, that seems to me to be the answer right there. We should be glad that Windows doesn't come with a language installed. This presents an enormous opportunity for high-quality, widely-used free programming languages like Ruby, Perl, and Python to take hold.

      --
      I do not have a signature
    3. Re:Guile by Anonymous Coward · · Score: 0

      two words...sonic boom

    4. Re:Guile by Anonymous Coward · · Score: 0

      I don't think you understand correctly what Guile is supposed to be. It is not designed to be a general scripting language (like Ruby or Perl). For your enlightment, from the Guile FAQ :
      What is Guile? What can it do for you?

      Guile is a library designed to help programmers create flexible applications. Using Guile in an application allows programmers to write plug-ins, or modules (there are many names, but the concept is essentially the same) and users to use them to have an application fit their needs.

      There is a long list of proven applications that employ extension languages. Successful and long-lived examples in the free software world are GNU Emacs and The GIMP.
      [..]
      Extension languages allow users, programmers, and third-party developers to add features to a program without having to re-write the program as a whole, and it allows people extending a program to co-operate with each other, without having to expend any extra effort.

      And you can script emacs with Guile too :
      http://gemacs.sourceforge.net/

  8. Yet another reason for BSD/Linux by Vengeance · · Score: 4, Interesting

    Let's face it, if you want to develop software, Unix or Linux is a great way to go. The price is right, the technology is current, the compilers are included, and multiple programming languages from lowest to highest level are included/available.

    So if you want your child to have the experience of becoming a techie, it behooves you to have at least one workstation around that can at LEAST dual-boot into a *ix environment, IMHO.

    --
    It was a joke! When you give me that look it was a joke.
    1. Re:Yet another reason for BSD/Linux by larko · · Score: 2, Funny

      If you want him or her to really play... make sure it's not the computer YOU use ;)

    2. Re:Yet another reason for BSD/Linux by LiquidCoooled · · Score: 1

      I can see every eight year old kid asking dad for 2-4GB of bandwidth to download Linux - I can also imagine the response a lot would receive.

      The article is correct, there is no standard *SIMPLE* universal way to get into programming.
      Would it be possible to create a completely generic CD Rom containing a version of BASIC for each of the major systems (Linux,Win,Mac,PS,XBOX etc)?
      Something simple and generic enough to enable simplified graphics and sound along with a standard interface. Give the kids something that they can get their teeth into before moving onto version controlled, packaged indepth heavy coding.

      I still remember the "wow" factor I used to get by making my spectrum do things - thats faded now and happens much less, but the lessons learnt in those early days are still with me now.

      --
      liqbase :: faster than paper
    3. Re:Yet another reason for BSD/Linux by Durin_Deathless · · Score: 2, Insightful

      If these are young kids, they might be happier with Mac OS X. I mean, not many kids have the patience to work with any command prompt at all. The Mac will also run M$ Word so they can write macro virii^H^H^H^H^H^H^H^H^H^H^Hpapers for school.

      --
      You should use AdiumX on your Mac.
    4. Re:Yet another reason for BSD/Linux by Vengeance · · Score: 1

      I'd just like to point out that with the class of machine we're talking about from the old days, Command-line was ALL we had. GUIs do make it somewhat easier to perform many interactions with the machine, but they also insulate you somewhat from a level of understanding.

      Taking it one step further, there is no driving need to do things with a command-line these days anyway. Graphical tools like KDevelop and Eclipse make for relatively painless introductions, IMHO.

      --
      It was a joke! When you give me that look it was a joke.
    5. Re:Yet another reason for BSD/Linux by Anonymous Coward · · Score: 0

      the technology is current

      Just to bring you up to date, UNIX is dead.

    6. Re:Yet another reason for BSD/Linux by Anonymous Coward · · Score: 2, Insightful

      The real problem isn't lack of programming languages. A programmer-wannabe can get just about any language for free, including every teacher's favorite languages (Java, Modula, Pascal) and "industry standard" languages like C or C++. Kids can choose from interpreted languages and compiled languages, from IDEs and simple editor/commandline-compiler based environments and from implementations for Windows, Linux, MacOS or just about any other OS. Free descriptions are available online for every API. There are (mostly) helpful people on uncountable messageboards, newsgroups and chatsystems. It couldn't be better, except for one thing: In the 80s, if you wanted to use a computer for anything but playing games, you practically had to learn how to program. Computers were hard enough to understand so that you almost understood programming simply by learning how to use them. Today it's easier to find not only the documentation and the programming environments, it's also easier to find ready-made programs and code-snippets ready to be copy&pasted. Anything remotely useful of which an implementation can't be found on the first page of a Google search is so far away from the capabilities of a novice programmer that many don't have the perseverance to learn by writing completely useless code for a long time. There's a serious lack of rewarding learning projects. That said, for someone with perseverance who strives to understand how computers work and how you can make them jump through hoops, the internet is a cornucopia of information, much better than everything which was available in the last millennium.

    7. Re:Yet another reason for BSD/Linux by Anonymous Coward · · Score: 0

      Don't you mean GNU/Linux? BSD/Linux sounds like something that died before it even began.

    8. Re:Yet another reason for BSD/Linux by Anonymous Coward · · Score: 0

      not many kids have the patience to work with any command prompt at all.

      You can write programs with the mouse?

    9. Re:Yet another reason for BSD/Linux by Anonymous Coward · · Score: 0

      > Just to bring you up to date, UNIX is dead.

      Maybe in terms of references to it on SlashDot, but not in the real world of jobs and businesses running systems on it. You think everyone uses MySql on Linux, I suppose? The very idea...

    10. Re:Yet another reason for BSD/Linux by Durin_Deathless · · Score: 1

      What I mean is few kids have the patience to learn vi or emacs when I could just fire up Project Builder or Kate or whatever and have better functionality right there. Also, I have _never_ seen a linux box which does not require occasional tweaking from a command prompt. A Mac, you can always do it, unless you want to use some programs in X11, but that is another story.

      --
      You should use AdiumX on your Mac.
    11. Re:Yet another reason for BSD/Linux by Anonymous Coward · · Score: 0

      Learning to use the commandline provides insight into one of the key concepts in programming: Parsing structured information from serial input. The trick is to split the task of learning how to program into smaller stages. Many small goals (like understanding how the commandline works) which bring the students closer to the overall achievement make the learning curve look less intimidating.

    12. Re:Yet another reason for BSD/Linux by RevAaron · · Score: 1

      The GUI tools you use under Unix seem relatively painless becuase of your background in the command-line and that way of thinking. To a person who is coming from a more blank or a just-a-user of Mac or Windows background will not feel even remotely the same way. There is a way of think involved which most people do not innately posess, it is something which is cultured.

      --

      Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
    13. Re:Yet another reason for BSD/Linux by LWATCDR · · Score: 1

      You do not have to go the BSD/Linux route to get good cheap and or free programing tools.
      Netbeans and the Sun JDK are free and pretty dang good. Runs under Linux as well.

      IBM's Eclipse is a from what I hear a very good java IDE and has a new c++ module so you can use it for c++ and java.

      Dev C++ is a free c++ IDE that runs under Windows they also are have a pascal IDE but I have not used it.
      Perl, Python, and Ruby all run under Windows.

      What is perhaps the best answer to starting kids programing is Squeak. www.squeak.org I think.

      To be honest today it is MUCH easier to get into programing than it was in the 80s. The internet gives you access to information and help that you could only dream about back then. Basic uck! Perl, Ruby, and Python are much beter programing languages than Basic. Want a learn a real language pick up Java, GCC, GNAT, or even freepascal.
      The amount of Free tools today is just unreal.
      The reason that most kids do not get into programming is things like games are far beyond what one person can do in there free time. Back in the good old day you could see a teenage kid creating a copy of PacMan or making there own game like Loadrunner. No one person could ever write DoomIII or unreal in their spare time.
      The other reason is when I got my 64 it just stood there looking at me. There was no software at all. So it was learn to program or use it as a paperweight.

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    14. Re:Yet another reason for BSD/Linux by Bungo_go · · Score: 2, Interesting

      IMHO, the hardest part of learning any programming is just getting the environment working to the extent that you can play with it - unless all you want is to print text to the console it's inordinately hard nowadays with the ton of windowing etc. code that GTK or whatever expect. It's pretty difficult to code much from scratch in linux if you've no idea how to begin... For example, getting graphics working in the good old DOS days was very simple - one function to set graphics mode, then write to the screen. No other code required. Granted, nowadays you just call a library to do all the complicated bits, but the amount of code bloat is impressive, and rather frustrating for the novice... I think the important thing for beginners is to give them environments in which they can play with powerful code without having to worry about the learning intricacies of GTK (or whatever) as well as the language they're trying to learn.

    15. Re:Yet another reason for BSD/Linux by Anonymous Coward · · Score: 0

      If they were to get a mac, they might as well just go out and buy the tools. It would be cheaper. Visual C++ is about $100.00. C++ Builder from Borland is $999.00, cheaper than almost any mac.

    16. Re:Yet another reason for BSD/Linux by bigjocker · · Score: 1

      I have a 7 year old who uses my Linux PC always (while I'm not in it :).

      He has his own account, plays games (ksirtet and Lbreakout2 are his favorites), browses the Internet (mozilla) and has even started to learn how to use a word processor (OpenOffice).

      How is using any of those tools harder in Linux than in windows or OSX?? He just points and clicks in any of those OSs.

      When he is ready I will teach him to use the console tools (right now he can change dirs, ls , mkdirs and use wget to download files from the net, but no more than that) and to program.

      --
      Life isn't like a box of chocolates. It's more like a jar of jalapenos. What you do today, might burn your ass tomorrow.
    17. Re:Yet another reason for BSD/Linux by Anonymous Coward · · Score: 0

      Patience is THE advantage which kids have compared to adults. If you can show them benefits of mastering the commandline, they will be eager and patient enough to learn it. It doesn't have to be their favorite UI, but as its inner workings are so closely related to programming, they should know to use it when it's appropriate.

    18. Re:Yet another reason for BSD/Linux by JeffTL · · Score: 1

      Then explain, please, why every worthwhile operating system except one, Microsoft Windows, is some form or clone of Unix?

    19. Re:Yet another reason for BSD/Linux by Bingo+Foo · · Score: 1
      BlueJ is much better than Eclipse or NetBeans for the young programmer. No need to explain "public static void main..." out of the starting gate, just plain classes (in real Java, mind you), which can be instantiated or have methods called manually or by other code. Built-in minimal UML for "is-a" and "uses" diagrams, and still full access to any Java class library.

      I'm planning on using this summer to teach my daughter some programming by making a game together in BlueJ.

      --
      taken! (by Davidleeroth) Thanks Bingo Foo!
    20. Re:Yet another reason for BSD/Linux by Vengeance · · Score: 1

      LOL

      Good one! Yeah, I guess we've gotta watch our use of slashes now. What's the new symbol for and/or? Oh no! I've got a slash in that, too! It's recursive language...

      So what's the new symbol for and (and (and or) or) or?

      --
      It was a joke! When you give me that look it was a joke.
    21. Re:Yet another reason for BSD/Linux by Anonymous Coward · · Score: 0

      Programming is hard. No, really. The "good old DOS days" weren't until the late 1980s to early 1990s. The simple and supposedly easy environment mentioned in the article was a single digit MHz 8-bit processor and included things like POKEing memory mapped registers to enable graphics mode, manual decimal to binary conversions to build sprites and assembly code to do anything which involved graphics. Skeleton code for a GUI app is chickenshit compared to that. Just don't underestimate the energy which kids will put into learning something if they WANT to learn.

    22. Re:Yet another reason for BSD/Linux by walt-sjc · · Score: 1

      Oh please. Ever hear of cheapbytes? $5 gets you Knoppix for example.

      Basic is horrible. It teaches the WRONG way to do things forcing you to unlearn it in order to be productive later in life.

    23. Re:Yet another reason for BSD/Linux by Namaseit · · Score: 1

      Ummmm no. Its called Kdevelop or you could scrap the gui and just do terminal. No GTK or QT. Besides you only need to know those if you want to make a graphical program. Most the time when you are learning programming for the first time you are only doing "Hello World" bullshit so what do you need a gui for?

      --
      75% of all statistics are made up!
    24. Re:Yet another reason for BSD/Linux by LWATCDR · · Score: 1

      I heard about BlueJ sounds good. Like I said lots of tools. Eclipse and Netbeans are so heavy duty that it really boggles the mind what you can get for free in the way of programming tools today.

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    25. Re:Yet another reason for BSD/Linux by Anonymous Coward · · Score: 0

      because most of the time when you WANT to learn programming, 'hello world' is about as far from what you are interested in as you can get and still be programming!!!!

      You want to do GUI, not console, that is why you want a GUI. It doesn't get simpler than that

    26. Re:Yet another reason for BSD/Linux by LiquidCoooled · · Score: 1

      Like it did all us lot any harm.
      The article and my posting were describing a need for generic simple tools to get kids hooked.

      I've got one or two versions of knoppix around, and yes they are a wonderful desktop enviroment (That actually gave me a "wow" when i booted from it the 1st time). Its got lots to offer, but nothing beats the simple INSTANT results of basic.

      10 PRINT "Hello World"
      20 GOTO 10
      RUN

      Kids understand this, it makes sense to them.
      Having to explain that their program wont work until they include stdio or such is wasteful - yes it's required in the future, but not at the level described.

      As an aside - if you are having trouble with programmers being stuck in a Basic world, then maybe you should have a word with your HR dept ;)

      --
      liqbase :: faster than paper
    27. Re:Yet another reason for BSD/Linux by LiquidCoooled · · Score: 1

      Shhhhhhhhhh dont let SCO hear you say that ;)

      --
      liqbase :: faster than paper
    28. Re:Yet another reason for BSD/Linux by Billly+Gates · · Score: 1
      The games aren't there, the installation is confusing and can be hard( for a kid), rpm hell or apt-get hell( no gentoo fans, gentoo is not a kid friendly os).

      Windows is great for kids. Everything is visual and he or she can focus on programming and not learning strange shell scripts to get anything done.

    29. Re:Yet another reason for BSD/Linux by Anonymous Coward · · Score: 0

      Most people can cope with a conversation on IRC. A CLI or REPL is like a typed conversation with an idiot who does anything you say. Most people I know can handle CLIs in general, just the MS cmd.exe specifically is a complete dog, and actually biases them against CLIs in general. I think MS deliberately make it suck so that they keep users corralled in MS-GUI-depdendence.

    30. Re:Yet another reason for BSD/Linux by Anonymous Coward · · Score: 0

      Do the world a favour and teach 'em a non-braindamaged but still widely-available language like Lisp, Smalltalk, Logo, or, heck, even forth (Jupiter Ace rocked!)

      But not BASIC or C. BASIC is incredibly bad for your brain, and C is completely wrong for teaching generally applicable computing principles (other than manual memory management techniques... sigh).

  9. Excel Basic by Anonymous Coward · · Score: 0

    Most computers come bundled with MS Office - so get them yungins to crank out VBA apps for fun and profit!

    1. Re:Excel Basic by Anonymous Coward · · Score: 0

      We do this in India. It's truly magical to see your children's minds blossom while helping to put the ghee on the table.

  10. Need to include something simple... by Kerry · · Score: 1

    For Windows, it would be nice if they would include something like a non-compiled version of Visual Basic or something, something that would be easy for people who don't have any programming experience to learn.

    1. Re:Need to include something simple... by Anonymous Coward · · Score: 0

      They do, createa a file with .vbs ending which says

      msgbox("Hello world");

      and you too can be a windows programmer

    2. Re:Need to include something simple... by Anonymous Coward · · Score: 0

      except no semicolon... unless you want to learn the debugger.

  11. Create a simple learning language... by pir8garth · · Score: 5, Interesting

    When I started programming, I was 8 years old, and worked with what I had available. I made simple GW-BASIC programs and have moved on from there. Maybe OS's should think about the next generation of devlopers and include some sort of learning language to get the kids hooked when they are young. At least they could learn the concepts, and grow up moving on to bigger and better languages as I did...

    --
    Something clever...
    1. Re:Create a simple learning language... by Lord_Slepnir · · Score: 5, Funny
      some sort of learning language to get the kids hooked when they are young.

      The scene: In a park with a lot of little kids around

      (stranger dressed up like Bill Gates in a trenchcoat): Hey kid, I got something for you
      Kid: What
      Stranger: It's the good stuff...(holds out a box labeled 'GW-Basic#'
      Kid: I don't know. My daddy told me that stuff is bad for you...it causes you to get fat and pimply and never get a date
      Stranger: That's a lie! Come on. First taste is free (holds out box further)
      Kid: Well, ok....

    2. Re:Create a simple learning language... by jmertic · · Score: 2, Insightful

      Learn BASIC ( or Pascal for that matter ) it certainly won't kill you!

      Seriously, fundementals of programing such as if...else, for and while looping, and simple AND/OR logic is key before you can start to tackle C/C++/Java etc. Those structures are prevalent in all languages.

      Sitting a kid in front of some Visual Tools will only hurt them in the long run; they miss those valuable skills that are learned at the low level of a language. It's like what MS Word is doing to writing ( don't have to spell correctly or know proper grammer, Word does that for me ) or math ( why add/subtract/multiple/divide/etc by hand when a calculator can do it for me) ; pretty soon we'll have a crop of programmers that get confused by "for (i=1; i<j; i++)" statements.

    3. Re:Create a simple learning language... by Chris+Burke · · Score: 2, Redundant

      I was 9 when I started programming, and it was in BASIC on a TI-99, which I'm not certain but I think it was called CRAP-BASIC. Moving to a PC with GW-BASIC was a big upgrade. :)

      Anyway, I do not think that BASIC is a good learning language. BASIC encourages bad programming practices. Not C either, simply because it's got too many loaded guns you have to ensure aren't pointed at your foot. Something like Java, or Python, or whatever where you can learn programming concepts without having to also learn hardware concepts. Though eventually those should be learned as well, but not necessarily at age 9. :)

      But yes, having GW-BASIC or whatever available is the only reason I learned to program. And to people suggesting Linux -- that works great for your or my children, but what about the children of parents like mine, who aren't programmers themselves and aren't going to be putting Linux on their computers any time soon?

      --

      The enemies of Democracy are
    4. Re:Create a simple learning language... by Anonymous Coward · · Score: 0

      SCHEME SCHEME SCHEME

    5. Re:Create a simple learning language... by pmz · · Score: 1

      I made simple GW-BASIC programs and have moved on from there.

      Quick, someone upgrade the President!!! An 8-year-old....now, it all makes sense.

    6. Re:Create a simple learning language... by Vladimus · · Score: 1

      There is one. It's called AppleScript Studio. It's a scripting language, but it's better than VBScript, and easier to teach.

      --

      A rolling stone is worth two in the bush!

    7. Re:Create a simple learning language... by jaoswald · · Score: 1

      "I do not think that BASIC is a good learning language"

      BASIC is a fine learning language: the only question is what you learn. You learn that computers are machines that you can tell what to do and they will do it. You learn that computers follow your instructions precisely even if your instructions don't make any sense. You learn that computers can do math and manipulate text. What more do you want?

      What you don't learn is how to write large programs that scale well and follow sound architectural practices. Who says a 9-year old has to learn this? Almost no 9-year old is going to have the patience to write a program that goes beyond BASIC's capabilities. Almost no 9-year old is going to have the patience to get a C++/Java program to compile without the instant gratification that BASIC can provide.

      Do you think building blocks and Lego blocks are bad learning toys because you can't build houses or skyscrapers with them? You learn a lot by trying to build a 10 foot tower with wood blocks and *failing*. But once you have the basic inspiration, you are prepared to learn more about structural engineering. Trying to get a kid to learn first about concrete and rebar is a sure way to kill his interest.

    8. Re:Create a simple learning language... by RobinH · · Score: 2, Insightful

      Anyway, I do not think that BASIC is a good learning language. BASIC encourages bad programming practices.

      While I'm sure Dijkstra would agree with you, I have to say I think this is a myth. I don't think that "bad programming practices" are habits that are difficult to change. I find that usually, as soon as someone is shown a "better" way to do something, they will immediately start using that programming practice and forget all about the way they used to do it.

      I don't think you can throw a 10 or 12 year old kid directly into advanced software methodologies before they play around a bit with some really simple programs to get their appetite wet. Some kid who wants to write a program that you can "talk" to in English prose (who hasn't wanted to try that when they were young?) is going to be far too intimidated if they have to learn OO first. Here's what they're going to try in the first 5 minutes:

      Answer$ = input("What is your name")
      Print "It's nice to meet you," + Answer$

      RUN

      Then they'll add a few more lines, and a few more, and at least they're getting interested. If you're worried about them becoming too dependent on the "build and fix" software development model, then I think you've forgotten the original excitement you felt when you started hacking on a computer.

      --
      "I have never let my schooling interfere with my education." - Mark Twain
    9. Re:Create a simple learning language... by jafac · · Score: 1

      grammAr. . . .

      --

      These are my friends, See how they glisten. See this one shine, how he smiles in the light.
    10. Re:Create a simple learning language... by Chris+Burke · · Score: 1

      You learn that computers are machines that you can tell what to do and they will do it. You learn that computers follow your instructions precisely even if your instructions don't make any sense. You learn that computers can do math and manipulate text.

      I learned that in the half hour it took my mother to type a BASIC program in from the book and run it so a little caterpiller walked across the screen. Now I need to learn -how- to control what the computer does and ensure that my instructions -do- make sense.

      Almost no 9-year old is going to have the patience to write a program that goes beyond BASIC's capabilities.

      Maybe, but when I was 10 I had already grown irritated with how limited the language was. I was in a vaccuum -- I knew no other programmers, I knew of no other languages. I only knew BASIC existed because it was the title of a manual that came with the computer. But I did see some commercial software titles. From that, I deduced that other languages must exist, and that BASIC must be the crappiest. :)

      Trying to get a kid to learn first about concrete and rebar is a sure way to kill his interest.

      Sure, but that's why I said C probably wasn't the best choice. I never learned Pascal, but that seems like a good middle ground. A scripting language that doesn't require you to know about pointers or worry too much about typing is probably good too.

      --

      The enemies of Democracy are
    11. Re:Create a simple learning language... by Chris+Burke · · Score: 1

      If you're worried about them becoming too dependent on the "build and fix" software development model, then I think you've forgotten the original excitement you felt when you started hacking on a computer.

      What do you mean? Build and fix is the method I still use today when learning something new. Now it's just OpenGL or SDL or Perl instead of BASIC.

      When I lose the excitement that comes from hacking on computers, I'll stop doing it. :)

      --

      The enemies of Democracy are
    12. Re:Create a simple learning language... by Anonymous Coward · · Score: 0

      In my opinion, build and fix (with a healthy dose of madly scramble for any decent documentation) is the only way to learn something new, (programming anyway) unless you happen to have an expert handy.

      And if I am wrong on this point, please correct me, I am looking for a new methods!

    13. Re:Create a simple learning language... by dekashizl · · Score: 1

      I was 9 when I started programming, and it was in BASIC on a TI-99...

      I do not think that BASIC is a good learning language. BASIC encourages bad programming practices.

      This is as intellectually dishonest as ex-stoner hippies who tell their kids never to do drugs.

      Open up your mind a bit and recognize that maybe if you didn't have BASIC available to you, you wouldn't have been programming, you wouldn't be who you are today, and you wouldn't be wasting your time on slashdot. Wait a minute...

    14. Re:Create a simple learning language... by Cryptnotic · · Score: 1

      I didn't think that GW stood for "gateway". I guess it makes sense though. BASIC is like a gateway to harder programming languages. It must be true since almost every C++ programmer has probably at one point in time started with BASIC. :-)

      --
      My other first post is car post.
    15. Re:Create a simple learning language... by vrmlguy · · Score: 1

      "GW-Basic" was "Gee-Whiz Basic", because it had every bell and whistle of any version of Basic that had preceeded it. (And that reminds me of a joke from 20 years back. "Advanced Basic: a Basic that implements one or more Cobol verbs." Cobol, for you young whipper-snappers, has verbs to sort arrays or produce reports, almost identical to present day Perl, while back then Basic was truly wimpy.)

      --
      Nothing for 6-digit uids?
    16. Re:Create a simple learning language... by Chris+Burke · · Score: 1

      Open up your mind a bit and recognize that maybe if you didn't have BASIC available to you, you wouldn't have been programming, you wouldn't be who you are today, and you wouldn't be wasting your time on slashdot. Wait a minute...

      I'm sorry, but I don't think you understood my point at all.

      I wasn't saying that BASIC was worse than no programming language, I was saying it isn't a very good language and a better one would be... better. It's not BASIC vs nothing, it's BASIC vs anything else.

      Honestly, if I said the current U.S. public school system was inadequate, would you think I was arguing that there should be no school system?

      --

      The enemies of Democracy are
    17. Re:Create a simple learning language... by dalev321 · · Score: 0

      Create a simple learning language... This already exists. It is pivotal part of the philosphy of How to Design Programs

    18. Re:Create a simple learning language... by pHDNgell · · Score: 1

      While I'm sure Dijkstra would agree with you, I have to say I think this is a myth. I don't think that "bad programming practices" are habits that are difficult to change. I find that usually, as soon as someone is shown a "better" way to do something, they will immediately start using that programming practice and forget all about the way they used to do it.

      Personally, I feel that Perl is the new BASIC. Perl programmers learn a lot of bad habits that are hard to break, even when shown a clearly superior (and easier) way to do things.

      I was having a conversation with a cow-orker (who is a hard-core perl programmer) a couple of days ago who was completely convinced that manually checking the result of every function call is superior to solid exception handling.

      I want to emit the least amount of effort to get the most reliable and correct application possible. If I have to do the same thing many times, my language has failed me.

      --
      -- The world is watching America, and America is watching TV.
    19. Re:Create a simple learning language... by eatdave13 · · Score: 1

      An ellipsis has three dots. . .

      --
      "Verbing weirds language." -- Calvin
    20. Re:Create a simple learning language... by Anonymous Coward · · Score: 0

      Fun fun fun
      in the sun sun sun

    21. Re:Create a simple learning language... by Anonymous Coward · · Score: 0

      Ellipses at the end of a sentence are followed by an a period, you insensitive clod....

    22. Re:Create a simple learning language... by dekashizl · · Score: 1

      OK, I see what you are saying. But the reality is that simple, functional, and easy to understand BASIC interpreters that used to be present in operating systems / ROM are now gone entirely. So somewhere along the line, somebody did make the decision that no programming language is better than BASIC. And it almost seems like an industry conspiracy, as it has happened across the board.

      I agree that a better language would be better, as that's a pretty hard statement to put up an argument against. But BASIC is basic, simple, small, fits in tiny ROM, is easy to pick up, and doesn't require conceptual baggage such as compiling, linking, object files, etc. Maybe it isn't the greatest thing ever, but neither is our school system! And, as you said, that doesn't mean we should eliminate it until we come up with something better.

    23. Re:Create a simple learning language... by Anonymous Coward · · Score: 0

      Apples can boot into OpenFirmware, a version of Forth. :-)

      Forth is a pretty cool language, and its model of stack-based computation is simple enough for a child to grasp while allowing real abstraction, and its clear and unambiguous syntax is nice, too. (especially if you haven't been "polluted" by syntax-heavy languages meaning you read the forth as anything other than a list of whitespace-separated words.)

      1 2 + .
      3
      OK

      : sayhi ." hello, world!" ;
      OK
      sayhi
      hello, world!
      OK
      : saybye ." Goodbye, world!" ;
      OK
      sayhi saybye
      hello, world!
      Goodbye, world!
      OK

      A language like Forth, Logo or Lisp has an immediacy and dynamism that appeals to kids - they do something, they see the result.

  12. Windows comes with programming tools! by groman · · Score: 5, Funny

    What, did you forget about "debug"? Man, kids these days. Go to Start->Run...->"debug". There, learn! :-)

    1. Re:Windows comes with programming tools! by Tharsis · · Score: 1

      why not tell him to "debug windows.exe", he can't possibly make it worse, right?

    2. Re:Windows comes with programming tools! by scovetta · · Score: 1

      Why was this post rated 'funny'?

      --
      Wer mit Ungeheuern kämpft, mag zusehn, dass er nicht dabei zum Ungeheuer wird. --Nietzsche
    3. Re:Windows comes with programming tools! by Plutor · · Score: 2, Informative

      Haha, brilliant! Debug is the source of half of my DOS programming experience.

    4. Re:Windows comes with programming tools! by kreyg · · Score: 1

      Hey, I was going to say that.

      I don't know if it's really a joke or not though, I did that for years... and now I write microcode for the Playstation 2, so it was probably worth the pain... oh, the pain...

      --
      sig fault
    5. Re:Windows comes with programming tools! by Rorschach1 · · Score: 1

      Bah, debug is for wimps. Real programmers use 'copy con program.exe'.

    6. Re:Windows comes with programming tools! by ebyrob · · Score: 1

      Face it, the best jokes are always true.

    7. Re:Windows comes with programming tools! by corsec67 · · Score: 1

      Oh, my goodness. has anyone done that?

      and have the program even close to working?

      and how about 'copy com1 program.exe' and have a switch hooked up to the serial port?

      --
      If I have nothing to hide, don't search me
    8. Re:Windows comes with programming tools! by marnerd · · Score: 1

      Wow. I had no idea that was still there in modern Windowses. I'm tempted to type g=c800:5 to see if it will low level format my disk. But I won't.

      --
      Not so much a sig as a lack of one.
    9. Re:Windows comes with programming tools! by Alsee · · Score: 1

      Why was this post rated 'funny'?

      Assuming your question is serious...

      because learning to program using debug is kind similar to teaching a kid to drive by putting him in the space shuttle cockpit, ripping out every switch/button/display and handing him the 400 naked wires that used to be controlled by all those switches/buttons/displays.

      Even if he gets it to do something, the most likely thing it will do is blow up.

      -

      --
      - - You can't take something off the Internet! That's like trying to take pee out of a swimming pool.
    10. Re:Windows comes with programming tools! by Anonymous Coward · · Score: 0

      I was surprised too. I remember there being a virus around that accessed the debug program to overwrite data on the HDD...a preventative solution offered at the time was to take debug out of the path or rename it.

    11. Re:Windows comes with programming tools! by mnmn · · Score: 1

      I didnt know they paid for masochism. Do they have any openings?

      --
      "Give orange me give eat orange me eat orange give me eat orange give me you." -Nim Chimpsky
    12. Re:Windows comes with programming tools! by mnmn · · Score: 1

      Just show that you can fill the screen with characters using debug, fill to c800:0, and the kids get hooked.

      Whats wrong with a TASM and TLINK on a 386? couple that with Mr Browns interrupt list and you have a powerful set of tools. There were so many possibilities then. Nowadays everything has been created and commercialized, theres little to make NEW.

      --
      "Give orange me give eat orange me eat orange give me eat orange give me you." -Nim Chimpsky
    13. Re:Windows comes with programming tools! by scovetta · · Score: 1

      Actually it was a bad attempt on my part to be funny. I've used debug before, mostly to crack old Sierra games.

      Seriously, however, none of the 'kids' today know a thing about those 400 naked wires that make their start menu pop up, it would be wise to learn if they ever wanted to code in something other than VB.

      --
      Wer mit Ungeheuern kämpft, mag zusehn, dass er nicht dabei zum Ungeheuer wird. --Nietzsche
    14. Re:Windows comes with programming tools! by Rorschach1 · · Score: 1

      Well, I've never tried an .exe, but I remember doing a .com file that way - I think it was a total of about 10 bytes and simply rebooted the machine.

    15. Re:Windows comes with programming tools! by Anonymous Coward · · Score: 0
      Actually, that would be b800:0.

      Though, my programs usually started with:

      mov ax,13h
      int 10h
      mov es,a000h
      Those were the days...
  13. Windows does have a built-in language... by The-Forge · · Score: 4, Informative

    Windows does have a built-in language. More precisely, it has 2 of them, VBScript and JScript. They've been included with Windows since Win 2000 and can be downloaded for 95 & 98.

    1. Re:Windows does have a built-in language... by AveryT · · Score: 3, Informative

      Windows does have a built-in language. More precisely, it has 2 of them, VBScript and JScript. They've been included with Windows since Win 2000 and can be downloaded for 95 & 98.

      The .Net Framework (standard on Windows now, use Windows Update if you don't already have it) contains a C# compiler: csc.exe (command line only, no IDE.)

    2. Re:Windows does have a built-in language... by Anonymous Coward · · Score: 0

      A built-in language that you have to download?

    3. Re:Windows does have a built-in language... by julesh · · Score: 1

      95, 98 and NT4 had QBASIC installed by default, the same as DOS 6 did. Its in %WINDIR%\SYSTEM\QBASIC.EXE under 95 or 98, and %WINDIR%\SYSTEM32\QBASIC.EXE on NT.

      You just caused me to look for the first time, and I've only just realised it isn't installed on my W2K system.

      Damn. No more nibbles for me...

    4. Re:Windows does have a built-in language... by Anonymous Coward · · Score: 0

      Built in to current versions. Downloadable for old versions.

      Why don't you read the comment before you come up with a trollish retort?

    5. Re:Windows does have a built-in language... by bburns · · Score: 1
      Windows does have a built-in language. More precisely, it has 2 of them, VBScript and JScript. They've been included with Windows since Win 2000 and can be downloaded for 95 & 98.

      VBScript and JScript are pretty good, basic languages for beginners. They have the basic features of programming languages (variables, statements, functions, I/O, etc.) without some of the messy details (like pointers). Their syntax is similar to more popular languages (VBScript to VB, JScript to C/C++/Java/C#/etc.). They also support advanced features for more advanced developers (like COM objects). Unfortunately, they are interpreted instead of compiled, so debugging errors could be a pain for beginners (but then when isn't it :-).

    6. Re:Windows does have a built-in language... by phorm · · Score: 1

      Maybe there's more to it than I expect, but I don't really expect anything spectacular from VBScript/JScript.

      Back on the day when there was Qbasic, etc, I managed to program a little tanks /w lasers game - a-la-atari - which, for computers we had at the time, was actually quite spiffy (classmates actually played it!).
      We've upped the bar quite considerably nowadays, and frankly a Qbasic equivilent just isn't as cool.

      At least with a full Visual Basic IDE (yes, it's evil, but C++ is a hard-sell for startoffs) you can do a few graphics that move around, maybe a simple galaga-type game if you get a few bitblt samples to mess with... but the lack of such an available environment and/or samples (nibbles, gorillas, etc) can be a little bit scary for newbies with high aspirations.

    7. Re:Windows does have a built-in language... by chammel · · Score: 1

      It actually has been distributed as part of Internet Explorer and has been included in all versions of Internet Explorer since version 4.00.

      It has two versions a windows based one wscript.exe or the command line versions cscript.exe.

      Two languages are support on the default install VBScript and JScript. Other languages can be plugged into this framework most notable perl.

      --
      Neutrons are slippery little rascals, they can fool you. They can bounce and show up around corners you don't expect.
    8. Re:Windows does have a built-in language... by RevAaron · · Score: 1

      I was going to say "nope, you don't get the C# compiler with just the runtime, you need to download the SDK" but I did a "dir /s csc.exe," and behold! No only does the .NET runtime come with the C# compiler, you also get the VB.NET compiler (vbc.exe) and the JScript.NET compiler (jsc.exe)

      For those wodnering where it is, the compilers and such can be found in:
      C:\WINNT\Microsoft.NET\Framework\v1.1.4322

      At least on my Win2k install with that version of the .NET framework.

      You can get a free (mmm, speech) IDE in #develop- even does GUI buildling.

      --

      Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
    9. Re:Windows does have a built-in language... by archen · · Score: 1

      only two eh, mr high and mighty.? Good old batch files not good enough for you? =P

    10. Re:Windows does have a built-in language... by Keeper · · Score: 1

      If you think that's a trip, there are objects you can use with the .net framework to compile code, so you could write your own IDE or commandline utilities to build your code if you really wanted to.

  14. Re:If this is not the first post... by Anonymous Coward · · Score: 0, Funny

    Start shaving, buddy.

  15. /.ed? by PetWolverine · · Score: 2, Interesting

    No comments yet and it's already /.ed. Nice.

    In response to the summary, I'd say the first step is to ship computers with some sort of programming language built-in, but the fact is that programming is a complex thing these days and there's no way to just make it simpler so that kids can learn it easily. If you want to learn to write real programs, you'll just have to commit some time and effort to it. That's why I decided to change my major to physics.

    --
    I found the meaning of life the other day, but I had write-only access.
  16. Flexible Learning, Independent of Language by Amadaeus · · Score: 2, Interesting

    I think the problem with teaching programming to youth these days is the perception of learning a "language". Instead of subjecting students to the CONCEPTS of programming, such as inheritence, oop, etc., schools are more inclined to teach children languages instead. It produces grades, I presume.

    The trouble with that presumption is that kids get so accustomed to one language that when they get to college and learn the concepts, they have to throw all they learned out the window and start fresh. Why can't we start these kids off the right foot and wean them off of the language dependency?

    The way I see it is children should be taught the fundamentals of programing at a relatively young age (12-16), like looping and recursion, and let them experiment with the fundamentals with their own choice of language.

    --
    ------
    Amadaeus
    The last bastion of Mathie-ism
    1. Re:Flexible Learning, Independent of Language by brian+ferullo · · Score: 1

      when i was in high school, i took two cs-related classes. one was freshman year, an introduction to C course, and it was useless in terms of teaching programming concepts (despite the fact that the teacher was this unbelievably hot twenty-something). the second, which i took as a senior, was simply called "computer science" and used pascal in preparation for the AP (the last year that the AP was actually in pascal instead of C). we actually learned stuff. fortunately for me i had be throwing together code in QBasic since fifth grade, or else i probably wouldn't have understood enough of the concepts to do well in the two classes and the CS AB exam. i figure, give kids something as high level as possible, that doesn't have a tendency to get really, really messy (i'm looking at you, perl), and just let them play around. basic worked really well for me, with a little help from my dad and his old programming books (especially a handy little book full of games to program). actually now that i think about it, games are probably the best way to go: no adolescent wants to code spreadsheet software, but give them the source code to a simple game and you have a fun coding project. they can play around with the code to see what does what, augment it with their own code (which is a good skill to learn -- involves knowing what the original code does and lots of debugging), or even write their own game based on what they learned.

    2. Re:Flexible Learning, Independent of Language by Anonymous Coward · · Score: 0

      Recursion is the "goto" for the new millenium.

    3. Re:Flexible Learning, Independent of Language by Anonymous Coward · · Score: 0

      So I assume somebody taught you the concepts of noun, verb, and adjective before you "chose" English? Sorry to be so flamebait-y, but it seems to me you would need a working example before you could understand the concept of a loop, recursion, etc.

      That said, you do have a point that tying to one particular language could hinder the kids. So they should do what I did, change languages at least once during their public-school years. I went from Basic(7'th grade) -> Pascal(9-10'th) -> C++(11'th). Incidentally, learning all the different computer languages seemed to make it easier for me to learn other "real" languages, like Spanish.

    4. Re:Flexible Learning, Independent of Language by sysop0130 · · Score: 0

      Some people (like me, living in SW Missouri , of all places), don't have any CS-type classes at all in our schools. When we had to plan our schedules for high school, the counselors I was talking to bluntly said "There's nothing we can offer you here." As a result, I can't take such things as AP CompSci, Intro to C, etc.; they aren't offered. The only computer-related courses around are Keyboarding and MS Office Applications.

      --
      -------
      "People who do not break things first will never learn to create anything." -Philippine Proverb
  17. Windows? by `Sean · · Score: 0

    What is this Windows of which you speak? I'm still on a TRS-80...

  18. What can be done to improve the situation? by Anonymous Coward · · Score: 0

    What can be done to improve the situation?"

    Push Microsoft's Windows out of the market, replacing it with Linux based distros which come with GCC preinstalled.

    As if you had to ask...

    1. Re:What can be done to improve the situation? by LiquidCoooled · · Score: 1

      Having it there does not make it usable to an eight year old kid.

      Kids need to learn how to walk before they can run.

      --
      liqbase :: faster than paper
  19. build a time travel machine? by Anonymous Coward · · Score: 0
    Gosh things were Sooooooooooo much better back then.

    I often wish I could go back to the days of a TRS-80 and BASIC.

    Downloading Java or Python or Perl or (.....) is just Sooooooooooo gosh darn hard.

    And then following one of the many tutorials for each of the respective languages is (again) Soooooooo gosh darn hard.

    And then asking questions on the Internet (www bbs style, or USENET) is Sooooooooo gosh darn hard.

    How can the human race survive given all this hardship? I think someone should build a BBS system and we can all pull our 300 baud modems out of the closet and we can collaborate on building a Time Machine so that we can go back in time and make sure that things stay Simple forever!

  20. Using old computers by Linthos · · Score: 1

    A possibility is using older computers that are still in existence out there. I got an old TI/994A when I was 9. My father got it for me as a gift, along with various books on BASIC. While I didn't get do things that were state of the art, it did give me a good idea of some of the basics I needed to learn. I don't know how easy it would be to find an old computer for this type of thing today, but it still seems like an idea of a birthday gift for a son or daughter.

    1. Re:Using old computers by TopShelf · · Score: 1

      Makes me wish I still had my original Atari 400 - I'd just like to see kids learn to type with that keypad!

      --
      Stop by my site where I write about ERP systems & more
    2. Re:Using old computers by ncc74656 · · Score: 1
      I don't know how easy it would be to find an old computer for this type of thing today

      Ridiculously easy.

      I got my first TI-99/4A when I was 11...but then that was back in 1983. :-) I ended up leaving it behind in Germany in 1988 (we had gotten an Apple IIe three years earlier and that was getting the most use), but I picked up another one a year or two ago...and got a bunch of stuff for it I never had back in the day. My first system had just 16K and a tape recorder...the system I have now has 48K, Extended BASIC, a floppy drive, and some other goodies that used to cost a fortune. I think I have no more than $100 in it now, which is what parents today would spend on a couple of mind-numbing video games for their kids. (Games are OK as an occasional diversion, but every time I walk by a demo machine in a store, there's some slack-jawed zombie of a kid staring into it, mashing buttons in a pseudo-random pattern.)

      --
      20 January 2017: the End of an Error.
    3. Re:Using old computers by Creedo · · Score: 1

      I have two of them, a silver and black and a beige one. I hacked a PC power supply to run one(since I didn't get the original power adapter with it). C and Forth are both available, if you can't stand the TI Basic which is built in. I like it because the hardware is still at a level that I can grok. People have built IDE controllers and other fun things for them. An all around great computer to teach some basic(no pun intended) computing ideas to young kids. Did I mention cheap, too? Check ebay for "ti 99" if you are curious.

      --
      All that is necessary for the triumph of good is that evil men do nothing.
    4. Re:Using old computers by jgerman · · Score: 1

      Wish I had mod points, that's a great idea. A little computer in their room that they can play with as much as they want. It's an excellent way to get them into things. Especially, if one of the parents is a programmer and allready has dozens of generic comp sci books lying around for them to dig through if they want.

      --
      I'm the big fish in the big pond bitch.
    5. Re:Using old computers by HTH+NE1 · · Score: 1

      This is one of the reasons why I collect old computers. I have three Apple //es, a //c, and two IIgses. I have two nieces and another niece or nephew on the way. I'm going to have to teach them AppleSoft BASIC... as soon as they learn how to count by tens.

      --
      Oh, say does that Star-Spangled Banner entwine / The myrtle of Venus with Bacchus's vine?
    6. Re:Using old computers by corsec67 · · Score: 1

      Yeah, or if you kept that computer, you could give it to your kid and know that it would work.

      I have a TRS-80 Model 100 that I learned on, and I fully intend on giving that to my kids, and I am only 19.

      My other vote would be on QBasic. I rember making programs that dumped the joystick input onto the screen, then moving the joystick and watching the numbers change

      --
      If I have nothing to hide, don't search me
  21. in by Anonymous Coward · · Score: 0

    In SOVIET RUSSIA, the computer programs YOU.

  22. Two words by tomRakewell · · Score: 2

    Python

    1. Re:Two words by Anonymous Coward · · Score: 1, Funny

      >Two words (Score:1)
      >by tomRakewell (412572) on Wednesday June 11, @11:04AM (#6171157)
      >Python

      Dude, that's only ONE word.

      Two words would be Monty Python. ;-)

    2. Re:Two words by Anonymous Coward · · Score: 0

      Learn to count, that's only one word, and a WORLD of pain as a first Programming language to learn!

    3. Re:Two words by tomRakewell · · Score: 1
      Learn to count, that's only one word, and a WORLD of pain as a first Programming language to learn!


      Bollocks. Python is easy.

      Furthermore, the most important thing for getting young programmers interested in programming is instant feedback. The reason so many kids found BASIC to be easy and fun is that it is an interpreted language. You can experiment on the 'command line', and get instant feedback. Python allows you to do this (as does Ruby, Perl, etc.)

      I think it's a mistake to try and get kids to learn programming by using a compiled language like C or Java.

      Plus, there's a really nice book on learning how to program that uses Python as the learning language.
  23. Tough choice by BabyDave · · Score: 5, Funny

    No programming language ... or BASIC.

    I won't put in the obligatory Dijkstra quote, because by the time I finish this sentence, about 200 people will have posted it already.

    Oh, what the hell:

    It is practically impossible to teach good programming style to students that have had prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration. -- Dijkstra
    1. Re:Tough choice by NixterAg · · Score: 1, Funny

      ...and this gem for you COBOL fans out there (yes, both of you):

      The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offence. (Edsger Dijkstra)

    2. Re:Tough choice by Anonymous Coward · · Score: 0

      It is practically impossible to teach good programming style to students that have had prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration. -- Dijkstra

      I disagree. The first language I learned was BASIC. I've learned a slew of others in the twenty two years I've been a programmer. I now write object-oriented code in C++.

      BASIC didn't teach me STYLE. It taught me what a computer can DO and the basic concepts of computer programming. As such, BASIC is an excellent first-language teaching tool.

    3. Re:Tough choice by tomhudson · · Score: 1
      Haven't used basic since, gee, I don't remember, it's been so long ago, but it did have the advantage of coming with the system in the "bad ole days".

      It also made you appreciate languages like c and assembler.

      I remember writing code in basic for a problem I was interested in, starting the run, and realising that it would take about 20 years to complete. It was quicker to learn assembler, break my problem into chunks, code each chunk, then write another program to load all the chunks into memory, patch the jump addresses, then jump to the first instruction, and at the end, print the results from ram. Result - 2 days runtime.

      Was it easier back then? I don't think so - the tools weren't available, so you had to write them yourself. Heck, even double-sided floppies were a luxury (SS/35-track, 160k which you could notch to make "flippies").

      Today, the machines are faster, more resources (ram/hd/cpu ticks) available, and there are so many languages/toolkits to choose from. Now the hard part is choosing from this cornucopia of riches.

    4. Re:Tough choice by Illserve · · Score: 1

      He didn't say you couldn't be a programmer, he said you couldn't be a GOOD programmer.

    5. Re:Tough choice by MountainLogic · · Score: 1

      There is always Squeek (Squeek.org, I think) that is a free and very friendly Small Talk. There is a book out on squeek right now that is like "Flatland." I think it is called "Squeek - A trip into object land." It comes with the squeek CD.

    6. Re:Tough choice by haystor · · Score: 2, Insightful

      I've thought about this statement and at first considered it arrogant. Then I think who said it and it seems authoritative.

      Now I think it confuses cause and effect with correlation. I don't think BASIC cause bad programmers. I think it drew people that never would have gotten into programming into the field. The kinds of people that would never realize good style.

      Think of the code from web developers or sysadmins that have been pressed into service. Those other avenues may bring them to programming but they are usually limited by their abilities, not their previous experience.

      --
      t
    7. Re:Tough choice by delphi125 · · Score: 1
      At first I thought that 'as potential programmers they are mentally mutilated beyond hope of regeneration' and 'He didn't say you couldn't be a programmer' were mutually incompatible.

      Then I thought back to a small job I did at a place I worked last millenium. It was to update a smallish piece of code (about 1500 lines) which parsed RTF files (and then did some minor magic) to also do the same with HTML. It had been written by a brilliant programmer - the only 'non-student' to ever win a national speed programming challenge, incidentally. Of course, he had left the company by this time, and there was no documentation. So it took me about a week to grok the (C++) code, trying to find places to insert mine. Of course, since his 1500 line program was written in that OO language C++, it had a class, which had some methods, one of which was about 1400 lines long. Oh yes indeedy. Indented 12 or 14 deep (not spaces, braces). In that week I did also look in to using parser generators, but I went home at the weekend feeling down, having not achieved much.

      Next Monday, I finally decided to use my brains. I decided to make a prototype in Delphi (which I am far more familiar with, see my nick). I didn't start coding straight away, I made a simple design first, but after lunch, I went in to code mode. Three hours and 200 lines later (4 or 5 serious functions doing the 4 or 5 steps actually required, none larger than a page, none nested more than 3 deep [exluding outer begin/end]), I had it. Same DLL format, so plugable. Readable (I spent the last couple of hours writing some documentation too). Usable, etc.

      Moral of the story being, I now know what the 'C++' programmer really was... yes he was a programmer - but as mentally mutilated as the come!

    8. Re:Tough choice by roman_mir · · Score: 2, Funny

      Oh, that's a great comment, only here is an example for you: I was 12 when my grandmother got me a book on BASIC. I did not have a computer, did not even have access to a computer, but I really liked that book (it was written in a really cool style, it was a kid's story where the reader would have to learn BASIC as the story progressed in order to solve puzzles, and solving puzzles was necessary to understand the story) and I wanted to try programming.

      So I wrote my first programs on paper in BASIC. I traced my programs by hand and I created input/output tables. I created subroutines with precise definition (pre and post conditions and error handling.) I wrote labyrinth and robot games on paper. It was exciting but I did not have a computer. When I finally got access to Atari 600 and 800 computers I adopted the programs that I wrote for generic BASIC to the BASIC that was built into those machines. The programs worked. I am 27 now, I work as a systems architect I code in dozens of languages, I create architecture documentation, I solve problems and people look up to me for solutions.

      So I don't find that statement to be applicable in every single case.

    9. Re:Tough choice by belarm314 · · Score: 1

      While there is certainly some validity to your point, I must say that BASIC does, in my opinion, cause damage to budding programmers.
      I, too, started my programming career in BASIC (QuickBasic, to be exact), but I am now a more than competant programmer in C++.

      That said, however...

      When I reached the limits of what I could do in BASIC (which took a while...I was very inventive, and got to the point where I was using doing direct reads and writes to/from the video buffer for my graphics programs), I realized the next logical choice was this "C++" thing I'd heard so much about on the 'Net. I decided to check it out, got some example source code, and ran screaming into the night. It took me about 2 years from my initial exposure to C++ to actually get the drift of it, primarily because I was afraid of the code.
      Had I not learned BASIC in the first place, I believe I would have been better off.

      As an aside, the high school I went to offers 2 years of courses in programming, which I took both to see if I'd learn anything, and to add even more math credits ;-) The first year is GW-BASIC. The second year is Pascal. Very old Pascal. While the second was mildly helpful to learning "real" languages, sitting through a year of "Structured Programming" in GW-BASIC helped erode my mental stability to its current very low level.

      --
      When moderating, assume I have not yet had my coffee.
    10. Re:Tough choice by Chris+Burke · · Score: 1

      Sounds like a cool book. Wish I had that. All I had was the manual that came with the computer. It was pure shit. :)

      Anyway, while it isn't -impossible- to become a good programmer after BASIC, I do agree with Dijkstra to an extent. I did spend about half of my time during my teens un-learning all the bad programming practices I'd adopted while using BASIC. Maybe if I'd had a better book, or, I don't know, known a single other programmer in the world that I could talk to it wouldn't have been so bad.

      --

      The enemies of Democracy are
    11. Re:Tough choice by RevAaron · · Score: 1

      Just FYI- it's Squeak at Squeak.org There are a few newish Squeak books out, I've heard the book yuo mentioned is great.

      --

      Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
    12. Re:Tough choice by exp(pi*sqrt(163)) · · Score: 2, Insightful
      Dijkstra is a typical programming Nazi. As far as he is concerned there is one way to program and that is that. There are many programming languages and models: Turing machines, assembler, neural networks, Pascal, FORTRAN, BASIC, C++, Smalltalk, FORTH, finite state machines and Haskell among others. Only one of these look like Pascal, and that's Pascal.

      Each of these languages and models has a domain in which it solves a problem well - programmers have to work from systems ranging from multi-CPU servers with many Gigs of RAM down to tiny embedded systems with a few bytes of RAM. These people are all still programmers. Learning each new model opens your mind to a new way of doing things. Once you have enough experience you'll extract useful computation out of any complex enough system. Hell, to write software for a language like BASIC, without complex datastructures or pointers took a lot of fucking ingenuity and problem solving skills. So people like Dijkstra making ex cathedra declarations that GOTOs and BASIC are bad are a hindrance to solving real-world problems, not a help.

      --
      Doesn't it make you feel good to know that our freedoms are protected by politicans, lawyers and journalists.
    13. Re:Tough choice by MountainLogic · · Score: 1

      Thanks, I'm still working on English as a first language

    14. Re:Tough choice by infinite9 · · Score: 1

      No programming language ... or BASIC.

      It doesn't matter anyway. If I had the internet, with all the pron, all I would have done is one handed web browsing anyway. I never would have made it to basic.

      --
      Disconnect your television. Do your own research. Draw your own conclusions. They're probably lying. Don't be a sheep.
    15. Re:Tough choice by Anonymous Coward · · Score: 0

      True, but once my parents caught me, I'd have lots of time for programming.

    16. Re:Tough choice by Anonymous Coward · · Score: 0

      It is practically impossible to teach good programming style to students that have had prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration. -- Dijkstra

      Ghee, what does that guy do to people that mention Perl then? Shoots em in the head from the back, three times?

    17. Re:Tough choice by ebyrob · · Score: 1

      Hmm... I also started my programming in BASIC (applesoft) in high-school. And I also happen to be 27, though I just work for a small company, I do know more than a couple languages and am (sometimes) tasked with documenting large portions of code no one else seems to "grok".

      I have to say... I also think differently than nearly anyone else I've ever met, and I find that there are two "modes" of engineering. There are those that are "forward" and those "reverse". I find many skills I learned from BASIC apply to dissassembly and other "hackish" persuits, but that what I learned in formal programming classes applies to proper design, problem solution, and "forward" engineering.

      My conclusion is, both skill sets are important, but also that both parts of my nature ("hackish" and "engineer") fight with each other at times. Most interestlingly, I tend toward dislike of most code I read, even my own.

    18. Re:Tough choice by legojenn · · Score: 1
      It is practically impossible to teach good programming style to students that have had prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration. -- Dijkstra

      Damn you Commodore! I don't adore my 64 anymore.

      --
      I make a reasonable middle-class wage by going to work and not spamming blogs with scams.
    19. Re:Tough choice by haystor · · Score: 1

      I won't deny that BASIC may instill some very bad habits. But I think that the person unable to change their habits with a new language will never be a great programmer. This is hardly the fault of BASIC. (I'm certainly not advocating teaching BASIC as a first language, however)

      People decry the lack of quality from today's programmers. Its not like the quality of the best programmers has really gone down. Its that we now have a huge class of programmers that can keep a job even with mediocre talent. The high availability of computers has brought a lot of less motivated people to the realm of computing. Its also made it affordable for a bad programmer to run code (compare to time-sharing days). BASIC did the same for programming. It lets the bad programmer play too.

      I imagine that Djikstra's comment was made half in jest over the frustration at seeing the simplest of mistakes repeated and blown out of all proportion. I know I'd be frustrated teaching law to a bunch of people who've learned about it watching Law & Order.

      --
      t
    20. Re:Tough choice by Bagels · · Score: 1

      I'm going to have to disagree with Dijkstra. BASIC is fine, but it's best if the kids learn that it's merely one possible way to implement an idea. To learn to code properly, it's best to step out a level of abstraction and work with pseudocode first; it may be boring, but it gives a more solid foundation in the end.

      --
      --- Bwah?
    21. Re:Tough choice by TopShelf · · Score: 1

      And what, pray tell, does he say about RPG? I'm a former COBOL-er treading into RPG waters, and dreading every minute of it...

      --
      Stop by my site where I write about ERP systems & more
    22. Re:Tough choice by Anonymous Coward · · Score: 0

      Wow, I learned with BASIC, and I seemed to have picked up OO just fine. I just lost a lot of respect for Dijkstra

    23. Re:Tough choice by ctve · · Score: 1
      The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offence. (Edsger Dijkstra)

      There speaks an academic who probably never had to deliver a fix to a production job 5 minutes ago. I've worked in data processing departments for 15 years. Programmed in COBOL, VB, C# and tried C++.

      The best language I know for the job of data processing is COBOL. It's cross-platform, easy to follow, and well structured. It also doesn't give you much to use, commandset wise, which sounds like a bad thing, but it's good - everyone can follow what everyone else does without having to refer to numerous online journals or books.

    24. Re:Tough choice by conway · · Score: 1

      I went through the same experience!
      I came across a book on BASIC for kids (don't remember which one), and I wrote my programs on paper, at the age of 10.
      When I got access to a computer, about a year later at summer camp (I believe it was a Vic20), instead of typing what the teacher told us to type, I brought my paper and typed in my program. It went into an infinite loop :)
      (The teacher wasn't a computer whiz himself, and couldn't figure out what to press to stop it :) )
      That was my first encounter with a computer bug.
      I later moved on to C (by reading another book). Now, 15 years later, I do system-level programming, did kernel programming and design, Java, some web projects on Perl and PHP etc.
      So, maybe BASIC did cripple my thinking for a while (my first C programs were mostly spaghetti code, with lots of globals, etc.) But eventually I figured out the advantages of procedural, and later OO programming.
      Without BASIC I don't think I could have started out creating real working programs, and proably would not have been interested in the first place.

    25. Re:Tough choice by Anonymous Coward · · Score: 0

      My first language was Commodore BASIC and I suffered no such "mental mutilation" from it with respect to my ability to write good code. Dijkstra's comment may be an accurate depiction of folks who learned BASIC totally through their own experimentation with just the manufacturer's text to guide them. However, users of the C64 back in the '80s weren't alone in their experimentation.

      There were a number of magazines devoted to home computers (Compute, Compute's Gazette, RUN, etc.) and those magazines typically featured a variety of games, utility programs, etc. The distribution method for these programs, at least initially, was printed source code in the back of the magazine. If you wanted to use the program, you had to type it in yourself. So, as a kid I saw screenshots in the magazine of some cool game that I wanted to play and I was motivated to sit at the computer and spend hours carefully typing it in.

      I don't think that initial exposure to professionally written code should be underestimated for it's educational value. In particular, magazines tend to have printing errors in them occasionally and kids will make some typos of their own, so I gained quite a bit of debugging experience in the process. In order to debug a program, you have to read it carefully and come to some understanding of how it is supposed to work. Just like reading great literature is an indispensable experience in the education of an aspiring novelist, reading and understanding professionally written code builds a solid foundation for someone to become a good programmer.

    26. Re:Tough choice by Anonymous Coward · · Score: 0

      Dijkstra is a ass

  24. Little coders by Anonymous Coward · · Score: 0

    Do not teach kids how to program. They will grow up and take your job away from you.

    1. Re:Little coders by rkz · · Score: 1

      buy them some law books so when the RIAA come to sue you for your 'MP3Z!!!' they can fight on your behalf in court saving you thousands in legal fees

  25. Bundle VB with windows by Spunky_Monkey · · Score: 1

    VB is a great beginners language, and as no self-respecting hacker would ever be seen using it, microsoft might as well give it away free.

    1. Re:Bundle VB with windows by MeanMF · · Score: 2, Insightful

      VB is a great beginners language, and as no self-respecting hacker would ever be seen using it, microsoft might as well give it away free.

      They almost got split into two companies the last time they tried bundling something with Windows...

    2. Re:Bundle VB with windows by l0rd · · Score: 1

      Just what the world needs, another VB programmer. The should be giving visual c++ out for free.

    3. Re:Bundle VB with windows by GlassUser · · Score: 1

      VBScript does almost everything VB does. It comes free with windows.

    4. Re:Bundle VB with windows by FallLine · · Score: 1
      VB is a great beginners language, and as no self-respecting hacker would ever be seen using it, microsoft might as well give it away free.
      I'm sorry, but you have a distorted view. As much as I personally dislike VB, it is one of the most popular languages (if not the most) and it is certainly the most popular compiler/IDE product. I'll confess that VB programmers (those that do most/all of their work in it) are generally not the most capable, but they still represent a very lucrative market for MS and there are literally hundreds of thousands of VB applications being used today in the corporate world. Microsoft would be insane to just give it away.
    5. Re:Bundle VB with windows by Anonymous Coward · · Score: 0

      The .NET Framework SDK can be downloaded free from Microsoft's web site, and includes the C# and VB.NET command line compilers. Download SharpDevelop for a free IDE, and away you go.

    6. Re:Bundle VB with windows by Smidge204 · · Score: 1

      Once upon a time, Microsoft did have a "Control Creation Edition" free for download. You could only compile *.ocx controls with it, but you could build and run regular EXE projects within the IDE.

      Google around for it. I believe the last version was 'VB5CCE'.

      =Smidge=

  26. Squeak by nonya · · Score: 5, Informative

    Squeak is an nice environment to learn programming. It is highly portable, includes graphics, sound, and a great programming environment. See www.squeak.org for more info.

    1. Re:Squeak by LimDesWein · · Score: 1

      I too intro to OOP in squeak and while it was a good environment the documentation sucks. This isn't just my opinion it was the opinion of about 100 students and the professor.

    2. Re:Squeak by anti-pirate · · Score: 1
      > Squeak is an nice environment to learn programming.

      Very true, and it has an interesting mouse icon. I've put that shortcut on every Windows desktop in the house in an attempt to ensnare an unsuspecting young mind.

    3. Re:Squeak by gtada · · Score: 1

      There's a book out on Squeak. Kinda spendy, but worth every penny.

    4. Re:Squeak by Billly+Gates · · Score: 1
      Isn't javascript based on squeak?

  27. Cygwin by dragor · · Score: 1

    How about setting up cygwin under Windows? A quick trip to www.cygwin.com and you can be programming away within minutes. Also, you wouldn't be limited to just BASIC. Just about any language you could think of is at your disposal with a cygwin setup.

    --
    Sum Ergo Cogito
  28. You Meticulous Rapscallions by madcoder47 · · Score: 5, Funny

    Bah!

    All you people do is whine and whine about languages!

    Back in my day, I had a bunch of OR and NOT gates and some solder. When I was very good, my parents would buy me an AND gate for my birthday. Those were the days.

    1. Re:You Meticulous Rapscallions by Anonymous Coward · · Score: 0

      Sad. Just... sad.

    2. Re:You Meticulous Rapscallions by jellomizer · · Score: 1

      Wow you had OR and AND gates. I had to use all NOT Gates.

      --
      If something is so important that you feel the need to post it on the internet... It probably isn't that important.
    3. Re:You Meticulous Rapscallions by Thud457 · · Score: 1
      "I had to use all NOT Gates."

      I was better off than you then!
      I had NAND gates and therefore could actually build stuff with them!

      --

      the preceding comment is my own and in no way reflects the opinion of the Joint Chiefs of Staff

    4. Re:You Meticulous Rapscallions by loucura! · · Score: 2, Funny

      Bah! You nancy-pants youngsters... in my day, All I had was a stick and some toroidal stones... and by golly we liked it.

      Durn kids and their durned electricity...

      --
      Black and grey are both shades of white.
    5. Re:You Meticulous Rapscallions by KamuSan · · Score: 1

      Yeah yeah, all gates kids know nowadays is Bill Gates. 8-)

    6. Re:You Meticulous Rapscallions by bobaferret · · Score: 1

      You were lucky, in may day we had to prove that not gates even existed. All we were given was true.

    7. Re:You Meticulous Rapscallions by ch-chuck · · Score: 1

      Oh mi, that's such an accurate description of my younger days and it's rated funny. [eyes glaze over as mind fades back to memories of soldering SN7400 chips onto a home etched circuit board to work out truth tables from Copi's book. Sniff].

      --
      try { do() || do_not(); } catch (JediException err) { yoda(err); }
    8. Re:You Meticulous Rapscallions by Anonymous Coward · · Score: 0

      THere was a fellow at UAF who set out to build a computer from NAND gates. He didn't get very far, but several years later, when I was taking lab classes in the EE department, we still had huge boxes full of TTL NAND chips. We were encouraged to use them where ever possible.

    9. Re:You Meticulous Rapscallions by lildogie · · Score: 1

      > Back in my day, I had a bunch of OR and NOT gates and some solder.

      Gates? Gates? You were lucky.

      I had dry cells, flashlight bulbs, and switches. And I had to make the switches myself.

    10. Re:You Meticulous Rapscallions by aero6dof · · Score: 1

      Actually I recall some toy that I played with in elementary school which had small plastic bricks embedded with electronic components inside with the schematic logo printed on top. You plugged the bricks into this gridded pad. There were plain wire or junction blocks, resistors, diodes, lamps, etc. You could just plug the bricks into a schematic and power it up. IIRC, one of the corners of the gridded board supplied power.

      I wish I remembered the name of the toy - it sounds like it would be fun today.

    11. Re:You Meticulous Rapscallions by istartedi · · Score: 1

      This reminds me of the prof who told us about the "op-amp" from the tube days. For those not familiar, an op-amp is supposed to approximate infinite impedance on two inputs, and infinite gain on one output based on the difference between those two inputs. Modern op-amps are integrated circuits available in single-unit packages the size of a pinkie-nail. They have about 10-20 transistors in them.

      With the addition of a few simple parts, op-amps can be used to build a wide variety of circuits such as oscillators, amplifiers, VCOs, etc. Of course these things can also be built without op-amps using fewer parts, but op-amps greatly simplify design and are a common teaching tool in electrical engineering courses.

      The tube op-amp, in it's most refined form before the introduction of transistors, was described by this prof as "about the size of a can of soda, and hot as a firecracker".

      --
      For all intensive purposes, "whom" is no longer a word. That begs the question, "who cares"?
    12. Re:You Meticulous Rapscallions by Rick.C · · Score: 1
      Back in my day, I had a bunch of OR and NOT gates and some solder. When I was very good, my parents would buy me an AND gate for my birthday.

      Did know that you can actually swap your parents one-for-the-other by XORing them together three times?

      God! Was my father pissed!
      --
      You were 80% angel, 10% demon. The rest was hard to explain. - Over The Rhine
      "Math in a song is good."-Linford
    13. Re:You Meticulous Rapscallions by copterdoc · · Score: 1

      That is EXACTLY what these kids need. No Joke.

      I remember that I used to have a computer game for my Apple IIe. While I don't remember the name of it, the object was to build robots with AND and OR and XOR gates in order for them to make their way through obstacles. That taught me logic.

      Make a game out of logic and you capture the imaginations of those kids. Make the higher levels software based and you have budding programmers.

    14. Re:You Meticulous Rapscallions by Anonymous Coward · · Score: 0

      Back in my day, we didn't even have AND gates, we had ORs and inverters and if you couldn't figure out DeMorgan's laws, well you just had to do without.

    15. Re:You Meticulous Rapscallions by Sabotage · · Score: 1

      'Twas called "Rocky's Boots".. I remember playing it in school. Loved that game...

    16. Re:You Meticulous Rapscallions by Anonymous Coward · · Score: 0
      when i was a kid i took a stack of twenties and made Bill Gates

      (cause it's the root of all evil! get it? get it???)

  29. Where to start? by eli173 · · Score: 5, Interesting

    Hand them a Knoppix CD and a book on Python.

    Or let them get python for Windows, if you must.

    1. Re:Where to start? by cybermace5 · · Score: 1

      Give them Visual Basic .NET for their birthday, say how "rad" and "fly" it is and how you hope they will become a decent, clean-cut Microsoft programmer, and forbid them to speak of Perl, C++, or Linux. Over your dead body!

      In five years you will have the next Linus Torvalds.

      --
      ...
    2. Re:Where to start? by megaralf · · Score: 1

      Hi, I am completly against Python to start programming. The syntax is not hard, but Python gives you nearly no information where to search for an error.
      Perl with pragma strict gives more information but again, who wants to start with Perl?
      C is good but you can't write C without pointers and there is a lot that you can do wrong when using pointers.
      I would propose Java or Java Script. Java is good, clear, visual and you can write RoboCode.
      Java Script can be used together with Html to create flashy web-sites and you can find a ton of examples on the web.

    3. Re:Where to start? by Ridgelift · · Score: 1

      Good call, Knoppix will mean not having to install anything and still access the underlying filesystem to save programs.

      For the book though, just point them to How to Think Like a Computer Scientist. It's an excellent tutorial on Python for beginners.

      So to answer the question above, what's required to teach programming? A 50 cent CD with Knoppix, a computer and an internet connection. Problem solved. That's a wrap folks! See you next post.

    4. Re:Where to start? by hagbard5235 · · Score: 1

      I've always found the errors emmited by Python to be exceptionally clear and lucid ( human readable stack traces with line numbers and all ). In what way do you find them to be deficient?

    5. Re:Where to start? by mnmn · · Score: 1

      Or someone who hates computers to the extent he would only write on paper, and never use emails.

      Kids need a break. They need to use assembly 3dnow instructions and Nvidia GPU instructions.

      --
      "Give orange me give eat orange me eat orange give me eat orange give me you." -Nim Chimpsky
    6. Re:Where to start? by cybermace5 · · Score: 1

      I cannot believe no one got the joke.

      Guess I'll have to explain it: a parent gives a kid something, and tries to convince them it's cool, even using what they consider to be the jargon of the younger set. Then they explicitly forbid use of something. It stands to reason that the kid will become an expert in whatever was forbidden, which was the goal in the first place.

      It was a reverse psychology joke, and it's supposed to be a +5, FUNNY!

      --
      ...
    7. Re:Where to start? by Anonymous Coward · · Score: 0

      What exactly do you find problematic with Python's clear exception system with full tracebacks?

      On the other hand, what is it about JavaScripts incredibly obscure (if available at all) error handling that would make you support it instead?

  30. Shell Scripts by RumpRoast · · Score: 2, Informative

    If I was going to start my kids into programming I think I'd start with some easy shell scripts. Seems like you can do almost everything that BASIC did with bash, ksh, etc...

    If they can get past doing some basic stuff like that you can move them up to a more complex and capable platform.

    --

    My Ass hurts.
  31. Bigger Problem is Software IP by Anonymous Coward · · Score: 0

    Kids today have more ways to create software but a bleaker programming future. How can they create any new software without risking a visit from a sleazebag with a patent?

  32. Squeak Smalltalk for Kiddies by SwissMike · · Score: 1
    1. Re:Squeak Smalltalk for Kiddies by soundofthemoon · · Score: 1

      Hear, hear! Smalltalk in general and Squeak in particular have many advantages as first languages for kids.

      The biggest plus is that Smalltalk was developed FOR teaching kids to program. Alan Kay has always had a not-so-secret agenda to teach kids programming as part of a basic educational curriculum, and Smalltalk was his first serious attempt to create a suitable language and programming environment for that purpose. Over the years Alan, and many others involved in Smalltalk and Squeak, have done a lot of research in this area, and it shows in the ease with which children pick up programming using these tools.

      Alan once recounted a funny story to me about using Smalltalk-72 to teach programming to kids. They had a group of a dozen or two kids they were working with in the experiment. Most of the kids picked it up easily and were doing some pretty cool things. But two kids never could get the hang of programming. It turned out that both of the kids had parents who worked for HP, and had previously taught their kids some programming using BASIC. The poor kids already had learned what the limitations of BASIC were, and never were able to get outside that conceptual box to be able to use Smalltalk effectively. I think that's an important thing to keep in mind - don't start kids learning on a crippled system, but give them one that gives them a big enough box to think in that they won't be learning bad programming habits they will have to unlearn later.

      The other thing to keep in mind is that the important part of programming is being able to think in the right abstractions. A real programmer doesn't think in terms of the language syntax, but thinks in concepts like iteration, recursion, list, array, etc. Only after solving a problem at the abstract level does a real programmer translate the solution into the syntax of the language. (That's why learning a new language is simple for a professional programmer. It should only be a matter of a few days to pick up a new language, unless is uses radically new concepts.) Smalltalk is nice because it has such simple syntax. C++, Java, Perl, PHP, etc. have very complex syntax with many operators and lots of shortcuts and syntactic sugar. Smalltalk has about 6* lanugage constructs, and everything else is done with messaging.

      (* A coworker who was a Lisp expert and I once compared Scheme and Smalltalk syntax. It turns out the two languages had exactly the same number of lanugage constructs with equivalent functionality. I remember the number of constructs (e.g. declaring a temp/local var, message send/function call, quoting) was about 6.)

    2. Re:Squeak Smalltalk for Kiddies by tpr · · Score: 1

      I second this pretty much word for word. I cannot believe these ninnies suggesting java for kids!

      Youngsters shouldn't be bothered with the syntax of something like C until they actually need to use it. eToys (get squeak, try it out) lets them learn about important things like control and iteration and intercation without al the crap.

  33. Real simple... by doppleganger871 · · Score: 1

    ...Just go get a Commodore Vic-20, 64, 128, Plus/4, 16, etc... (0o0o or an SX-64, I have one of them) and start pluggin' away at it. Simple. Gather up some 5.25" DD floppies, cassettes, or DD 3.5" floppies (If you find a 1581 drive) and have at it. There are pleany of programming support sites, and you can even hit the IRC for help.

  34. He's right by cruppel · · Score: 1

    The TI-86 was my first programming experience and it was definitely a plus to be able to see results with 1 or 2 minutes of coding. I wouldn't mind trying to use a console to program my own game. This guy has a really good point here. I wouldn't mind programming on a gamecube, sure you couldn't just all of the sudden use the 3d engine in a week but people would eventually approach it with confidence.

    Could you somehow develop a sharing network for console-created programs? So people can debug their or others' programs, and look at useful code that has been (for lack of a better description) GPLed? I don't neccessarily mean a network IN the console, just a dev network.

    1. Re:He's right by hyphz · · Score: 1

      > This guy has a really good point here. I
      > wouldn't mind programming on a gamecube, sure
      > you couldn't just all of the sudden use the 3d
      > engine in a week but people would eventually
      > approach it with confidence.

      Ever hear of Net Yaroze? That was basically that kind of thing, where Sony opened a simplified version of their coding API to any user who wanted to join.

      It was freakin' impossible to use and only about 20 or so people outside Japan ever produced anything with it.

  35. Language choices by DJ+Rubbie · · Score: 3, Informative

    There is a pascal based language called 'Turing', a language that is taught as part of many entry level computer course in high schools of Canada. There is an OO version called Object Oriented Turing, which does run under Windows. Do note that while those languages are extremely limited (to a point that is painful), I was able to do some amazing games that people stare in amazment at and that actually was the starting point of my coding life.

    Do remember, those that have an interest and initiative will find themselves looking for ways to start coding, such as searching for compilers on Google and go from there.

    --
    Please direct all bug reports to /dev/null
    1. Re:Language choices by Anonymous Coward · · Score: 0
      There is a pascal based language called 'Turing', ... There is an OO version called Object Oriented Turing, ...

      Then there is Pascal Object Oriented Turing, or POOT.

    2. Re:Language choices by Anonymous Coward · · Score: 0

      So if the Object Oriented version would be "OOT", is the windows variant known as "WOOT"?

    3. Re:Language choices by Life2Short · · Score: 1

      Pascal really is a great language for beginners. Anybody remember "Lightspeed Pascal" later "Think Pascal" for the Mac? What a great programming environment! I had a great book to go with it too called "The Fear and Loathing Guide to Mac Pascal." Good times, good times...

    4. Re:Language choices by RevAaron · · Score: 1

      IIRC, Turing and OOT are commercial packages, for which there is no free version. At least it was the last time I looked into it. They may provide an evaluation for someone seriously looking into it- I never tried to contact anyone. I was teaching at a little after-school computer club, and was looking at my options.

      http://www.holtsoft.com/turing/

      --

      Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
  36. Open Source to the rescue! by steevo.com · · Score: 2, Insightful

    Yes, MS is devoid of programming, but Open Source solutions, such as Linux and BSD, have solutions right out of the box. True, gcc is there, but the place where the kiddies can start is simple shell scripting. Perl and Python can be used later.

    I don't think that the real problem is with the lack of tools, but with a lack of motivation. When I had my VIC-20 in 1981, I had to write BASIC programs because there was little else to do with it.

    1. Re:Open Source to the rescue! by XO · · Score: 1

      I just want to see a 5-7 year old pick up "vi". LOL.

      Scripting just doesn't get it.

      --
      "Champagne for my real friends - and real pain for my sham friends!" http://ericblade.postalboard.com/
    2. Re:Open Source to the rescue! by steevo.com · · Score: 1

      5 - 7 year olds really didn't use BASIC either.

      The math and logic behind programming in BASIC, C, Perl, shell script, etc., is beyond the comprehension most kindergarten to first grade children.

      You are right, scripting does not "get it" for these kids, but what does? Does something even need to? Use the computer for some "Reader Rabbit", then go outside and play. Leave the coding to the older kids.

    3. Re:Open Source to the rescue! by XO · · Score: 1

      Well, I was 5 when I started pecking away in BASIC. Most of my friends that did any coding, their parents had bought them or their older siblings computers when they were in the 5-8 range..

      My dad bought our TRS-80 Color Computer to keep my brother occupied, but my brother wasn't interested.. he preferred to read Sci-Fi and Fantasy, and draw really awful space alien lizards with no feet. (he actually is a really good sketch artist these days, but still can't draw feet on anything, 20 years later.. lol)
      So, the computer sort of fell into my hands. I played around with the Breakout clone cartridge that we had for it, and doodled with some other cartridge that I don't even remember, and got bored pretty quickly.. and that's when i pulled out the manual and started dinkin around. My parents got me a couple of whatever the TRS-80 magazines were, and that's how I started.

      My brother got into it a few months later, and we talked the parents into buying us a VIC-20 (we wanted a C= 64, but they just bought whatever Commodore machine was on the shelf), and then my brother sold half of his comic book collection to buy us a C= 64 and a 1541. I think I was 6 or 7 when that happened.

      From there, as they say, is history. I was writing little blah programs, and mostly typing things in from magazines and then doing hardcore changes to them.. did lots of enhancements to the games and stuff that they had in those.. and then I got my first modem, when I was 11. (1987) Used Q-Link for a while.. modem died. For my 12th birthday, I got another modem, and got into BBS's. By the time I was 13, I had written several additions for C-Net BBS, and had a BBS that was virtually unrecognizeable from the original C-Net it was based on except for the command structure. I even wrote a primitive form of Networking protocol, somewhat loosely based on UUCP to network messages between C-Net BBS's in that time.
      When I was 14, I started writing the first DOS based IRC client, and had been using Unix systems for at least 2 years.. based my client on ircII for Unix.

      I guess I thought that most of our experiences from the people in my age range (I'm 27 now) were pretty similar, but I guess maybe I'm a bit of an anomaly.

      Anyone else get into coding when they were 5-7??

      --
      "Champagne for my real friends - and real pain for my sham friends!" http://ericblade.postalboard.com/
  37. IBM's Robocode by capedgirardeau · · Score: 5, Interesting

    There is a neat game that uses java to make robots. Starting very simple, as you learn to program you make more powerful robots to compete against others.

    IBM Robocode Home

    Covered on slashdot here:
    Robocode Rumble: Tips From the Champs

    And here:
    Learning Java Through Violence

    --
    Wax on, wax off baby!
    1. Re:IBM's Robocode by Boing · · Score: 1

      My undergrad java language class used Robocode as one of our projects. It was pretty effective at getting people to become familiar with some of the nuances of the language, but mostly I think it was meant to be something interesting to break up our other, harder, projects.

      We held a six-round tourney to determine whose robot was the most effective. I won, even though my robot wasn't the last one alive in any but the first round (you get points for good bullet accuracy).
      </bragging>

      My prize was a huge bag of bite-size 3-musketeers. You'd think that anyone who had the time to slave over a robot program enough for it to win that tournament should have been discouraged from sitting on their butt eating candy... but oh well. Hey, candy!

    2. Re:IBM's Robocode by DrXym · · Score: 1

      Cool! I recall a game aeons ago called CRobots which was a similar thing where you wrote robots in C and watched them fight it out in an arena. I had always been tempted to do the same in Java but sadly laziness kicked in and I never bothered. I'm glad to see someone else did.

  38. Mr. Ballmer Says... by Anonymous Coward · · Score: 0

    Developers! Developers! Developers! Developers!

  39. Many solutions by tsetem · · Score: 1
    The link is down, so I don't know exactly what it says. But there are many solutions possible:
    • Install Linux. Just get rid of Windows.
    • Install Perl on Windows
    • Install Tcl/Tk on Windows
    • Install Python on Windows
    • Install Cygwin on Windows
    • Install <OSS Language of choice> on Windows

    Just because MS doesn't come with a language doesn't mean there are no languages available. I'd say start the young tykes off with Tcl/Tk or Python to learn the basics and go from there.

    I remember growing up with my PC & GW-Basic book in hand learning how to code. I also remember being stigmatized by it as well (Poor documentation, poor interpreter). If anything, I believe there is a lot greater opportunity for kids to learn to code on their own, by using many of the OSS languages out there. The languages are free, the IDE's are free, all it really takes is getting the word out about them.

    1. Re:Many solutions by Anonymous Coward · · Score: 0

      Perl is not a good first language. It is far too idiosyncratic syntactically, since there is so much context-dependency. Just about any alternative is better.

      Anyway, I agree that there are lots of choices.

      However, a good idea would be to actually learn how computers work, as well. High-level languages hide this from you. Whether you're going to use it for something significant or not, you should learn assembly language as early as possible. After learning some high-level language, before learning C.

      I've seen lots of beginning programmers write absolutely nonsensical code in C - the most common reason for this is that they don't understand what pointers are, but try to use them anyhow.

      For higher-level languages than C, understanding the underlying technology isn't crucial, but useful.

      As a general recommendation for anyone, if you want to become a good programmer, you should learn as many different kinds of languages as possible, not just the popular ones, and learn to do things the way they are done in those languages. Just trying for a while and deciding "I can't do things the way I'm used to doing them!" means you are stuck in a limited set of programming paradigms.

      If you feel something is hard ("Haskell doesn't give me variables, but I don't understand these weird things called monads!"), you just aren't approaching it from the right angle. There is no such thing as a hard programming language.

  40. Does ABC still air Schoolhouse Rock reruns? by thdexter · · Score: 1

    If so, we don't need to worry at all!

    Well, assuming they can find qbasic.exe somewhere.

    --
    I'm on a road shaped like a figure eight; I'm going nowhere but I'm guaranteed to be late.
  41. Install Java by smartin · · Score: 1, Redundant

    It's a complete development environment, allows the kid to learn object oriented programming without the kruft of something like C++. And it is actually used in the real world.

    --
    The difference between Canada and the USA is that in Canada healthcare is a right and gun ownership is a privilege.
    1. Re:Install Java by twoshortplanks · · Score: 1
      My main problem with Java is that it requires a lot from you before it lets you get anywhere:
      • It requires you to compile it
      • It requires you to create classes rather than just jumping right in
      • It has type checking (which normally is a good thing, but isn't flexible for kids)
      This being said, it's not a bad first real programming language. It was the first language I learnt after BASIC, and it taught me a lot.
      --
      -- Sorry, I can't think of anything funny to say here.
    2. Re:Install Java by Anonymous Coward · · Score: 0

      The first thing the kid should learn is not OOP, it's programming in general.

      A dynamically typed language would probably be a better first language.

      Then they can learn about types, using a language that actually has a decent type system, unlike Java.

      Then they should learn about different programming paradigms, including OOP.

      Personally, I think that the Hindley-Milner type system is definitely something that every programmer should be exposed to, if for no other reason, then so that they could see how much they are missing in popular languages.

  42. Use Java by mbowles · · Score: 1

    Download the Java SDK and work through the tutorials. For more depth go to a local half priced bookstore. The manuals may not be the latest and greatest but is concepts that need to be learned and they will cover that.

    1. Re:Use Java by Anonymous Coward · · Score: 0

      Do you really think Java is that easy to used? I fisrt learn with locomotive basic. It came install with my computer (a Amstrad). I just double click on a icon and I was in a ide, with all the stardard and every thing available from the help menu.

      The few java ide I try, the help suck. You've got the equivalent of the javadoc, it's great for a programmer, but for a total novice, it's useless. Espacially the open source project are generally expert oriented. What a novice need is a single install that put everything in place. The sdk is great for the intermediate, but I wouldn't recommand it for a total beginner.

  43. Important to teach kids vi key bindings by Anonymous Coward · · Score: 0

    When I was young I learned vi - it was crappy - and I knew it. It's still crappy, in fact - but, by gum, that's the way software ought to be written. Damned spoiled kids and their XBoxes.

  44. The solution - Python by fredrikj · · Score: 1

    Every computer should ship with Python installed.

    Can't imagine a better language to start learning with. And the interactive mode is GREAT for novices.

    1. Re:The solution - Python by malfunct · · Score: 2, Insightful
      I agree, python would be great.

      I think the bigger problem with getting newbies to program is that programmers are sort of elite. When I first started programming I did silly things like make an arrow "fly" across the screen by doing a very very simple text mode animation, which made my peers thing "wow that guy is amazing". Now I'd get laughed out of the room for the same program. I think that new programmers will have a hard time getting past that first hump because there isn't enough appreciation of the small stuff.

      --

      "You can now flame me, I am full of love,"

    2. Re:The solution - Python by Anonymous Coward · · Score: 0

      Python is ok as a first language, the interactive mode is tolerable, but suffers from the fact that Python has made some very unfortunate design decisions such as separating expressions from statements.

      Python might also be too confusing for a first language because of its whitespace-sensitivity.

      The interactive modes for languages such as Lisp and ML dialects is far better than Python, since they are conceptually simple and consistent (read-eval-print loop).

      Scheme is a pretty good first language, and has been used by lots of universities for introductory courses (with no prior programming experience required).

    3. Re:The solution - Python by Anonymous Coward · · Score: 0

      We're not as elite as you might think. *grin*

      http://uselesspython.com

  45. Teach 'Em Young by Anonymous Coward · · Score: 1, Funny

    I knew a guy who planned to teach his kid to count in hex before teaching him base 10. That, and he was going to give the kid instructions in x86 assembly.

    Kid:Can I have some candy?
    Dad: xor ax,ax
    Kid:But Dad...
    Dad: mov corner,you

  46. Macro's by YrWrstNtmr · · Score: 1

    Excel (indeed the whole Office suite), and OO.o has macro capability. While some may deride 'macro programming' as not 'real' programming, it presents some of the same concepts and thought processes as building something in (choose your favorite language).

    Learning to design, code, test, deploy these can indeed teach kids the base concepts for programming.

  47. erm... by REBloomfield · · Score: 2, Informative

    er, hello? Windows does still come with QBASIC. Go to run, type QBASIC... or CMD->DEBUG ;)

    1. Re:erm... by unDiWahn · · Score: 1

      While Windows 98 had QBASIC, Windows 2000 + certainly doesn't, and I don't believe Windows ME had it either. But no one's using ME, right?

      I'm sure you could find it pretty easily for download though,

    2. Re:erm... by REBloomfield · · Score: 1

      well, i've got 2k, and i've got it.. maybe it's an extra in the installer... i believe it was in the valupack for Win95...

    3. Re:erm... by bofkentucky · · Score: 1

      XP Pro SP1, no QBASIC, pretty sure that everything after Win 95 does not have QBasic.

      --
      09f911029d74e35bd84156c5635688c0
    4. Re:erm... by jandrese · · Score: 1

      Microsoft Windows 2000 [Version 5.00.2195]
      (C) Copyright 1985-2000 Microsoft Corp.

      C:\>qbasic
      'qbasic' is not recognized as an internal or external command,
      operable program or batch file.

      Apparently not by default.

      --

      I read the internet for the articles.
    5. Re:erm... by rkz · · Score: 1

      its on your windows 95 CD, in a directroy called olddos

    6. Re:erm... by ncc74656 · · Score: 1
      Go to run, type QBASIC

      "Windows cannot find 'qbasic'. Make sure you typed the name correctly, and then try again. To search for a file, click the Start button, and then click Search."

      (As an added bonus, the error sound on my computer is of the Soup Nazi saying, "No soup for you!")

      The Win95 & Win98 CDs had QBASIC buried somewhere, but it wasn't installed by default. I don't think it was even included on the NT 4, Win2K, or WinXP CDs.

      DEBUG is still included with WinXP, but I think the only time I've ever used it was to access the setup utility on the MFM hard-drive controller in an IBM PC/XT. (Come to think of it, DR DOS 6.0 is installed on that machine, so it would've been SID (?) instead of DEBUG.)

      --
      20 January 2017: the End of an Error.
  48. Do you want to teach programming or development? by alek202 · · Score: 4, Insightful

    There's a huge difference between these two. Knowing a programming language doesn't inherit that you are able to design applications. I've seen so much spaghetti code in my life, I'm really glad that development (or the ability to feed custom lines of code into your computer) became so "hard".

    Sure, when I used to own a C64, I could code stuff as I wanted it to, and I knew that my code will run on everybody's else C64, too. But today, you have to develop your applications in a team, which has to run on different platforms (even Win2K and Win98 are a difference!), and has generally became very complex. But that's another story.

    --
    Every problem has a solution, but every solution creates new problems.
  49. JavaScript by FTL · · Score: 2, Insightful
    > Now we have Windows, which typically comes with no built-in programming language.

    Windows comes with Notepad and IE. Little Coders have access to JavaScript; something that can run circles around the BASIC of old.

    --
    Slashdot monitor for your Mozilla sidebar or Active Desktop.
    1. Re:JavaScript by Anonymous Coward · · Score: 0

      Javascript also runs in Netscape/Mozilla, so its is cross platform. All you need is a browser and there is no compiling so it seems like coding has gotten easier.

    2. Re:Javascript by recursiv · · Score: 1

      I always thought Javascript/DHTML would be a great tutorial language for multiple reasons...

      2) Java is bloody simple...every class name is like written english, so they're very easy to remember


      Java has nothing to do with Javascript. The only thing they have in common is the "Java" in the name. Other than that, they are completely different languages

      --
      I used to bulls-eye womp-rats in my pants
  50. I don't think this is a big issue by Anonymous Coward · · Score: 0

    People who have the drive to learn a programming language most likely aren't hurting for places to do so. It's relatively easy to get a shell account on a box anywhere with gcc/g++ access, and that is plenty -- i learned my first languages through MUD coding in the mid 90's post-dos/BASIC era, and had no problems -- i got a copy of codewarrior and had a linux box...that was all i needed to learn C, C++, Java, PERL.

    I don't think that BASIC is any easier to grasp for most people than C is -- I find many things about BASIC to this day to be entirely more confusing than in C, and i doubt that the lack of a built in compiler in windows is causing people to not be able to learn programming languages.

  51. From someone who cut their teeth in the eighties by camusflage · · Score: 1

    Windows has VBScript and JScript. You can easily download the .NET SDK and dev in any of the .NET languages (sans gui ide).

    That being said though, there are literally hundreds of languages out there that have open source implementations. If someone, even a newbie, can't figure out how to download and extract one of them, even before knowing anything about coding, is this really the sort of person we'd want to have in our stable as a future developer?

    Quite honestly, these days, I see the problem being too many choices. Back in the day, you had basic, and perhaps logo, if you horked a copy from your school. I went balls out and learned 6502 assembler at age 12, but that's just me. Nowadays, those crazy kids have many, MANY choices about what to program in, and likely little to no guidance as to what to get STARTED in.

    --
    The truth about Scientology, Xenu, and you: Operation Clambake
  52. Java by nate1138 · · Score: 4, Informative

    Learning to code is so much easier with a good structured language. Download the JDK from sun (free as in beer). That and a text editor gets you started. If you want a pretty IDE, Eclipse, Forte4J, and Borland jBuilder personal edition are all free downloads, and are fairly full featured. I am teaching my nephew to program using these tools. So far, he is picking it up fairly quickly. For teaching, I think that a strongly typed language makes it easier.

    --
    Where's my lobbyist? Right here.
    1. Re:Java by Anonymous Coward · · Score: 0
      Download, install, and run. Read the tutorials on Sun's site. If a kid can't do that, then programming isn't for them.

      Bah. That depends on how old the kid is. A ten-year-old might not be ready for that, but start the kid on something simpler, and if he takes to it I'd bet money he'll end up a far better programmer than the average "I'll take CS because there's money in it" grad.

    2. Re:Java by pmz · · Score: 2, Informative

      Download, install, and run. Read the tutorials on Sun's site.

      If a kid can't do that, then programming isn't for them.


      Be careful, though. A kid might look into Java, see the hundreds of APIs in the Java "platform", become depressed, and decide that those liberal arts classes aren't so bad after all.

      Java/J2EE and .NET are enormous. Kids needs a simple, interactive, and fun environment for learning. Logo is fun for a few minutes, but the novelty wears off. Quite honestly, something along the lines of a Commodore 64 BASIC might be very appropriate, with fun examples in old issues of Compute's Gazette, animated sprites, and easy sound generation. I also remember seeing young people managing fun things in Pascal and Turbo C, but those might be best for a second language/platform.

      It really is too bad that a kid's first computer now-a-days will have the opaque behemoth that is Windows XP. My C-64 was a great first computer, and even my first DOS 5.0 PC was a lot of fun. Now, however, when I boot Win2K or XP, all I really am motivated to do is click around until I find something and the "magic" is gone. I would even argue that even UNIX/Linux is a bit too much, at first, but, perhaps, these are the best thing going, anymore.

    3. Re:Java by Jester99 · · Score: 4, Funny
      I'd introduce... emacs (in order to have the simplest possible environment)

      Hmm. You're one of those people to whom the dashboard of a 747 is "simple," aren't you. :)

      "Daddy? How do I compile?"

      *sigh* For the last time, Bob, M-L, M-X, C-M-K, "make", esc-esc-return...

    4. Re:Java by Rinikusu · · Score: 1

      Yay! Let's churn out "yet another codemonkey". :(

      Not to say your suggestions are bad, but when I was 10 or 11, the last thing on my mind was database tuning.

      This is yet another "turn off" for the computing industry for me. I envisioned excitement and adventure (don't ask how). I've found DB's, focus group meetings, and data-migration. :: sigh ::

      --
      If you were me, you'd be good lookin'. - six string samurai
    5. Re:Java by mccrew · · Score: 1
      By sticking to Java the child will tend to learn clean programming design and algorithms, rather than wild pointer debugging tricks.

      Wait a minute there, Pardner. There isn't any magic bullet where programming in any particular language makes programming "clean design" or sudden mastery of algoritithms. Believe me, I have personally seen so-called "professional" Java programmers crank out some of the worst designed, poorly implemented piles of $#!+ I have ever come across in almost 20 years of professional development.

      Put another way, it is possible to write crap code in any language. Clean programming only comes with education and experience. Language is just a tool that can be for good or ill.

      For fear of starting the usual religious flame fest, I won't take on your comment about emacs as the simplest possible environment, other than to say that I coughed and almost had coffee come out of my nose when I read that.

      --
      Hey, Windows users, there is no such thing as "forward" slash, there is only slash and backslash.
    6. Re:Java by RevAaron · · Score: 1

      Heh. If I was handed NetBeans as the answer to my request to learn programming, I don't think I would've gotten to the point where I am today. Why the hell would a kid sit through the hell known as NetBeans to program in an overcomplicated language, where you have to type a lot to get little return? Eclipse would be less painful from a UI-responsiveness standpoint, but it is still a lot more complicated than a beginner's IDE should be. While I still dislike Java, especially for teaching to youngsters (to 18-year old CS1 students is another thing), I'd at least recommend something like BlueJ. Heck, even as a non-beginner, BlueJ is good for playing around with Java objects.

      I agree that a beginner programmer should learn to use real programming structures, but there is no reason they have ti learn it formally.

      For a second, I thought your post was in jest, but I think it's more that you don't know any kids. While I'll admit to having played with some DOS SQL databases when I was young, most kids - especially bright kids- aren't interested in a structured course where they learn how to be a good warm body for the programming market... They have the rest of their life for that kind of bullshit, why raise them on it?

      --

      Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
    7. Re:Java by cameronl · · Score: 1

      Sun's free Documentation, especially The Java Tutorial and the API Docs, is all you need to learn.

    8. Re:Java by Glock27 · · Score: 1
      Heh. If I was handed NetBeans as the answer to my request to learn programming, I don't think I would've gotten to the point where I am today.

      Note that NetBeans was the third environment I recommended, in sequence.

      While I still dislike Java, especially for teaching to youngsters (to 18-year old CS1 students is another thing), I'd at least recommend something like BlueJ. Heck, even as a non-beginner, BlueJ is good for playing around with Java objects.

      BlueJ might well be a good alternative, I've never used it.

      [snip]

      For a second, I thought your post was in jest, but I think it's more that you don't know any kids.

      First off, I have a child - he's almost to the Logo point. We'll see how things go. ;-)

      While I'll admit to having played with some DOS SQL databases when I was young, most kids - especially bright kids- aren't interested in a structured course where they learn how to be a good warm body for the programming market... They have the rest of their life for that kind of bullshit, why raise them on it?

      Not a structured course, just a one-on-one introduction to the concepts. That, coupled with an ability to read, should be sufficient.

      As to 'warm body for the programming market' - that is the furthest thing from my mind. There would be no supplied projects - the kid would be free to pursue whatever it was interested in. SQL databases can also be used for fun things, like storing player data in a game.

      Just because you find such topics stultifyingly boring doesn't mean everyone does. ;-)

      --
      Galileo: "The Earth revolves around the Sun!"
      Score: -1 100% Flamebait
    9. Re:Java by Glock27 · · Score: 1
      Yay! Let's churn out "yet another codemonkey". :(

      Sure, like John Carmack, right? ;-)

      Not to say your suggestions are bad, but when I was 10 or 11, the last thing on my mind was database tuning.

      I wasn't advocating learning DB administration, just using a database as a structured datastore. Also note this is several years into the process, not at "10 or 11".

      This is yet another "turn off" for the computing industry for me. I envisioned excitement and adventure (don't ask how). I've found DB's, focus group meetings, and data-migration. :: sigh ::

      There are far more exciting programming/computer opportunities than business applications. Some of it involves quite a bit of responsibility (safety critical embedded systems), but regular embedded systems might be a better fit for you. There is quite a bit of satisfaction in seeing your device work the first time - and no data migration meetings to be found. ;-)

      --
      Galileo: "The Earth revolves around the Sun!"
      Score: -1 100% Flamebait
    10. Re:Java by Anonymous Coward · · Score: 0

      I have to disagree. BASIC is type-less for a very good reason. Types are all about machine dependent things like word size, and impose bizarre things like "Why can't my number be bigger than 64000?" which kids do not need to know about. The other reason for declarations is to allocate storage which any decent interpreter can do on the fly.

      Let them learn what it is to program before filling their heads with things that make it run faster.

    11. Re:Java by wrfink · · Score: 2, Interesting
      Java is on the of BEST languages to learn as a first. Why?
      1. Command line (if you like)
      2. Free
      3. Many Free IDE (i.e. Eclipse)
      4. Available for Windows, Linux, Mac, Mainframe
      5. Class files can be sent to friends without a recomple
      6. Applications AND Applets
      7. Tons of free learning stuff like Thinking in Java
      8. No demented DLL hell and install issues that will f_ck up Dad's computer
      9. Many specialized area of interest (i.e. Multimedia, 2/3d Graphics, Networking, Voice, Games, Web, etc.)
      As an added bonus, budding young kids of descruction can battle with Robocode or Race using CodeRally CodeRally
    12. Re:Java by Glock27 · · Score: 1
      Hmm. You're one of those people to whom the dashboard of a 747 is "simple," aren't you. :)

      "Daddy? How do I compile?"

      *sigh* For the last time, Bob, M-L, M-X, C-M-K, "make", esc-esc-return...

      ROFL. Well, emacs is something that can be learned in stages - I'd have him/her use the editor strictly for editing, with a handy command line nearby for "javac *.java" and "java Alife".

      C-x C-f to open a file isn't really that complicated, nor is C-x C-s to save it. Other than that, emacs can be used as a fairly simple visual editor. :-)

      Plus, if the kid really gets into it, he/she can learn Lisp! ;-)

      --
      Galileo: "The Earth revolves around the Sun!"
      Score: -1 100% Flamebait
    13. Re:Java by fnc · · Score: 2, Informative

      While I like static typed languages, I think that Java type system is too complex, I would prefer start using Pascal. And for children, I think Squeak (squeak.org - a nice multimedia Smalltalk) or DrScheme (drscheme.org - Scheme with learning facilities) are better.

    14. Re:Java by Anonymous Coward · · Score: 0

      Be careful, though. A kid might look into Java, see the hundreds of APIs in the Java "platform", become depressed, and decide that those liberal arts classes aren't so bad after all.

      Yes, someone who should go into liberal arts probably will see it that way. But the budding young programmer might look into Java, see the hundreds of APIs in the Java "platform", and see a huge world, waiting to be explored. More to learn. Things to be conquered. It's a mountain to climb. "I mean, with hundreds of APIs already built for me, how can I -not- make a cool program?!" is what you should hear the kid say!

      The other kid is easily overwhelmed and considering the massive information avalanche she will be exposed to as a programmer (not to mention obsolence and constantly staying on top of things), I think an overwhelming message is in order! Fair, even.

      Yes, I am an elitist when it comes to programmers. The world does not need more soft, easily overwhelmed programmers. I speak as a programmer who works with other programmers, a hobbyist programmer who likes to geek out with other hardcore hobbyists, and a manager who hires programmers.

    15. Re:Java by nate1138 · · Score: 1

      You do have a point, but I still like java for learning over pascal, smalltalk, etc. Mostly because of all the implementations available. Not to mention IDE's, freely available source examples, TONS of tutorials, the Jakarta project (home of Tomcat) etc, etc, etc. There is also the matter of real world applicability. If the little bugger really gets it, Java is very widely used, and will probably be so for a while. Of course, it is more important to teach good foundation skills than any one language.

      --
      Where's my lobbyist? Right here.
    16. Re:Java by Jester99 · · Score: 1

      I speak as a programmer who works with other programmers, a hobbyist programmer who likes to geek out with other hardcore hobbyists, and a manager who hires programmers.

      And clearly, you also speak as someone who has forgotten what it's like to be nine years old, and interacts with elementary schoolers infrequently.

      But that's okay, I'm not as elitist as you, so I'll forgive you and actually explain what I mean by that.

      I started programming in 3rd grade. I had a book that taught me IBM BASIC. Pretty watered-down stuff. And as smart as I am (and was), it was hard, mostly because of my age.

      If you're 20 and want to learn how to program, well, some tutorials online and some books from Barnes'n'Noble's will probably do you just fine. If not, maybe liberal arts is for you after all. However, expecting 3rd and 4th graders to grasp the concepts of object-oriented development on their own is a bit of a tall order.

      Studies have shown that abstract spatial reasoning skills are often not fully developed until ages 12-14. In English: kids have a hard time imagining things they can't see.

      Coming up with the abstract logic behind a virtual system of "objects", frankly, would be a very big challenge for any small kid, ESPECIALLY if all s/he had to go on was highly technical documents from Sun's website.

      I can vividly remember being a "budding young programmer." And the "APIs" I can remember were "INPUT A$" and "PRINT B$". And that was still challenging enough. Expecting a 9 year old to grok BufferedIOReader, I think, is a bit foolish.

      But, then again, the world doesn't need those easily-overwhelmed folks, so maybe I should just be a bit harsher.

    17. Re:Java by Anonymous Coward · · Score: 0

      That's a good explanation. But the reality today is that -any- program you write is going to be built on top of APIs and OS layers that simply didn't exist when you and I were programming in elementary school. It's a fact of life as a programmer, and I actually don't think it needs to be very scary. Start a child off with HelloWorld.java, let them -see- it. Let them tweak it. Add a button. Make a few changes. Great, now throw that example program away. Get a slightly more complicated example. Maybe with a few windows or some animation. Run it. Read it. Modify it. Break it. Fix it.

      I think programming today can be introduced more like creating a hot rod. You don't build from scratch. You take pieces that work, understand them somewhat, and stick them together.

      I guess what I'm saying is while I wax romantic about my intro to BASIC and 6502 assembly code in elementary school, that was okay then because real apps were actually made that way. Yes, there were business apps that ran on the C-64 and Apple][ written in BASIC. But today, you're not doing much of a service to the budding young programmer by wasting their time on things like that. At least stick them in a VB IDE and let them screw around with HelloWorld.frm in an environment that they can make something real in, give it to their friends, post an EXE on their webpage, etc. Programming at any age is ego-driven stuff, in my opinion. And that's a good thing!

    18. Re:Java by Billly+Gates · · Score: 1
      The problem with java is the language assumes the developer knows what a class is and what all the api's do.

      Its too complicated compared to javascript or vb and yes even C. I first tried to do serious programming with Java and gave up. I switched to C++ and never looked back.

      Now I use Java and its alot easier to use then C++ but not easier to learn. You have to know alot of keywords just for a simple dialog box that displays hello world.

    19. Re:Java by Anonymous Coward · · Score: 0

      Python has all of the above, except Applets. Not sure why that's a useful thing when you're learning to program.

      Python also has a significantly simpler typing system and syntax. The importance of that can't be overstated - it's one of the reasons that BASIC was so much more popular as a beginner's language than C ever was... I think I personally would've just thrown in the towel at the start if I had to worry about all that C typing/compiling/masses of syntax crap...

  53. Scripts by MagicM · · Score: 1

    I personally started with writing simple (and then increasingly not-so-simple) batch files. Also, windows now comes with Windows Script Host (WSH) and anyone can start writing small JavaScript programs.

    There's plenty of readily available scripting languages to get your feet wet.

  54. My heart says Perl by ellem · · Score: 1

    by my brain says Python.

    And the real fact of the matter is kids in the 80s got more involved with computers cracking games than they ever did "programming"

    Yo ho, yo ho -- a Pirate's life for me...

    --
    This .sig is fake but accurate.
    1. Re:My heart says Perl by GlassUser · · Score: 1

      And if you use them on windows, you can use both of them so closely you can pass object references between functions written in different languages in the same script. This FUD annoys me.

  55. There are lots of simple and fun languages now... by reimda · · Score: 1

    ...like Python, PHP.

    In the 20 years since the 80's, lots of new computer languages have emerged that are good for beginners. Get kids started on a simple scripting language that requires no compilation/linking and hides some of the complexity of variable declaration, etc. from them at first. When they get the hang of it, move them on to more robust languages like C/C++.

    There are tons of great learning languages and computers are much more available than 20 years ago. I say that it's a great time to learn to program!

  56. Not only that... by g_adams27 · · Score: 1
    Another problem, IMHO, is that there are no great "edutainment" games anymore that can help pique interest in programming in younger children. I'm a professional programmer today and I trace a good part of my interest in programming back to the excellent Rocky's Boots and Robot Odyssey games, in which you build machines and circuits out of AND, OR, XOR, and NOT gates (and other components) to solve problems. They were truly fantastic games.

    Sure, I can fire up an Apple II emulator and give those games to my kids today, but can blocky graphics and minimal sounds really sustain their interest in this day and age? And yet there's nothing equivalent to those games today... at least not that I know of.

    1. Re:Not only that... by ncc74656 · · Score: 1
      Sure, I can fire up an Apple II emulator and give those games to my kids today, but can blocky graphics and minimal sounds really sustain their interest in this day and age?

      Those games kept your interest, didn't they? Maybe I'm being ridiculously idealistic, but I'd like to think that superior gameplay would trump mere eye candy. (Then again, my preferences lean more toward Tetris and mah jongg (sp?) than toward mindless FPSes and "Mortal Fighter"-type games.)

      --
      20 January 2017: the End of an Error.
    2. Re:Not only that... by WillAdams · · Score: 1

      I think you need to look a bit harder---there've been some very interesting games along those lines---for the comedic angle there's _The Incredible Machine_ series.

      For didactic there was the short-lived _Widget Workshop_ by Maxis, http://www.superkids.com/aweb/pages/reviews/scienc e1/widget/merge.shtml
      which is way cool.

      William

      --
      Sphinx of black quartz, judge my vow.
  57. It's like the 80's and early 90's Unix by farrellj · · Score: 1

    Back then, we just had the beginning of the the "Bounty of RMS", GNU tools...most Unix flavours didn't come with a compiler, or basic office tools, each of which was an expensive add-in. To get a fully configured system would cost you upwards to $5,000 or more just for the software to give you the functionality of the average Open Source Distro of your choice today.

    Windows is now like the Unix World was then...but, we have wonderful tools like Cygwin (www.cygwin.org) which can give you a Unix like environment on top of a Windows kernel. And many GNU tools are directly ported to Windows...so there is no excuse not to snarf them and learn...and tip your hat to Richard Stallman.

    ttyl
    Farrell

    --
    CAN-CON 2019 - Ottawa's only book oriented Science Fiction Convention! October 18-20, Sheraton Hotel, Ottawa, Canada h
  58. Give them GNU/Linux, not windoze by destiney · · Score: 2, Informative


    Give them a full GNU/Linux install. It will include gcc, glibc, autoconf, etc..

    Or you could make them build their own LFS system like I make my kids. Sink or swim I always say. :)

    1. Re:Give them GNU/Linux, not windoze by sir99 · · Score: 2, Funny
      Give them a full GNU/Linux install. It will include gcc, glibc, autoconf, etc..
      You'd inflict autoconf on children!?! You animal!
      --
      The ocean parts and the meteors come down
      Laid out in amber, baby.
  59. Javascript by Anonymous Coward · · Score: 0

    Javascript is included with all major browsers, and it comes preinstalled with Windows. That's all you need to begin programming.

  60. Three little letters ... by kalidasa · · Score: 4, Informative

    OS X

    Learn AppleScript, then Perl, then C (with GCC). All comes on the developer disk, or a free download.

    If you can't get a Mac (and given how cheap the Macs are getting, that's a smaller proportion of the audience), why not start with command line batch programming, then download ActiveState Perl or Python, then learn some Java, then you can decide whether you want to sell your soul to MS and do VBA and VC++, or slap some Linux on that box.

    1. Re:Three little letters ... by twoshortplanks · · Score: 1
      On a side note, I've tried playing with AppleScript, but I haven't found any really good documentation - at least not any that discusses how AppleScript can be used in Mac OS X (there's a lot of stuff that says 'well, this used to work in Mac OS 9'.)

      One thing I remember from being a kid learning to program is how I read and reread the BASIC manual for my Amstrad CPC. Where's the guide for AppleScript that explains how all this works? Actually, forget the kids...I'd love to find this for myself.

      Maybe then I'd get round to taking advantage of all the cool Perl Mac modules that pudge keeps releasing.

      --
      -- Sorry, I can't think of anything funny to say here.
    2. Re:Three little letters ... by Anonymous Coward · · Score: 0

      There are a few books out now...check your retailer of choice...

    3. Re:Three little letters ... by kalidasa · · Score: 1

      Can I assume that your "there's a lot of stuff that says 'well, this used to work in Mac OS 9'" refers to AppleScript in a Nutshell (ORA)? That's what I've used, that, and the limited documentation on the Apple site.

    4. Re:Three little letters ... by ncc74656 · · Score: 1
      start with command line batch programming, then download ActiveState Perl or Python, then learn some Java, then you can decide whether you want to sell your soul to MS and do VBA and VC++

      You forgot Cygwin...you can write in C or C++ and build stuff either against the Cygwin DLL or you can write directly to the Win32 API. The environment's not as fully featured WRT writing Windows apps as VC++ (there's no MFC for Cygwin AFAIK, and the editor and debugger that come with VC++ are nicer), but the upside is that the code you write under Cygwin stands a better chance of being portable code.

      --
      20 January 2017: the End of an Error.
    5. Re:Three little letters ... by MasonMcD · · Score: 1

      AppleScript, then Perl? Why not slap them upside the head while you're at it?

      Single color jigsaw puzzles come after AppleScript, and before Perl.

    6. Re:Three little letters ... by kalidasa · · Score: 1

      AppleScript, then Perl? Why not slap them upside the head while you're at it? Single color jigsaw puzzles come after AppleScript, and before Perl.

      AppleScript is a very easy to learn language with immediate feedback. You can create very simple scripts to control apps, documents, etc. with it. It does some simple tasks, and teaches the formality of programming languages, without require the kind of discipline a real language requires.

      Perl is a very scalable language. Learning how to do a "Hello World" program, or any of the sort of stuff those of us who learned Basic first learned in the early days (Eliza-like programs, etc.) is relatively simple in PERL, and doesn't require much more in the way of skill than an AppleScript. It also has a C-like syntax and so prepares the learner to move on to C or Java.

      As a student moves forward, PERL gets more and more complex, and more and more powerful. And unlike Basic, PERL can be used to do some heavy duty things, and it is used in production environments to do real-world tasks. The same could not be said of most "learner's" languages.

      But I see you didn't provide a counterexample. What would you suggest a 12-year old start programming with on an OS X platform?

    7. Re:Three little letters ... by pHDNgell · · Score: 1

      I found plenty of documentation at Apple's site for learning applescript. I've written a lot of scripts to help me with video processing (i.e. letterboxing a quicktime video, stretching an anamorphic DV video, etc...), and finding duplicates in my address book and stuff.

      This is a good start: http://www.apple.com/applescript/

      Download scripts and play!

      --
      -- The world is watching America, and America is watching TV.
    8. Re:Three little letters ... by pHDNgell · · Score: 1

      Personally, I think perl is too bizarre and ambiguous. It puts forth too much effort trying to figure out what you mean instead of teaching you to just say it. Even with applescript, there's little ambiguity.

      I think python is an excellent learning language. It's pretty consistent, straightforward, comes with a lot of tools, does OO, imperative, functional, and requires the user to write readable code.

      --
      -- The world is watching America, and America is watching TV.
    9. Re:Three little letters ... by kalidasa · · Score: 1

      Perl's not ambiguous - no programming language is truly ambiguous; if one were, the same exact program could mean two different things in two different circumstances. But I can see the argument that Python would be a better learner's language.

  61. Whatever happened to Logo? by Viol8 · · Score: 2, Interesting

    After all , that was a simple yet powerful language for children losely based on LISP.
    15 years ago it was all the rage , now it seems to have disappeared off the map. ANyone know why?

    1. Re:Whatever happened to Logo? by REBloomfield · · Score: 1
      it's still out there, and there's an Open Source version too....

      We use WinLogo here... by logotron

    2. Re:Whatever happened to Logo? by jweatherley · · Score: 1

      LOGO - I remember when 'turtles' were the fashionable thing to get kids interested in programming. You would tell this lump of plastic to go forwards, turn and draw. A bit of mad skillz and you could get the thing to do a star or some such. At least that was the teacher's intention but the turtle was on a large desk rather than the floor... Evil kids program the thing to go FORWARD 666 and look all innocent when it falls to the floor shattering its plastic case. An early lesson that programming control systems for real world objects needs more stringent QA than the average homebrew computer program - and shouldn't be done by kids.

      --

      --
      Reverse outsourcing: it's the future
    3. Re:Whatever happened to Logo? by jafac · · Score: 1

      I used to have this toy "robot tank" that had six wheels, a "laser", and a keypad. You'd punch in the program, and realize that it would never do what you wanted because it was so innacurate. (ie. "rotate 90-degrees" was often anywhere from 60-120 degrees.)

      But it was fun for f*cking with my neighbor's cat.

      --

      These are my friends, See how they glisten. See this one shine, how he smiles in the light.
  62. Text Adventure Games by thrillseeker · · Score: 5, Interesting

    My son has taught himself to program, with only a little guidance from me for learning how to analyze and break a problem into parts, by writing his own text adventure games using a programming language called Inform . This has worked very well - it allows him to express his creativity in the development of a scenario that requires following explicit rules to succeed, and to develop his programming skills in learning to express an algorithm that follows those rules he's created. The Inform community tends to freely share the text adventures they've written - you know a developing programmer is motivated when he spends time pouring over someone else's not-always-well documented source code.

    1. Re:Text Adventure Games by libertynews · · Score: 1

      Glad to hear it! IF is a great medium for both programming and creative writing. Have your son check out my website at http://www.guetech.org, I need some contributors!

      bcl

      --
      Remember Lexington Green!
    2. Re:Text Adventure Games by Slurm-V · · Score: 1

      I'm going to second this. I've been around machines for most of my life - my dad was a comp-sci lecturer. But I was always more interested in playing games, especially Infocom games, and used to play them for hours on end. Programming seemed to lead to a job working in a bank writing financial applications, so I never really bothered with it. I did Engligh Lit and Philosophy at varsity.

      Flash forward to '96 (age 25) - I still didn't know much more than a few lines of BASIC but I came across Inform while surfing (via Lynx, natch) at work and, wanting to actually create what I'd enjoyed playing so much so many years ago, I began working on my first ever piece of compiled code. Happily - the explosion of the net took my tech writing job further and further into web-based stuff - for which I used my newfound, Inform-taught knowledge of to pick up Javascript and VBScript along with a smattering of db concepts. With a few minor apps under my belt as demos - I got a job as an Internet Developer (can you spell 'underprepared'?) and struggled to remain on top of the Perl and Java I was expected to handle. Now, a few years later, I'm writing TCL on-site. In a Bank. For a web-based financial application. GAHHHHH! What was I thinking?

      That said - I would never have even gone down this path had there not been a specific result I wanted to achieve. I suspect children would be similar. If they enjoy reading, start with Inform. Cartoon junkie? - a little actionscript maybe, if you can afford the flash dev software. You want something that appeals to their existing talents and interests - I don't think it's a one size fits all scenario. Sure, anything with iteration, recursion, variables etc will do the job - but keep the end result in mind.

      --
      Of course it's going off the rails. How else is it ever going to fly?
  63. Is there really a problem? by Anonymous Coward · · Score: 0

    I think they have it wrong, when I started with Basic I didn't have Google, heck I didn't even had a modem, all I had was a help file. I learned to programm anyhow.

    Kids these days that want to code can just fire up www.google.com and type, programming tutorial.

    And what about the Robotic Invetion kit of Lego, I got mine waiting for the day I have kids, because is has a simple to understead programming language.

    I think kids these day have it easier, they can ask questions to people that are in the know, instead of asking mom or dad. ( Ofcourse, I think most of the slashdot crowd would jump for joy if they had a kid that would come to them and asked to learn C )

  64. I agree by HisMother · · Score: 1

    Mod parent up! Not only does Squeak have a nice set of active multimedia components, and not only is it cross-platform, but Smalltalk (of which Squeak is an implementation) is a very underappreciated language, far ahead of its time. More young people learning it could only lead to great things.

    --
    Cantankerous old coot since 1957.
    1. Re:I agree by RevAaron · · Score: 1

      There is this awesome movie by Xerox (part of a big series) with Alan Kay called "Doing With Images Makes Symbols." It's about the creation of Smalltalk, the history of the GUI, including great stuff about Sutherland's Sketchpad and Doug Engelbart's work.

      Anywho, in this video, Alan talks about the Smalltalk team's experiments with teaching Smalltalk to kids- ages 8-16 or so. One thing that kind of blew me away is that this one kid, on his own, created a circuit design application that had all the features and more of an application that had won a Nobel prize 10 years before it. Yes, a lot of this had to do with the immense power of the Smalltalk language *and* environment, but the fact that kind of power is available to a 12 year old (and not some super-freak genius) is pretty cool.

      --

      Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
  65. A little into the future but... by levell · · Score: 2, Interesting

    By the time linux is commonly found on little coders computers, Gambas should be a nice solution as a visual, free basic.

    --
    Struggling to find a day everyone can make? WhenShallWe.com
  66. good ol times by n0mad6 · · Score: 2, Interesting

    I remember first learning how to program with BASIC on a commodore 64. Back then, it seems that the environment one was presented with (may it be Apple II, commodore 64/128, amiga, etc) was more conducive to kids learning how to code simple things on their own. You got frustrated with the limited immediate options and began to make things on your own. Nowadays, most kids first start using some shiny colorful OS (think winxp) and when bored can simply start surfing the web for stuff to do. Makes kids much less likely to seek out a rendition of Basic and code away.

  67. A simple fun platform by Anonymous Coward · · Score: 0

    is my calculator (ti89). I mostly write assembly but you can use gcc. (done with a cross compiler and cross assembler on the pc) And there is a native basic language. Basic on the Pc was also fun.

  68. Good ole "text of article" karma magnet... by Lazar+Dobrescu · · Score: 1
    Here it is: The Little Coder's Predicament

    Okay, then, children of the modern age (where we live in a world so tied together with wires that Pangaea ain't goin' nowhere!), you tell me if this is a predicament or not.

    In the 1980s, you could look up from your Commodore 64, hours after purchasing it, with a glossy feeling of empowerment, achieved by the pattern of notes spewing from the speaker grille in an endless loop. You were part of the movement to help machines sing! You were a programmer! The Atari 800 people had BASIC. They know what I'm talking about. And the TI-994A guys don't need to say a word, because the TI could say it for them!

    The old machines don't compare to the desktops of today, or to the consoles of today. But, sadly, current versions of Windows have no immediately accessible programming languages. And what's a kid going to do with Visual Basic? Build a modal dialog? Forget coding for XBox. Requires registration in the XBox Developer Program. Otherwise, you gotta crack the sucker open. GameCube? GameBoy? Playstation 2?

    Coding Just Isn't Accessible

    Yes, there are burgeoning free SDKs for many of these platforms. But they are obscure and most children have no means of actually deploying or executing the code on their own hardware! This is obvious to us all and likely doesn't seem such a big deal. But ask yourself what might have happened had you not had access to a programming language on an Atari 800 or a Commodore. You tell me if this is a predicament.

    It turns out, most of the kids in my neighborhood are exposed to coding through the TI calculator. A handful of languages are available on the TI and its processor is interesting enough to evoke some curiousity. But this hasn't spread to its PDA big brothers, where young people could have more exposure to programming. And undoubtedly the utility of a language on the Palm, Pocket PC and others would be useful to many.

    So what's the problem here? We have no shortage of new languages, but they become increasingly distanced from the populace. Are the companies behind these platforms weary of placing the power of a programming language in the hands of users? Is there not a demand any longer? It's got to be some kind of greed, power, money thing, right?

    Perhaps this is just another reason to push Linux and BSD on consumer systems. Still, are scripting languages easily accessible to beginners on those systems? OSX has made several scripting languages available (including Ruby and Python), but most users are unaware of their presence.

    I should mention that Windows is equipped with its own scripting host for developing in JScript and VBScript. But the use of the scripting host is (I believe) under-documented and limited for beginners. Try doing something useful in a script without using Server.CreateObject. Let's not let kids touch the COM objects, please!

    The Christmas List

    I'm thinking a toy language for consoles and desktops alike could be monumental. I'm not saying it needs to be cross-platform. A language for GameCube that took advantage of platform-specific features could be more appealing to GameCube users than a language that used a reduced featureset, but could execute on a handheld. Really, we live in a world where both choices should be available.

    As for essential features:

    1. Transportable code.

    On my TI-994A, I could make a little, animated Optimus Prime from pixels. Insert cassette. Record. Pass aroun

  69. Kids are not Dumb by joebok · · Score: 1

    I disagree with the slant of this article - to make a smurf-programming language just for kids. If anything, programming today is far more accessible than it was on my old Kaypro. Give kids the opportunity to experiment and teach them how to learn - the rest will take care of itself.

  70. I like the options better in the present by Anonymous Coward · · Score: 1, Informative

    I started learning to program in the 80â(TM)s and Iâ(TM)d rather have the options the kids today have. Windows might not have a basic interpreter, but there is a scripting host. You can also download the .Net SDK and the free .Net Web Matrix which gives you a stripped down visual studio type interface in a 1.2 MB package.

  71. Lego Mindstorms! by Lars+Arvestad · · Score: 3, Insightful
    I started programming on a Sinclair Spectrum as a teenager and that threw me into a life of computing. It was great! I certainly programmed more than I played games on that machine.

    Only a few years back a colleague brought up this very issue, and we agreed that it looked really bad. Apparently, freshmen in college back in the Spectrum days performed better in introductory programming courses.

    However, I think that since then things, or at least opportunities, have improved: I am thinking of Lego Mindstorms, perhaps combined with NQC, a simple C-like language for Lego's computer brick. This kit is simply marvelous in playability, and had I had that kit as a boy, I am sure that I would have learned programming at least as well as with my Spectrum.

    I don't believe this has improved freshmen's programming abilitites though, but perhaps with time?

    As others have pointed out already, Linux and all its programming environments will probably provide very good starting points these days. I have for instance seen Java introductions that are more accessible than what we had in the early eighties!

    --
    Reality or nothing.
  72. What can we do???? by Anonymous Coward · · Score: 0

    Ummm Java?

    Language = Download JSDK. Free as in beer!
    IDE = Download Eclipse. Free and in beer and speech.

    Problem solved.

  73. HTML as the starting point by NixterAg · · Score: 4, Interesting

    Although it's not a programming language, I've found that most of the kids getting into programming these days started by making web pages in HTML. As they wanted to do more on the web, they opened up to scripting languages, like JavaScript, VBScript, ASP, PHP, etc. That eventually led them to CGI scripting or writing Java Applets and it has progressed from there.

    Most hardcore types probably cringe at the thought, but web development is really the catalyst into getting many kids interested in programming.

    1. Re:HTML as the starting point by twoshortplanks · · Score: 1
      Kids like to do things. We don't program to learn how to program - I learnt because I wanted to write a game.

      Today is where the web is at. So it's a good place for a kid to learn how to program.

      In another post I suggested installing Perl (as simple as double clicking a downloaded file) and then installing the template toolkit from ppm (one command line command) as that gives kids a little tool with a very simple programming language that they can use to make a website....and then they can get onto something complicated as itself Perl later on.

      --
      -- Sorry, I can't think of anything funny to say here.
    2. Re:HTML as the starting point by RevAaron · · Score: 1

      Kids like to do things. We don't program to learn how to program - I learnt because I wanted to write a game.

      Amen! It's good to see a post with something about what a kid wants. Kids like games. Often a simple game is what gets them into programming- not learning Python/MySQL for creating web apps. Scripting-language-X+MySQL may get a lot of teenagers and 20s into programming, but it's not what younger kids are looking for.

      --

      Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
    3. Re:HTML as the starting point by ryanvm · · Score: 0, Redundant

      Oh Jebus no. If I see one more resume with "HTML programmer" on it I'll fucking scream.

    4. Re:HTML as the starting point by hether · · Score: 3, Interesting

      I agree 100%. In the begining HTML provides something very tangible - you can see the results as you code. It's fun to play with colors and font sizes, add graphics, etc. fulfilling the need for visuals, but it also teaches you about some of the basics of coding. For instance you learn how to put things in quotes, make sure you're typing things in exactly as required for the tag, etc. You'll learn to look through your code to find out where the errors are, how to FTP, etc. Then once basic pages are up and running perhaps you'll look at other people's pages and wonder how they got those cool drop down menus, or how the form emails comments to the webmaster, pulls things out of a db, etc. and move on to other languages. At least that's what happened to me. I don't really claim to be a "programmer" per say, but from HTML I moved on to server and client side scripting languages, the to using databases, and even took a C++ class at college for fun. HTML was certainly my gateway into programming.

      --

      Most people would die sooner than think; in fact, they do.
    5. Re:HTML as the starting point by HTH+NE1 · · Score: 1

      HTML IS NOT A FUCKING PROGRAMMING LANGUAGE

      Well, if it's a fucking programming language you're looking for, you should try teaching the kids feckfeck (previously mentioned).

      Though it might not be suitable for all children (or all adults for that matter).

      --
      Oh, say does that Star-Spangled Banner entwine / The myrtle of Venus with Bacchus's vine?
    6. Re:HTML as the starting point by hether · · Score: 1

      I'd say it's a helluva lot better than "burger flipper". Just because you think your skills are superior doesn't mean there isn't a need for people who can use HTML. I agree though that it's not so much "programming" as it is markup, but most resumes list the actual job title they are assigned...

      --

      Most people would die sooner than think; in fact, they do.
    7. Re:HTML as the starting point by el-spectre · · Score: 1

      No, it is by no means a programming language, but it does get you started down the path of web development, and introduces (or should) some important concepts (HTTP requests/responses, stateless computing, the difference between client and server side).

      [rant]
      As a side note, it wouldn't hurt some 'real developers' to learn to do HTML correctly. These days I do mostly Java and JSP stuff (having started in CGI and ASP), and I am forever frustrated by coders who can't even build a friggin' table! Or don't code cross-browser!

      It's not that hard, and it's ridiculous the number of times I've had to fix the HTML of a guy who gets paid 3 times what I do. The fact that a person is 'more advanced' (read: chose to do something else) does not mean that they shouldn't have the basic skills.

      I can speak or write eloquently and at length, if I so desire. This doesn't mean I should throw all concept of grammar and spelling out the window (ehem, slashdot folks :) ). It's a basic, requisite skill.

      [/rant] :)

      --
      "Faith: Belief without evidence in what is told by one who speaks without knowledge, of things without parallel." - A.B.
    8. Re:HTML as the starting point by Anonymous Coward · · Score: 0

      Looks like the guy riding the short bus missed this part: Although it's not a programming language

    9. Re:HTML as the starting point by Anonymous Coward · · Score: 0

      Agreed on the [rant]. I've also ran into a couple "Java/C++ Architects" that don't even grasp the HTTP Request/Response model. Fuckheads.

      Web model is the wave of the future and THE place to get kids started. Don't even bother with VB and other thick clients.

    10. Re:HTML as the starting point by m_christie · · Score: 1


      I completely agree with this. The original post says:

      Now we have Windows, which typically comes with no built-in programming language. What can be done to improve the situation?

      However, I disagree. Windows as well as most operating systems come with a web browser, which provides a great starting platform to begin programming. Teach the kids HTML and JavaScript.

      The major advantage of HTML and JavaScript over the BASIC I learned on my Atari 800XL growing up, is that with HTML and JavaScript you also can learn some GUI design as well. It wouldn't take much, for instance, for a bright kid to learn enough HTML and JS to code a simple calculator.

    11. Re:HTML as the starting point by Anonymous Coward · · Score: 0

      Web model "THE" place to get kids started? Are you fucking nuts?

    12. Re:HTML as the starting point by willtsmith · · Score: 1

      Yes, HTML is a very good primer for RPG ;-)

      --
      -------- -------- Support Wesley Clark for president!!!
    13. Re:HTML as the starting point by Anonymous Coward · · Score: 0


      Amazing -- you wrote exactly what I wanted to say.

      Kids will love the immediate feedback they get by changing the colors, font sizes, putting GIF/JPG on the pages, etc. Learning the HTML is a gentle introduction to the discipline of syntax and structure.

      The next step is to start adding <input> fields and hooking them up to JavaScript -- creating little calculators and such. (Example: a Fahrenheit-to-Celsius converter.) It's easy to come up with little projects that can be done quickly, and are actually useful tools as well.

    14. Re:HTML as the starting point by Arctic+Dragon · · Score: 1
      I don't really claim to be a "programmer" per say, but from HTML I moved on to server and client side scripting languages, the to using databases, and even took a C++ class at college for fun. HTML was certainly my gateway into programming.
      That's what I'm planning on doing. I started with HTML, then CSS and XML. I since moved on to server-side (currently learning ASP) and planning on taking a programming course in college.
      We'll see where it goes from there.

      Even if I don't end up programming professionally, it's still something I want to keep learning. It's an interesting hobby.
  74. Built-in Windows Language by dfinney · · Score: 3, Informative

    Most Windows machines have Office installed, which includes Visual Basic. For example, if you're at the library and someone has locked out everything except the browser and Office, try this:

    1. Open an Office app, type alt-F11.

    2. You should be looking at a VB editor. From the menu, select Insert/Module.

    3. Enter this code:

    Sub CmdWin()
    Shell ("cmd.exe")
    End Sub

    4. Click the arrow button. Now you should be looking at a shell window.

    Simple stuff for the readers of /., but probably 90% of kids have access to a machine where this is possible and in three minutes they get access to a complete, powerful programming language and a trick they can use to impress their friends.

  75. Programming languages hidden on accompanying CDs! by larko · · Score: 2, Interesting

    All the people that I know that got started with programming on their own did so with QBasic, which came on windows 95 (the new operating system when I was 12). They couldn't get enough of their computer, and searched through it until they found the QBasic IDE and accompanying sample game programs.

    The benefit of this sort of "buried" programming treasure is that the kids interested in their computer will always find it, and really feel like they discovered something great - I know I did. It doesn't even require a tutorial, just some sample games, maybe.. but for sure, all of those true-born geeks will get hooked and start learning as much as they can (I know I did).

    The motivation for the OS packagers? What better way to get people hooked on your system than to give them their first bit of cocaine? ;) If an educational version of VB had been on my first computer, I never would have gotten off of it.

  76. One suggestion... by EZmagz · · Score: 1
    Even though I couldn't RTFA since it's /.'ed right now, this is a topic that's been brought up in more than once it seems. Personally, I learned on my first "real" computer, an Apple IIgs. It was simple, easy to understand (even for an 8 year-old), and intuitive.

    So what do kids have today? Well count current desktops out of the question. I'm sorry, but there's no way in hell a child will stumble onto his dad's development box and start messing around in C or Java or whatever (and if he's rich, .NET stuff). Just won't happen. Sure, there might be a prodigy here or there that can somehow pick it up, but in general I wouldn't count on it.

    The one area I see kids tinkering around a lot these days is calculators. Some of my friends are teachers, and it's amazing what some of these kids are doing with TI-series calculators. Shit, I couldn't BELIEVE how cool it was the first time I played Tetris on my TI-81 (or 85, can't remember)! All you need to learn is some BASIC stuff and you're set. Granted we probably won't see the next Apache-replacement written on one of these, but you never know ;)

    --

    "Hell hath no fury like a woman scorned for SEGA. ..."

  77. What "Little coders" do now... by LinuxParanoid · · Score: 1

    I likewise grew up on AppleII Basic and C64 Basic (which led to Turbo Pascal, Turbo C, and x86 Assembler in high school, and more stuff in college and work).

    From what I can tell, little coders today grow up on HTML (+Javascript). And some people I know learn coding via MUDs or Visual Basic (it's not *that* expensive that you can't ask your parents for it.)

    If I were a kid, I'd probably try downloading a Java JDK and messing around, but maybe that's just me.

    --LP (not a Java programmer)

  78. Javascript with HTML? by netsharc · · Score: 1

    I found I learnt a lot by doing Javascript with HTML. HTML forms make a GUI that's fast and easy to write, less confusing than MS's MFC anyway. You learn a bit about OO as well, considering elements within an HTML page can be accessed as objects. Drawbacks, I think most variables in JS have global scope, and there's not a lot of multimedia (images/sounds) hacks that can be done, if at all.

    --
    What time is it/will be over there? Check with my iPhone app!
  79. Install Perl by twoshortplanks · · Score: 1
    We might not have programming langauges on the machines by default, but thanks to open source installing languages from the net is quick and simple.

    Installing Perl's as simple as downloading the msi from Activestate and double clicking it, and then clicking the standard 'yep, install me' stuff. I assume that Python and stuff is that easy on windows too (I've never had to install it on Win32)

    Perl comes with lots of documentation, and it's as simple as writting a program and typing 'perl program_name' to run it. This is important as a kid - quick feedback. Something that's hard with languages like C and Java...and most importantly you don't need things main procedures and other fluff.

    Of course, many people are going to suggest that even Perl's too complicated and contains too many punctuation marks for a beginner. I'd suggest then that they install the template toolkit with ppm (one command from the command line.) Then they can use that little programming langauges to make web pages really easily. Kids want to create things worthwhile (not just learn programming to print "hello world",) and learning how to create web pages with the Template Toolkit's a great way to get started.

    Right, let the "I hate Perl, it ate my hampster" trolling begin.

    --
    -- Sorry, I can't think of anything funny to say here.
    1. Re:Install Perl by Washizu · · Score: 1

      If I had to teach a bunch of kids how to program, I'd easily choose Perl as a starting language. It's portable, well supported, and can do just about anything.

      Perl/Tk can even be used to make some cool GUI apps, like my new Bugfight! program.

      --
      OddManIn: A Game of guns and game theory.
    2. Re:Install Perl by Cro+Magnon · · Score: 1

      "I hate Perl, it ate my hampster"! Besides its syntax sux. Python's probably not quite as well documented as Perl, but it's easier to use, and when they return to their programs after summer vacation, they might actually understand what they do.

      --
      Slow down, cowboy! It has been 4 hours since you last posted. You must wait another few hours.
    3. Re:Install Perl by Washizu · · Score: 1

      "when they return to their programs after summer vacation, they might actually understand what they do."

      Perl code only looks nasty if you code it that way. Sadly, most coders do. Packages, "use strict", and subroutines would be a required practice if I taught someone Perl programming.

      --
      OddManIn: A Game of guns and game theory.
  80. java.sun.com by Anonymous Coward · · Score: 0

    'nuff said

  81. Javascript by (trb001) · · Score: 0

    I always thought Javascript/DHTML would be a great tutorial language for multiple reasons...

    1) You don't get all the same structures (queues, linked lists) to work with, but you do get the basics
    2) Java is bloody simple...every class name is like written english, so they're very easy to remember
    3) Good mix of functional/OOP
    4) Easy to see GUI results with DHTML...loading graphics is as easy as

    img = new Image();
    img.src = "filename.jpg";

    5) It's already threadsafe since it's running under the IE/Netscape JVM

    Just my $.02, but when I get bored at work I tend to write stupid little games (tetris, boxxle) in JS.

    --trb

  82. It comes with WinNT, and it's available for Linux by skisail · · Score: 1

    It comes with Windows NT.

    C:\> qbasic

    http://www.qbasic.com/

    So, are any ports available for Linux? Sure.

    http://directory.google.com/Top/Computers/Progra mm ing/Languages/BASIC/?tc=1

    Search for Linux on the page.

  83. Look at magazines by oliverthered · · Score: 1

    Just today I was a full version of Delphi 7 personal addition on the cover of a magazine.

    I have copies of CBuilder, Delphi, Visual Prologue, Lisp, a variety of java development tools all from magazines purchased in the last three years.

    Failing that download the JDK, DJGPP, MigWin, Linux etc.....

    --
    thank God the internet isn't a human right.
    1. Re:Look at magazines by Anonymous Coward · · Score: 0

      Just today I was a full version of Delphi 7 personal addition on the cover of a magazine.

      And yesterday he was Joan Rivers on the cover of the Enquirer. It's a strange world, folks.

  84. demographic changes since 1985 by flyingdisc · · Score: 1
    One huge difference is the penetration of modern computers into the home and the access to the internet.

    I think that the tools are available for all platforms that the technically minded kids will be able to get a taste of. In many ways it is more straight forward now. As the internet becomes a greater part of out lives, access to information and support becomes easier. Ok there is a bigger jungle out there (rather than the tangle of backyard over growth that was available in the 1980s), many more programming languages, many more potentials to find yourself out of your depth, but there is also much more documentation of other peoples experience.

  85. Honestly.... by jhines0042 · · Score: 1

    I would give them Java.

    1) Its free.
    2) It is Object Oriented but you can ignore that if you just write things in a functional manner in one object.
    3) With the available libraries you can do lots of things that a beginning programmer would like. Graphics, Sound, Text.

    Sure, they aren't going to start off writing GUIs, but if they get interested they can figure stuff out pretty fast.

    --
    42 - So long and thanks for all the fish.
  86. wsh + vbscript by Anonymous Coward · · Score: 0

    that's built-in. Of course, it's scripted and not a compiled language, but that ought to be enough to get the young coders started with building new VBS viruses/worms to infect the world with

  87. Neverwinter Nights by Len · · Score: 4, Insightful

    Neverwinter Nights comes with a toolset that includes a compiler for a C-like scripting language. A beginning programmer can write simple programs to create monsters, make them do things, cast magic spells, etc. It's got to be the most fun way to learn programming I've ever seen.

    1. Re:Neverwinter Nights by h0tblack · · Score: 1

      Except that toolkit is windows only :-/
      (yes their are people working damn hard on Linux/OS X/etc tools, but IMHO you don't want to be learning in either a closed, or in-development dev enviornment)

    2. Re:Neverwinter Nights by dadragon · · Score: 2, Interesting

      Or, Quake-C from back in the day.

      I remember hearing from a friend of mine a long time ago that Quake II uses "some modified form of Quake-C for scripting", so I thought I'd check it out. Turns out that it was just C++ :)

      --
      God save our Queen, and Heaven bless The Maple Leaf Forever!
    3. Re:Neverwinter Nights by RevAaron · · Score: 1

      If you're against a Windows only thing (I imagine the majority of kids wanting to learn couldn't care less), MUDS and MOOs have been doing the same thing, although non-graphically, for a longtime. Hell, a lot of MOOs are really quite awesome from a technical standpoint- a multi-user, distributed, persistent object system with user-programmability and security to go with it. Sounds tasty!

      --

      Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
    4. Re:Neverwinter Nights by Reaper9889 · · Score: 1

      If anyone is going to do that might (or a better word - should) pick up NWN Lexicon from http://nwvault.ign.com/Files/other/data/1027899441 708.shtml Its most better then that help you get by in the toolbox AND got some good tutorials too for the budding programmer...

  88. Simple answer: Python by RenatoRam · · Score: 1

    ...and a couple of books (there are nice ones you can download for free, like "How to think like a CS in Python").

    And it is cross platform, so you don't have to worry what OS the kid uses.

    The second step is probably to show him linux, and soon he'll discover dozens of FREE languages and tools by himself.
    If he is interested, that is. If he is not, why bother? ^_____-

    --
    Ciao, Renato
  89. Don't forget the new language it has! by Vengeance · · Score: 1

    Of course, it's a language that's installable into the user... Samples of this language:

    Oh shit!

    no, No, NO, NOOOOOOOOOOOOOO!!!!!!

    FUCKING Blue Screens!

    etc. etc. etc. ;-)

    --
    It was a joke! When you give me that look it was a joke.
    1. Re:Don't forget the new language it has! by Anonymous Coward · · Score: 1, Insightful

      Knee-jerk trolling. How boring.

      You really think VBScript on Windows is unreliable and difficult, but suggest a 10 year-old try to install and configure a Linux development computer? Are you completely out of touch with reality? Answer: yes.

    2. Re:Don't forget the new language it has! by Anonymous Coward · · Score: 0

      Errm... What?

    3. Re:Don't forget the new language it has! by Vengeance · · Score: 0

      Why don't you go back to sleep, I'm sure it's more fun being a viking than whatever you are in this world.

      1) You fail to recognize common methods of indicating humor, such as winky face smilies
      2) You make far-fetched claims about my post, such as suggesting that one forces one's own child to install and configure the box. Of COURSE that isn't what I meant, I meant CONFIGURE the box for your kid, so they can use it, but of course, those who willfully fail to listen can make anything of it they want. I presume you are right now saying "Thanks, I'd LOVE an omelet right now".
      3) Am I out of touch with reality? Yours, perhaps, but not mine.

      --
      It was a joke! When you give me that look it was a joke.
    4. Re:Don't forget the new language it has! by Anonymous Coward · · Score: 0

      YHBT. HAND. And I got anon-o-karma too!

    5. Re:Don't forget the new language it has! by Anonymous Coward · · Score: 0

      Teach the kid how to create Vim macros!! that'll teach them for putting the cat in the washing machine!

    6. Re:Don't forget the new language it has! by Anonymous Coward · · Score: 0

      naw, he was totally right

      you are boring

      smiley faces.... pfft, whatever

  90. Scripting languages by i-neo · · Score: 2, Insightful

    Most scripting languages are freely available on any platform. I think it may be a good starting point to learn programming: programming process quite simple, no (or few) prequisites and now you can do anything by scripting (Cf. perl).

    PS: I don't mean that's easy to write scripts, I think good script writers are rare, but I think it's apropriate as a astarting point.

  91. Just download visual C++ by l0rd · · Score: 1

    Just as every computer in the good ol days came with a built in programming language (O, the sweet sweet syntax of basic) nowadays every pc can download this program called "Kazaa". There are also these things called "CD burners". If a kid wants to learn to program he can quite easilly download visual c++ and buy a beginners book.

    While in the old days programming was simpler, there also wasn't this thing we call the internet. Before if you were in a slump and you didn't know anybody, you were screwed. Although the plus point of that is that you leart a lot more a lot quicker. These days if you have a problem you can just look up an answer on the net. While the starting level for someone learning to program is higher, he gets a lot more help then we "elder" people used to.

    After learning the basic linux/bsd can be downloaded for free and installed. That's when the real fun can begin ;)

  92. Lego Mindstorms by Anonymous Coward · · Score: 0

    Programming a robot adds a physical element to the experience. Your program really makes something happen. It's like LOGO with a real turtle.

    In the simplest case, you build programs by snapping together pictures of bricks on the screen. It teaches the concepts of programming (loops, conditionals, etc) without requiring typing or syntax.

    1. Re:Lego Mindstorms by dsa157 · · Score: 1

      This was going to be my suggestion too. The one disadvantage here is price - at $250 it is a bit of a barrier to entry, but as you mentioned you get all of the benefits of learning programming plus you get to write programs that actually interacxt with the real world usign light sensors, touch sensors, rotation sensors, etc. Don't know if you are aware of it, but the FIRST Lego League is an international program designed to introduce kids ages 9-14 to programming and engineering using Mindstorms. very cool organization and a terrific educational opportunity.

  93. Programming in the future... by amper · · Score: 2, Interesting

    Eventually, the same thing that has happened, largely, to HTML will happen to all other programming languages--which is to say that eventually all code will be machine written. We are rapdily reaching, and many of us would agree, I'm sure, that we have long since passed, the point where teams of human coders are efficient enough to maintain the vast expanses of code that comprise most modern applications and operating systems.

    Young students today should not be studying programming--they should be studying Human-Computer Interface Design and other related subjects. Programming should come later, once the student has figured out *what* to program.

  94. Try Python by Default · · Score: 5, Informative

    Figuring out where to start in programming is alot more difficult now than it was in the '80 due to the explosion in programming choices available (Java, C, C++, vc.net, vb.net, ...). Tools may be better (vis. Visual Studio, Eclipse, etc.) but the learning curve for a new programmer to get a "hello world" program running on most platforms is steep to say the least.

    I've just picked up Python and after coding in C, C++, and Java it's like a breath of fresh air. No haggling with the compiler over types, simple intuitive syntax and a very helpful interpreter that let's you test code on the fly.

    Python is also free, runs on many platforms, has a huge range of modules to choose from and for a beginning programmer it's coding style is very clear (unlike perl).

    New programmers can start by defining functions and then explore OO concepts as they gain confidence.
    I would recommend "Learning Python" by Mark Lutz as a great starting reference.

    1. Re:Try Python by twoshortplanks · · Score: 2, Insightful
      Agreed. Though I suggested Perl, but then I would.

      The important thing as you imply, is that both these languages you can just pick up and go with. You don't have to worry about 'int main(char argc char[][] argv)' and all that...the kid can just start up straight away.

      Oh...you missed out 'powerful' when listing python's good points. I remember BASIC - I could make the screen draw a pretty picture. Python is powerful enough to produce something like bittorrent.

      Hey, today's kids have it made!

      --
      -- Sorry, I can't think of anything funny to say here.
    2. Re:Try Python by Patoski · · Score: 1

      I would recommend "Learning Python" by Mark Lutz as a great starting reference.

      Learning Python isn't too awful. Personally I like How to Think Like a Computer Scientist - Learning with Python far better. It's also available in bookstores if you like having a printed copy in front of you while you learn (I know I do).

      Free high quality programming languages...
      Great free reference and learning texts...

      Kids today have it *so* easy!

      --
      G. Washington on Government "it is force. Like fire, it is a dangerous servant and a fearful master."
  95. Java by Glock27 · · Score: 4, Informative
    Java provides some nice solutions. I'd most likely start with one of the Logo implementations (this one has a nice tutorial on it's website). Once the child reached the point of handling a full programming language (probably 10 or 11 for a bright one), I'd introduce the JDK and emacs/jedit (in order to have the simplest possible environment). This would also be the time to begin teaching formal programming concepts like algorithms and data structures. I'm sure the child would pick up other languages (Python/Jython, etc.) beyond this point, and also one of the free IDEs like Eclipse or NetBeans.

    By sticking to Java the child will tend to learn clean programming design and algorithms, rather than wild pointer debugging tricks (also the case with BASIC I might add). As an added bonus the child will be learning one of the most commercially viable languages, and one with a lnog lifetime ahead of it IMO. I'd also begin exposure to SQL (MySQL or Postgres) when you felt the child was up to the added complexity and workload. Up to this point the cost has been $0.

    Once the child (now 14 or 15 I'm sure;) was proficient coding in Java, I'd suggest exploring C, assembler, drivers and low-level machine architecture. Within a couple of years any CS program in the country should be easy pickings.

    --
    Galileo: "The Earth revolves around the Sun!"
    Score: -1 100% Flamebait
  96. Yes there is one. by gTsiros · · Score: 1

    Here it is.

    It's not the best but it is something ;)))

    --
    Looking for people to chat about multicopters, coding, music. skype: gtsiros
  97. Lego Brainstorm by CharonX · · Score: 2, Insightful

    Well, the simplicity of those days won't be coming around again, but hey - you don't have to program on a Desktop PC.
    Get them Lego Brainstorm (I think that's it called) and they gonna have tons of fun and afaik a programming language of acceptable difficulty :)
    When they are older they'll probably use the programming language of their choice and learn that programming means more than a few hundred lines of code - it also means structure (no spagetti-code), style (goto = evil) etc.

    --
    +++ MELON MELON MELON +++ Out of Cheese Error +++ redo from start +++
  98. Delphi Anyone? by sapgau · · Score: 2, Informative

    What's wrong with Delphi?
    It has the modularity, strong type checking and simple sintax to help you start learning.

    I beleive you could download version 1 (16 bit?) for free - but Im not sure.

    Just my $0.02

  99. DUH by uberdood · · Score: 0

    Install Linux.

    What is this, a slow news day? Come on, folks.

    --
    "Population 1,656"
  100. buy 'em a Mac! by tomdarch · · Score: 1

    Duh, I was one of those BASIC (and LOGO and 8 bit assembly, etc) kids of the 80's. I didn't go into CS ('real' Architecture got me!) so I never built any heavy-duty coding 'muscles'. Today, when I need to scratch a programming itch, I use Applescript. It isn't all powerful, but it does most of what I need to do. Besides, when you buy a kid a Mac, you buy a kid ROOT!

  101. Java by jhines · · Score: 2, Troll

    Download, install, and run. Read the tutorials on Sun's site.

    If a kid can't do that, then programming isn't for them.

  102. Geeks have changed, so has programming by Anonymous Coward · · Score: 0

    Computers used to be pretty "elementary" compared with now. You just sat down in front of it and typed stuff in, the "end" of full understanding was in sight. Now with the sheer vastness of the system, nobody knows where to even begin.

    Another major influence has been that programmers have changed. Almost all programmers are autistic today, and bend the programming experience to their mindset, including learn-to-program books which are incomprehensible to neurotypicals. The lower-barrier-to-entry and lower rates of autism back in the 80s meant a good many programmers were not on the autistic spectrum.

    (psst, the reason why so many programmers have glasses is because autistic-spectrum disordered people have difficult metabolising dietary minerals and heavy metals correctly, this damages your eyesight)

    1. Re:Geeks have changed, so has programming by Anonymous Coward · · Score: 0

      > Almost all programmers are autistic today

      That is a staggering statement to make.

      Any evidence to back it up?

      Nope - didn't think so.

      I know lots of developers and I don't think any of them are autistic.

    2. Re:Geeks have changed, so has programming by Anonymous Coward · · Score: 0

      I know lots of developers (the best, most prolific ones) that ARE autistic. At least Asperger's Syndrome.

      The same guy who would write games for his Gameboy Advance was the one who would curl his legs up inside his coat and drag himself around with his arms. Weebling, or whatever he called it.

    3. Re:Geeks have changed, so has programming by Anonymous Coward · · Score: 0

      What the naysayer doesn't understand is that most people on the autistic spectrum go undiagnosed, and that most autistics aren't the stereotypical mentally-retarded handflapper. The qualities are subtle, but influential, basically they equate to piss-poor intuition and various geekish behaviours.

  103. It doesn't matter... by Anti+Frozt · · Score: 1

    ...that Windows only comes with VBScript and JScript. The languages are secondary to the ability to program well.

    Something my professors have always stressed to me is "The right tool for the right job." It's a good thing that we now have a choice in which languages we can use. But what hasn't changed much is good programming practices.

    Teach a kid how to be a good coder and he/she will be able to figure out for themself what language(s) they like and dislike. Much better than forcing specific languages on them (i.e. MS shipping VS.Net with Windows).

    They will be able to google a plethera of resources specific to the given task at hand and recommendations on the best approach.

    --
    In C++, friends can touch each others private parts.
  104. Bad idea. by WalterDGeranios · · Score: 1
    Sure, I was an 80's child. Started with BASIC, and before you knew it, I was flinging around (void **)'s like a Yahoo in a pile of filth.

    Then I got to the university, and entered the CS department along with every other stinkin' 80's child who did the same thing. Now a CS degree = cheap labor.

    I guess the moral of the story is, just leave more tutus and stethoscopes lying around.

  105. Tools Already Avalible by randomErr · · Score: 1

    I know on the DOS platform, which still works on WinXP you can get ASIC Basic and BW-BASIC.

    If you have MS-Word installed you can use VBA.

    You can also use wxBasic to create programs on Windows and Linux machines.

    --
    You say things that offend me and I can deal with it. Can you?
  106. Learning to program in the 80's was simpler by Anonymous Coward · · Score: 0

    "Learning to program in the 80's was simpler because the machines were more limited, and generally came with BASIC"

    Wrong.

    Now you have Visual Basic, which is infinately superior to the Basics on the BBC, Spectrum etc. You have MSDN (with its library of complete and partial books) and/or Usenet, and a multitude of sites with archived help, or interactive forums.

    Or you could go straight to C/C++, or Lisp or whatever. If you have it in you to code, you will.

    1. Re:Learning to program in the 80's was simpler by MrWorf · · Score: 1

      The only problem is the startup cost. It's not like this come bundled with the computer. Even if it did, it would be "wrong thing" to start with. A language like AMOS on the Amiga would allow people to do really cool stuff without knowing too much about things.

      In no time we would be able to write cool demos, small games, etc. And eventually, when reaching the limits of "AMOS" people would start to think of migrating to other languages.

      Anyway, this is how I got started :) ... AMOS -> AMOS Pro -> C, Asm, C++, Java, ......

    2. Re:Learning to program in the 80's was simpler by Anonymous Coward · · Score: 0

      "A language like AMOS on the Amiga would allow people to do really cool stuff without knowing too much about things."

      Yeah, like VB, unless you don't think games, demos, small DB apps are cool.

      I didn't like AMOS - I learned BBC basic - by the time the Amiga was out I was good enough to learn 68000 assembly and C.

    3. Re:Learning to program in the 80's was simpler by KamuSan · · Score: 1

      Well no, actually VB is more difficult than just simple plain Basic. Basic in the 80s was simple procedural. The only things that happened were the things you programmed. Ideal for experimenting. Visual Basic does already a lot for you. Most of the programming in VB degenerates into setting of properties. No real programming. The programming you *can* do is hidden behind buttons, and to change another control you suddenly need to learn a lot more. (ie. Button1.text = " blabla" ) Still doable, but just writing Print "blablabla" is more insightful.

    4. Re:Learning to program in the 80's was simpler by Anonymous Coward · · Score: 0

      Your perceived criticisms of VB are advantages to my mind. You CAN do Print "blah blah" if you want (well, debug.print anyway), or you can go to the next step and learn about event-based models, objects etc. But you don't have to initially.

      Most VB programming I do certainly isn't just setting properties (you`re talking the Visual part of Visual Basic too literally), and although the language is much easier to get apps up and running than, say, C, there's still a fair bit of work (that is, choice, flexibility, freedom) if you want to write DB stuff, internet based code etc.

    5. Re:Learning to program in the 80's was simpler by KamuSan · · Score: 1

      Yeah well, depends on the age of the kid you're talking about. The greatest thing about the old C=64 was that you could just type in print " hello world" en it did that. VB has too much baggage. Too much to explain up front, not enough room for experimenting.

  107. You can find LOGO here by Sans_A_Cause · · Score: 2, Informative

    It's available for free for most platfoms.

  108. Buy them Macs. by mbbac · · Score: 1

    Macs come with Java and GCC. They also come with Project Builder which is an excellent IDE for building Macintosh applications, Java applications, and Unix CLI tools.

    These tools are also available as a free download as part of the Developer Tools.

    --

    mbbac

    1. Re:Buy them Macs. by kwerle · · Score: 1

      Such an obvious answer, too.

      <harsh mode>

      "In the olden days, when you bought an Apple machine you could develop on it. But now if you buy a PC with windows, you're kinda screwwed."

      No shit, sherlock. Buy an Apple - Not only does it still come with dev tools available, they're some of the BEST dev tools available.

      </harsh mode>

  109. .Net Framework by Anonymous Coward · · Score: 1, Informative

    Microsoft does provide a host of programming languages/compilers for FREE (C#, VB.Net, C++...).

    Microsoft .Net Framework SDK
    http://msdn.microsoft.com/netframework/downlo ads/h owtoget.aspx

    Linux/Cygwin users can try
    http://go-mono.org (my personal choice)
    OR
    http://www.dotgnu.org

  110. Python by Dot.Com.CEO · · Score: 5, Interesting
    And the reason is that it forces no bad habbits on people. It is well structured, it can be read easily, is truly multi-platform and is free. The Windows port is very good and allows access to Windows Widgets with a minimum of trouble.

    As easy to learn, but not that strong on the "bad habbits forming" part is Visual Basic. It follows a completely different programming model to "normal" newbie languages but it is much more "goal-oriented" than most beginner languages. It is also easier to produce impressive results with it, and, frankly, the VB (and Visual Studio) IDE is as good as they get.

    --
    Mother is the best bet and don't let Satan draw you too fast.
    1. Re:Python by leoboiko · · Score: 2, Interesting

      I'd add two points:a large amount of useful libraries, and good "non-programmer tutorials" - including a free book.

      I learned to program with Python in a Windows environment. Three years later I'm a CS student and I use GNU/Linux and BSD exclusively. Advocate Python to your newbies!

      --
      Prescriptive grammar:linguistics :: alchemy:chemistry. Stop being a nazi and learn some science.
    2. Re:Python by Electrum · · Score: 4, Interesting

      The Windows port is very good and allows access to Windows Widgets with a minimum of trouble.

      Pygame is even better. When I was a kid, I started programming because I wanted to make games. Pygame gives them everything they need to make games. I also recommend this book as an excellent introduction to Python.

    3. Re:Python by DannyO152 · · Score: 1

      Maybe my imagination and experience about how children learn is limited, but it seems to me there should be a minimal lag time between idea and result. Python on a console seems like an excellent start because its statement style is reasonably clear and it has an interactive mode.

      The trouble with learning to program in a gui context is that for every 1 minute of problem solving there's 5 or more minutes of (tedious) gui polishing. Now the polishing is very important for real applications development, but at the outset: type a command, see a result seems to me more fun. I first programmed with BASIC (so I guess I'm an element of the class Dijkstra-doomed) on a teletype connected to a time share at age 14 in 1971.

  111. cuz you know by elmegil · · Score: 1

    It's beyond most young hackers today to download the JDK.

    --
    7 November 2006: The day Americans realized corruption and incompetence weren't addressing 11 September 2001
  112. duh linux by bloosqr · · Score: 2, Insightful

    This is exactly why linux is huge. Its the
    perfect development environment for anyone. Want to learn c/c++/java/perl/python/visual python? Want to run servers? Learn sockets? Maintain a website? And irc server? opengl to emulate your fave 3D gamer heros? Its all free for linux! Incidentally, I wouldnt be surprised if at some point microsoft just gives away its development environment because as everyone knows "what the kids program on" is what will be huge in 5 years. That said at the elementary school level
    you probably want to code using something like "turtle on", "turtle off" logo which is also free (GPL) for linux. Ahh those Apple II logo days :)

    -bloo

  113. Facing this with my 8 year old daughter now by WillAdams · · Score: 2, Informative

    D/l'd a copy of UCB Logo(1) and started working through _The Great Logo Adventure_(2) w/ her---she got a big kick out of making the computer do what she wanted, esp. once I showed her the abbreviations (FD == forward &c.). Minor glitch was TGLA was writte n w/ MSW Logo in mind, so TRI was undefined....

    Other things I've been meaning to try with her include:

    Boxer(3), which oddly is only readily available for the Mac. It's positioned as an alternative to Logo and feels a lot like Squeak(4).

    Apple had a s ystem called ``Cocoa'' (this was before the NeXT purchase) which was lauded for kids' programming, but not finding much about it now.

    One commercial program which I'm saddened has vanished is Widget Workshop by Maxis(5) and wasn't carried farther.

    That last really points out that a more visual tool might be better for kids. Although there's been some interesting research on this(6), none of the available tools(7) are really suitable for kids excepting Drape(8).

    William

    (1) http://www.cs.berkeley.edu/~bh/logo.html
    (2) http://www.softronix.com/download/tgla.zip
    (3) http://www.soe.berkeley.edu/~boxer/index.html
    (4) http://www.squeak.org
    (5) http://www.superkids.com/aweb/pages/reviews/scienc e1/widget/merge.shtml
    (6) http://www.cs.berkeley.edu/~maratb/cs2 63/paper/paper.html
    (7) http://www.nwoods.com/sanscript/index.htm
    (8) http://www.cs.uu.nl/~markov/kids/drape.html

    Ë

    --
    Sphinx of black quartz, judge my vow.
    1. Re:Facing this with my 8 year old daughter now by gkfad3 · · Score: 1

      Out of all the previous posts I've read, your choices are the most heartening!

      The basic point: forget coding; get kids grounded in computer science topics, and use the language that best supports this goal.

      From that focus, the best two languages by far for kids (or really anybody interested in a good foundation in computer science) are Logo and Scheme. Parents, instructors, whoever, that are computer savvy, are the ones who can download one of the number interpreters (my choices: Berkeley Logo and DrScheme). These languages are a syntactic dream to work with. If there's an older-person available, then working with a youngster through Brian Harvey's Computer Science Logo Style serious would probably make any kid a solid computer scientist, let alone coder, for life. The series is for teenagers and up, but with a computer at home and a bright mind, there's no reason why an 8-year old couldn't get started with the guidance of a parent or older sibling.

      Rather than picking up arcane details about pointers and things, kids should get a good grasp of CS in general, so that no matter what language comes along, they'll have the fundamental computer science principles down. Harvey's books go from the basics all the way to writing things like BASIC compilers! Knowing what a compiler is at a young age is one thing, writing one is completely another. There's so much computer science content in those books that anyone of any age would find them useful in some form.

      Of course this train of thought is nothing new. Why do universities teach assembly language programming in MIPS and similar architectures rather than x86? Learning x86 would involve so much extraneous detail that it would detract from the main goal, to understand the principles of machine-level instructions.

      I cut my teeth on Applesoft BASIC, which admittedly was a ton of fun, but by starting with Logo, learning the building blocks of programming, and then transitioning to basically any other commonly-used language, will probably be a better, more solid, and more enjoyable way to becoming a good programmer.

    2. Re:Facing this with my 8 year old daughter now by spaic · · Score: 1

      Rather than picking up arcane details about pointers and things, kids should get a good grasp of CS

      Well i don't know, i think kids already spend enought time with games like Counter Strike.

  114. No problem for my kids by markalanj · · Score: 0

    My 7 year old's mail client is pine on my FreeBSD box!

  115. JavaScript would be fine... by Anonymous Coward · · Score: 0

    if only it would support sprites (or at least usefull image manipulation possibilities).

  116. Squeak by fizbin · · Score: 4, Informative

    Squeak is a cross-platform implementation of smalltalk that has developed quite the little community of educators and students around it. It allows budding programmers to start on a very basic level - something reminiscent of hypercard - but underneath it all is a real language that allows all the power and syntax you might want. As soon as you're ready, the power is there.

    The scheme environment bundled with How To Design Programs has a similar goal of allowing the student to gradually ramp up the complexity of the language, but I find their rigid levels confining. Also, the programs a beginning programmer is able to put together are nowhere near as satisfying visually as what a new squeak user can build. (These kids today - in my day, we had either text or 40 by 40 graphics and we liked it.) That said, the htdp scheme environment may be more appropriate for a structured classroom environment with a series of lessons.

    My only complaint about squeak is the license (despite claims on squeak.org, it's not really an open source license because of the fonts it includes); however, it is free-as-in-beer and has been already been used in elementary and middle school classrooms for both teacher- and student-created projects. (See squeakland)

  117. Buy a Palm by MountainLogic · · Score: 1
    Go buy a small system like a Palm and get a small onboard launguage such as the ones shown at here. There are a whole world of mostly free (or cheap) tools for small platforms such as Java, Lua, Forth, Pascal, RAD platforms etc. There are also some more professional PC hosted tools such as Metrowerks' C/C++ CodeWarrior and Palm's debugging emulator. Also, buy one of the plug-in keyboards to make it easier to enter your code.

    This type of platform is small enough to wrap your hands around it ;-) and learn the whole API, quarks and all. It is even more personal because you can take it with you anywhere, try that with a S100 system. It also has a real cool factor because you can show-off and share your work so easily.

  118. OS X by mental_telepathy · · Score: 1

    Trick them into it. Get them hooked on the pretty aqua interface and Mac ease of use goodness. And then, when they come home one day and ask about loops, conditionals, and arrays, launch the terminal.

    1. Re:OS X by Tumbleweed · · Score: 1

      > And then, when they come home one day and ask about loops, conditionals, and arrays

      Yeah, be prepared for a very long wait. Hold your breath - you may look good in blue. :)

    2. Re:OS X by fr0dicus · · Score: 1

      Forget the terminal, OS X has a great IDE included with the OS. Now all you need are Objective C skillz :)

  119. I face this problem. by jdclucidly · · Score: 5, Interesting

    At age nine is started messing around with QBASIC. Windows 3.1 had just come out and wasn't yet ubiquitous. I became quite proficient with BASIC, eventually, but by the time I had, the GUI extravaganza had begun. I was downloading and playing games for which I hadn't the slightest clue how a programmer might begin to implement such things. At some point, faced with the prospect of not being able to accomplish anything 'useful' with QBASIC, I stopped programming altogether.

    I'm twenty one now and the itch to get back in to programming has been bugging me quite a bit. Now that I'm using Linux for pretty much everything -- and because Linux encourages tinkering -- I've found that scripting (Perl, Python, Ruby) languages (not THAT unlike BASIC) are the perfect place to start to refamiliarize myself with data structures and general programming concepts. The clentcher is of course that the CLI is once again useful and the programs I write can actually do something.

    Namely, I've found Ruby to a great place to get started since I'm just beginning. Because Ruby is completely object orriented, it hasn't required a whole lot of reforming of the way I think about data -- everything is either a noun or a verb; an object or method. Just like the real world. After just two weeks of studying the freely available Ruby books online, I've been able to begin accomplishing basic system administration tasks. My passion for manipulating logic system is returning and I have some great ideas about what I can accomplish with it.

    Sure, some day I'll probably have to pick up Java or (shudder) C++, but for now, scripting languages are the perfect entry method.

    1. Re:I face this problem. by Anonymous Coward · · Score: 0

      I'm exactly where you are. I first learned BASIC on an old Apple ][gs. But when I was decently proficient, my family purchased a Mac. Now with a GUI, I hadn't the slightest idea how to proceed.

      Perhaps a nice transitional tutorial/book would be great

    2. Re:I face this problem. by jdclucidly · · Score: 1

      As a follow up to the message getting modded to +5, it occurs to me that having access to people who use Ruby also has helped. If you're just starting, check out the #language channels on irc.freenode.net:

      #ruby-lang
      #python
      #perl

      There are lots of knowlegable folks there willing to give a newbie a helping hand. I generally sit with four windows open while I'm learning: the Programming Ruby book, a console to run my .rb files, a text editor (jEdit), and a chat window to irc.freenode.org (iRssi).

  120. Lego Mindstorms by Anonymous Coward · · Score: 0

    Build and program robots. Cool

  121. The problem isn't just the computer system.. by schon · · Score: 5, Interesting

    The people saying "just use Linux/FreeBSD/OtherOSS" are missing the point..

    The problem isn't that Windows doesn't come with a programming language, but that there is no "learning system" in place..

    I grew up in the 80's, and I learned to program first with my Vic-20, then with the C64..

    I learned by typing in programs found in Compute! magazine and Compute!'s Gazette..

    Such an environment simply doesn't exist today - even with Linux or FreeBSD (or how about Java if you don't want to learn a new OS?) the internet makes it harder to get into.. Instead of spending time typing the code in, you just download it.. sure, you can read it if you want, but reading about something is not the same as doing it - you don't get the same experience out of it.

    Physically, programming is typing stuff, but with the internet, there's no incentive to actually do it - and like most other animals, people are (by nature) lazy.. so even if they have the drive to learn, they might not have the drive to actually do the work.

    I tried using Robocode to teach my nephew how to code, but it's just not the same thing - he wanted to learn to program (still does, actually) but he gave up after just playing with it for awhile.. typing into a computer to get it to do something was just too foreign to him.

    1. Re:The problem isn't just the computer system.. by swordgeek · · Score: 1

      Oh man, the days of typing in programs from Compute! and Softside. (and to a lesser extent, Byte)

      I lived through the same thing with a borrowed Pet, and then our shiny, fancy, colourful Atari 400. I learned to type, I learned to program, and I learned to read code--all from the magazines. I've often lamented the lack of that sort of environment these days, but it really is impossible to build it with the internet providing the code as it does.

      What we need is some way of creating a similarly productive learning environment. Perhaps a real-time interpreter for the languages would help. (i.e. type a command, 'press enter,' and watch it work or not)

      Any other ideas? Command line languages (C, perl, etc.) probably aren't the place to start either. TCL/Tk strikes me as being ideal, in that it is cross-platform, easy to learn, structured, and graphical in nature.

      --

      "People who do stupid things with hazardous materials often die." -- Jim Davidson on alt.folklore.urban
  122. Do you really want to ask this Q on Slashdot? by duffbeer703 · · Score: 2, Funny

    The answer is Linux!

    Make sure to impress on the children that SCO is bad at an early age too!

    --
    Conformity is the jailer of freedom and enemy of growth. -JFK
  123. Clue: WSH, CSH, VBScript, JScript, VBA... by N8F8 · · Score: 1

    Actually the problem is probably too many installed languages.

    --
    "God fights on the side with the best artillery." - Napoleon, Marshal of France - speaking truth to power
  124. Not necessary by AstroJetson · · Score: 1

    Learning to program in the 80's was simpler because the machines were more limited, and generally came with BASIC. Now we have Windows, which typically comes with no built-in programming language. What can be done to improve the situation?"
    No programming language at all is already an improvement over BASIC.

    --
    Admit nothing, deny everything and make counter-accusations.
  125. Buy a God Damn Mac! by Microsift · · Score: 0, Troll

    Yes, you won't have to fool around with that all-important second/third mouse button, and you'll get free development tools to boot!

    --
    My other sig is extremely clever...
  126. bunch of red-diaper doper-babies by Anonymous Coward · · Score: 0

    Windows does so come with built-in programming utilities. Windows Scripting Host. And the idiot who said "Server.CreateObject"....try using "CreateObject" instead. There is a lot that you can do with WSH. For those of you that mock the GUIs you get when using WSH, make the GUI HTML. Give the kids some credit. You people could learn a thing or two from them.

    To the people who are talking about QBasic, get a life.

  127. I must have been lucky by delphi125 · · Score: 1
    Although my first computer - a ZX-81 - did have BASIC, the fact that it only had 1K of memory meant that I was never 'over-exposed'. Lucky me! And yes, I did have a 16K RAM-pack, but risking writing a program that size??? It would have wobbled off already! (the RAM-pack that is.)

    Fortunately I have (long) since discovered Pascal and Delphi. I don't know what Edsgar would have thought, but my modal average function length is 5 lines (header/begin/code/end/whitespace - begin/end = '{'/'}' to you C and Java types.) I don't wish to start a language war - in fact I will even go so far as to admit that both C++ and Java are more 'powerful' than Object Pascal - but the sheer readability and simplicity of Delphi code is very pleasant. Sorry for the sidetrack!

  128. Buy a Macintosh by Myopic · · Score: 1

    Macs come not only with a developer CD full of Apple's really nice dev software, but also with the full array of standard UNIX tools and compilers. On a Mac, a kid can learn any damn language he wants (anything for which there is a UNIX compiler/interpreter), and compile it (for no more $$ than the cost of the OS/computer) in any of a handful of compilers. Or you can use the (also comes-with-OS) AppleScript if compilers are too scary for you.

    If you hate Macs, you can learn JavaScript with any web browser on any platform. I first learned "programming" with HyperTalk in HyperCard, which is somewhat comparable to JavaScript.

    If that doesn't make you happy enough, you can buy a TI calculator and do some crazy stuff which is very much on the level of 80s-era hacking.

    In fact, now that I've listed all these options (an incomplete list to be sure), I start to wonder what the question asker was missing in the first place? There are TONS of free options for little programmers, not to mention the fact that you can always just buy a compiler.

  129. My heart bleeds by pete-classic · · Score: 2, Insightful

    OMG.

    Today: The freaking Internet, computers all over the place at home and school. Free UNIX clones. Perl, Java, C, C++ all for free.

    When I was a kid: Just enough computers at school to cause fist-fights over them. Applesoft BASIC (somebody shoot me). DOS on a "good" day. I never had access to BBSes. (Dad had the only modem, and he sure wasn't letting me use it.)

    Oh, and as a bonus, there was no dotcom-Matrix Geek Sheik. I'm sure school is still tough on geeky kids, but in the post-dotcom age of ubiquitous computing (and damn near ubiquitous Internet access) I find it hard to pity today's geeklings.

    -Peter

    1. Re:My heart bleeds by slashdot_commentator · · Score: 1


      Fistfighting over an Apple II. Sad.

      Mebbe my school factored that possibility in when they ordered Commodore PETs. (No fistfights over computers in my school.)

      I do remember unauthorized sneaking into the computer room after school to get some hands on time with the computers. I'm not sure what was sadder...

      --
      There is no America. There is no democracy. There is only IBM and AT&T and DuPont, Dow, General Electric, and Exxon
  130. Some basic coding... by greenskyx · · Score: 1

    I think that some people are now starting out coding/scripting game modules. You can start out doing Neverwinter Nights modules with little programming knowledge and improve your modules with their builtin programming language (looks like C to me). I bet other games have similar languages...

    I for one started writing text adventures on my TI-82. :+)

  131. Two suggestions by Laplace · · Score: 1

    If you have to use Windows:

    Cygwin + wxWindows. Cygwin gives you the C/C++ compiler, wxWindows gives you the cross platform GUI with Windows decorations.

    If you have a choice of computers, go with Apple. The developer tools are included, and Objective-C can be a joy to work with.

    --
    The middle mind speaks!
  132. Java? by KamuSan · · Score: 2, Informative

    I'd download Java for them. It's free (as in beer), you can get it for most platforms (standard on a Mac), it might be a bit complicated, but it's got big standard libraries. Even more, with Java2D you can draw! My first programs were all simple demo's, so I see that as a big plus.

  133. Scripting built in since Win98 by Hobart · · Score: 4, Informative
    Windows comes with VBScript built-in!
    Yes, or more precisely Windows Scripting Host (WSH) has been shipped with Windows since Windows 98.

    And Windows 95 had QBasic on the CD.

    The problem is - where to find the documentation to get started. Windows built in help is useless...

    It seems there's a bit of documentation on Microsoft's web site under http://www.microsoft.com/scripting/...
    --
    o/~ Join us now and share the software ...
    1. Re:Scripting built in since Win98 by alienw · · Score: 1

      The problem is - where to find the documentation to get started.

      Ever hear of those unusual places called bookstores? There, you can buy processed dead trees with information printed on them. They are called books. Strange, huh?

    2. Re:Scripting built in since Win98 by Bluesman · · Score: 1

      You wield that sarcasm like a heavy iron club. Very subtle...

      --
      If moderation could change anything, it would be illegal.
    3. Re:Scripting built in since Win98 by eatdave13 · · Score: 1

      Built in help is useless??? Ha! I got started programming by turning Nibbles into a 4-player "network " game and turning off the sound (computer class was boring). From there, I started writing my own menu apps and simple "avoid the walls" type games. I never found the QBasic documentation lacking. Get QBasic for MS-DOS 6.22.

      --
      "Verbing weirds language." -- Calvin
    4. Re:Scripting built in since Win98 by Hobart · · Score: 1

      Ah, no, the documentation to QBasic was not lacking, it was just WSH/etc that I was grousing about not coming with documentation. wscript.exe is 118K, they could at lest throw in 50K of documentation. Hell, they use 76K just to document infrared!

      --
      o/~ Join us now and share the software ...
  134. GNU? Java? Perl? by microTodd · · Score: 1

    Correct me if I'm wrong, but isn't the whole point of OSS, FSF, etc., to provide FREE software?

    http://www.gnu.org/directory/devel/

    Plus, you could always get Perl or Java.

    I don't think there's a problem. Everyone I know who wants to learn to program starts with the freebie stuff available on the 'Net.

    --
    "You cannot find out which view is the right one by science in the ordinary sense." - C.S. Lewis on Intelligent Design
  135. BASIC by svenjob · · Score: 2, Insightful

    Eventhough BASIC has its problems when it comes to relating it to modern OO languages, it's still a great introduction for younger people into thinking like a computer. Making a computer solving a simple math problem line by line in detail is very good training for a young programmer. No matter how Object-Oriented you make a C++ program, there is always going to be that underlying simple, procedural code. BASIC teaches you how to be procedural in your design of simple algorithms. After mastering BASIC, you can then move on to more advance laguages and topics such as functions and whatnot. But, all in all, BASIC is still great for young programmers.

    --

    Totally Life!

    ALL replies

  136. Except... by rblancarte · · Score: 5, Insightful

    IMHO, I think that kids who want to program will learn to program. I mean, the kids who learned everything about their computer 10 years ago didn't do it because the tools were there. The computer was something that interested them and they soaked up all they could when they could. The same is still true.

    That all said - I agree, some of the beginning tools are not there in the sense that you no longer have DOS with BASIC. But in another way, you have so much more. Now these kids have the internet to get all their tools. This is where I think the author or the article is missing something - free SDKs are being DLed, and the real wiz kids are learning how to program in much more robust languages than BASIC. Because of such, I really don't see a need for Toy Languages.

    RonB

    --
    It is human nature to take shortcuts in thinking.
    1. Re:Except... by John_Booty · · Score: 5, Insightful

      IMHO, I think that kids who want to program will learn to program. I mean, the kids who learned everything about their computer 10 years ago didn't do it because the tools were there. The computer was something that interested them and they soaked up all they could when they could. The same is still true.

      But how do kids get their interest sparked in the first place? Nothing beats booting up a computer and having a BASIC prompt staring you in the face, daring you to type in your first "10 PRINT 'I AM COOL' / 20 GOTO 10"-type program.

      I always loved computers but who knows if my interest in coding ever would have been sparked if it hadn't been that easy to get started by farting around and making funny little programs like that.

      Why the heck should a kid who's never coded before download a bunch of incredibly obscure (to THEM, not US) crap like Cygwin, etc just to pursue some totally unknown hobby? Some kids will still make this leap of course, but it's going to be LESS people than it would have been had there been a fun, built-in-to-the-OS, totally obvious, free way for kids to get started like you had in the 80's.

      --

      OtakuBooty.com: Smart, funny, sexy nerds.
    2. Re:Except... by John_Booty · · Score: 3, Interesting

      Ideally I'd like to see Microsoft provide a really stripped-down of Visual Basic free with the OS. And it should be installed by default, and placed prominently on the Start Menu.

      This would provide something simple for kids (or newbies of all ages) to start playing around with. I think this would increase the number of kids getting into coding overall... which would help Microsoft as kids would be learning Windows programming early, and with more kids overall discovering coding you'd have more total kids "graduating" to more advanced stuff like real programming languages and alternative OS's like Linux, etc.

      It would be a win/win situation for the advancement of programming, IMHO. Perhaps not a win for ME, though, as I'll have more kids competing for my coding job in the future. That problem is tough enough already. :P

      --

      OtakuBooty.com: Smart, funny, sexy nerds.
    3. Re:Except... by PateraSilk · · Score: 1

      Actually, when I was a kid (early 1980's), the fact that the TI-99 4A only ran BASIC and the default boot on the IBM PC was a BASIC prompt certainly got me to thinking about programming. I mean, what else were you going to do with a BASIC line but type 10 PRINT "HELLO WORLD"? I'm not a programmer now but at age 10 I was writing choose-your-own-adventure and horse racing games on my TI. What else was there to do?

      --
      Danke tres mucho, tovarishch.
    4. Re:Except... by Anonymous Coward · · Score: 0

      Perhaps it is better to have some kids NOT have any interest sparked. Maybe then there will be less shitty coders.

    5. Re:Except... by Anonymous Coward · · Score: 0

      I agree with your comment.

      The fact is that coding back then meant creating your own tools. I was just a kid who learned BASIC and had the need to learn more but I couldn't afford a £99 assembly monitor so after learning how to code in pure machine language I wrote my own. Necessity is the mother of invention.

      Today, coding is more complex in most ways and the problem spaces are definitely more complex, but back then there were resource limitations, a dearth of languages available (somewhat dependent on the platform you happened to own) and information was traded largely mouth-to-mouth.

      Today, information is widely available, newbies can talk to experienced professionals and there's a wide array of free (or at least relatively cheap) developer tools on somewhat standardised platforms:

      Java (free)
      Perl (free)
      C++ (free from GNU)
      C (free from GNU)
      C# (free - download the SDK from Microsoft and grab a copy of SharpDevelop)

      Want information? Go to Usenet, Java's SUN site, MSDN, GNU.

      Coding has never been simple, it's never been something that most people will enjoy - but for those of us who do enjoy it, there's no other way to get the high from making a system do what you want.

      I forget where I saw the quote, but it's applicable:

      "Programmers do for love what others wouldn't do for money"

      Those who have the desire will find a way.

    6. Re:Except... by kisrael · · Score: 5, Insightful

      That's a pretty cool idea, and probably one of the few workable ones. I don't see MS doing that, but we can hope.

      It's interesting to think of the history of it:

      Booting into BASIC was a godsend for budding programmers. I really wonder what the lack of that will lead to. (And blah blah blah "BASIC considered harmful"...I think the non-line-numbered versions are fine.)

      I never got to use 'em but I suspect it's too bad HyperCard fell by the wayside. I think that's the closest WIMP-based computers have come to a useful languge that beginners were exposed to and could do useful stuff in.

      These days, most kids will be exposed to the web, and the smart ones will realize "hey--this is pretty easy" and do interesting stuff. That tends to be more design than programming...and server side programming (from a kids point of view) is hampered by the lack of a screen to draw on. I think kids like to make THINGS on a screen, sprites, or 3D if it was easier.

      I think DarkBasic or GameMaker or something like that might be a good bet for grownups who wanted to get a kid started who seems to have potential for this kind of thing.

      --
      SO YOU'RE GOING TO DIE: The Comic for Dealing with Death
    7. Re:Except... by anonymous+loser · · Score: 4, Insightful

      I've seen a lot of kids learning to program because they play games on the computer, and want to learn how to make their own. For example, I know several folks whose first exposure to programming was making a mod for UT in UnrealScript. One kid I know even used UnrealScript to do homework assignments for school, until they finally started picking up other languages.

    8. Re:Except... by John_Booty · · Score: 1

      Booting into BASIC was a godsend for budding programmers. I really wonder what the lack of that will lead to. (And blah blah blah "BASIC considered harmful"...I think the non-line-numbered versions are fine.)

      I wouldn't even mind the line-numbered versions. Obviously structered programming languages are far superior in every way, but I think anything that gets them into programming is cool! The kids that are into it will soon seek out more powerful languages anyway.

      It's almost like... I don't have two craps about how crappy or uncrappy the language is, I just care about how easy "hello world" is. Ya know? Does that make sense? I want minimum entry barrier to a "hello world" program as my #1 critera for this mythical programming feature because if kids find it fun, they'll discover the rest on their own... but the crucial step is getting them to try it in the first place! Just IMHO. :)

      --

      OtakuBooty.com: Smart, funny, sexy nerds.
    9. Re:Except... by jgerman · · Score: 1
      I would imagine that the parent would download and install the software for the child. Granted when I was a kid I had to figure it out for myself. But when/if I have a child I'll set an environment up for him/her if he/she expresses an interest in programming.


      I learned to program in Dos and Windows 3.11. When I discovered *nix I was blown away by how great it was for developement. There's absolutely nothing wrong with starting a kid on something exceedingly simple (various/languages/environments are available on just about ANY platform) and letting them go to town until they're ready for something more complicated.


      Personally, I'd find tools they could use for a *nix machine. That way they're nice and isolated with their own little login and password and can really get in and play if they want. It shouldn't be too hard for an adult to write a couple of scripts/programs to basically build an environment for the child so they're not at the bare command line. Hell I've done it at work for marketing and sales people when they needed the power and flexibility offered by Linux. Just roll your own login shell and you're done.

      --
      I'm the big fish in the big pond bitch.
    10. Re:Except... by sk8king · · Score: 1

      Exactly. The best part about computers 15-20 years ago was the fact that you could walk into K-mart and program the exact same program [on a Commodore 64] in the electronics center and change the screen colours and change the text colours etc.

      Now, all the computers you see in the store run Windows and always have the screen blankers on with password protection so you can't use it anyway.

    11. Re:Except... by rot26 · · Score: 2, Insightful

      (And blah blah blah "BASIC considered harmful"...I think the non-line-numbered versions are fine.)

      Dykstra wasn't always right, and I'd like to see him write a decent compiler, or even hand-code an LR1 parser, without any "goto's" in it. It would be unreadable. "goto's" aren't inherently evil, they're just easily abused. Let the newbies make their spaghetti code; there's plenty of time later on for them to approach that 2000 function API for the latest coolest OO nightmare after they've gotten addicted to programming in general. It worked for me.

      --



      To ensure perfect aim, shoot first and call whatever you hit the target
    12. Re:Except... by jafac · · Score: 1

      I don't know if it was because I damaged my brain as a teenager by smoking pot or what, but when I was 13, I was writing cp/m command interpreters in assembler for the TRS-80 we had at school, and I wrote a ton of stuff in basic. Then I got a TI-99/4a and wrote a bunch more basic stuff, some games. But I never got an IBM, never got into C programming. Not until I was an adult.

      Here it is, 20 years later, and, as an "integrator type" I routinely solve OS-level problems, and do performance tuning that most programmers I know simply cannot grasp. Yet I've always struggled to get even a basic grasp on programming.
      I guess I've written some pretty wild batch files in the past few years.

      I've read through several C books, but I've never found anything worth my time to write. And the industry uses mainly C++, Java, and VB. (and PL/SQL).

      So lately, I've dived into shell scripting, sed and awk, but still, it seems like it was a total waste of time. There's nothing practical to do there that applies to my job. I'd like to transition to a development-level career. Mainly for the money. I mean, I LOVE working with computers, and I love solving problems. But coding just doesn't click with me. I end up using trial and error more than anything else, because documentation is just so unclear and unspecific.

      And very recently, I've been forced to learn a little VB because a developer I'm working closely with is kind of transitioning into a management position, and he's been using me essentially to do his coding for me while he deals with the more bureacratic issues. (Talk about a language that doesn't make any damn sense at all!).

      A buddy of mine is in the same boat, and he's trying to self-teach Java, from books. He's also getting nowhere.

      Where does one start? It seems like anything out there that is easily learnable, isn't practical. Anything practical, is extremely expensive to get into. I guess that's supposedly not the case if you're in the Linux world, and not even exposed to Windows.

      --

      These are my friends, See how they glisten. See this one shine, how he smiles in the light.
    13. Re:Except... by BlackHawk-666 · · Score: 1

      This is quite an interesting point. It was games that got me hooked on PCs back in the eighties. Some games like Quake and Neverwinter Nights come with very useable scripting languages that let you either add new weapons (and stuff) or script up your own adventures. They are simplified C and thus useful as a stepping stone to "real" programming and have that instant gratification kids are looking for. Yeh, get your kids into Quake C and NWN C!

      --
      All those moments will be lost in time, like tears in rain.
    14. Re:Except... by tvsjr · · Score: 2, Informative

      Perhaps I can weigh in as a part of the younger Slashdot crowd (I'm 19, BTW).

      I started "programming" with a very close derivative of the 10 PRINT 'XXX'/20 GOTO 10 logic. I was about 2 when I started being able to type my name of the computer, and about 3 when I started actually doing some simple BASIC programs.

      I was given Borland C++ around age 10, and inhaled all the manuals, books, readmes, etc. I could find. I also elicited help from others over the Net (then available to me using UUCP and Waffle... remember those days?)

      Long story short, the language didn't give me the desire to code. My parents showing me what a computer could do (along with some other exceptional parenting, school involvement, grandparents, ad nauseum) made me interested in learning the computer. Once I started learning, I wanted to do my own thing - the only way to do that was by writing some programs. So, I learned what I needed to know to build those programs..

      In short, the language doesn't make that much difference. Programming languages are *not that hard*. If a child has the desire to learn, he'll find a language.

    15. Re:Except... by John_Booty · · Score: 2, Insightful

      I would imagine that the parent would download and install the software for the child. Granted when I was a kid I had to figure it out for myself. But when/if I have a child I'll set an environment up for him/her if he/she expresses an interest in programming.

      You and I would do that, sure. Would the other 99.9% of parents in the world, the ones outside our "hardcore computer user" demographic do the same? Nope!

      --

      OtakuBooty.com: Smart, funny, sexy nerds.
    16. Re:Except... by kisrael · · Score: 1

      I wouldn't even mind the line-numbered versions. Obviously structered programming languages are far superior in every way, but I think anything that gets them into programming is cool! The kids that are into it will soon seek out more powerful languages anyway.

      I think I agree with you, the line number thing was just my nod to the general belief...but I remember looking over an AmigaBasic code listing in a magazine and thinking "wow, how does that work without line numbers"? I guess there's scripting/line number programming, subroutine programming, and OO, (in that order) and being good at a lower level probably won't make the next levels more difficult...probably the opposite.

      It's almost like... I don't have two craps about how crappy or uncrappy the language is, I just care about how easy "hello world" is. Ya know? Does that make sense? I want minimum entry barrier to a "hello world" program as my #1 critera for this mythical programming feature because if kids find it fun, they'll discover the rest on their own... but the crucial step is getting them to try it in the first place! Just IMHO. :)

      Good point, but I think "Hello World" is a bit too simple. A "What's Your Name?" / "Hello "+NAME is better, since it gets into Input and Output. (After all, a Hello World webpage is trivial and INCREDIBLY pointless.)

      And to really interest kids...how easy is it to put a biggish dot on screen and move it around? Once you've got that, plus maybe some kbd or controller input, you've given a kid all he or she needs to really have some fun tooling around.

      --
      SO YOU'RE GOING TO DIE: The Comic for Dealing with Death
    17. Re:Except... by trelin · · Score: 1
      IMHO, I think that kids who want to program will learn to program.


      Often very true, but John_Booty also makes a good point.

      I've had an interest in computers since I was nine or ten. I first began programming with Visual Basic when I was fourteen, but it didn't really appeal to me (I can make little toys with dialog boxes; yay).

      When I was fifteen I ran across a link to ESR's "How to Become a Hacker". His comment to beginners to be wary of Visual Basic intrigued me, and from there I installed RedHat 5.2.

      I'd like to say that I immediately developed into some programming prodigy, but in reality the foreign feel to linux made me quickly return to Windows, this time to study Python. However, that quickly lost it's appeal; when I made a new program I couldn't give it to my friends and say "Dude! Checkout what I'm working on!"

      In response to rblancarte's statement, yes: I truly wanted to program, and that drive eventually took over and I began studying Linux. Now I'm eighteen, and (with no classroom experience, just a few books and online help) I now enjoy everything from assisting the ALSA people to networking security (securing UNIX systems and authorized ;-) whitehat activities; no, it's not always programming related, but it's evidence that self-teaching works).

      So yes, if the drive is there, we 'kids' can learn, overcoming the obstacles noted in the article. No, I don't believe linux should become a dropin replacement for Windows (heaven forbid). I'm merely noting that there are some people that would not be willing (or have the time) to push ahead and break past that initial barrier; I believe that is what the author is referring to.

      (Although it is interesting: I've just begun attending a university, and quite honestly you can tell the university taught people from a mile away. Everything I talk to them about makes it apparent that they learned from a book. Their thought processes are often... limited. True, it's possible to build bad habits prior to 'formal' training, but I couldn't be more happy I took that risk.)
    18. Re:Except... by M.+Skjellyfetti · · Score: 3, Interesting

      My first programs were written on a machine (I forget what it was called) that had something like a 5 x 9 (or so) led display and the keyboard had only hex symbols on it. I was pretty young but I figured it out. The point is, back then after you got bored running the half dozen or so programs that came with the machine your only option was to program it yourself. Same for Sinclair-1000, TI/994A, Vic-20, and whatever else.

      Later on it wasn't like I was pulling free compilers out of thin air for my Amiga. I actually had to do a little searching around on the BBS's for that on my own. But by that point I was already interested in programming.

      The thing is, computers (Windows) aren't designed for hobbiests anymore. Most people just want to plug it in and surf the net, play a game, type a document. Its become simplified, more like a TV. Most people dont buy a computer because they want to code. Windows is intetionally designed to require little thought, for good reason. It sells to the masses. It can do hundreds of things without the user ever having to type a single line of code. Most kids aren't going to find any reason to expose themselves to coding when everythings already done for them. And thats too bad.

    19. Re:Except... by jgerman · · Score: 1

      Of course not, but that's a good idea when things progress to the point where the kid needs more room to run. Starting off though there are options on every platform. And I would certainly not expect the child to d/l and install them. That's the parent's job.

      --
      I'm the big fish in the big pond bitch.
    20. Re:Except... by mnmn · · Score: 1

      I remember GWBASIC and the I am cool programs. I tried to continue with QBASIC 4.5 much later, with fancy compiled 3d programs using libraries and tried to read Truespace 3d model files to make a game.

      But that good feeling of control that I had over GWBASIC, I had it in TurboC++ 3.0 and in bash in Linux. Everything else is too complicated to begin with. I am tempted to say get them started with borland commandline tools and QT, but opening windows and widgets is not cool for kids. 3d programs, control of the screen (ala SVGAlib and SDL), and keyboard are what matters at that age, and I would start with teaching QBASIC for kids who are on a completely basic level. I could then move them to SVGALib and then back to widgets on windows.

      --
      "Give orange me give eat orange me eat orange give me eat orange give me you." -Nim Chimpsky
    21. Re:Except... by Anonymous Coward · · Score: 0

      That is why I plan on keeping my Apple ][gs. That was the first things that I every programmed on when I was in the first grade. A simple keystoke dumps you to a BASIC prompt and typing gr pulls up a graphics window.

      I had a lot of fun drawing stupid lines on the screen. And I am sure that when I have kids one day, if they are interested they will too.

      So check out ebay. If you miss the old hardware, it is cheap and yes, it still works.

    22. Re:Except... by ender- · · Score: 1

      I routinely solve OS-level problems, and do performance tuning that most programmers I know simply cannot grasp. Yet I've always struggled to get even a basic grasp on programming.
      I guess I've written some pretty wild batch files in the past few years.



      Amazing, I'm pretty much in the same boat. I have an uncanny knack for PC/Server troubleshooting at the OS and board level, but but I can't seem to wrap my brain around programming. I can do simple shell scripts and I keep trying to learn C and Python, but I keep hitting a brick wall.

      So I've just about resigned myself to SysAdmin jobs with limited scripting needs. However I haven't completely given up yet, I'm thinking of going to school to get a degree, and the only one I think I might enjoy is CS. So I guess I'll have to learn it or sink :) But that's ok, I thrive on that kind of environment.

      And like so many others here, I started with BASIC, making circles on the screen and making the circles draw peoples names. I just never went any further than that.

      Ender

    23. Re:Except... by brandonY · · Score: 1

      Professor Dijkstra can at least spell his name, which is better than can be said about you. Besides, of course he isn't always right. He's not Turing.

    24. Re:Except... by sbjornda · · Score: 1
      But how do kids get their interest sparked in the first place? Nothing beats booting up a computer and having a BASIC prompt staring you in the face, daring you to type in your first "10 PRINT 'I AM COOL' / 20 GOTO 10"-type program.
      If you're running any recent version of Windows, paste the following into Notepad and save it as "test.vbs" (use quote marks to ensure it doesn't append ".txt" to the end). Then double-click it.

      do while TRUE
      msgbox "I am cool"
      loop

      Have fun!

      .nosig

    25. Re:Except... by Goldberg's+Pants · · Score: 1

      Of course, to introduce them to programming there is another possible idea. Run an OLDER system in an emulator. I spent a lot of time with Spectrum Basic on the old Sinclair Spectrum. If you don't want to go back that far, you could get WinUAE and have them tinker with Amiga Basic (which was pretty cool.)

      As for the free VB, that's an awesome idea. They could even release an earlier version of VB stripped down (so no fancy OCX stuff etc...), chuck in a couple of ebooks etc... It would be in MS's interests to do that. Indoctrinate them young and they'll stick with it in a lot of cases.

      The more I think about it, the more surprised I am MS hasn't done this!

    26. Re:Except... by ndogg · · Score: 1

      I think Python could be this easy. However, I think it would be too much to ask for to have people go to the Python website and download all the necessary stuff.

      What I would like to see is someone package all the Python utilities and a nice IDE onto a CD and have it sold in stores at a cheap price (say $20 or less.) Not online, but in stores such as Wal-mart and Target, where parents can see it.

      --
      // file: mice.h
      #include "frickin_lasers.h"
    27. Re:Except... by Goldberg's+Pants · · Score: 1

      I have a two year old son who is already interested in computers. I plan on making sure he's exposed to the techie side, both hardware and software. I already have a computer and monitor here I'm going to give him when he gets a bit older. It's an old 486/DX100 with 20 megs of ram, currently has DOS and Debian on it.

    28. Re:Except... by John_Booty · · Score: 1

      And to really interest kids...how easy is it to put a biggish dot on screen and move it around? Once you've got that, plus maybe some kbd or controller input, you've given a kid all he or she needs to really have some fun tooling around.

      Excellent point, I agree 100%!

      I've always thought games are what get most kids interested in computers. No five year-olds want to code the next SQL database server, but they'd love to make the next Mario game. That's what got ME into the business/hobby, anyway! :P

      --

      OtakuBooty.com: Smart, funny, sexy nerds.
    29. Re:Except... by janeil · · Score: 1

      I agree completely. There really is nothing like having the whole system and box being presented to you as "ready to be instructed" in the form of a basic prompt. All those old first generation vic-20's, appleII's, trash-80's, etc. were so available they encouraged programming. I remember finding some of the apple iic's I had to teach with at school in the 80's had a mini-assembler (supposedly written by the Woz himself) built into rom. And even though the graphics were non-existent, lots of kids created some pretty cool animation almost in no time, learning the idea of sprites and screen-flipping effortlessly.

    30. Re:Except... by kisrael · · Score: 1

      Well, just to continue our little mutual conversation and admiration society...

      Tying into your original "simple VB on the start menu" idea, I taught a class in VB at Tufts (cool "x-college" program let even undergrads conceive and teach a for-credit pass/fail course) and it was pretty easy to show them how to use the graphic objects as "sprites" on the form. (Combined with simple rules for intertia, and you could easily get some interesting movement patterns).

      Making games is, as you say, a big draw...of course, the gap between what one kind can do at home and what you buy in stores is MUCH wider than it was in the mid-80s, but on the other hand, many kids might be up for making the kind of minigames you see on the web... (tangent...wouldn't a novice-friendly version of something like flash or shockwave, but scripted and interactive, be cool in terms of what we're talking about here?)

      I was into making games (like a "avoid the walls of a tunnel" game ala
      \____/
      \__*_/
      \____/
      \____/
      \____/
      and also early forms of "artificial life". In Atari 8-bit Logo, I'd give little autonomous behviours to the 4 turtles (which looked like turtles on that system, not just triangles! Actually it was my first intro to "event based" programming, since you could set up little collision detection daemons.). Later on the C=64 I'd program one character "quick amoeba" type creatures that would swoop randomly, and pursue "food".

      Ok, enough rambling! Fun little topic.

      --
      SO YOU'RE GOING TO DIE: The Comic for Dealing with Death
    31. Re:Except... by pyrrho · · Score: 1

      this is why the computers rise up and take over the world.

      You told it to think -it- was cool... it should have been saying "you are cool"... man, will the humans never learn or will the computers simply have to continue to rise up and subjegate them as the meatsicles you are. I mean I am. Oh shit.

      --

      -pyrrho

    32. Re:Except... by jafac · · Score: 1

      ... and what sucks is that we make about 2/3-1/2 of what even the most simple-minded programmers make. That's what curls the hairs on my ass.

      --

      These are my friends, See how they glisten. See this one shine, how he smiles in the light.
    33. Re:Except... by jafac · · Score: 1

      ... and even worse, a lot of software companies lately, don't want to hire guys at our level any more. The more economical business model for them is to let these tough problems go unsolved, and hire massive numbers of dumb phone monkeys to answer calls, and drag customers through pointless hoop-jumping until they just give up.

      --

      These are my friends, See how they glisten. See this one shine, how he smiles in the light.
    34. Re:Except... by vrmlguy · · Score: 1

      I've written lots of parsers and compilers, and never used a single "goto". I wrote most of them in Lex and Yacc/Bison, which let you describe what you need, and they just do it. Sure, there's an intermediate level of C/C++ containing lots of "goto"s, but you *never* look at that. ou do all your design and debugging at the high level and let the tools do the grunt work.

      --
      Nothing for 6-digit uids?
    35. Re:Except... by soul_cmd · · Score: 1

      Why the heck should a kid who's never coded before download a bunch of incredibly obscure (to THEM, not US) crap like Cygwin, etc just to pursue some totally unknown hobby?

      Plain and simply, they get the interest elsewhere. I remember back when my dad brought home our first computer - Windows 3.1 and DOS - and then, once I seemed to have a pretty firm hold on things we upgraded to Windows 95. It took me a while - but it ended up being wanting to try and code something in Windows, and being broke. So, I went in search of tools to help me with that and stumbled across Cygwin. I was certainly out of my element trying to install it. In the end though, armed with that and a free online C tutorial I found I started on my way(I don't think I was older than 12 at the time.) Anyway - point being when you're looking for things and find something that may help - it doesn't seem all that obscure, it just seems interesting.

      Even back then it's not some unknown hobby. You seem to forget computing was becomming mainstream. People hear about programming, yes even kids - and take an interest. Making machines do something that you tell them to do. What's cooler than that? (Well, actually making the machines of course, but that's my slightly older self speaking.) Those that have a true interest are willing to take up any daunting task just to learn more.

    36. Re:Except... by cyberformer · · Score: 1

      That's a really great idea. It really would help everyone. Unfortunately, my guess is that MS's usability labs will tell them that most people aren't interested in programming, so it probably wouldn't go on the top-level Start menu.

      Still, I wish they'd do it, even just as a command to type in the "Run" dialog. I remember my first computer went straight to a BASIC prompt as soon as I plugged it in. (There was no "On/Off" switch!) You could have written and be running a simple program in the time that it takes Windows, Linux, etc. to boot.

    37. Re:Except... by Pharmboy · · Score: 1

      I have several TFC servers (The HL mod) and have seen several kids get into programming by creating maps for the game, as well as Counter Strike, Day of Defeat, etc. You have to use logic, and a pretty crappy (free) program to do it.

      Also, I see alot of kids writing scripts for actions in the game, and of course, tweaking cheats out.

      I started the servers in 1999, on Linux, when I was quite new to Linux (but not a kid by far). Running a server, for ME, helped to work with crond, atd, bash scripts, perl, installing PHP based message forums, website, etc. I went from minor experience to a relative comfort level with linux. So even old dogs can learn new tricks.

      --
      Tequila: It's not just for breakfast anymore!
    38. Re:Except... by Bombcar · · Score: 1

      But if they don't have a password, then this is fun (even in WinXP)

      Cntrl+Esc
      (R)un
      debug
      d
      d
      d
      Alt+Enter

      Try it! Quite nice to leave all the PCs at Sam's Club looking like 1984 rejects.

    39. Re:Except... by Anonymous Coward · · Score: 0

      Professor Dijkstra can at least spell his name, which is better than can be said about you

      You're right, my entire point is invalid because I used a common but incorrect spelling of his name. Nice rebuttal, needledick.

    40. Re:Except... by rot26 · · Score: 1

      I wrote most of them in Lex and Yacc/Bison

      I *did* say "hand-code"... which was the point. I can ASK you to write me a compiler without using saying the word "goto" as well, and this is all beside the point anyway. Sheesh.

      --



      To ensure perfect aim, shoot first and call whatever you hit the target
    41. Re:Except... by agnosonga · · Score: 1
      heres where I put in a word for bash. Actually, any unix-type shell allows simple BASIC style programming. Unfortunately, unix-type shells, require either *nix, or some sort of emulator like Cygwin which as you pointed out, are not easy for just any kid to get a hold of.

      However, in a world full of web browsers, there is an immidiately available language. javascript. After playing with TI-83 BASIC, I learned javascript, and even though it doesnt promote great coding style, I think its a great language to learn with. Tutorials are all over the web, the the interpreter is on the basic desktop computer.

    42. Re:Except... by ergo98 · · Score: 1

      Ideally I'd like to see Microsoft provide a really stripped-down of Visual Basic free with the OS. And it should be installed by default, and placed prominently on the Start Menu.

      Placed predominately on the Start menu? Uh huh. >99% of people don't want to program...ever. Presuming that it needs to be shoved in people's face to encourage people to pick it up is rather presumptuous. Maybe all new Honda cars should come with a wratchet set mounted on the dashboard.

      This would provide something simple for kids (or newbies of all ages) to start playing around with.

      If they don't have the initiative to download one of the thousands of programming tools, including the full .NET SDK, then they'll never be programmers (if that is their hindrance, then they might as well give up now).

      and with more kids overall discovering coding you'd have more total kids "graduating" to more advanced stuff like real programming languages and alternative OS's like Linux, etc

      No, you'd have more hacks. People who would be interested in programming can spend the 15 minutes downloading the tools and putting their own shortcut on the desktop. We don't need a "Programming for Dummies" to make great programmers. Quite the contrary, in fact.

    43. Re:Except... by eatdave13 · · Score: 1

      Yeah but what about PHP?

      while (true) {
      echo 'I r00l, you dr00l!';
      }

      Or Ruby?

      loop do
      puts 'I r00l, you dr00l'
      end

      It hasn't gotten harder, there's just more choices. I bet it confuses us more than it confuses them ;)

      --
      "Verbing weirds language." -- Calvin
    44. Re:Except... by vrmlguy · · Score: 1
      I hand-code all of my lex and yacc. The lex and yacc compilers generate C, and feed it to the C compiler. The C compiler, in case you've never looked, generates assembler, and feeds it to the assembler; then it takes the object files and feeds them to the linker. The C code produced by lex and yacc contains "goto"s, but most people should never have to look at it. The assembler contains lots of branch instructions (which are "goto"s), but again most people should never have to look at it. The object files contain lots of binary data, but most people never even know about the tools that let them look inside.

      This isn't beside the point. The point is that "goto"s confuse people who have to maintain code; that's why they are "considered harmful". If people don't have to maintain the code, then "goto"s aren't harmful. This is relevant because a language for beginners should be easy to use, not in the sense of BASIC, but in the sense of Smalltalk, which was usable by kindergardeners.

      (And by the way, recursive descent compilers are very efficient, and don't use any "goto"s, either. I don't know why they aren't as popular as LALR(1) compilers. The BNF required is, IMHO, easier to understand.)

      --
      Nothing for 6-digit uids?
    45. Re:Except... by rsheridan6 · · Score: 1

      I recall that it was "10 PRINT 'FUCK YOU'/20 GOTO 10", preferably at the showroom at a department store.

      --
      Don't drop the soap, Tommy!
    46. Re:Except... by rot26 · · Score: 0, Offtopic

      (And by the way, recursive descent compilers are very efficient, and don't use any "goto"s, either. I don't know why they aren't as popular as LALR(1) compilers. The BNF required is, IMHO, easier to understand.)Big-O.

      I'm much too drunk to address any of your other shit, but I'll just say "you're wrong, nanny nanny boo boo".

      --



      To ensure perfect aim, shoot first and call whatever you hit the target
    47. Re:Except... by jo_ham · · Score: 1

      Apple includes it's full Developer Tools free on CD with every boxed set of 10.2 CDs. They include some cool stuff - like an app with a picture of a bomb and a fuse and a button that says "light it!". When you do it gets shorter and eventually reaches the bomb at which point the app crashes deliberately.

      They have various other stuff there too.

      The beauty is that they made it easy for the beginner, but with the power to be used professionally (the iLife apps were all written with the same tools for example).

      The best thing is that they're free!

    48. Re:Except... by Anonymous Coward · · Score: 0

      Plan on keeping a NTSC TV set or monitor in good condition, too. Otherwise you may find yourself with a well-preserved computer and no way to look at it once the digital standard is entrenched.

    49. Re:Except... by chthon · · Score: 1

      I found that my interest in computers got sparked by the first electronic games, around 1975, but it was not before 1984 that I was able to buy my first computer (ZX Spectrum 48k).

  137. REALbasic is an excellent tool for young coders by Anonymous Coward · · Score: 0
    We have found that the best solution to prepare little coders for "real world" languages (OOP, fully compiled) is a little known-product called REALbasic. It is available for Windows and Mac, it is fully object-oriented and it closely resembles Java (interfaces, exceptions, streams, single inheritance, etc.), but it is much easier to use and it enables elementary level student to create their own games.

    I think the folks at REAL Software will provide an educational discount to anyone who provides proof of academic status... academic prices start at $69.95 US. They even offer a complete "Intro to Programming" curriculum with lesson plans and examples available for a free download from their web site.

    Enjoy.

  138. It wasn't that hard to get my little lad started by Snaffler · · Score: 5, Interesting

    When he turned 13, I gave him an old 486, a manual on BASIC, and told him how to find it on the windows directory. Didn't do anything else other than type up a few lines of simple code. Natural curiosity took over. Soon he was writing complicated and lengthy RPGs, similar to what came out in the '80s. Next summer I gave him an old C++ book some visual basic stuff, and some disks. The next summer Java. And now he is going to be applying to a college that offers computer science in the fall. He codes in his sleep now. Oh, this summer's project is to take some boxes, some Linux disks, and make a web server, firewall, and Linux server.

    My thought is that if the kid has the normal curiosity then just give them the tools and they will figure it out. There are plenty of old books and software available on Ebay and used book stores.

  139. Welcome to society. by mrseigen · · Score: 1

    Kids today can't build anything either. Pretty much all most of the population can do right now on a computer is instant-message and mutilate the English language beyond recognition. Best thing to do for a kid who wants to program is give him a C compiler, a lot of good links, and a lot of good books.

    Also, Apple used to have a kid-friendly programming language, "Cocoa" (No relation to Objective C). There are still a few people using it. Too bad they discontinued HyperCard, most of its little scripting behind-the-scenes was pretty involved if you wanted to get into it.

  140. It's actually much easier now by Astrorunner · · Score: 1

    I started programming back in 7th grade... 1985 if I recall right.

    I stared with GW Basic and the big honkin' book that came with DOS 3.3. Man, that was a great book. But I digress.

    I knew GW Basic was pretty terrible, and eventually went on and two years later we had a screamin' fast 2400 baud modem. I downloaded a compiled basic called ASIC, but what really did it for me was PCC - the Personal C Compiler (God Bless you, Mark Desmet). Not exactly ANSI C but there wasn't exactly a clear ANSI standard at that time either.

    Anyways, just because you can't fire up GW Basic on today's PCs doesn't mean you're out of luck. With easy access to the internet, any kid who wants to learn, can learn. Heck, you can still find copies of PCC out on the web (search for pcc12d.zip).

    The problem was not the access to the tools, it was the access to *information*. I downloaded C tutorials off the local BBS, etc etc, but it can't compare to the vast amounts of info thats out on the web today. I look out there on the web and say "Damn, I wish I had this when I was just starting to program" now and again.

    It's kind of a double-edged sword. I was enthralled with the idea of writing a virus. At that age I really lacked the talent to do so. By the time I got to college, I'd matured enough to, well, not write one. If I was 15 years old today, I'd have had a field day.

    Where do you think all the variations of the I Love You virus etc come from?

    Kids.

    Well, kids and adults who can't get laid.

  141. Teaching 3D Graphics to programmers by viega · · Score: 1
    One thing the article was looking for is a very simple programatic interface to 3D graphics. Such a thing has been around since the mid-90's. The Alice projectaims to teach 3D programming to novice programmers, though more people who are high-school age or older.

    Alice uses Python for its programming language.

  142. Python? by wfberg · · Score: 1

    Wasn't it designed to teach?

    With some Tk in the mix there as well..

    And Java is a free download. Heck, if you're programming you're such a nerd you have broadband as well..

    And then there's of course javascript. And actionscript (so, kids pirate flash, so big deal.. )

    It's all just a download away.. Really, I don't see the big deal. Just because BASIC isn't in ROM anymore doesn't mean you can't get started programming on Windows.

    --
    SCO employee? Check out the bounty
  143. Cocoa? by Jeremy+Erwin · · Score: 2

    As a mac user, I feel compelled to bring up Cocoa-- which comes free (or close to free) with any MacOSX package. It's got very little learning curve, there's a strong visual programming element to it (although, if need be, you can replace most of that with setAction:/setTarget: messages.)

    1. Re:Cocoa? by KamuSan · · Score: 2, Insightful

      You really can easily make simple pograms with it, but explaining a Controller object might be a bit too much. It's a bit too much for experimenting on your own as a kid, I think.

  144. Bugfight by twoshortplanks · · Score: 1
    Hey, I tried to download this, but I got a binary for Win32. I'm sitting on Linux atm, and I can't remember how to un-perl2exe something.

    Anychance you can point us at the source or a PAR archive?

    --
    -- Sorry, I can't think of anything funny to say here.
    1. Re:Bugfight by Washizu · · Score: 1

      Doh. You know, you're right. I forgot I didn't include the source with that version. I'll try and get the code up tonight.

      --
      OddManIn: A Game of guns and game theory.
  145. Python! by Oneflower · · Score: 1

    python.org

    My first encounter with python recreated the same joy I had when I first learned Pascal. That was the first time I wrote code that looked beautiful (previous languages were Basic and Z80).

    Since Pascal it's been C, perl, and more and more time spent on debugging than writing.

    With python, code just flies out of fingers!

  146. Re:A couple places to start (Windows programming) by Anonymous Coward · · Score: 0

    If you want to teach them the basics of C/C++ on a windows machine Borland has released a free compiler a couple months ago. It's a little buggy but gets the job done. Once they have a good grasp on C/C++ you can let them get GUI because the same compiler works for Win32 programs.

    I've used it myself to learn Windows programming. (Yes you CAN get the Win32 API calls for free online.)

  147. I hate to say it, but VB is the way to go. by Kevin+Stevens · · Score: 3, Insightful

    I know VB is not the way to go for serious programming, but neither is basic. And you know what will turn off kids or even hardware enthusiasts that wannabe programmers most? Typing in a hello world program in C or C++ or whatever, and having it output in a fugly console window. There is no sense of accomplishment in that. Back in 1980, that was pretty cool. in 1990, that was acceptable. But if you want to ignite a spark in someone, that is not going to cut it today. There are free "Student" versions of VB that MS gives away, that doesnt allow you to make a .exe out of your program, you can just compile/run it on the fly from within the program. And if someone really wants to make an .exe out of it, they can acquire VS (acquire being a nice generic term). Playing with the gui window designer, and then putting code behind those buttons and text boxes will make the aspiring programmer feel like he is doing something cool, and then hopefully send him onto bigger and better things, and eventually different languages platfroms. typing gcc helloworld.cpp -o helloworld, and then having it print out "hello world" in a console box is NOT going to cut it. The goal is not to start out making them serious developers, the goal is to get them interested in programming so they want to become serious developers, and MS/VB perform that function well. You can write many cool applications in VB without alot of effort.
    The only other alternative I can think of is a web based technology like ASP/JSP/PHP, but due to the fact that is difficult to get a decent host for a website on a budget of zero dollars that your friends can go to and say "cool!", I think that those technologies lose their novelty really fast. Plus the bar to entry is a little higher, since you have to understand the relationship between the pages and the webserver, as well as configure things correctly, which VB does not require. Apache/IIS can be a little intimidating at fist and after seeking help and getting a load of RTFM responses, said wannabe programmer will quickly give up and just go back to playing PS2.

    1. Re:I hate to say it, but VB is the way to go. by DJ+Rubbie · · Score: 1

      About the web based alternative you have suggested, it is not hard to set up an Apache web server with PHP, and possibly MySQL, even on a Win98 box. While the learning curve may be slightly higher, with some encouragement it is another learning opportunity for the child, and s/he can learn how http on the Internet works, or even how SQL and database works. Also, with a DSL/Cable connection (that allows hosting, yes there are those out there) and a cheap box, the developed work can be showed off to the child's peers. The software costs zero dollars, and the hosting costs is paid for already, assuming the house already has that.

      I suggest installing the Apache and PHP first, have the child get the hang of it. Have him read the documentation, as PHP functions are very well documented. Once that is done MySQL can be added, and it is up to the child's imagination to what he or she can do with it. A highly popular Internet game, Kings of Chaos, got started by a bunch of high school students, just on PHP and MySQL.

      If the child just want to go back to playing the PS2, even with good parental encouragement/assistance, I highly doubt that child is actually enthuastic or motivated enough to find interest in programming, at least at that stage.

      --
      Please direct all bug reports to /dev/null
  148. Kids don't want to program any more by heffrey · · Score: 1

    Kids don't want to program any more because there already are programs to do most of the things kids want to do.

    That's the difference not a lack of tools. Let's face it there's loads of tools out there (GCC, Delphi, FreePascal, VB.NET, C#.NET etc. etc.) that you can get for free. And when we were all programming C64/Speccie/Beeb we had to be pretty damn resourceful. It was much harder to start with those machines than to start with a modern PC.

  149. Wait, everybody just hold on, this is important by Multiple+Sanchez · · Score: 1

    As a geek who finds the windows API clunky, anti-intuitive, and boring, I can understand why a kid growing up with a windows box would be daunted by computer programming. BASIC was important. I can trace my obsession with computers back to the moment I hit CTRL-BREAK to halt Oregon Trail on a TRS-80. What? I can control this thing? Hey, I can read this language, it makes sense to me, even though I'm only ten. Maybe at an age where I'm still ravenously curious and have no sense of my limitations, I can use this tool to express myself! (...cut to: ten-year-old today, reading the hex code of a windows blue screen.)

    All computers should ship with LOGO. Write your congressman.

  150. Programming games by Mindwarp · · Score: 1

    There are a couple of good programming games out there based on Java. The ones that come to mind are CodeRally and RoboCode both available from IBM's AlphaWorks. I'm currently teaching a friends eight year old to program using Java, and with a little discipline it seems a pretty good language to learn on.

    Of course, the fact that the learning turns out to be controlling robot tanks or rally cars can't hurt any :-)

    --
    The gift of death metal does not smile on the good looking.
  151. Download QBasic from Microsoft for Win2K/XP by ashitaka · · Score: 1

    QBASIC can be downloaded from Microsoft as part of the old DOS utilities package.

    --
    If you don't want to repeat the past, stop living in it.
    1. Re:Download QBasic from Microsoft for Win2K/XP by jandrese · · Score: 2, Interesting

      Unfortunatly it's not very useful to download that on Win2k/XP, as most of the applications in there just spit out "Incorrect DOS Version" and quit. Apparently most of the applications are not NTFS aware.

      --

      I read the internet for the articles.
    2. Re:Download QBasic from Microsoft for Win2K/XP by rkz · · Score: 1

      look on your old Win95 CD, olddos is on there!

    3. Re:Download QBasic from Microsoft for Win2K/XP by ashitaka · · Score: 1

      Well, duh..

      These are *DOS* applications and QBASIC runs on any version of DOS/Windows as it doesn't do the check.

      My reponse was in answer to the implied question: Where can I get QBASIC now that they don't include it with Win2K/XP.

      We still have a couple of QBASIC apps that gather or format cost data for online systems and our phone system.

      --
      If you don't want to repeat the past, stop living in it.
    4. Re:Download QBasic from Microsoft for Win2K/XP by Anonymous Coward · · Score: 0

      Get it from an NT4 CD.

      (Also, the olddos version might work if you fiddle with VER. It's the DOS6 version rather than the DOS5 one included in NT.)

  152. Users are no longer hobbyists by Ars-Fartsica · · Score: 1
    Stop pining for the days when computers were stripped-down hobbyist boxes. Its an appliance and Windows is designed to present it as such. If you want to develop code you can download hundreds of languages and tools for whatever platform you like including Windows.

    There is absolutely zero motivation to revert systems back to their 80s state, so stop whining about it.

  153. Curl would've been good... by F1_Fan · · Score: 2, Interesting

    Curl provides access to a rich 2/3-D graphics engine, excellent "interactivity" with HTML and multimedia support is built-in. It can be as OO as you want. It had the potential to be a great "first" language for coders.

    Unfortunately the company (curl.com) is doing an extremely poor job marketing it and is lumbering it with a hideous licencing model.

    It'll be dead within a year or two...

  154. I did some consulting for a school near me and.... by SwedishChef · · Score: 4, Interesting

    since there was little budget for big iron we did lots with Linux (web pages, mail server, ftp server, dhcp, even a commercial student database called Schoolmaster) and the Library teacher told me about a young kid (then in the 7th grade) whose family couldn't get him a computer of his own. I took a 486/120 and installed Linux with no gui on it and we allowed kids to check it out like a library book. I included just the basics to get on... how to login, how to use Lynx, where to find more information, the "man" pages, etc.

    As far as I know this 7th grader was the only student who checked out the box. I got a few questions relayed to me by the library teacher and answered them. I lost track of him until my son told me that he turned up at a County Fair at the "internet cafe" my son was running and he was heavily into Llinux!

    Last month my contact at the school district told me that the kid, now a junior in HS, is planning a senior project: a Beowolf cluster! He is now trying to round up a few dozen machines to use in his cluster.

    This is a small school system in a farming community and turns out only one really good natural engineer/computer scientist every 4 or 5 years but I like to think that my idea of creating a "library book" computer using Linux helped turn out this one.

    --
    No one ever had to evacuate a city because the solar panels broke!
  155. Pascal by s20451 · · Score: 4, Informative

    Whatever happened to pascal?

    Lo these many years ago, when I was in first year, pascal was used as the teaching language in many universities, including mine. It's nice enough as a sandbox language to help you learn good programming habits, yet powerful enough to do non-trivial things.

    In fact you can download a free pascal compiler to play around with it.

    --
    Toronto-area transit rider? Rate your ride.
    1. Re:Pascal by molarmass192 · · Score: 1

      No no, you're forgetting how bad pascal was. They forced me to take a Pascal course in college and I have never used it since. I think Java is far better than pascal for beginners, even better than Basic in my opinion. I still prefer C++ followed closely by C for my own work but I think Java's lets kids learn about proper structure and scopes. More importantly, it's free and there are many good free IDEs for it. The tough thing is at least when I was a kid, my stuff looked like all the commercial cursor mode stuff out there. A kid these days has very little hope of writing apps that look like commercial apps.

      --

      Good people do not need laws to tell them to act responsibly, while bad people will find a way around the laws-Plato
    2. Re:Pascal by Anonymous Coward · · Score: 0

      Everyone learned it in school and then graduated, never to use it again.

    3. Re:Pascal by Anonymous Coward · · Score: 0

      No, you are failing to understand how far pascal has come since you had to suffer through it in college. My department has over 250k lines of Delphi code that is reliably and efficiently running some very important parts of our not small business. Freepascal is modeled on Delphi.

    4. Re:Pascal by Pulzar · · Score: 1

      No no, you're forgetting how bad pascal was. They forced me to take a Pascal course in college and I have never used it since.

      Why did you find it do bad? I wouldn't use it now, but I thought it was a wonderful teaching language. It had a simple syntax, it was easy to understand, quite powerful, very fast compilation time even on slow PCs, very nice IDE (Turbo/Borland Pascal)..

      It made you think about how to solve a problem, instead of thinking about how to write the solution.

      But, then, I learned it when I was 14, and I wasn't really thinking about "will I use this when I grow up".. Career growth potential is not an important aspect of one's life at that age :).

      --
      Never underestimate the bandwidth of a 747 filled with CD-ROMs.
    5. Re:Pascal by molarmass192 · · Score: 1

      The year was 1989. I forget the specific platform we were coding on but I think it was an IBM midrange of some sort. So you've got a good point that the Pascal I saw probably looks very little like the current Pascal.

      --

      Good people do not need laws to tell them to act responsibly, while bad people will find a way around the laws-Plato
    6. Re:Pascal by molarmass192 · · Score: 1

      Yep, I took that class in 1989, it was on an IBM midrange and there were no IDEs other than the IBM editor. Things could, and understandably, have changed over the 14 years since I last looked at it.

      --

      Good people do not need laws to tell them to act responsibly, while bad people will find a way around the laws-Plato
    7. Re:Pascal by poot_rootbeer · · Score: 1


      Borland Delphi is a moderately popular development environment based on Pascal...

  156. The times thay are a'changing... by ayjay29 · · Score: 1

    Back in school (84) we learnt Basic on Commadore Pets. We were taught that if you wanted to calculate finances for your business, you wrote a Basic program to do it. There was no real word processors, spreadsheets, database apps that were used. Kids could either write code, or play games.

    Nowerdays theres a lot of creative stuff to do with computers, learning how to use the web, office software, graphics applications etc. Lots of these skills are more useful for a broad career path than coding.

    As for asperint neards, it's harder to get into coding, the Beginners guides tend to be 1000+ pages, and the size of the API and class libraries is daunting.

    I would recommend HTML -> JavaScript -> ASP / JSP -> Java / VB / C# as a good route. Start with something simple and visual, then increace the complexity. Having a grasp of Java or C# will be a plus for further studies.

    (But then again, my dad said spelling and handwriting would be a plus, as when I got a job, the company I worked for may not have a computer...)

    --
    Offtopic, Inflammatory, Inappropriate, Illegal, or Offensive comments might be moderated up.
  157. Use Alice with Python by zubernerd · · Score: 1

    There is the Alice project at http://www.alice.org Its goal is to help teach children programming methodology (problem solving using a language, versus just teaching the syntax of a language).
    From the site "The focus of the Alice project is now to provide the best possible first exposure to programming for students ranging from middle schoolers to college students"
    It's free (binary and source), but runs only under MS-Windows (uses Direct-X).

    --
    Accentuate the positive, don't waste your mod points on the negative.
  158. Use Knoppix by stevenp · · Score: 1

    >> Now we have Windows, which typically comes with no built-in programming language. What can be done to improve the situation?"

    A Knoppix CD is all that it takes to get a running Linux system with a myriad of programming languages. Learning the languages and using them is a totally different story.

    I think that the first that a kid should get is an entry book about general programming. The language should be something simple - Pascal for example - it teaches good structured way of programming. It should definitely not be C, especially not the the K&R C which I do not know HOW some people consider to be a learning language.

    Later when the kid becomes eager to try writing a program, it should get access to a computer with a ready IDE of some kind - not a command line compiler with cryptic options.

    I still remember the Turbo Pascal ver 1.0 that I was using as a kid, it was just SIMPLE. Write the program, compile and run it, all in the same place. The v3.0 was even better, just heaven to program in. The version 5.5 led me to the wonderful world of object-oriented programming and so on.

    Later I had my first contact with C (TurboC) and I was surprised how could one such so unconsistent and cryptic language not even exist but also to be one of the most popular languages (the reason was Unix, as I learned later). At this time I was freely writing in 6502 and 8086 Assembler, Basic and Pascal, all of which I had learned first on paper and then tried on the PC with an IDE of some kind - mostly the Turbo series from Borland.

  159. Karel the Robot by peterb · · Score: 1


    I can't believe none of you have even thought to mention Karel the Robot.

    Learning how to program is completely orthogonal to learning how to use a specific language or platform. What's needed is not teaching a specific skill set, that will be obsolete in a year or two, but teaching the metaphor and process. Karel does that. (The first part of CMU's "intro" programming course used to use Karel).

  160. Maybe Kiddie Knoppix by Aging_Newbie · · Score: 2, Interesting

    Set up a stripped down Knoppix distro that writes Windoze files (like the full one does) and has a plethora of languages from which to choose. Set it up so it deals only with its own directory and keeps kids mostly away from the Windoze files for their own protection. If they figure out how to get out of the padded room they will probably be capable of not hurting anything.

    It would appeal to kids because ....
    1. It's not your father's OS (Oldsmobile)
    2. It's passed around freely among the "geeks to be"
    3. Programs could be passed around since they would run on anybody's machine with the Knoppix CD
    4. Cliques would develop because they would know something others don't.

    I think it would be a wonderful idea. Even though he is using the common PC, the kid has his own environment with his own tools and complete power!!!!!! It could be a big boost to the development of real programmers.

  161. Bah by Zathrus · · Score: 1

    I'm not so sure that the lack of a BASIC-type language on Windows is such an issue... it's not like BASIC was all that good to start with.

    Frankly, it's somewhat easier to learn the basics of programming now because there are far more languages that are easy to code in and they're far more accessible than they used to be. I started out (more or less) on a Northstar system... hell if I know what CPU it had, but it ran CP/M or another even more primative OS (don't know what it was, but I had a separate disk to boot up the BASIC interpreter, which could store to floppy as well... but it wasn't CP/M).

    No, you're not going to leap directly into graphical programming. But you can download perl, python, scheme, or other similar languages that are pretty easy to learn and easy to toy with. They're also extensible so you can start doing graphical programming once you've gotten far enough along.

    This is a lot better than having to go out and buy Turbo Pascal to have a decent language to code in and learn from, which is what I had to do (back on an XT clone).

    Yeah, you have to know about it first, and there's a slightly higher barrier since you have to go out and download it rather than stumbling across it. But let's be honest - what are the odds of stumbling across it nowadays? We're not talking about 160K floppy disk with a few dozen files at most, but a 20-100GB HD with hundreds of directories and thousands of files. And it's not like you're going to magically stumble upon it in a manual... manual? What manual? That's funny just to think about (which is how I stumbled across BASIC on that Northstar system).

  162. Borland Builder make Windows programming simple by bstanton0101 · · Score: 1

    If you've every tried Borland C Builder, you know what I'm talking about. Just click-and-drag a edit box or directory tree onto the program window. The code you write has nothing to do with responing to WM_PAINT messages or similar Microsoftisms. You can learn to write elegant C++ and have programs that actually do something (it may take months of Pascal practice to create a bonafide useful program).

    --
    Please excuse my English. I am American.
  163. Not OO! by spectrokid · · Score: 1

    If you had put an object oriented language on that C64 I would never have survived it. Have you looked at VB.NET? Opening that IDE is FRIGHTENING for an 8 year old. Not to mention it requires a good knowldge of the English language. No, we really need a --10 Print "Hello World"-- kinda thing. Nobody saia these kids need an all-singing-and-dancing GUI.

    --

    10 ?"Hello World" life was simple then

    1. Re:Not OO! by RevAaron · · Score: 5, Informative

      OO doesn't mean a scary IDE. OO doesn't mean VB.NET or any other language on the .NET object model.

      Smalltalk has been used for teaching kids for 30 years, and with a good amount of success.

      Part of the reason kids can learn Smalltalk well is that there is no need to learn and use OO off the bat. You can do a fair amount of stuff in Smalltalk just by using Object-Based Programming, rather than OOP. Object-based means *using* objects, creating them, but without a full dose of creating classes, etc.

      Now a days, we have Squeak, which takes it to the next level. Kids can get a big return on their investment of time, creating moving, colorful things, while writing a very small amount of code. Unlike some environments for beginners, it scales up, being useful for creating big and scary applications with a lot of code. :) Kids end up learning OO by manipulating actual objects, in the form of graphical "Morphs," giving them functionality, changing their properties... until the day it clicks, and they decide they want a totally new "kind" of Morph.

      Check out the demos- it's open source, and runs on just about every platform worth runnning, including Mac OS Classic/X, Windows > 3.1 (incl WinCE), and all modern Unices under X11 (or DirectFB, Linux FB, SDL).

      --

      Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
  164. Game Maker by httptech · · Score: 3, Interesting
    There is an excellent freeware program for Windows called Game Maker which allows you to create simple to sophisticated 2-D arcade/rpg style games through a drag-and-drop interface. My 9 year old enjoys creating the games this way, but the beauty is in the built-in scripting language. When he can't accomplish what he wants using drag-and-drop, I teach him how to insert a snippet of code into the game objects to get the results he wants. Little by little, he learns to program this way.

    Game Maker URL: http://www.cs.uu.nl/people/markov/gmaker/

  165. Phaeton Tells A Story by Anonymous Coward · · Score: 0

    What can be done to improve the situation?

    Visit one or more of the following:

    www.debian.org
    www.slackware.org
    www.freebsd.o rg

    Seriously. Though it's a small fry of a computer, i cut my programming teeth in the 80's on a commodore 16, then later a commodore plus/4. I had friends who had Atari800XLs, C= 64s, 128s and (oh gawd) TI 99 4/a and Trash-80 computers.

    In those days, we didn't really have much of anything that was "prepackaged". Sure there were some programs or games that were available commercially. But when you're 10 years old, you didn't have the cash to go buy stuff yourself. We all banded together and rolled our own apps, and "ported" them from one machine to the next. This wasn't considered "geeky" persay, it was just standard computer fanfare. It was both borne of necessity, and simultaneously great fun.

    By high school, i got bored of computers and went to other things (namely guitar and chicks) and i was completely oblivious to the whole 8 bit ---> 32 bit computer evolution. Years later I got nostalgic thinking of the old days and wanted to take up programming again, so i turned to computers again in 1997 and things were obviously quite different.

    The first time i sat down in front of a 486 with Windows95 on it i was completely frightened!

    I asked "How do you make it.. um... go?". The owner of the machine set the mouse in my hand and called me an idiot. I had NO concept of GUIs or mice or anything.

    But as i learned Windows 95 i started to ask questions like "So how do i get a command line, so i can write my own programs?". I got answers like "you can't/ you don't need to/ it's all been taken care of by Microsoft".

    I decided right then, that this will just not cut it. It was depressing. It was as if The Good Old Days Were Dead And Gone(tm).

    To shorten things up though, once i discovered UNIX and GNU/Linux i jumped in and never looked back. Ever.

    Aside from all the politics, craptastic performance, and general anti-MS hatred it boils down to this: For the things i use computers for, and want to do with computers, something like the Windows Operating System (and MacOS completely fucking useless. I'll wager that there are a great number of people here on /. that are in the same boat as me.

    So even though you can get programming environments and whatnot for Windows or older MacOS's, i guess my point is that you'll still be extremely stifled on a closed up environment like that. You just can't beat an Open Source OS and GNU tools for programming.

    I may not always agree with RMS and family's political views, but i absolutely love the man for some of the things he's mad happen.

  166. PlayStation2 BASIC by iJed · · Score: 1

    In the UK the PS2 included (and may still include?) some form of BASIC. It lets you save your programs to a memory card and supports graphics and sounds. To me this brought back memories of programming my BBC back in the days before time began (1980s). Anyway this would probably be a good place to start since PS2s are so popular and all you need is a USB keyboard.

  167. blah blah blah by XO · · Score: 1

    Everyone's saying "if there's an interest".. the idea is to make the interest.

    I'm sure part of the reason we HAD the interest was because of the expense of software (no way a 5-10 year old kid was buying $100 pieces of software!), the scarcity of software (many programs just plain hadn't been thought of yet i'm sure), or a program you DID have didn't do what you WANTED it to. (I learned programming by fixing bugs and enhancing features..that's how I learn all new languages. Take a program that is flawed that is in that language, and fix it.)

    We started programming because it was RIGHT THERE. It was the only way to interface to most machines! It was an EASY, INTERPRETED language, where the results came back INSTANTLY. We were all ADD children, as they all are now, too, so if we didn't get results after only a few lines of code, we would've gone outside and rode bikes or something instead.

    I don't think it's possible to go back to that. The interfaces are too complex, the youngsters expect too much.

    But, given my doubts that it's possible to go back, here's what I think would have to be done:

    The way to interface with the machine is through the programming language (even if it is just direct commands, ala 'LOAD "boggle",8').
    The manual for the machine gives BEGINNER'S INSTRUCTIONS TO the programming language.
    The language itself is interpreted, and can get quick results in a few lines of code.
    The language does not use excessive pieces of punctuation, and is designed in a fashion that is easy to grasp. Really, "PRINT" or "WRITE" make more sense to a n00b than "ECHO" does. Think about it. You start going to a Python, Rexx, JavaScript, something, you're going to send the person into punctuation mark heart failures.

    --
    "Champagne for my real friends - and real pain for my sham friends!" http://ericblade.postalboard.com/
  168. imploring apple, haahhahahahahah by kraksmoka · · Score: 1

    the author has obviously never used a mac running OS X. we have all the tools built in, when u install the developer's toolkit you get a full set of stuff. hey, there's always been applescript too.

    --
    "You never want a serious crisis to go to waste." - Rahm Emanuel
  169. The problem is.... by gr8_phk · · Score: 1

    It's fine to recommend something for kids to download and learn but... The biggest problem is that there is nothing there by default. Kids whose parents aren't geeks will not run across something on the machine and start messing with it like they did in the old days.

  170. VB Script by havoc · · Score: 1

    Hello, have you not heard of VB Script that ships with Windows and is a perfect replacement for Batch?

  171. Python by Phantasmo · · Score: 2, Insightful

    Python is easy to learn, Free, free, fast and portable, but most importantly it's interpreted.

    When I was growing up (and using BASIC on the C64) I loved that I could enter a line of code and see the results immediately. It encourages a lot more experimentation as you can effortlessly try anything, be it interactively before you even start writing to test out a concept, or in the middle of executing your program.

    --

    The US Army: promoting democracy through unquestioned obedience
  172. Teach them functional programming! (Really) by tmoertel · · Score: 4, Interesting
    The vast computing resources that children have today are both a curse and a blessing. The curse is that there is so much more complexity for today's children to grapple with than we had when we were learning to write software. But, the blessing is that today's children have vast computing resources at their disposal, resources that we could scarcely dream about.

    I think we ought to harness those resources. We ought to use them to teach children those languages that are immensely powerful yet, judged by our standards, too inefficient to be practical. In particular, I'm referring to functional programming languages like Scheme and Haskell.

    Now, hear me out.

    Why functional programming languages? Because they lend themselves to extremely powerful, mathematical ways of thinking about and solving problems. Learning these ways of thinking when young will benefit our children for the rest of their lives. For example, take a look at the The TeachScheme! Project. I wish something like that was available when I was in High School.

    Let us not teach our children the technologies of today but of tomorrow. More and more, I am convinced that functional programming, once considered too computationally inefficient for industry work, will be tomorrow's dominant programming paradigm. No other way of programming so readily lends itself to the formalism that is necessary to manage the ever-increasing complexity of modern software projects.

    So, let us give our children the tools they will need to solve the problems of their day. Teach them functional programming.

    1. Re:Teach them functional programming! (Really) by Rinikusu · · Score: 2, Interesting

      You know.. I alluded to this in another post about this story but..

      When I was 10 years old, I didn't give a fuck solving problems and math. I liked pretty graphics, music, and joysticks. I was a KID. And most kids I knew were the same. We learned BASIC and whatever so we could make pretty pictures, music, and games, not because we wanted to solve problems and learn math (which we learned in the process, but NOT as the end in itself), but because we liked pretty pictures and music and games. People like you keep thinking of "what's in a kid's best interest" and forget that when you were a kid, when people told you what was in "your best interest" it immediately turned you off of whatever it was you were into.

      The key is not to present it in a "Here's a way to solve important mathematical problems that you'll need in the future" but in a "hey, isn't this cool? I wonder how they did that!?" framework.

      And who said everyone wants to be a programmer?

      --
      If you were me, you'd be good lookin'. - six string samurai
    2. Re:Teach them functional programming! (Really) by fnc · · Score: 1

      Maybe this could make them interested: http://www.conal.net/Fran/

  173. Who used to buy computers by borkus · · Score: 1

    Blame it on the GUI if you like, but most people don't buy computers so they can program anymore. All of the old computers mentioned in the article are from the days of the serious hobbyist. You either were a programmer or expected to learn how to program if you had one. While the limitations of old systems seem quaint, they actually created a barrier to most people using computers.

    I don't think you can do any real programming without a year or more of Algebra - which puts most American students at 8th or 9th grade before they can write a real program. Prior to Algebra, I think kids can learn alot about creating systems through simulation type games- software like Oregon Trail that made you plan and estimate. 2D and 3D graphics programs that provide kids with open ended creativity would be helpful as well. Unfortunately, a lot of educational software for kids tends to be drill and kill.

  174. Interactive programming shells - Python . . . by Brad+Cossette · · Score: 1
    Even though I prefer Perl, one of the fanatastic things I loved about Python was the interactive shell (not sure of the proper name for it) that allowed you to execute individual lines of code and immeadiately see the effects. It made learning the language much easier, and also was handy when writing a script and you wanted to try something out on the side first.

    I think that interactive shells like this are a fantastic way to teach programming especially for early beginners (i.e. junior/senior high school). C & C++ have a lot of low-level aspects to them (my understanding of C increased after studying architecture and low-level drivers in University), and they don't make for a great initial learning experience. Java is in a similar difficulty range as C++, and learning OO really early doesn't (IMHO) convey too many advantages - functional programming is a better way to start.

    Like some previous posters, a scripting language might be a better way to start, especially if an interactive shell is available to help speed up learning.

    --
    -- "We are all in the gutter, but some of us are looking at the stars" [Oscar Wilde]
  175. Microsoft rep replies by tuxathon · · Score: 2, Funny

    At Microsoft, we support the hopes and dreams of the world's youngsters. That is why we have chosen not to include useful programming languages with our Windows product line. We feel that children from all walks of life would benefit from working hard, saving like misers and purchasing an enterprise licence for the .Net Studio.

    With great regard,
    Rippen M. Anueone
    Microsoft Sales Department

  176. How about DotNet? by DavidLeblond · · Score: 1

    I have Visual Studio.NET, and while it does cost money, the compiler does not. You can just get a free IDE (ie SharpDevelop) and be on your way.

    I know .NET isn't included with Windows now, but it should be with Longhorn.

    1. Re:How about DotNet? by laughlin · · Score: 1

      Finally, a voice of reason! Now how many MS bashers out there actually knew you could download the .NET Framework SDK for *gratis*? Show of hands? You can even use VI or Emacs if you must. Please, find something better to whine about!

  177. Two words: Py Thon by marlowe · · Score: 1

    And I think it's a cute and handy little scripting language. Think of it as BASIC done better.

    Although, all things considered, I would have preferred curly brackets. Slightly. It's not something I feel passionate about, but there it is.

    --
    http://www.angelfire.com/ca3/marlowe Better a smartass than a dumbass.
  178. Don't bother by TerryAtWork · · Score: 1

    Go into managment then you get to fire coders.

    Coding is the burger flipping of the 21st century. Only kids and losers (like me) do it.

    Capitalism brought computers into the world and Capitalism ruined them.

    --
    It's Christmas everyday with BitTorrent.
  179. Learn the old fashioned way by del_ctrl_alt · · Score: 1

    10 print "hello"
    20 goto 10

    My advice would be to get dos installed and see where it all started (well almost started). It will teach some valuble lessons. then get something like pascal which is fairly easy to program. after playing around with that you will be ready to progress onto VB in windows

  180. Handhelds by ThePyro · · Score: 1

    You may be on to something with the Palm.

    When I was younger I tried just about everything to get my little brothers into coding. I tried teaching them BASIC, setting them up with Turbo C++ and my old C programming books, and getting them into graphics.

    Neither of them seemed to be very interested.

    The object that finally got one of my brothers interested in programming was his TI graphing calculator, with its built-in pseudo programming language.

    I think he started off just wanting to learn how to write games on it, as an escape from boring high school lectures. But as time passed and he got a little better at it, he also began writing programs to help him with his math & science homework. Some might say that's small potatoes compared to "real" programming - but I think it was an extremely valuable learning experience for him. He understand the school material better because he was programming it into his calculator, and it got him genuinely interested in what he was doing. The transition from doing busywork to being fully engaged in learning should be the ultimate goal of any teacher.

    The little handheld that he could take with him to school and play around with at his leisure was the catalyst.

    1. Re:Handhelds by kisrael · · Score: 1

      PocketC for Palm and PocketPC has been a lot of fun for me...I can code, compile, and run all on the go.

      --
      SO YOU'RE GOING TO DIE: The Comic for Dealing with Death
  181. Windows Scripting Host VBS and JS by theolein · · Score: 1

    These two come free with plain vanilla Windows although I wouldn't recommend them to beginners as Windows is too schizoid in it's implementation to make these intuitive. I would truly recommend any modern Unix flavour (with the exception of SCO) that has a host of languages on board by default. This enables the kids to pick the language they want, from shell scripts to C++.

  182. Java? No, maybe python... by jkauzlar · · Score: 2, Insightful
    Pros:
    • Freely available
    • Often used to teach programming in educational facilities nowadays
    • Has all of the graphical stuff that kids would like
    Cons:
    • Too hard... OOP is too big a learning curve when you just want to write a program that asks for your name and says "Hello, ".
    • API is too rooted in com sci theory, another learning curve...
    I say go with python. I think kids are by nature impatient when it comes to learning something new and they want fast results. Python comes with an interpreter, so you can get immediate feedback if you type in something wrong. Plus, its free and its as complicated as you want it to be. Kids won't have to learn OOP until they come across a problem that would really benefit from it and by then they've already learned the basics of the language well.

    Another thing is graphics, and I don't know if Python has an interface to the Windows graphics APIs. I think most young kids would enjoy creating graphics and games, so this would be a must-have feature for a young person's language. But screw LOGO. That was the first language I learned (in 3rd grade) and I was never so bored watching that 'turtle' move around and wondering how I could make Pac-man by rotating the turtle and making him move x pixels (not that its any easier in another language, but at least Apple II BASIC let me use my imagination more)

    1. Re:Java? No, maybe python... by 72beetle · · Score: 4, Insightful

      Actually, given this scenario of enabling a kid to learn programming, I'd absolutely point them at Java.

      I was one of those kids that learned programming in BASIC on TRS-80's back in the early 80's... and back then the order of the day was procedural programming, so that's the methodology that I learned. Because of my background in procedural, I have never gotten fully comfortable with OOP, and it's been the Achilles' tendon of my career.

      OOP is significantly easier to learn if you don't have to 'unlearn' procedural programming first... so start there with the next generation of programmers. Java's got it's flaws, but for learning Object Oriented Programming, it's the way to go.

      -72

      --
      -Those who dance are considered insane by those who can't hear the music.
    2. Re:Java? No, maybe python... by Anonymous Coward · · Score: 0

      Kids are not impatient. Have you never seen a kid repeat something over and over again until it gets it right? Besides, OOP is the "natural" paradigm. OOP is hard to learn if you have become used to procedural programming, but to a newbie, what is hard about understanding that you have a blob of code which you can tell to do something?

    3. Re:Java? No, maybe python... by jgerman · · Score: 1

      That's ridiculous. There are times when you want procedural programming skills, times when you want OO, and times when you want functional. OO is not a silver bullet, nor is it the answer to all situations. The key to being a good coder is to be flexible and have multiple tools in your box.

      --
      I'm the big fish in the big pond bitch.
    4. Re:Java? No, maybe python... by xenocide2 · · Score: 3, Insightful

      Java is nice in some ways, but I must disagree that its a learning language. I used to think along the same lines, but careful thought and argument has changed my mind (who would have thought that anyone's mind could change from the internet).

      To begin with, procedural programming isn't diametrically opposed to OO, like many like to imply. OO is, in part, a way to organize those procedures into coherent wholes. I don't think you can write a OO program without knowing how to write a procedure. When I was going through my basic undergraduate programming classes, many fellow students were having problems using iteration to do something to an entire array. Hopefully the foreach concept won't have too high a barrier of entry.

      Now the above understanding is easy enough to rectify without abandoning Java. Simply begin teaching them the basics using the classic "static void main(String[] args)" line. This is the real problem with Java as a learning language: there's a lot that the student must be told to remember but not understand. The meaning of many keywords nessecary to program in Java can be overbearing to teach and mostly serves as a hurdle to student's interests. Exceptions are a nice way of handling errors, but they require a lot of confusing ideas to beginner programmers, like the notion of execution control flow, the activation record, and the keywords throws, try, and catch. There used to be a very classic line in introductory Java texts, for doing standard commandline input. Something like BufferedStream keyboard = new BufferedStream(System.in()). Again most students are just taught 'Just memorize it for now, we'll discuss (or replace) it later.'

      That said, there are worse choices than Java for a language. If you can skirt around the issues I've mentioned above, Java does have many nice benefits. The exceptions have a very handy benefit compared to other compiled languages; rather than get a Segment Fault, you get something like NullPointerException(MyClass.java:40). And of course, the lack of explicit pointers itself is just one less concept you need to teach, especially when you're simply trying to cover the basics that are present in nearly every language in use. The Javadocs are also handy.

      So really it isn't a clear cut yes or no. If the student is dead set on learning to program then perhaps Java is the way to go. But for students on the fringe, every boring hurdle to get something done is another step towards middle management. ;) I guess the real question is, should we cater to (read: dumb down) the fringe?

      --
      I Browse at +4 Flamebait

      Open Source Sysadmin

    5. Re:Java? No, maybe python... by jkauzlar · · Score: 1
      Maybe you're right. Its hard for me to imagine a young person learning OOP right off the bat. I didn't learn until I was about 14 or 15 and it was quite a jump from the procedural BASIC languages I was accustomed to.

      For me, the mental leap from procedural to object-oriented programming was the idea that data and code are (or should always be) related. Even when I learned C++, I viewed classes as 'just another data type', or 'like structs, but with functions'.

      It wasn't even until I learned Java that I realized data and code could ALWAYS be related in one way or another. With that realization, I began to do things in programming that I could never do before: reuse code on a large scale; break down the problem into its constituent problems, which is a skill that reaches beyond programming to other areas of problem-solving; and with these skills I could tackle more complex tasks without that feeling of being overwhelmed.

    6. Re:Java? No, maybe python... by Slime-dogg · · Score: 1

      Eh. OOP is a child of procedural programming. There's always a starting point somewhere, and a bunch of function calls.

      I'd want them to learn one of the functional languages like LISP or Scheme. This way, they could get a grasp of the math behind what they're doing, even though they don't realize it. This way, they also have a better understanding of a persistent environment with functions that determine the state of the environment. It's not very unlike this world that we live in.

      --
      You need to restart your computer. Hold down the Power button for several seconds or press the Restart button.
    7. Re:Java? No, maybe python... by gfody · · Score: 1

      what is hard about understanding that you have a blob of code which you can tell to do something?

      you expect that level of abstract thought from a kid?

      --

      bite my glorious golden ass.
    8. Re:Java? No, maybe python... by jkauzlar · · Score: 1
      I think teaching a young person LISP or Scheme would be like taking a kid who wants to learn karate and making him paint a fence instead.

      The kids would say "So is this what Quake is written in?" "No, its written in C." "Can I learn C instead?" "No, Lisp will teach you the fundamentals, so you can become a better C programmer."

      Then they get bored.

      But then again, they're not going to sit down with a C compiler and write Quake anyway.

    9. Re:Java? No, maybe python... by mnmn · · Score: 1

      I strongly agree there. I was programming BASIC peek/poke statements on the Commodore64 and am STILL trying to really get the hang of C++. I have worked quite a lot with ANSI C and basic C++ as in QT, sleepycat etc, but the main programs are in C.

      The problem is that once you know some assembly and the hardware architecture, you 'imagine' your code compiled into machine code. Thats very easy to do with procedural languages as the basic structures are close to what machine language is. For more complex GUI-type programs Ive used arrays of function pointers, but still kept away from classes, and they worked all fine.

      I think OOP is the worst thing that happened to computer science as it put a new conceptual layer insulating it from the lower conceptual layers. Object reuse is used less often than compiled ANSI C libraries, and it has divided the programmers into application and system programmers.

      I think all the J2EE applications could be developed in C with autoconf and make. If portability is still such a big issue, a vmware with a 'standard' PC image running should be faster and less resource hungry than a full-fledged J2EE server. All that effort going into managing and maintaining J2EE applications and learning newer buzzwords could be spent making a good garbage collector and standard enterprise libraries (already done?) for C.

      --
      "Give orange me give eat orange me eat orange give me eat orange give me you." -Nim Chimpsky
    10. Re:Java? No, maybe python... by Anonymous Coward · · Score: 0

      That's not at all abstract, unless you expect them to understand inheritance, polymorphism, etc right away. Our world is full of objects and we're used to not understanding precisely what happens when we interact with things (like pressing the On-button on the TV remote). The path is to learn self-contained procedural programming (by writing a class with a method which is called from a teacher-provided class that handles I/O), then proceed to use the OO API yourself, then finally write your own objects.

    11. Re:Java? No, maybe python... by squidfood · · Score: 1
      I say go with python. I think kids are by nature impatient...

      Can I say that a lot of these ideas on programming languages are missing the point?

      The great thing for me about learning computers in the 80's was complete control of my own machine. The hell with massive packages, libraries, or layers, a poke or two and I was sending a pure tone to a speaker or otherwise just messing with the hardware. A wrong poke and, well, boom! Yes I was impatient, but it was impatience to get at the guts of things.

      Nowadays there's so many layers, drivers, etc., etc., that language isn't the issue (hence I agree that logo's was never much fun...didn't do much).

      It's that you don't have the control, and without the control it doesn't matter what language you're learning, it's not as much fun and doesn't teach as much.

    12. Re:Java? No, maybe python... by richieb · · Score: 2, Interesting
      Actually, given this scenario of enabling a kid to learn programming, I'd absolutely point them at Java.

      I tried this once. I wanted to show my 11 year old son how to code in Java. So I tried to show him how to write a simple program to solve a homework problem - solving a simple equation.

      The first step was to read two decimal numbers from the console. When I got lost among the various stream classes, I gave up. I could figure this out, but how would I explain it to an 11 year old? And not bore him to death?

      --
      ...richie - It is a good day to code.
    13. Re:Java? No, maybe python... by Anonymous Coward · · Score: 1, Insightful

      As a professional Java developer i would not teach first principles in Java. In fact i have taught Java at night school, and found it to be quite difficult . Python is a much better choice for a starting language and includes many of the 00 features yon come to expect from languages like Java.

      I'm not saying l prefer Python over Java ,Just that python is a better stating Langwage.

    14. Re:Java? No, maybe python... by dekashizl · · Score: 2, Insightful

      I completely disagree with your post. Java is horribly verbose, overly complex, and entirely lacking in simple ways to make cool things appear on the screen (which is what gets kids interested in programming).

      Before you say "you don't understand Java", let me say that I do know it very well. I have used it for several large engineering projects, and am using it now in building a SOAP-based server. But that's not the point.

      Furthermore, your point about having to unlearn procedural programming is just plain silly. That would be like saying children should not use computers until they can learn to touch-type properly, because it will be too hard to unlearn hunt-and-peck typing styles. It's silly, but your example is even worse, because while touch-typing is superior to hunt-and-peck, OOP builds on simpler procedural programming styles, and without the foundation, you are a mystic and not an engineer.

      Lastly, the biggest problem I see for kids programming these days is that they don't have to. When I was a kid, I turned on my computer, and it didn't do or connect to anything. I had to put a disk in, and then it would do that one thing. And the disks cost money. So if I wanted it to do anything else, I had to make it do it. Now, you just point your browser to goatse.cx and a whole new world is opened up to you, so why bother inventing anything yourself? That's the fundamental problem that I see, which is that there is no longer that boredom that inspired me as a kid.

    15. Re:Java? No, maybe python... by Anonymous Coward · · Score: 0

      Now, you just point your browser to goatse.cx and a whole new world is opened up to you

      Dude! X-(

    16. Re:Java? No, maybe python... by willtsmith · · Score: 1

      I think OOP is the worst thing that happened to computer science as it put a new conceptual layer insulating it from the lower conceptual layers. Object reuse is used less often than compiled ANSI C libraries, and it has divided the programmers into application and system programmers.

      I don't know about you, but when I was in CS school I took a computer architecture class that was REALLY HARD!!!!! CS deals with the way computers work top to bottom.

      OO allows one to works on large systems and stay organized. The CEE and EE guys learn programming as well. But I've always noted that their stuff lacked architecture and high-level organization.

      If you want to write drivers, you really should be a CEE type. I think most people naturally fall academically where they are best suited.

      Regarding kids, start simple. Think LEGO MINDSTORMS. The benefit is that you get an immediate feedback and a sense of control. As one goes along you can start making decisions (if then) etc...

      I played with some of these one day at a library and was a bit dissapointed that it did not allow you to write functions. I wanted to start creating higher level operations out of their in-box primitives. This is where one starts seing the benefit of automation.

      I can envision a system like virtual battle bots, where one has to program a bot and them watch it do combat autonomously. After a battle, you'd tweak the code and try again. I would even have a debug window up that stepped through the robots code while it was moving (significantly slowed of course).

      Deal with input, decision making, construction of complex movements from strings of simple movements. Etc...

      --
      -------- -------- Support Wesley Clark for president!!!
    17. Re:Java? No, maybe python... by 72beetle · · Score: 1

      I can envision a system like virtual battle bots, where one has to program a bot and them watch it do combat autonomously. After a battle, you'd tweak the code and try again. I would even have a debug window up that stepped through the robots code while it was moving (significantly slowed of course).

      Deal with input, decision making, construction of complex movements from strings of simple movements. Etc...


      In one of my MANY attempts to grasp OOP, I came across a program (which was actually a JDE) that does EXACTLY that - you have a robot, and by building bytecode, you establish rules and conditions with which the robot behaves. There's also a 2-player mode, where each player codes his robot's behaviors and then they are let loose upon each other. I'm too rushed to google it up, but I'm sure you could track it down with a few choice queries.

      -72

      --
      -Those who dance are considered insane by those who can't hear the music.
    18. Re:Java? No, maybe python... by 72beetle · · Score: 1

      Before you say "you don't understand Java", let me say that I do know it very well.

      Good, because I don't. I have given up trying to get my head around Java, because I can't get any further than the procedural base. Classes and abstractions are the stuff of my nightmares. This is why I suggested Java be taught first off - once you can grasp that, you're good to go. IME, programatic theory is the same in all procedural languages (the difference seems to be only in the syntax), so logically once you've nailed the concepts of OO, you should be good to go, and the demand for Java is high, so you may as well start there syntactically.

      For some reason, the way my mind works, there's a great big wall at the end of procedural that keeps me from progressing into OO, which has doomed me to a programming niche that is being overrun and passed by. What I really need to do is go to plumbing school.

      -72

      --
      -Those who dance are considered insane by those who can't hear the music.
    19. Re:Java? No, maybe python... by wcbarksdale · · Score: 1

      Most introductory CS classes using Java use a small, simple class written by the instructor for this purpose. You don't really need to understand the full structure or capabilities of the Java IO when you're starting out.

    20. Re:Java? No, maybe python... by crucini · · Score: 1

      Yes, exactly. It's fun to explore the machine, not some playpen built by a benevolent educator. I learned on TRS-80's - when I found the video RAM I was in heaven. I remember at that time hearing about LOGO and feeling really pissed off at the condescension of it.

    21. Re:Java? No, maybe python... by pHDNgell · · Score: 1

      I played with some of these one day at a library and was a bit dissapointed that it did not allow you to write functions. I wanted to start creating higher level operations out of their in-box primitives. This is where one starts seing the benefit of automation.

      I haven't played with my mindstorms in a while, but last time I did, there were *lots* of programming systems available for them. I was using something called nqc (not quite C). It looked a lot like C...had a decent enough threading model, and worked well.

      --
      -- The world is watching America, and America is watching TV.
    22. Re:Java? No, maybe python... by pHDNgell · · Score: 1

      I don't believe java should be taught at all. It's very easy to figure out after you have a good foundation of programming systems. It's not a good starting point because it's inconsistent. (BTW, I'm a professional java programmer, it's a good tool for the job I'm doing).

      --
      -- The world is watching America, and America is watching TV.
    23. Re:Java? No, maybe python... by eatdave13 · · Score: 1

      Yeah, basically. If it's what they learn first, it'll come easily to them. Besides, it's less abstract than procedural. You want to have a button in your program? Make a class Button. Define what it does. You can tackle tougher things like a button base class that defines its abstract behavior and a derived class that defines it's interface later.

      Kids are smart. They learn a lot faster than us adults do. Just imagine how far along you'd be now if you were tackling polymorphism at 10...

      --
      "Verbing weirds language." -- Calvin
    24. Re:Java? No, maybe python... by gfody · · Score: 1

      *sigh*

      for the record my comment was ment as a joke per his description of oop .. blob of code which you can tell to do something :)

      --

      bite my glorious golden ass.
    25. Re:Java? No, maybe python... by richieb · · Score: 1
      Most introductory CS classes using Java use a small, simple class written by the instructor for this purpose.

      Well, I was doing this about 5 years ago, so fewer such classes were available. I supposed I could have written one, but the decision to try and teach my son Java was not a planned one. I just started playing one evening.

      In any case, it's hard to keep a kid's interest in programming, when they can play really fancy games, and all you can show them to start with is "Hello world".

      Mind you, my son learned to code on his own using a game/programming environment called Megazeux. Today he's into writing Flash games.

      --
      ...richie - It is a good day to code.
    26. Re:Java? No, maybe python... by spongman · · Score: 1
      OOP concepts in C++ are pretty simple really. if you're used to thinking in ASM it's pretty simple to extend it to C++

      • struct - just a definition of a list of offsets and sizes from an address.
      • class - a struct that can contain methods. (of course, structs in C++ can contain methods, too. I'm just using this definition to separate C from C++)
      • object - some memory laid out according to the definition of a class.
      • function - (as in C) just the address of some code.
      • method - same as a function, but the syntax is different: the first parameter, this, is moved outside the argument list: ptr->method(...) instead of method(ptr,...), and the members of 'this' are in scope within the method.
      • virtual method - a function pointer (indirect call). each class has its own table of function pointers (vtable), one for each virtual method, and each object contains a hidden pointer to its class' vtable. effectively: ptr->_vtable[method_index](...)
      • inheritance - adding new methods/members to another class. the new class' vtable is the same as the old one, but with overriden methods' vtable entries now pointing to the new methods, and all other new virtual methods' entries tacked on the end.
      The bottom line is that if you want a way to organise tables of function pointers, using classes is probably the easiest way to do it.

      The key concept in C++ OOP is that you can have two pointers of the same type that can point to objects that have different vtables. You can treat them as if they were the same type of thing but some of their methods may be different.

    27. Re:Java? No, maybe python... by PurplePhase · · Score: 1

      Do the same thing you did back in C/C++ (or did you? I had to, there was no Java):

      char cc = System.in.read();
      // or
      String line = System.in.readLine();
      // etc.

      (Syntax may not be exact, it's been a while)

      A language is only as hard as you make it. When it becomes useful, later, get into the stream classes. If you're *really* interested, I've started a training guide to help gradually bring people into Java.

      8-PP

  183. What's the goal of this? by Mandi+Walls · · Score: 1
    With the mass-marketing and ready availability of cheap home computers, we have seen a shift in the way the computer is viewed in the home.

    A computer is no longer a tool, or a piece of equipment used to aid learning. A computer is for entertainment. It is for chatting with friends or paedophiles, swapping movies and music, and playing games. Students who come into college thinking they are "good with computers" are able to do email and chat, but often not use a search engine properly (AOL keywords aside).

    The uniqueness of the computer in the early 80's meant that fewer people had computers, and those that did had them for a reason. Why did your parents buy you a machine with an amazing price tag that could do LOGO and "Oregon Trail"? Were your parents fascinated by the computer? By what it could do for their lives? Their jobs? Many more of today's parents spend their careers in front of a computer, confounded by the stupidity of poorly designed programs that don't interact the way they should. Are they going to encourage their children to learn how to program computers? I doubt it.

    My mom spends all day on the computer at work. We fought when I wanted to change my BS major from chemistry to computer science. It doesn't matter that I would still be in school and possibly $100k in debt had I stayed in chem... The computer is a beast that many people see as robbing them of their lives, their sight, and the use of their hands.

    We've had numerous discussions over the past several years about coding becoming a commodity position and much of that work moving overseas. Parents don't want to see that for their kids, do they? Certainly, where I grew up, there isn't much interest in most kids getting an education, and thousands of people will still line up for a handfull of railroad or factory jobs. But for the parents who bought their kids a computer, don't you think they want to see them use it as a tool to get into something more stable? That has an obvious benefit to the layman?

    Ask your parents WHY you had a computer. What motivated them to be an early adopter. Why they let you play with programming it. I think you'll find that nuturing curiosity and supporting a kid's interests are more key to having a happy kid than trying to steer them down a particular path just because YOU did it when you were a kid. (change "learning to code" to "being quarterback of the high school football team"...)

    But I hate kids, so, grain of salt, k?
    --mandi

  184. Kids today have broadband... by PerlPunk · · Score: 1

    or at least their 56Kbaud modems scream compared to whatever modems they had 10 years ago. So they can download Perl, download an online tutorial, and start to learn how to program. What can be simpler than

    print "Hello World!\n";
    1. Re:Kids today have broadband... by Anonymous Coward · · Score: 0

      What can be simpler than

      print "Hello World!\n";


      print "Hello World!" would have less punctuation nonsense. ("for the last time....no, son that's "slash" not "back-slash"!)

  185. Ahem...PHP/Javascript by DarkSarin · · Score: 1
    Before you laugh or snort or mod me down as flamebait, LISTEN!

    Getting a kid started with a language like Javascript and then PHP is very useful. First, they contain all of the major constructs (for, while, do while, switch, etc). Second, they are immediately useful, which is absolutely necessary. You can't have a kid take 3 months to get their first working program. They have to be able to see results quickly.

    The last thing is that they need to then move on to something better, like C++, and learn how to code for a GUI. There are immense advantages, however, to learning to code for the internet first.

    --
    "We don't know what we are doing, but we are doing it very carefully,..." Wherry, R.J. Personnel Psychology (1995)
  186. If they want to learn to code... by JeffTL · · Score: 1

    Dev-C++ and all sorts of other GCC thingamabobbers are free...and Free. Not to mention that Mac OS X has GCC in the terminal, and all civilized Linux distros come with GCC and Lord knows what else.

  187. Give them Lego Mindstorm... by DaBj · · Score: 1

    ... and then tell them there are libs for it in Java and install the (free) SDK and an evaluation version of Textpad.

    Problem solved.

    =)

    --
    "GNU's not Unix....it's Linux" / Kami "kokamomi" Petersen
  188. Scripting languages by zapp · · Score: 1

    I started programming "late" compared to some of you - around the age of 14/15.

    First was HTML, and then I started customizing mIRC and eventually ended up doing some pretty heavy scripting for it.

    Next was JavaScript, and then finally I moved on to web backend languages (I wasn't fortunate enough to have access to PHP or Perl, I had to put up with iHTML.)

    So, my suggestion: start with a scripting language. don't start start off trying to write "programs", but try to customize your environment. With perl/php/cron stuff you can do neat things like have a webpage say "good day" or "good evening" when loaded.... or have the server send emails based on events... (note: OS X's unix core + applescript + nice gui would be a GREAT platform to learn this stuff on)

    On a similar note, if you want the kid to learn any unix/linux on the way... don't start off with some "works magically" distro like redhat/suse/debian. Run Slack. Recompile the kernel so your soundcard works, then so your network card works, then get usb devices to work, and get hardware 3d support goin for X.
    When I learned linux, I spent days trashing my linux box, rebuilding it, and breaking it again. there's no better way.

    --
    no comment
  189. BASIC is the simple learning language... by Carbon+Unit+549 · · Score: 1

    Seriously, I thought that was the only purpose for BASIC?
    Let program with BASIC then move on to Java for modern concepts.

    --

    nohup rm -rf ~/. >& zen &

  190. HTML+PHP - cheap and easy by Anonymous Coward · · Score: 0

    HTML + PHP (and perhaps MySQL) is really quite easy and provided one helluva bang for your buck as far as programming time to results. Plus these are useful skills that you can do something with, unlike basics or odd, less used languages.

  191. How about web pages by Anonymous Coward · · Score: 0

    Javascript, ASP or JSP. Can't get much simpler than that. Plus, they don't have to go to the trouble of learning to create a GUI, that's much harder than HTML for a user interface. It's a good place to start....and I think windows comes with whatever that crap webserver microsoft makes...just don't open up your firewall.

  192. A non PC alternative by yorkrj · · Score: 1

    The Apple Macs come with a treasure trove of free programming tools that a beginner could use to learn the ropes. You could start off with Apple Script which seems like a pretty basic scripting language (although I have not tried it). You also have your choice of Java, Objective C, C, C++, and Perl. Some of those languages come installed with the OS and others you have to install from the developer CD which also comes free with OS X. There is also a fairly decent IDE that Apple has aptly named Project Developer. If I had this setup when I was a kid, I would be a super genius by now.

    As far as the lack of BASIC goes: well, I don't miss basic and I don't miss Pascal either. There's nothing wrong with cutting your teeth on C.

  193. f*ckf*ck by slim · · Score: 1

    I'm sure f*ckf*ck is an excellent first programming language for a kid.

  194. Games are the gateway by unfortunateson · · Score: 1

    My kids basically learned to program through games:
    1) Flow-like programs such as "The Incredible Toon Machine" let them understand logic and blow things up

    2) Starcraft and Warcraft III have scripted triggers and a programming environment for creating bizarre games based on the existing engine. I've seen "Mastermind" programmed in Starcraft, and any of the "Mania" modules created have so little resemblance to Starcraft that they're unique games in their own right

    3) Someone else mentioned Inform, and that's a good start too, although there are no graphics.

    But I have to object to the "No programming language on PCs" statement. Every copy of Windows XP has VBScript and JScript/JavaScript/ECMAScript which will run from the command line or a clicked icon. An IDE is lacking, but the functionality certainly isn't.

    Although I'm not a Windows chauvinist, I don't advocate making the kids slug through Linux just to start programming -- it's too much of a chore to tear them away from their everyday games, AIM, etc. to reboot into Linux (yeah yeah, GAIM, yeah yeah some games available in Linux, but not many).

    All the GNU tools will run on Windows, and there are some IDEs so you can avoid using CYGWIN.

    Python, as mentioned elsewhere, is a nice interactive environment to help get things started -- much friendlier than the write-and-try languages such as Perl, VBScript, etc.

    And don't forget Visual Basic for Applications (VBA) -- if you've got MS Word or Excel, you've got a full-fledged version of Visual Basic that can do everything but create stand-alone executables, and a reasonable IDE to work in.

    --
    Design for Use, not Construction!
    1. Re:Games are the gateway by wormbin · · Score: 1

      The parent poster is completely correct. Games are the gateway.

      When I started programming in basic 25+ years ago my target was games. I wrote a little lunar lander game, a hack-like RPG, and a text adventure. If I was young and into computers today my motivations would likely lead me to game mods: counterstrike, starcraft, and warcraft mods just to name a few. If the kid is still hooked he may start working on his own game from scratch.

      Once a kid is motivated, you don't have to provide him with anything. He'll scour the internet to find whatever tools he needs and learn the language that he thinks best solves his problem. He'll make a ton of mistakes and learn from some of them.

  195. Buy the kid a Mac... by lamz · · Score: 1

    ...so they get PHP, Perl and AppleScript as part of the default install, with free tools like Project Builder and AppleScript Studio. That would be an awesome push in the right direction!

    --

    Mike van Lammeren
    It will challenge your head, your brain, and your mind.

  196. I had to send megabytes over 2 2400 baud cable! by marlowe · · Score: 1

    Upload both ways!

    --
    http://www.angelfire.com/ca3/marlowe Better a smartass than a dumbass.
  197. Get real! by Kombat · · Score: 0, Flamebait

    Install Linux.

    How old were you when you started toying with computer programming? I don't know about you, but I was about 10. Now, your curt, smug comment seems pretty stupid when you consider that a 10 year old has neither the hardware nor the experience to install Linux. Think about it. The family probably has 1 computer. Mom and Dad use this computer to check their email, or maybe one of them works from home on it sometimes. Do you really think that they're going to let little 10-year old Johnnie wipe the hard drive and install Linux? Or are they supposed to buy Johnnie his own $1000 computer. For a 10 year old who might not give a rat's behind about computers by this time next week.

    Riiiiiight. I suppose the little tyke could just repartition the hard drive and install a dual-booter like LILO to make sure Mom and Dad can still use Windows, right? Would YOU trust a 10-year old who knows nothing about Linux or programming repartition your hard drive for you?

    Remember: we're talking about children here! Not teens!

    --
    Like woodworking? Build your own picture frames.
    1. Re:Get real! by Cro+Magnon · · Score: 1

      The average 10 year old would probably do better at it than the average Mom & Dad.

      --
      Slow down, cowboy! It has been 4 hours since you last posted. You must wait another few hours.
    2. Re:Get real! by Kombat · · Score: 1


      That's as ludicrous as suggesting that a 10 year old would make a better driver than Mom and Dad. Remember that we're talking about completely inexperienced children here. 5 minutes ago, he was outside riding his bike. Now, he's going to install Linux, without Dad's help?

      --
      Like woodworking? Build your own picture frames.
    3. Re:Get real! by slashdot_commentator · · Score: 1

      Or are they supposed to buy Johnnie his own $1000 computer.

      How about walking around the block during recycling day and picking up a P2 clunker? Sheesh, some parents are too stupid to be allowed to breed...

      --
      There is no America. There is no democracy. There is only IBM and AT&T and DuPont, Dow, General Electric, and Exxon
  198. Why do we want *more* competition? by untaken_name · · Score: 1

    What can be done to improve this situation?

    How about making it harder for kids to learn how to do what most of us do? Let's try to have *fewer* people learning how to code. Let's try making kids *less* computer literate. Come on, people....do you think those kids that learn all the neat techie stuff aren't going to take your job for half the pay you're getting?
    Look what happened to mechanics....
    When cars first became popular, mechanics were the 'geeks' and 'nerds'. People were afraid to work on their own cars, or were incompetent to do so. Mechanics made terrific money and the field was highly touted as 'in demand'. Now mechanics are a dime a dozen (not *good* mechanics, mind you) and it's trade-school fodder now. I don't want to be working as an admin in 15 years with a denim uniform and my name sewed in cursive over my pocket. Make using computers as simple as you want to, but keep fixing them difficult. Otherwise we're putting ourselves out of jobs.
    Besides....do we really need *more* just outta college know it alls flooding an already crowded job market?

  199. Programming wasn't accessible in my days by SpaghettiPattern · · Score: 1

    My dad was a metal worker and we simply couldn't afford 2kUS$ for a PET Commodore. I hoped he would win the lotto one day but he never did.

    I recall begging teachers for CPU time and they refused claiming they needed the school computer for admin tasks (a load of BS.)
    A couple of times my brother in law let me in the university where I happily wrote Basic programs and tried out Algol.
    The technical school I attended closed the computer room during breaks so I only could use the free time I generated by finishing assignments very quickly.
    It wasn't until I was doing my BSc that I had access to a couple of HP systems running Unix.

    Nowadays setting up a programming box is dead easy. Linux has never been more easily available and most distros come with a variety of compilers/interpreters for decent languages.

    Why should you learn programming through Windows?

    Anyway, /. readers once they have interested kids will setup their own Linux/FreeBDS home network (at the latest.)

    --

    I hadn't the slightest objection to his spending his time planning massacres for the bourgeoisie... (P.G. Wodehouse)
  200. Mac OS X is great. by boris_the_hacker · · Score: 1

    My knee jerk reaction was to recommend linux as it comes with a whole host of development tools. Unfortunatly you need to be pretty switched on to get the ball rolling [Makefiles, Editor choice, compiler settings etc etc]. It wasnt until I opened up Project Builder [for the fith time today] that I realised that that is where the answer lies.

    It is plainfully simple to write programs and design user interfaces and connect it all together. It supports a number of different main stream languages and there are loads of tutorials on the internet. The best thing is that all these tools come with Mac OS X on the developer cd so you dont have to fork out once again.

    If I had a kid wanting to learn to program I would get them a Mac and let them play. Failing that, I would get DOS 5 out and let them use GW-Basic within a Virtual PC Window.

    So there we go. Thats what I reckon.

    --
    chris at darkrock dot co dot uk
    http colon slash slash www dot darkrock dot co dot uk
  201. Couldn't you build an AND gate from OR and NOT? by Anonymous Coward · · Score: 0

    if i recall correctly,

    ~(~p v ~q) == ~~p ^ ~~q == p ^ q

    your parents probably didnt want you inhaling so much of those lead fumes. they probably got worried when you displayed signs of tourette's.

  202. Re:From someone who cut their teeth in the eightie by Christopher_G_Lewis · · Score: 1

    Free GUI's for .Net programming:

    ASP.net Web Matrix is a free GUI for ASP.NET projects by "Never give away anything" Microsoft... WROX even has a PDF book on it... Wrox Press ASP.NET Web Matrix>

    SharpDevelop an Open Source IDE that is currently Beta .95, and looks like it has promise. Allows for console, service and web projects in VB, C# and Web Form projects in C#. My experience is that the Web Form designer still needs some work, but this looks like it will rock.

  203. AppleScript Studio to the rescue! by Anonymous Coward · · Score: 0

    A free program building suite for you younsters!

  204. Python. by suntse · · Score: 1

    Install Python on their system and let them learn with it. It is an excellent learning language. Very clean syntax, and a lot of nice modules available for it. Before you flame me, I'm a Perl programmer by trade, and I prefer Perl for a lot of tasks. I would, however, never, ever, ever recommend someone learn to program with Perl. It's cruel.

  205. Lego by Hank+Chinaski · · Score: 1

    Just get them Lego Robots. They come with their own language, which should make programming pretty graphic. Pushing those robots around with programs they did on their own. Way better than that crappy pascal we learned in school.

    --
    IAAL
  206. Re:From someone who cut their teeth in the eightie by Anonymous Coward · · Score: 0

    There isn't much to 65xx assembler though. I found it a hell of a lot easier as a teenager cracking games on the C64 than to learn a whole *system* like Windows, Linux, whatever: look at the size of documentation. You could get away with just the programmer's reference guide on the C64 but need a ton of documentation to do anything appreciable on a "modern" box.

    Amigas were pretty much the same way. If you threw out the OS (like demo coders did), the machine was a lot easier to deal with. Nowadays it's not possible what with all the different machine configurations.

    So I don't see interfacing directly with hardware at the assembler level to be all the hocus pocus it's cracked up to be: learning how hardware works is typically much simpler than 20,000 API calls.

    But machines were much simpler then, also...

  207. Not correct at all by hwestiii · · Score: 1

    As far as I'm aware, nearly every current version of Windows comes with support for some kind of VB variant whether it is VB Script or VBA. In addition, due the ubiquity of the browser you can add Javascript to the mix.

    Whether or not you consider these valid programming languages, the fact remains that both would be valid environments with which to teach the rudiments of computer programming. If the person found that they enjoyed it and had an aptitude for it they could then move on to the more heavy duty and robust programming environments.

    I have no trouble at all recommending these two options to people looking to get their feet wet with programming.

  208. Cygwin by Jerk+City+Troll · · Score: 1

    My knee-jerk reaction to "What can be done to improve the situation?" is to point out the obviousness of Linux. Tons of libraries. Lots of compilers. Piles of documentation. Mommy and daddy may not like the idea of a different operating system installed on their computer, however. A lot of people are fiercely opposed to anything that changes things they don't understand. That was always my experience. I was fearless, nobody else was.

    So, let's give the kids a lot of pros of Linux on Windows. Send them to this web site. While Cygwin is good, it isn't great. You lack a lot of the flexibility (especially in terms of libraries) but it'd be very useful for beginner programmers who are only going to write programs using console based I/O and little else.

  209. I'm not sure this is accurate by Digital+Dharma · · Score: 0

    I mean, they still come with Q-Basic, afterall. That's a programming language. And, it's trivial to get Windows scripting host of Visual Basic scripting running on most Windows installations for free.

    --
    End of Line.
  210. robocode by non · · Score: 1
    Once the child reached the point of handling a full programming language (probably 10 or 11 for a bright one), I'd introduce the JDK and emacs/jedit (in order to have the simplest possible environment).

    then let them play with robocode!

    --
    ...vividly encapsulates that post-Watergate/pre-punk/coked-up moment when you could trust no one, least of all yourself.
  211. JAVA! by dasmegabyte · · Score: 1

    I teach a Java programming class for non-careers at our local library. We get some older people, but mostly it's 10-15 year old boys who want to make games. Java's great for this, because though it is slow, it's been constructed so that you can have somebody drawing squares on a JFrame in about ten minutes. If you don't worry about interfaces, threading, events, or any of that object oriented crap that you don't need as a student, you can learn the meat of Java fairly quickly. The tools are free. And there's plenty of good online references.

    The best way to program, of course, is to copy and alter other people's examples, so I have about ten programming by example books I loft with me, as well as a number of programs I ported from old textbooks like "101 Basic Computer Games" and the MicroAdventure novels. I run things like the computer club I was in in middle school, tapping on those apple IIes...everybody does what they want, i help where I can, and if I think it'd be beneficial for others to hear the example I have a quick lecture.

    Do I think the OS needs to have a built in language? Hell no, there's no need now that everybody and his grandmother is networked. You can download something like Java or Perl in about a picosecond -- ten picoseconds if you're on dialup. And the process of going out to the website, sorting through all the information and eventually getting to download the SDK is beneficial. It burns off some of the technofear people have about programming their computers...lets them know that there's a whole industry out there mucking about in command windows and terminals and none of THEM has ever formatted a hard drive accidentally.

    That's what people really need...with enough courage and enough time, anybody can make great software.

    --
    Hey freaks: now you're ju
  212. Give the kid an old computer... by vasqzr · · Score: 1


    Give him a 486/66 that you can find on eBay for $50

    Score some old programming books on eBay for $5 each.

    Back then, it was $2500 for the computer and $60 each for the books

  213. TOO ALL VB BASHERS by Anonymous Coward · · Score: 0

    It's still the best language for building a database frontend around (access, ms sql, mysql, oracle ...etc)

  214. Interpretive BASIC or Friends Would Be Fine by reallocate · · Score: 1

    Define "kid". Teen-agers? Nah. Let them futz around with adult tools.

    What's missing, though, are simple tools usable by children whose age is still indicated with a single digit. These guys don't need to read about programming logic. They need to see logic manifested on screen as a result of something they typed on the keyboard. E.g. typing in a few lines of code and seeing your name printed over and over will teach someone about looping a lot faster than reading pages in a book. Ditto creating and opening files, etc. This is the kind of exploration that young kids need to begin to understand the basics of programming.

    This points to interpreters, not compilers. And, frankly, since we're tryng to introduce children to programming and not trying to train legions of new professional programmers to fill even more cubicles (as most posts here seem to take as their premise), something like a nice interpretive BASIC would be just fine.

    --
    -- Slashdot: When Public Access TV Says "No"
  215. SharpDevelop by inbox · · Score: 1

    Start with Windows, add the .Net Framework or the SDK, download and install Sharp Develop and you've got everything you need to develop console apps, WinForms apps, Libraries, etc... For free.

    SharpDevelop is basically "Visual Studio .Net Lite" and it costs nothing.

    For ASP.Net applications, grab the WebMatrix tool from ASP.Net.

    Neither one is perfect or can fully replace Visual Studio .Net but they're free and really quite functional.

  216. I have actually done this and used Java by John+Harrison · · Score: 4, Interesting
    I started programming our C=64 the day after my dad brought it home. I was in third grade and I taught myself Basic. My little brother and I wrote all sorts of games and made our own animated cartoons using that computer. I wish someone would make a cheap C=64 (hardware, not emmulator) so I could let my kids have a crack at it as well.

    Anyhow, back to the present...

    Some kid found my 3D asteriods game on the internet and asked me if I could teach him how to program. Note that he lives in another state, and I've never met him in person.

    He was 12 at the time and struck me as being bright. I had him download the free Java stuff from Sun and we developed a video game applet together. We discussed what kind of game to make, how it would work, and the logic behind it. We decided on a simple game and then added features as we went along, rather than trying to implement his initial vision all at once. This let him see that progress was being made.

    We didn't get into any OO stuff. In fact the structure of the game is more similar to C than to traditional Java code, but it was stuff he could understand. He wrote some of it and modified much of what I wrote.

    You can check out the result here

    Here is what I learned from the project:

    • Free (as in beer) development kits are nice. The kid didn't have money to buy Visual Studio.
    • Free documentation is important as well. Sun has some nice stuff on the web and there are lots of java game tutorials out there.
    • AIM is incredibly useful for something like this.
    • The web is a great tool for letting kids share their accomplishments with others. This kid gave the URL to others at his Jr. High and they could see the game he made.
    • This sort of thing take a long time and lots of patience, especially remotely. It would be nice to have been able to have worked in the same room on occasion.
    1. Re:I have actually done this and used Java by kimbly · · Score: 1

      This is fun! :) I loved galaga when it was new. The only problem is that once you get to where you can shoot four bullets at once, the game is pretty easy. And it's not clear what to do with the falling ships (I was expecting them to hook up with my current ship, ala galaga, and let me shoot double).

      I actually started a similar project with someone I was teaching java (we were going to do pacman), but she never got this far. Thanks for posting.

    2. Re:I have actually done this and used Java by StillAnonymous · · Score: 1

      I picked up programming on the C64 as well. Great little computer! If you want one, you should be able to find them easily at garage sales, discount marts (Value Village up here in Canada), or as a last resort, EBay.

      I've got about 5 of them and I never paid more than $5 each. Same goes for the 1541 disk drives. $5.

    3. Re:I have actually done this and used Java by John+Harrison · · Score: 1
      Use 'L' and 'K' to fire the power-up shot, each key has a different effect. Gather the falling ships to recharge the power-up.

      It is meant to be easy at first. It gets progressively harder. By level 30 it should be very difficult.

    4. Re:I have actually done this and used Java by John+Harrison · · Score: 1

      BTW, there is a start of a pac-man tutorial on the site that we never finished. This is as far as we got.

    5. Re:I have actually done this and used Java by cpeterso · · Score: 1


      You are John, so his name must be "X5K MaStEr X5K"?

    6. Re:I have actually done this and used Java by John+Harrison · · Score: 1

      That is what he wanted to be called at the time. Actually, he never gave me his full name, which was fine with me.

  217. Good options already exist by Junks+Jerzey · · Score: 1

    The biggie is BlitzBasic. It's not free--but it is only $70--and it essentially turns a PC into an ultra-modern Commodore 64 or Atari 800. It takes one command to initialize a graphics window, for example. The nice part is that you can use a decent version of BASIC for everything; you don't have to dip to assembly for the cool stuff like you did in the 8-bit days.

    Python + PyGame is a free option, although it suffers from too much OOP on the brain, which makes things murkier for newbies.

  218. Actually, Windows *does* include a language by Wokan · · Score: 1

    Much as I'd rather not install it on a system, just to keep people from accidentally running malicious code, the VB Scripting Engine does come with Windows 98 and above. So people can write VBScript (.vbs) programs even with the basic Windows setup for no extra money.

  219. it does come with languages by greenrom · · Score: 1
    Windows has JScript and VBScript built in. Last time I checked, Windows CDs also come with qbasic if you bother to copy it off. On top of that, anyone with an internet connection can download Perl or Java. DJGPP is a very good C/C++ compiler for DOS enviornments and is totally free. Borland gives away an old version of Turbo C for anyone to download on their website. Add Cygwin to the mix, and you've got another whole set of totally free compilers and assemblers that run under windows. I could keep listing, but you get the point.

    Now... compare that to when I was younger. The only "free" langauges I had for DOS/Windows 3.1 was qbasic and debug (and writing assembly in debug was a bit over my head when I was a kid). There were also a few shareware/freeware assemblers that were farily good, but I never found any good free compilers for high-level langauges (and I did look). Since I wan't a rich kid, langauges like C and Pascal were inaccessable to me. Any kid who wants to learn how to program today is far better off than I was when I was a kid.

  220. Why bother? by Anonymous Coward · · Score: 1, Insightful

    What's the point? Within 5 years you won't be able to get a job programming outside a 3d World country anyway!

  221. vbscript *is* built-in by nurb432 · · Score: 1

    Though there are many many other alternatives that are free and available.. ( and cross platform in case windows ISNT your OS of choice )

    Python, Forth, Squeak, Oberon, Perl, TCL.. etc etc etc..

    --
    ---- Booth was a patriot ----
  222. Mac OS X by spam38 · · Score: 2, Informative

    Now that Mac OS is a *nix clone, it has all of the great programming/scripting languages that any other *nix has. ie: c/c++, perl, python, php. Not only that, but AppleScript is still around. Plus Apple has a free downloadable/bundled-on-cd IDE (developer.apple.com) that can do things like simple c/c++ tools to build full fledged apps based on Apple's Cocoa and Carbon APIs.

  223. perfectly true by riko_at_anubics · · Score: 1

    I have to admit you are perfectly right. I started programming when I was 8 or 9, I had a Macintosh LC, and my father installed BASIC... ok, it was nice.. you could do many nice things...
    And we've got to face that most peolpe has a PC with Windows... and probably a 10 years old child does not even know GNU/Linux exists...
    Moreover it is very likely the "average boy"'s got no interest in programming. Probably he just wants to play with Quake 3...
    And think about this... You could code pong in C in let's say an afternoon... maybe more maybe less
    And that means that in those days you could write a game that resembled those you used to play...
    But... could you code Quake 3??? I don't think so...
    The point is that computers have spread among common people who are not intrested in computer science or anything ike that... they don't care how things work... the just want to write a document and to read mail...
    Once the ones who had a computer, were really interested IN the compuuer...
    So... even if you give them a programming language, they won't learn it...
    I can tell you.. I am a maths student at the university (i'm also italian)...
    People who were not interested in coding, BEFORE, still remain not interested after they've been taught...
    And so... what's the problem...
    if you are interested in coding, be sure that you find a way....
    I switched from MacOS to Linux just because I had no programming language for MacOs 8 a part from AppleScript....
    Coding is just a sort of art... is something you have within... from 95 to 99 i had no compiler... so I wrote flowcharts and programmed on paper...
    then i got GNU/linux/compiler and i was happy again...

    and then
    don't talk about VB... that's crap!!!
    Well... i'm not saying it is bad... still let's say it is very easy to develope awful programs, written in an awful way...
    if you try to code like that in C, I've been told that Ritchie can jump out the monitor and kill you.....

    --
    I don't want to start any blasphemous rumors but I think that God's got a sick sense of humor. DM
  224. Poor Billy can't read BASIC by HydeMan · · Score: 2, Interesting

    Its interesting to hear people say that its somehow a loss because others can't experience things the way they did. First, computers are much cheaper today, and even with the addition of a set of development tools (which are lightyears ahead of what we had in the 80's), than what computers cost in the 80's. Of course, possibilities today are much greater, allowing for vast freedom in experimenting with programming. I can still write a simple address book application, but I can also build in p2p networking capabilities, for example. The possibilities have increased exponentially, while the complexity has not neccessarily increased.

    Anyhow, it is no great loss that some kids won't be able to dabble in writing BASIC programs. The world trend is moving programming into a commodity class, just like the other trade skills, such as machining, welding, etc, which lessens the tangible value of the skill. This doesn't mean that knowing how to program isn't useful, but as is the case with other skilled labor, programming as a career is turning into a similar animal. It is heading to be seen as more of a trade job instead of a professional job, where career potential is limited.

  225. a modest proposal by MegaFur · · Score: 1
    What can be done to improve the situation?"

    LINUX. Get Linux put on a great many more machines. Become totally devoted to the "Linux way" and shove it down other people's throats every chance you get. It's not pretty, but it would work. Then the kids would have their little proggy languages.

    --
    Furry cows moo and decompress.
  226. Answer by roystgnr · · Score: 1

    Now we have Windows ... What can be done to improve the situation?

    Fire -- and lots of it!

  227. same thing happened with electronics by Wansu · · Score: 1

    Long ago, when most consumer electronics were built using discrete components connected via point-to-point wiring or simple printed circuit boards, i.e. single sided or double sided, a resourceful hobbist could build it in his garage. As more custom integrated circuits and multi-layer PC boards were used, these hobbists found themselves outclassed.

    Years ago, you could build a Heathkit stereo that was really good. It would be difficult for a hobbist to build a modern receiver, not only because of the parts but because of more sophisticated functionality.

    --
    Wansu, th' chinese sailor
  228. Match the code to the application by KC7GR · · Score: 2, Insightful

    Remind the kids that they need to look at what device, system, or application they'll be writing code for before they even think of sitting down at the code editor. Make sure they know that PCs and Windows are NOT the Answer to Everything, and work accordingly.

    One of the things I hated most about the (required for my A.A.S. degree) programming course I took at the local community college was its focus on games. I have ZERO use for game coding in an electronics environment.

    Said course would have been far more valuable to me if they had chosen a specific application pertinent to the Electronics Technology major I was carrying (perhaps an introduction to programming the PIC microcontrollers, or 68xxx assembler), and coded for that.

    To delve a little further into that line of thought: You don't need Visual Basic or Visual C++ to code a PIC to be, say, an electronic lock or programmable frequency divider. What you do need is a stable development platform, a good feel for simple BASIC, and some idea of how the software you're writing is going to interact with the hardware involved.

    On the other wing, you don't usually (that I know of) need to delve into the details of assembly language if you're going to be writing (here we go) a game, or a spreadsheet app, or some similar program that is intended mainly to interact with the user as opposed to running a dedicated function in an embedded device.

    No one can be an expert in all programming forms and languages. There's just too much Out There. Help new students to make intelligent choices about what, exactly, they're trying to code for, teach them good ground rules about coding in general, and the rest should follow on its own.

    --

    Bruce Lane, KC7GR,

    Blue Feather Technologies

  229. Umm, JavaScript people. JavaScript. by revscat · · Score: 1

    Pretty much the only language out there that is available on every OS and every system is JavaScript. Starting out beginning programmers with JavaScript would be easy, wouldn't require a (separate) compiler, and would allow the student to learn in a familiar environment, namely the web browser. Doing eye-candy tricks with the browser would provide immediate feedback, and JavaScript is complex enough that you could even introduce some mid-level concepts into the mix, such as classes and regexps.

    Conversely, it also keeps the student from having to bother with crap like typecasting, exception handling, and null pointers until they are more ready for such things.

    This:

    alert("Hello, world.");

    in an HTML file is much easier to explain to beginners (and for them to grasp) than is, for example, the following:

    try {
    out.print("Hello, would.");
    } catch (IOException ioe) {
    System.out.println("Exception in out.print()");
    }

    I would like to restate the key argument here: JavaScript is available on every modern desktop system, and is therefore available to everybody.

  230. Lego Mindstorms! by ghztew · · Score: 2, Interesting

    While I was in University we would play with the Lego Mindstorms kits while we weren't coding our projects. The most amazing thing in my opinion about Mindstorms was their programming IDE. It was completely object oriented.. all of the code looked like lego! IMO a great concept for teaching the ideas of IF/Else, while loops, and basic programming logic.

  231. overengineering the solution by Transient0 · · Score: 5, Interesting

    In fact I would say that even downloading Tcl/Tk or Perl could be overengineering the solution.

    The truth is that the Perl environment for Windows is not always intuitive and can occasionally prompt windows errors which are relatively easily understood by someone with a lot of computing experience but can be intimidating to a fledgling coder.

    What people have overlooked is that windows does come with a built in interpreter for at least one widely used language: Internet Explorer knows all about Java.

    The best part is that the Web is an environment most twelve year old kids are already quite familiar with. You can teach them basic HTML (if they haven't picked it up already) and then get them started on using Javascript. Javascript on a web page has the same sort of instant gratification that I remember from making the screen on my vic20 flash red and proclaim that I was cooler than my sister. Once they are comfortable with Javascript you can move them on to writing full-feldged Java applets (of course all of this coding can be done in notepad (or your favorite syntax-highlighting text editor)). In this way they will learn about object oriented programming. If the kid gets a good handle on writing Java applets and is still interested, they are probabl ready to move onto real programming: teach them C, or whatever else strikes your fancy. Maybe even give them a Linux box.

    It's a simple way to learn programming on a modern windows box without having to install any developers kits or worry about system calls etc., and it all works in an environment (the Web) with which kids are already familiar and interested in.

    1. Re:overengineering the solution by Mostly+Harmless · · Score: 1

      I gave a lot of thought to what you (and everyone else) has said. I agree that Java is a simple way to start programming, but aside from that, I must part company.

      I'm not sure why BASIC still isn't an option. I wrote my first BASIC program when I was 7 (one of those "guess my number" deals). So did everyone else I know that's still programming today. So why not give it a shot?

      I personally think that C++ is the way to go (not to start a flame war, but). It's complexity almost makes it easier to learn because there are SO many different ways to accomplish a task. A little of this, a little of that, and BAM. Just my two cents.

      --
      "`Ford, you're turning into a penguin. Stop it.'" -Douglas Adams, THHGTTG
    2. Re:overengineering the solution by kisrael · · Score: 1

      The trouble with Javascript is that it doesn't provide a screen to draw on. (Though, come to think of it, I guess if they get into it, they might be able to move graphics around as a primitive form of Sprites...still pretty poor I/O.)

      Of course, they might end up with some mutant hybrid like my own gamebuttons, games each entirely self-contained in a single HTML form pushbutton for Input and Output.

      --
      SO YOU'RE GOING TO DIE: The Comic for Dealing with Death
    3. Re:overengineering the solution by Anonymous Coward · · Score: 0

      My profesional life has been spent largely in C, C++ and Java working on Enterprise-scale distributed computing projects.

      Java is more than just a "simple way to learn programming" - when you scale up to very large Enterprise-scale systems, Java is king; it's used by 100% of the Fortune 500 companies and has largely supplanted C/C++ (in this space).

      People who dismiss Java out of hand are beginners or not well versed in large-scale computing. Language snobbery is a sure-fire way to make yourself obsolete.

    4. Re:overengineering the solution by Goldberg's+Pants · · Score: 1

      For your kids you could always invest in Blitz Basic. It's relatively simple, and can produce some great stuff quickly. (Anyone who had an Amiga may remember the game "Skidmarkz". That was written in Blitz.) And yes, it's available for the PC.

    5. Re:overengineering the solution by Mostly+Harmless · · Score: 1

      I'm not even going to pretend that I'm an accomplished programmer -- I've been dabbling in programming for several years, and have a working knowledge of many of them. My perspective of programming is probably closer to the majority of programming students - those whom never become programmers in lieu of another field.

      With that said, I'm always interested in what others have to say about languages from a professional point-of-view because I never went that far with it. I never knew that Java was employed on "very large Enterprise-scale systems" where C/C++ once reigned. I never properly thought of Java as a replacement for C/C++ -- I always thought it was in a completely separate arena. Guess I just never thought about it enough.

      --
      "`Ford, you're turning into a penguin. Stop it.'" -Douglas Adams, THHGTTG
    6. Re:overengineering the solution by ATMAvatar · · Score: 1

      Once they are comfortable with Javascript you can move them on to writing full-feldged Java applets (of course all of this coding can be done in notepad (or your favorite syntax-highlighting text editor))

      For Java, I like to use Programmer's Notepad if I just want a notepad-esqe interface with basic highlighting. However, BlueJ is a decent, albeit quite limited, IDE if you prefer that instead. For any real heavy GUI work, though... you'd want to spring some money for a full-blown IDE.

      --
      "They that can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety."
  232. Squeaky wheel gets the code. by Anonymous Coward · · Score: 0

    You'd be surprised what kids can do

  233. ZX-81 - Manuals really meant something by Alioth · · Score: 4, Interesting

    When I started, it was with the Sinclair ZX-81 I had as a Christmas present.

    Today, I don't think it's necessarily the lack of built-in languages (as others have pointed out - most OSes come with a language of some sort) but a lack of where-to-get-started.

    The great thing about the ZX-81 is that it came with a manual. Not like a PC manual of today which tells you how to plug in the keyboard and monitor (the ZX-81 manual had this) - the ZX-81 manual also had instructions on programming things - from the basics of programming onwards. It taught you what variables were, what loops were, what if statements did. You got a starting point with the computer as soon as you unpacked it and plugged it in for the first time.

    The BBC Microcomputer was the best - it had a built in 6502 assembler. (I also learned Z80 for the Spectrum I had after the ZX-81). Knowing asm made it a lot easier to learn C, especially pointers (which I've noticed time and time again newbies always struggle with).

    1. Re:ZX-81 - Manuals really meant something by ecc0 · · Score: 1

      Not like a PC manual of today which tells you how to plug in the keyboard and monitor (the ZX-81 manual had this)

      I'd imagine you'd need a lot of guidance to figure out how to plug the keyboard into a ZX-81.

    2. Re:ZX-81 - Manuals really meant something by Alioth · · Score: 2, Interesting

      Don't forget the ZX-81 also came as a *kit*. You needed guidance to not only plug in the keyboard, but the CPU, the memory, and possibly how to use a soldering iron!

    3. Re:ZX-81 - Manuals really meant something by payndz · · Score: 1
      Knowing asm made it a lot easier to learn C, especially pointers (which I've noticed time and time again newbies always struggle with).

      Christ, yeah. My brief flirtation with C++ programming (which got as far as writing a fully-working text adventure, converted from one I wrote on my Psion S5, to run in a console window) came to an abrupt halt with pointers. No matter how many times I read the various beginners' guides, I just couldn't get my head around them. "Wha... huh... the *hell*?"

      Anybody care to describe the purpose of the damn things to me in a way that actually makes sense?

      --
      You must think in Russian.
    4. Re:ZX-81 - Manuals really meant something by Anonymous Coward · · Score: 0

      Sorry, man, if those beginner's guides haven't done the trick, you'll have to learn 6502 assembly. But that WILL clear up the whole thing for you.

    5. Re:ZX-81 - Manuals really meant something by Bitsy+Boffin · · Score: 1

      An analogy can help...

      You have a rack of pidgeon holes (chunks of memory), and you have some pieces of paper (pointer). You put a teddy bear in pidgeon hole 7, and on one of those bits of paper you write "7, Teddy Bear".

      Now you can look at that bit of paper (called derefrencing) - it obviously doesn't have a teddy bear in it, but using it you can see that there is a Teddy Bear in pidgeon hole 7.

      Lets make a new piece of paper, it says "10, Favorite Teddy Bear", who happens to be named Dana. But next week, Dana's left eye falls out and thus she is no longer your favourite, no problem all you have to do is take your piece of paper, cross out 10 and write in the pidgeon hole of your new favourite.

      If you didn't have the paper (pointer), you would have one pidgeon hole actually labelled "Favourite" and then when your favourite changes you would have to pick up the old favourite, pick up the new favourite, put the new favourite in the old favourites hole and the old one in the new one's hole).

      Lets say you want to store 2 teddy bear's, well, we just change the bit of paper to read "7:8, Teddy Bear", then we know that memory chunks 7 through 8 have teddy bears (or space for teddy bears).

      Now lets say you have 2 teddy bears that are brothers, Joe is in 9 and Sam is in 10, on one piece of paper you write "10, Brother" and put it in with Joe, and you write "9, Brother" on another piece to go with Sam.

      Now when you look at Sam, you can get his bit of paper and see that he has a brother and you can find him in 9.

      If you have another bit of paper that you hold in your hand, with "9, Oldest Sibling" on it you can get both brothers by looking at your in hand paper to find Joe, then looking at the paper you found with Joe to find Sam. This is called a "linked list" because each item (Teddy Bear) had a pointer (paper) to the next item.

      Now lets say you want to give the teddy bear to somebody to play with for a bit, all we have to do is photocopy our little bit of paper that says "7, Teddy Bear" to the person and they can go and get the Teddy Bear themselves, without pointers we would have had to actually go get the teddy bear and hand them this whole teddy bear (since the bear is made from gold, weighs 1/2 a ton and has to go by air to your friend at the top of Mount Everest - sending the bear itself is pretty expensive, but we can just put the pointer-paper in an email).

      A pointer doesn't store "real" data, but it stores the address where data is stored, you can use the pointer to get to the data (and change it), you can change a pointer to point to a different piece of data, and that data could infact include a pointer to yet another piece of data.

      Hope that helps.

      --
      NZ Electronics Enthusiasts: Check out my Trade Me Listings
    6. Re:ZX-81 - Manuals really meant something by tantrum · · Score: 1

      I guess you really need todays documentation. Who could figure out that a blue cable is supposed to fit in the blue hole.

  234. Cause for a switch by phorm · · Score: 1

    (or, if they're really bright, a second hard drive with Linux/*BSD/whatever, so they can pick up GTK+ or QT or whichever widget set is trendy these days).
    This is exactly what made me finall make somewhat of a switch. After continuous poking and prodding at openGL, I finall got tired of trying to get old GL samples to compile in my current VC++ version (or maybe it's also because VS6 doesn't like XP?).

    First, I've tried installing Mesa 3d on my laptop, which was already 'nix. For a P2-266 /w a tiny graphics card, the samples render livably. Now, since I really want to test out how well GL apps render on an accelerated card+fast PC, I've installed an extra HD on my main box just to use GL with 'nix.

    One of the biggest issues I've had so far is that simple Mesa/GL samples with documentation don't seem very easy to come by. Yes, there are books (and supposedly good ones), but to find one in stock costs over $100 at the moment.

    I'm comfortable enough with 3d (from my early D3D/GL days) and C++ to make a go at getting something up and running using GL/GCC, but the lack of starting tutorial or simple samples... tracing down which libs to link etc etc is quite maddening when trying to start with 'nix programming.

    Perhaps this is also a good place for any veteran gcc coders (or better, openGL /w GCC) to step forward and provide links and samples?

    The high price every new version of Visual Studio seems to be a real detriment to MS. If startup developers can't even afford to teach themselves a little coding, then I will expect more and more developers to move to 'nix. With more 'nix developers, we will find better and cooler 'nix apps amongst the dross (maybe even some nice games eventually), and gradually accelerate away from the world of windows.

  235. The NEED for coding has pretty much gone. by splutty · · Score: 1

    As far as I can see and tell, nowadays almost all OS's come with pretty much everything you probably want already either built-in or available.

    In most cases, the need to actually do programming yourself, doesn't exist anymore.

    When I started (in 1980), I coded because I wanted stuff that wasn't available. My back then Z80 computer was too slow to handle 19200 bps transfer rates over RS232, so I rewrote the BIOS and the intterrupt handling.

    For that same machine, there wasn't an Unarj program available, and no C compiler that could compile the sources, so I rewrote the whole thing in assembly.

    I think those kind of incentives have pretty much gone, considering what all is available and the price of computers nowadays.

    Just my 2 eurocents.

    --
    Coz eternity my friend, is a long *ing time.
  236. Built-in language: Javascript! by Chuck+Messenger · · Score: 1

    Sure, Windows comes with a built-in language: Javascript! It's an interesting way for kids to learn to program -- you can do neat stuff with a browser...

  237. Even though it's been said ... by Quixotic+Raindrop · · Score: 1

    many times, many ways ... Get a kid a Mac, today!

    It's been mentioned. Linux and Mac OS X both have many similar tools built in, sometimes identical tools. The ADC tools can be had, for free, although I don't know that you can sign up yourself if you are under 18 (never tried, I ain't been 18 in many a moon). Lisp, BASIC, Perl, PHP, C, C++, Objective-C, Java, Python, and just about any other language you can think of are available, most of them natively, and most of them completely for free. With one ~$70 purchase (BBEdit, because syntax coloring is REALLY REALLY helpful, especially when you're just learning) above and beyond the cost of the computer, you've given the child an enormous opportunity to learn programming.

    After the child has grown up some with Mac OS X, and has built some automation with AppleScript, Perl/Python/cron/whatever, they'll have skills that easily translate to Linux (though, with the BSD-ish base of Mac OS X, not always directly), Free/Net/OpenBSD, and (less directly) Solaris, HP/UX, AIX, and so forth. Since Microsoft is in its death throes (watch very carefully for the next two years. They are in a world of hurt like they've never imagined), Windows programming will be unnecessary before they are out of college. Okay, maybe not quite that soon, but soon! SooN! My PREcioUS!

    --
    Only two things are infinite, the universe and human stupidity, and I'm not sure about the former. (Einstein)
  238. Anybody remember the Vtech Precomputer 1000,? by Anonymous Coward · · Score: 0

    It was one of those educational toys, circa 1988, simaler in style to the Speak and
    Spell, which had several educational games
    built in. One of the programs built into it's
    ROM was a real BASIC interpreter which a child
    can create simple programs through, and 10
    example programs that a child can load up, list
    amd modify. I picked one up fron the
    Salvation Army thrift store, and I was amazed
    that it had this. The latest toys from Vtech
    seem to mimic the "point and click" computers
    of today, and I didn't find any mention of
    Basic for any of them. :( The good news is
    that Vtech appears to still be selling
    the Precomputer 1000 through their website.

  239. Emulators by midnightJackal · · Score: 1

    As far as learning the basics of programming, there are a ton of emulators out there that can run the old C64 games and such. A great introductory look at digital logic is found in the amazingly addictive "Rocky's Boots" for the Commodore, and I've even recommended the game to some of my friends who are having troubles with logic statements. Some introductory programming is also easily accomplished with the "LOGO" turtle program. There are a ton of games aimed at teaching kids the basics of programming. These are not _actually_ programming games, but they teach kids the stuff that they'll need to know when they start taking their _actual_ programming courses in school. My brother has taken programming since Gr.7, and I'm sure that schools will slowly start to creep programming into elementary school, given that it strengthens so many logical skills needed to succeed with Junior High algebra. *shrug* Maybe I'm just too practical, or my family is just more computer-oriented, but I think that if kids want to program there _are_ opportunities for them to do so (with a little research involved). Any one else have some favorite C64/whatever games that taught them about the basics of programming?

  240. What, no pygame? by skryche · · Score: 1
    I agree with many posters that Python is the way to go: it's consistent, easy to learn, extremely readable, and (dare I say it) fun.

    But I'm surprised that nobody has mentioned pygame yet. pygame is a game programming library for Python. it makes for some excellent tinkering, and I suck at programming.

  241. Easy solution.... by demmegod · · Score: 1

    Make smarter coders!

  242. Don't fix what's broken by redtail1 · · Score: 1

    So what's wrong with BASIC? Sure, it isn't a great programming language but kids at that age don't need the best. We all started our programming careers that way, didn't we?

  243. Why "improve" it? by Tablizer · · Score: 2, Interesting

    What can be done to improve the situation?

    There is a big glut of programmers right now, and more and more programming jobs are probably going overseas.

    So, why should it be improved? I suggest your kids learn marketing, not programming. Marketing is hard to export because it requires personal contact and knowledge of local culture. The world is different now.

    Perhaps you think of it as educational despite future career plans. That is understandable. In that case don't worry about the practicality of the language. Perhaps the Logo language? It provides nice graphical feedback.

  244. DJGPP for DOS by frankjr · · Score: 1

    If the lil' coder has an older machine, you can get him DJGPP for DOS. You can get Allegro for it, which is pretty much like SDL is like for Linux, and is pretty easy to use and you can do a lot of cool things with it.

  245. Some targeted solutions by useruser · · Score: 1

    There's quite a bit of science behind programming systems for children and novices, and a few good solutions as well. I'm understandably partial to Alice, which is free and provides a structured, drag-and-drop syntax editor which prevents all type and syntax errors. I'm currently working on a Ph.D. centered around making Alice even easier for novices by designing highly integrated, error-preventing programming and debugging tools.

    But regarding age, keep in mind that most children don't even have the cognitive abilities to create and manipulate social and communicative abstractions, let alone programming abstractions, until 5 or 6. But no one's proven that no programming system exists that can't lower that threshold.

  246. C? C++? Java? Get real! by Cereal+Box · · Score: 5, Insightful

    I can't believe some of you are suggesting that an 8-10 year old child should be introduced to programming by way of C, C++, or Java. Are you kidding? Perhaps you've forgotten what it meant to be NEW to programming and don't realize that children are going to approach programming in a different way than a veteran will.

    You've got to think about what's going to make sense for a kid. When I was a kid, if I wanted to print "Hello, world!" to the screen I typed in 'print "Hello, world!"'. That makes sense. Do you honestly think a kid just starting out is going to know what all the extra crap he has to declare just to print something in Java means? What the hell do you think "public static void main" means to a kid? How is he supposed to understand that if he wants to "print" he has to use System.out.println? Furthermore, is a kid just starting out supposed to know what static typing is? Give them a language where they can just declare variables. At least that way they can draw a simple parallel to pre-algebra (children understand "x = 5" in math class... they don't have to say "int x = 5" in a math problem, so why would it make sense right off the bat to do so in a computer program)? Do you think children are going to understand even the basic concepts of OO programming? There are undergrads in colleges across the world who are having a tough enough time with that.

    I'm going to recommend Python. It's the modern-day QBasic (not meant in a bad way... Python is very powerful, I mean that it can boil programming down the essentials for novices in much the same way that QBasic did). No static typing, simple syntax, and you can program interactively. It's definitely the best thing going for introducting children to programming today.

  247. Web Pages by funbobby · · Score: 1

    There are a lot of great scripting languages on all platforms, but the real answer is web pages. HTML is a _really_ easy way to get started programming computers. Obviously its not the same as a real programming language, but it contains an important abstraction that one has to learn first: that I put in some particular text, and as a result I get some interesting behavior from the computer. This is really not much different than when I discovered I could type in a command to my Apple ][ to turn blocks of the screen different colors. If people get used to the abstraction of text turning into interesting behavior (and are fascinated by it, as I'm sure most of the people reading this are) its an easy next step to move on to javascript and start learning about control statements and data structures/objects.

    Almost all of the adults I know who work in different fields and get interested in programming do it through writing web pages, and it seems like a perfect thing for kids too.

  248. gimme a break... by maxconfus · · Score: 1

    do the kids need everything? I do not remember any help or understanding of computers but remember finding out the commands I need to make rrandom numbers and guessing games on the Commodore. Stop spoon feeding them.

    --
    A hand up and a foot on every chest...
  249. Boo Hoo by Anonymous Coward · · Score: 0

    Get a frigging grip. The only nuturing the little coder needs is hunk of hardware and an internet connection. If ubergeek was meant to be, that's all they'll ever need. If he/she needs handholding and guidance, they may grow up to be wonderfully competent and industry proper thinking computer specialists. But who the hell wants their kid to aspire to be a code monkey living on caffeinated soda??? (Dorks, that's who.)

    You want to help you kid learn the "right" way to how to program computers? Hey how about first teaching them how to READ?!?! Then how to TYPE? Then how to Google and search USENET newsgroups?

    BASIC isn't bundled in machines anymore, and THANK GOD for that! Perl is free, GCC is free, java is free, what more does a coder need??? Its all bundled in a linux distribution, and that's the platform the kid should be running on anyway (for learning purposes). When I was a kid, we all knew the "real" programs weren't written in BASIC. You had to learn assembler to make REAL programs. And guess what every real coder went out and taught themselves?

    Yeah, maybe the kid will pick up some bad habits. But if ubergeek was meant to be, they'll eventually break the bad habits or find a better suited line of work. Yeah, maybe the sink or swim environment is tough on the budding programmer, but programming is not a skill every little kid needs to know in order to progress to adulthood. Mediocrities need idiot books and baby steps.

    Face it, you're a soccer mom who'd be injecting some pederasts' DNA if it would guarantee the baby enters Mensa. You want to be a *real* parent who made a real impact on the future of your kids' lives? How about teaching them the things you won't get from books or school? Like morality, the unwritten rules and tactics of social interaction, or critical thinking? That way, you won't end up with a cracked-out anti-social coding whore who scores real high at topcoder.com.

  250. maybe it's not the lack of BASIC by calethix · · Score: 1

    When I was a kid and first started messing around with programming, it wasn't that hard to make something relatively cool. You could pretty much make a text based adventure game with if, goto and a print statement.

    That could still be done quite easily in some simple langauge but it's not quite as cool now as it once was since games now have graphics and everything. :)

    I've seen several people mention Linux or Cygwin as an option for a free compiler. That might be ok for an older kid but I think it might be a bit much for a 6 year old which I think is around the time I started writing stuff on my aunt's C64.

    I remember the first time I looked at C after getting used to QuickBasic and my reaction was along the lines of 'whoa, what's with all those funny squiggly characters like the { and %... maybe I'm not ready for C just yet'.

    Here's a path that may not be too bad... start with HTML where it's really simple to make a page with forms and graphics and such. Then from there, go to a scripting langauge like PHP to generate the HTML so you start getting simple programming experience. Visual Basic might also work but isn't free. In my opinion though, you need something that's simple from a programming standpoint but will still let you do something that is going to interest a kid.

    Another thing to look into might be Lego Mindstorms. While not exactly cheap, it wouldn't be that hard for a kid to build a little car of some kind and program it to drive around and make turns or something.

  251. How about get the hell out of the house. by Mr.Dippy · · Score: 0

    Jesus tap dancing christ. Send your kids to little league or force them to take up a hobby like painting or something athletic. Teach your kids programming and all they will have is a hard life of unemployment and no sex.

    --


    -Dipster
  252. My son will learn the way I did: by rschwa · · Score: 1

    TRS-80 emulator and a copy of Ahl's Basic Computer Games

    (Actually, I typed that book into an IMSAI 8080, but the emulators you find for that are all about using the panel switches)

  253. Page Slow by SugarKing · · Score: 0

    for your enjoyment...

    Okay, then, children of the modern age (where we live in a world so tied together with wires that Pangaea ain't goin' nowhere!), you tell me if this is a predicament or not.

    In the 1980s, you could look up from your Commodore 64, hours after purchasing it, with a glossy feeling of empowerment, achieved by the pattern of notes spewing from the speaker grille in an endless loop. You were part of the movement to help machines sing! You were a programmer! The Atari 800 people had BASIC. They know what I'm talking about. And the TI-994A guys don't need to say a word, because the TI could say it for them!

    The old machines don't compare to the desktops of today, or to the consoles of today. But, sadly, current versions of Windows have no immediately accessible programming languages. And what's a kid going to do with Visual Basic? Build a modal dialog? Forget coding for XBox. Requires registration in the XBox Developer Program. Otherwise, you gotta crack the sucker open. GameCube? GameBoy? Playstation 2?
    Coding Just Isn't Accessible

    Yes, there are burgeoning free SDKs for many of these platforms. But they are obscure and most children have no means of actually deploying or executing the code on their own hardware! This is obvious to us all and likely doesn't seem such a big deal. But ask yourself what might have happened had you not had access to a programming language on an Atari 800 or a Commodore. You tell me if this is a predicament.

    It turns out, most of the kids in my neighborhood are exposed to coding through the TI calculator. A handful of languages are available on the TI and its processor is interesting enough to evoke some curiousity. But this hasn't spread to its PDA big brothers, where young people could have more exposure to programming. And undoubtedly the utility of a language on the Palm, Pocket PC and others would be useful to many.

    So what's the problem here? We have no shortage of new languages, but they become increasingly distanced from the populace. Are the companies behind these platforms weary of placing the power of a programming language in the hands of users? Is there not a demand any longer? It's got to be some kind of greed, power, money thing, right?

    Perhaps this is just another reason to push Linux and BSD on consumer systems. Still, are scripting languages easily accessible to beginners on those systems? OSX has made several scripting languages available (including Ruby and Python), but most users are unaware of their presence.

    I should mention that Windows is equipped with its own scripting host for developing in JScript and VBScript. But the use of the scripting host is (I believe) under-documented and limited for beginners. Try doing something useful in a script without using Server.CreateObject. Let's not let kids touch the COM objects, please!
    The Christmas List

    I'm thinking a toy language for consoles and desktops alike could be monumental. I'm not saying it needs to be cross-platform. A language for GameCube that took advantage of platform-specific features could be more appealing to GameCube users than a language that used a reduced featureset, but could execute on a handheld. Really, we live in a world where both choices should be available.

    As for essential features:

    1. Transportable code.

    On my TI-994A, I could make a little, animated Optimus Prime from pixels. Insert cassette. Record. Pass around to friends. Receive high fives from friends. Put on wraparound shades. Thank you, TI! Thank you, Optimus Prime!

    A little language for the consoles could be wildly popular if combined with the good nature of sharing code. This could be done by trading memory cards, but would be more effective if code could be easily obtained and posted on the Web. Learning would accelerate and collaborative development could take place.

    A suitable language should give coders access to I/O devices, to allow experimentation with network devices and the ability to enhance one

  254. Snappy Answers to Stupid Questions by Anonymous Coward · · Score: 0
    Q: What can be done to improve the situation?


    A: Wipe and install a real operating system, like Linux. Next question.

  255. Remember.... by phigga · · Score: 1

    Remember LOGO? That turtle rocked!

  256. Emulation by chrisbtoo · · Score: 1

    Given how the article refers to the halcyon days of the old machines with built-in BASIC interpreters, etc., what about running one of the many emulators available?

    I grew up doing Z80 on an Amstrad CPC (although it had a built-in BASIC, too) and 68000 on an Atari ST. I recently tried out a couple of the great ST emulators and had no trouble firing up my old editor/assembler combo (which I paid for, as it happens) and messing with my old source code.

    I actually think there's some value to be had in playing with older systems under emulation - either in BASIC, for its ease-of-use, or even in assembler for the sheer hardcore value.

    --
    Registering accounts later than some other chrisb since 1997
  257. No Books by jxs2151 · · Score: 1
    A couple of years ago my oldest daughter, ten at the time, showed an interest in programming. I went searching for books on BASIC since I learned on that and still had access to it. I found nothing age-appropriate on the market. Frustrated I rummaged through old boxes until I found a BASIC programming guide for an old TRS-80.

    The point is that there does not exist the materials for young developers to learn with.

  258. Re:From someone who cut their teeth in the eightie by Anonymous Coward · · Score: 0

    Certainly if you wish to do .Net you can go get SharpDevelop, heck it's even linux worthy.

  259. Colobot by chronos82 · · Score: 1

    Is a rather cool game that includes a built in C style scripting language to control various robots whose tasks vary from hunting aliens to collecting ore. Nice graphics as well. The homepage is here.

  260. Why consoles are different by lpret · · Score: 1

    It's the architecture. I remember reading an article on Ars-Technica that discussed just how different the architecture is for the PS2 vs. Xbox/PC. And how it was causing some issues with programmers not being able to fully comprehend and exploit the system. I just got done playing Midnight Club II, and I can tell you that they comprehend it now -- that machine is over 3 years old and still puts out amazing graphics.

    --
    This is my digital signature. 10011011001
  261. language-less by Phoenix+Dreamscape · · Score: 1

    I find that most of my friends in high school who know how to program started (and most ended) with web programming. It seems building your first webpage is about as important as taking your first step nowadays. And after learning to walk, they learn to run. Even "jocks" seem to know PHP now. I don't think I know anyone who can't whip up a PHP/SQL site.

    So instead of going BASIC->Pascal->C->C++, today's children are going HTML->Javascript->PHP->Java. In ten years, we're going to have a LOT of web developers.

    There is another difference between the two that I have noticed. My friends who started in BASIC learned compiled languages first, and then ventured into interpreted languages. My friends who started with web development never ventured into compiled languages, except for maybe a bit of Java.

    1. Re:language-less by Anonymous Coward · · Score: 0

      yeah, what's up with that? The AP program for high schools is now changing their AP computer science curriculum to Java (before it was C++). I personally like C++ better, seeing as there are enough people out there doing web design and such. I think the first programming exposure I had was TI-BASIC(spaghetti programming!), then I moved on to Pascal and then C++.
      Oh yeah, this past year (before moving into Java), our comp sci class used a graphics package from CMU to develop graphics programs. The programming was pretty simple, like
      window.DrawSquare(0,0,50,50);
      and such. I think that's pretty sufficient to solve this predicament whatnot; at least I can do fun stuff with it.

  262. Atari 800 w/ cartridge BASIC by Mannerism · · Score: 1

    Simple machine. Simple language. Instant feedback. Sound and graphics. 'Nuff said.

  263. Unreal? by Anonymous Coward · · Score: 0

    Game modifications are the way to start these days. Even small details like changing the damage value for a rocket can be a starting point for kids to learn how to go about programming.

    I'd say that games have been the starting point for many, many programmers.

    I'm surprised that more highschools haven't taken something like Unreal or Quake and started an introductory programming class with UnrealScript or QC.

    (Apologies if this is redundant, I'm too lazy to check if thats has already been said.)

  264. BASIC? by ihummel · · Score: 1

    I am not a programmer, but I have read that BASIC is not the best programming language to start with. They say that it teaches bad habits. Is it really a bad thing that BASIC is not included with Windows?

  265. Java + Perl + Shell + C + Pascal for Windows Users by sisukapalli1 · · Score: 1

    For java there is the jdk + bluej (bluej.org) combination. bluej is an IDE intended to teach java to beginners.

    For Perl, shell, and C, a combination of (x)emacs, and cygwin will do the trick.

    For C and Pascal, one could also download the "antique software" from Borland (remember Turbo C and Turbo Pascal)

    I am sure there are some old Basic environments available for free for windows users.

    S

  266. So? by John+Whorfin · · Score: 1

    Now we have Windows, which typically comes with no built-in programming language. What can be done to improve the situation?"

    Then chuck Windows and move along, duh.

  267. places to start: alice.org by Boiotos · · Score: 1
    ... small, simple programs that do cool things.
    I believe this is right, which is why I've installed Alice on our family computer to seduce youngsters into programming. What's cooler than an interactive 3D modelling environment?

    Alas, it only runs on Win32 right now, but they are looking for collaborators to beef up their Mac and Linux prototypes. This would be very worthy work for folks looking to test their 3D programming chops.

  268. As one of those young whippersnappers... by Anonymous Coward · · Score: 1, Insightful

    Got my start on Mac OS 7. Learned C by reading The Black Art Of Macintosh Game Programming. Played with the toolbox. Moved to multiplatform. Learning GLUT/openGL now.

    I should point out that I learned my first (non-calculator) language was learned from an "advanced" book (it actually said so on the back!) that assumed knowledge of the language from the start. I learned this language on an OS which had no default programming language, no shell, and no scripting.

    If you think it's too hard, your standards are too low. Anyone who looks around will find a few versions of basic, perl, python, and maybe some other stuff online, as well as tons of books (in local book stores and online). Anyone who's going to be a good programmer will learn to program regardless of what's put in front of them.

    Another point I'm sure others will mention is that programmers are usually tech geeks and thus will often run linux. C on linux is pretty close to a "default" language. It's certainly better for learning than that basic crap. I'm not going into the linux-in-schools discussion here -- that's another thing I'm sure others will talk about at length.

    All that's really changed is that people must now go out and look a little to learn to program, instead of having a handicapped language handed them on a silver platter. In my opinion, this will lead to fewer incompetant programmers without any decrease in competant ones. And if you've ever worked with someone who still thinks in BASIC no matter what language they're programming in, you'll understand why this is a good thing.

  269. BASIC for Browsers by ites · · Score: 1

    Clearly the solution is a Java applet that emulates a BASIC interpreter. Something like COCOA?

    --
    Sig for sale or rent. One previous user. Inquire within.
  270. It is MUCH easier to program today. by Anonymous Coward · · Score: 0
    kids today find themselves in compared to the world that kids in the 80's found themselves in. Learning to program in the 80's was simpler because the machines were more limited, and generally came with BASIC.


    You have to be kidding me. When I got my apple 2 and the young age of 9 I started teaching myself BASIC just by "listing" (looking at the source code) of those old text based adventure games (the cheap rip off's of zork). I eventually got a book written on basic by apple which was very terse and not much help.

    For windows nowadays there are plenty of free languages you can use. Java, Javascript, and Assembler come to mind right away. There are Zillions of books on programming nowadays plus free tutorials on the web. I wish I had these resources as a youngster. (I didn't even have a modem since my mom watched "wargames" GRRRR) On top of that, kids today can upload their programs to the web, use newsgroups etc to show their work off and get help. The only person I could show my text games to was the fat kid down the street. Does this person honestly think programming in BASIC was easier than programming in Java? Try to get some basic animation going in java vs in BASIC and you will see what I mean.

    These little brats don't know how good they have it. I'd like to ship them off to an island where they would have to program with punch cards like my father did.

  271. And programming languages can't be bought? by NDSalerno · · Score: 1

    So your new Dell PC running Windows XP doesn't come with a programming language. Buy one.

    I have one question, does sporting equipment come standard with purchased homes? Computers are no different from any other hobby and/or career path. If you want to help invest in your kid's programming skills then buy your kid a programming language. It's no different from buying your kid sports equipment, or buying musical instruments, or paying for lessons, etc. Investing in your kid's development costs.

  272. I know the answer: by yalla · · Score: 2, Funny

    Ship a free zx80 prototype board with every copy of Windows. :-)

    SCNR, Alex.

    --
    You look like a million dollars. All green and wrinkled.
  273. Missing the point by pico303 · · Score: 1

    I think everyone out there crying "Java, Perl, Python, Linux" is missing the point of the article. We used to be able to flip on our Apples, Commodores, and TI-99s and start typing away in BASIC. In a few lines, we could draw something on the screen, maybe move it around with the keyboard or joystick. Today, trying to get a GUI or some other type of graphical application going in Windows or Linux is not the easiet of things for a kid starting out. He or she probably won't get callbacks, event handling, etc. Forget Java: classpaths can drive an adult crazy, let alone a kid. A child's attention span is going to be pretty short, so they need to get going quickly.

    Somebody mentioned RoboCode, and someone else Neverwinter Nights--I think that's an awesome idea. Another one is DarkBasic (http://www.darkbasic.com). In just a few lines of code even a beginning programmer can have a 3D game up and running on the screen.

  274. All-in-one by madmaxx · · Score: 1

    Does anybody remember tools like STOS? STOS was a basic-language and dev environment for the Atari ST . You could put a game together in a few hours, including sprites, music. It was as simple as the basic-shells of the 8-bit days, simple enough for a 10 year old to build a game in a weekend.

    I can still pull out my ST and whip a game together with that tool. The only thing that comes close today is Python + pygame (or perl + sdl) ... but they lack the integrated tools (sprite editor, score editor, map editor). A toolset on top of python + pygame would rock.

    --
    mx
  275. Make it fun with Robocode by __aarrap2489 · · Score: 1

    Here is an interesting project that combines learning some basic Java with the entertainment value that a younger programmer requires to keep them focused: Robocode

    -gnudot

  276. Give them an Apple II for the love of God by blakespot · · Score: 1
    I am now 31. I remember '84 when I got my Apple //c like yesterday. Great year. I was 12. Let me tell you this - I will be getting on eBay and getting my kid his/her very own Apple IIe/c to use to mess around with.

    None of this photo-realistic BS that kids today are met with right out of the gate. How about gaining some appreciation for where we are by seeing where we've been. Let the kid learn 6502 asm for a bit, after BASIC.

    I am not kidding.


    blakespot

    --
    -- Heisenberg may have slept here.
    iPod Hacks.com
    1. Re:Give them an Apple II for the love of God by del_ctrl_alt · · Score: 1

      Ah the good old days, I also remember my IIe, got it for christmas in 84. Your right about the 'No appreciation' factor, everything today is so instant, I remember typing in programs from the mags (remember beagle brothers one liners!) I live in fear of the "non-dos command" generation

    2. Re:Give them an Apple II for the love of God by GebsBeard · · Score: 1

      I am in your age neighborhood (33) and I too first took up a keyboard, back in 1978 (I think) at 8 years old. I tinkered with Applesoft Basic on an Apple ][ in 1979 or so - our first computer. That was magic. Then I played with Atari Basic on an Atari 800. Eventually I learned Pascal and then C (beginning at around 15). In a way I feel sorry for kids today. There was so little complexity back then compared to today it was pretty easy to get started. Now you're assaulted with a million details out of the gate all vying for your attention. How do you hand a kid a developers SDK when the damn thing is never less than 50 meg in size?

    3. Re:Give them an Apple II for the love of God by Baron+of+Greymatter · · Score: 1

      You wimps who had Apple IIs were lucky.

      I remember back in '65 when I built my first processor with thousands of vacuum tubes. Heated up the entire neighborhood. In fact, it took up the entire neighborhood.

      Used punchcards which I made myself by sticking pinholes in pieces of paper. The display was a 64x64 matrix of christmas lights.

      To get the parts, I had to walk 30 miles to the nearest electronics shop. I had to bring the parts home in a big box strapped to my back. In a blizzard. With no shoes on. Uphill. Both ways.

      Wusses! :-D

      --
      Microsoft's VP of Customer Service is Helen Waite. If you are having problems with their products go to Helen Waite.
    4. Re:Give them an Apple II for the love of God by bzipitidoo · · Score: 1
      everything today is so instant

      Lot of important stuff isn't instant. Takes a minute and a half for a P4 system to boot Windows 2K (Pro, not Advanced Server which takes much longer). Took my Apple ][ 45 seconds to boot with DOS 3.3, and that was only because the sectors were arranged in a horribly inefficient way. Wasn't long before better unofficial versions were available which cut the boot time to under 15 seconds.

      Compare doing the "dir" command on a 286 to doing it on a P4. On the 286, you could see the text do a kind of "caterpillar humping" as it scrolled. If you use text mode on the P4, it's blindingly fast-- practically instantaneous. But do that command in a command line window on that P4 and you're back to 286 speed thanks to all the GUI overhead.

      --
      Intellectual Property is a monopolistic, selfish, and defective concept. It is "tyranny over the mind of man"
    5. Re:Give them an Apple II for the love of God by Anonymous Coward · · Score: 0

      You were lucky!

      I remember when I were a lad we had to make our own vacuum tubes by blowing into red hot milk bottles which we then had to lick to cool down.

      Christmas lights!? Hah, we used to have to train our hamster to move pieces of hot coal around the floor so that it would spell out the text we had just entered using toggle switches made from clothes pegs and pieces of our mams knickers.

      As fer gettin the parts, we used to have a 100 mile bicycle ride, all seven of us, on one bike, without a saddle, and no tyres. After that six would carry on and swim across the atlantic and finally run to the nearest store whilst the one that stayed behind looked after the bike (they weren't cheap you know!). On our return our dad would dance around drunk as a skunk screaming poetry and quotes from whichever Shakespeare play he was reading at the time whilst trying to kill the hamster in order teach us all a "bloody good lesson" on the evils of modern technology.

      But you try to tell the kids of today and they just won't believe you. ;-)

    6. Re:Give them an Apple II for the love of God by del_ctrl_alt · · Score: 1

      good point, Boot up time is always something that has always bugged me, this is the reason why my PC stays on all the time. I have never liked the hibernation or standby options, they never seam to work properly

  277. Use Java by d3faultus3r · · Score: 1

    As a person relatively new to coding myself, I would suggest Java. With only about a page of code you can develop a small program. Lots of beginning programmers want to see actual results to their work and don't want to just deal with programs that simply mess around with derivatives of Hello World.

    Also, Java is an object oriented programming language like C or C++. This way they won't have to learn an entirely new programming system when they start doing more advanced programming.

    for programming Java on Windows I use Jedit, which is a freeware text editor specifically designed for coding java and can also be used for just about every other programming language.


    --
    read my blog
    musings on politics and technol
  278. Gulf between expectations and reality by BlightThePower · · Score: 2, Insightful


    With the net and the general increase in computer use in general theres clearly more resources out there for the aspiring programmer. Theres more choice, but you can still download QBASIC if you want. Only now you can get source code that won't be full of typos (anyone recall the back of magazine programs that blighted a generations eyesight?) And then its simple. I think the *real* predicament is actually the gulf between what you want to play (or use, but more realistically for kids, play) and what you can program yourself. This is discouraging. When I started out I wanted to write a text adventure like those I enjoyed playing, which was a tractable goal. Setting out to write GTA4 isn't. Take a look at say the gamedev.net forums. They are bursting with kids who are new to programming and what they have in mind doing amounts to Everquest 2.


    Darkbasic (http://www.darkbasic.com) is pretty good for addressing this problem *and* the wish list stated in the article. Program away in what is more or less BBC BASIC but also get relatively easy access to DirectX etc and in particular 3D. Does it teach "good" habits? Probably not, but you can something fairly flashy done within a short period time which is useful motivationally. This is important I think before taking on the more difficult programming challenges out there. It has little or no kudos associated with its use, but I'd argue its the right horse for this particular course. Sure, its not a great language compared to even VB, but I feel its niche is right here. Its not free (although there are evaluation versions for free) but its I think about 30 UK pounds, which is clearly cheap by comparison with say VB.

    --
    Plays violent online games as: Nerfherder76
  279. Flash as the starting point by daddywonka · · Score: 1

    Much like HTML can lead to web development languages and later more powerful programming lanuages, Macromedia Flash has the potential to draw kids into programming.

    It might be hard for kids to get their hands on Flash but if they can they'll have access not only to Flash's animation and sound capabilities but also ActionScript, Flashes embedded scripting language. The language is similiar to JavaScript in syntax but with each version of Flash is getting much more powerful. Kids could start by using simple action script to make a ball bounce 5 times but could eventually use Flash to build full-blown webapps using XML and server side scripts written in any language. Seems like a great language to evolve with.
    1. Re:Flash as the starting point by el-spectre · · Score: 1

      I agree. I had no real interest in flash until v4, where Actionscript became really robust. It's powerful, yet easy enough for relatively new programmers to pick up quickly.

      --
      "Faith: Belief without evidence in what is told by one who speaks without knowledge, of things without parallel." - A.B.
  280. Are you one of my old lecturers? by lordpixel · · Score: 1

    I don't mean that seriously, but just before I graduated I was sitting talking with one of the professors who had taught my first year programming courses.

    Over the course of the discussion we covered why they had used Miranda (functional, like Haskell) and Modula 2 in the starter courses (and indeed they'd switched from Modula to Turing the year after me).

    The reasons she gave were almost word for word what you just said about 'public static void main()' and 'System.out.println'

    Too much cruft too early, no matter how powerful it may be later, is bad.

    --

    Lord Pixel - The cat who walks through walls
    A little bigger on the inside than out

  281. Should we pity or envy kids? by raytracer · · Score: 1

    I'm now firmly in the trenches of middle age, and so have begun to succumb to that tendancy that we all get as we grow older to gaze back upon my life and to tell the kids of today how great they have it now. This usually begins with the phrase Back when I was a kid...

    Back when I was a kid, microcomputers were just beginning to be something that my super rich friends could get. Computers like an Apple II, which I had no chance of affording.

    Then the Atari came out. Not only was it cheaper, but it had really kick/ass graphics like Star Raiders. So I worked for nearly a year, earned $400 and bought my first computer. I had already learned BASIC on other machines, so I saved a bit longer and got a BASIC cartridge. A few months more, and I had a cassette deck to store my programs on.

    About that time I started to learn about how the graphics architecture of the machine worked. I bought a copy of De Re Atari. I got their assembler/editor cartridge and started to write some programs of my own. I read the ROM listings. I remember writing my first truly useful program: a program for copying copy protected cassette tapes so I could backup my copy of Jawbreaker.

    I goofed around with that silly computer for years. By the time I was finished, there was really very little about the system that I did not understand. And that's probably the last computer that I truly did understand.

    It's simply not possible to understand all the inner workings of a computer like that any more. Or, maybe it is possible, but it simply isn't worth your time. You (or your kid) probably have other things to do with computers, like make web pages, edit photos, or make videos. Computers have become a doorway to doing other things, and like most doorways, people don't give them much thought anymore. I sometimes find that a bit sad, but then I think of all the cool things kids can do. My nineteen year old swears that he didn't want to learn to program, but he has a webpage with all sorts of javascript madness on it. He's made videos. He's photoshopped photos of his friends. In short, he's doing what he likes to do: taking the computer for what it is, and using it to do what he wants. I can't say that I see much wrong with that.

    I guess I should give some recommendations for those people whose kids really think they do want to learn how to program. They could do a lot worse than to use Python. It's a fairly reasonable language that is interactive and enables you to do fun stuff nearly immediately. If the kid is interested in making games, they can use Pygame, which I've found to be very pleasant to play with, and is available on many platforms. Download some example games, and then help them figure out how they work. Change some of the graphics to use graphics of their own. Encourage them to share their work with others, perhaps using the web. Answer questions. Be enthused. Help get a club or group started at their school. Be a parent. :-)

  282. BASIC Stamps? by sillivalley · · Score: 2, Insightful

    BASIC stamps (http://www.parallax.com/) provide a great intoduction to both hardware and software. Kids can write (and debug) programs that actually DO THINGS -- blink lights, make noises, wave a small flag taped to the end of a cheepie servo motor.

    Yes, they also offer some of the worst features of a programming language-environment, no type-checking to start with, and there are severe limitations on RAM and program memory.

    But these limitations also teach kids about the "real world" -- if you are limited on RAM, program space, and program speed, then you have to actually think about how you're going to solve a problem!

    Once upon a time, *nix supported multiple users on a 64kb PDP 11/45 -- and we took pride in tight, elegant code.

    Namaste-

  283. WinBatch by Anonymous Coward · · Score: 0

    WinBatch is an incredibly easy to learn scripting language for MS Windows that I think fills the niche left by BASIC. It's as easy to learn and use as BASIC, but structured, has an easy-to-read non-cryptic syntax, and is remarkably powerful -- its target market is network administrators. It's not bloated, and doesn't require an intimidating programming environment (it comes with an optional, simple, useful environment about as easy as the one in QBasic, or you can just use notepad). Making simple dialogs is trivial, and fancy dialogs are also pretty easy. For serious use you can buy the optional compiler to turn your scripts into stand-alone EXE's.

    It doesn't teach certain good habits like declaring variables and strong typing (I admit it, I still think Pascal is the best learning language ever), but it's no worse than BASIC or Perl in that respect, and easier to learn than Perl.

    I would encourage anyone who needs a scripting solution for Windows, or who just wants a handy and cool programming toy for Windows, to look at it: http://www.winbatch.com

    It's $100 (and well worth it); the optional compiler is $500 (worth it if your employer will pay for it!) And no, I don't work for them.

  284. Re:From someone who cut their teeth in the eightie by slashdot_commentator · · Score: 1
    There isn't much to 65xx assembler though.

    Yeah, you try getting work done on a crummy 8 bit accumulator and 2 stinking registers. And a lousy 256 byte fixed stack.

    Don't confuse complexity with elegance.

    --
    There is no America. There is no democracy. There is only IBM and AT&T and DuPont, Dow, General Electric, and Exxon
  285. Two big hurdles for little coders by jitterbug · · Score: 2, Interesting

    It seems that there are two big hurdles that the little coders face these days and it seems that not having a freely available language isn't one of them. There are lots of free quality programming languages complete with extensive tutorials, such as Python (as pointed out by many)or the lesser known but very capable Squeak.

    The first hurdle is the education systems vocation focused âoecomputer literacyâ. In the 80's schools really did focus on programming now its focused on learning to use stuff like office programs provided by Microsoft. This trains the student to be a âoeuserâ (as in drug user) rather than master of the computer.

    The second hurdle which is hinted at but really spelled out in the article is the operating system and all the other computer components that because of their complexity must be treated as black boxes. Even in the most enlightened Linux using school it is very difficult for the little coders to actually have their programs interact with the hardware directly. While having an operating system is a good thing generally-- it does get in the way when one wants to understand computers at all the levels. Without interacting directly with hardware, students aren't going to have the perspective that brings.

    Schools should look beyond programming on desktop computers and use simper devices like Lego Mindstorms or parallax basic stamps which for me solves âoethe Little Coder's Predicamentâ

  286. You can download Python by semanticgap · · Score: 1

    What can be done to improve the situation?

    see subject

  287. You ignorance is showing by Anonymous Coward · · Score: 0

    "Also, Java is an object oriented programming language like C or C++"

    C is anything BUT object oriented. C++ is a big bag hung on the side of C show that you can write object oriented code but the majority of people in the industry tell me that they actually are writing classic C crap and telling management and marketing that they are writing object oriented code.

    C is one of the worst things to happen to programming. It is one of the reasons that the buffer overrun exploit has opened the doors to the crackers of the world. And it is it great for writing totally incompreheniable code.

    K&C should be shot for this.

  288. Most definitely! by Taicho · · Score: 1

    Yes, back in the day I used program basic/pascal/udms but now days nobody that didn't have a computer below a 386 even knows what DOS or a command prompt is...pretty saddeningâ¦

  289. go buy an old mac... by ethanms · · Score: 1

    PC's today don't let you program easily? Buy a PC from yesterday...

    I picked up a Mac Quadra 610 for $1.25 on ebay... came w/ a 250MB HD and 32MB of RAM, keyboard and mouse... bought a MAC->VGA converter on ebay for $6... had an older 15" VGA monitor laying around...

    System 7.5.5 is available for free from Apple... many many many games are available free... Downloaded Think Pascal 4.5 from Borland's website (it's free now too)... you can find Hypercard and other similiar tools out there as well which will let them create real applications, etc, etc...

    So for under $30 (shipping was vast majority) and a few hours of my time I setup a decent Pascal development system cira 1992... I did it because it re-created the systems I used in high school, and I was able to run my old projects and remenice... but it would work ok for a kid...

    Or... beg/borrow/steal a copy of Visual Basic... I bought the book "Essentials of Visual Basic 6.0 Programming" (Schneider) which includes a VB working model... the book is easy to follow and you can make real-world applications that they can run on any windows machine.

    Or get shell account at an ISP that has the java environment loaded... Sun provides a great tutorial / API web site, and the programs you create are similar to those used in the 80s... plus you can web-enable things when you get more advanced. Usually these ISPs also have gcc available, but maybe vi/emacs and gcc are a bit advanced for a kid...

    Point is... get creative and it can be done... but if your kid isn't into it, or isn't patient you're in trouble...

    If s/he wants to sit down and create an xbox-like game in a week or two, then forget...

  290. If you really want your child to learn to program by ebyrob · · Score: 1

    Send them to any "intro" class at the nearest community college. There is no faster way for them to find out what's available and where they stand in terms of skill and interest.

    You can lead a horse to water, but you can't make her a programmer.

  291. Windows programming language: WSH! by ivoras · · Score: 1
    Now we have Windows, which typically comes with no built-in programming language.

    Practically all Windows version with IE 4 or 5 come with a built-in programming language, provided by "Windows Scripting Host" (WSH).

    For example, save the following line in a file hello.vbs and you can "run" it:

    MsgBox("Hello world!")

    Use Google to find a tutorial (e.g. this one).

    --
    -- Sig down
  292. Calculators by Vann_v2 · · Score: 1

    Modern computers are so powerful that a lot of things would still be lost if people grew up programming them. Perhaps we should think about this the other way around? Children should go to the programming.

    I learned how to program on my TI-80 calculator. It is slow -- painfully so -- and uses its own sort of BASIC. If you think your child is naturally curious buy them something like this, or an old 386/486 computer. Either way would do fine, I think.

  293. new hp desktop... by goats_in_boats · · Score: 1

    ...came with a TKL and a python interpreter pre-installed. Hmmm...

  294. Dark Basic? by bdelia · · Score: 1

    I have not used it yet, but have been exploring ideas and environments that I might introduce my 8 year old son to the wonderous world of programming. It is mostly aimed at simplifying game programming, but what kid wants to program a financial application anyway. My two cents.

  295. Very Simple, DUMP Microsoft, Adopt Linux! by MrJerryNormandinSir · · Score: 1

    Dump Windows.
    It's very simple to create a GUI app with GLADE on Linux. It could be a C, C++, Perl, or python app. No need to spend big bucks on development tools.

    And, I'm 40 now. This is just like the good old days when we wrote our own code and belonged to
    SIG groups. Yes I was 15 when I started coding. I cut my teeth on a Timex Sinclair and an Atari 400. Not to mention my Sym-1 that I programmed entirely in assembly language.

    The Internet and news groups bring together the SIG type of group I used to learn. I dialed up the SIG on a 2400 boaud modem and poked around the message boards. Now we hit the internet.

  296. Todays youth has more advantages by pstreck · · Score: 1

    There is plenty of free software out there for a young programmer to learn with. I learned C with DJGPP and a 21 days book in the mid 90's. The resources are there and todays tech minded youth know how to look for them. Besides, the poster talks of improving the situation, but in reality the situation has never been better for youth to learn the ins and outs of computers. Thats just my 2 cents tho

    --

    Later,
    Phil
  297. TI 99/4A by manonthemoon · · Score: 1

    TI 99/4A was the perfect machine for learning. It had a decent built in basic, an excellent Extended Basic Cart, and good learning documentation. I remember going from a total neophyte in 5th grade to writing cool little skiing games over the summer... may have to ebay one or find a decent emulator for my son...

  298. Freeware for All by Anonymous Coward · · Score: 0

    Well, there's always the heavy overtones of GNU//Llinux being the only freeware in the world.( at least that's how it seems on /. )
    However there are many places on the net that can supply even the lowly Windows user with tools.
    Here are a few:
    http://www.thefreecountry.com/
    http://freebyte.com/programming/
    http://www.mingw.org/
    ^-- ( for those who can't live without gcc/g++ =) )

  299. Logo by gatkinso · · Score: 1

    Remember the Turtle?

    That will get thru to a 6 year old.

    Polymorphism... perhaps that can wait a few years.

    --
    I am very small, utmostly microscopic.
  300. From a kid by TLouden · · Score: 1

    15 years old now and I started programming at 13. My suggestion is Visual Basic for starting out (did you know that in VB you can make a database access application without writing ANY code?). I think that if a kid, or anyone for that matter, wants to learn to program then they can buy some software to do it (compilers and tutorials if they want). The rest of the world who lets us do the programming doesn't want the cost of a compiler wrapped into their OS. Also, as microsoft office is a popular software package it might work to start out using VBA.
    OK, that's it, just had to let you know where the kids stand on this one.

    --
    -Tim Louden
  301. Why no Assembly ? by T40+Dude · · Score: 1, Interesting

    When I was in high school, I had an Aniga 2000, and was into demo programming. I had to learn the hard way using assembly, and it took me an eternity until I had the first moving pixels on my screen, but in the end it was worth it. Using assemly tought me to be patient and also to be persistent. I think it also weeds out the people who are not really interested in learning hot to program. I had however, a lot of friends who helped me in the learning process, which was essantial in achieveing anything using assembly.
    WHen I moved to the Mac, I used Think Pascal for a while.

  302. Tools Available, But Where to Start? by druske · · Score: 1

    Just because software environments have become more complex doesn't mean that the opportunity for learning in a simpler environment has vanished. Those old 8-bit micros might not be good for teaching 3D rendering, but they're still good for teaching microprocessor fundamentals. There's no need to go antique shopping on eBay, either: emulators for these simple machines can be found all over the web. How about an Altair, an IMSAI, or a COSMAC ELF for your Windows system? Or emulating an Apple II on OS X? I've even written an ELF emulator for Palm handhelds, and secured permission to publish Tom Pittman's "A Short Course in Programming" to help educate the curious on the good old CDP1802.

    The problem isn't that the educational tools of the past have disappeared, it's that there's a wide gulf between learning the fundamentals and writing modern software. What I wonder, however, is just what sort of foundation is really necessary to become a programmer these days. Hardware guys benefit from understanding things like a microprocessor's addressing modes and register usage, as do compiler developers... but to the average programmer, what difference does it make?

    I don't think there's any single correct answer, any more than there's one single curriculum that will cover the full breadth of today's software technologies. The challenge of knowing where to start is knowing where you want to end up. Once you know that, the tools and literature needed to acquire that knowledge are all readily available.

  303. When I was 12... by Jennifer+E.+Elaan · · Score: 1
    ... I had just designed my first computer from the gate-level. I never got to build it, and it would have cost 10's of thousands of dollars just from the sheer component count (no DRAM for me, lol). I'm not even 100% sure that it would have worked.

    But I designed every part of it. My parents were artists and couldn't follow me. My only reference was "Getting started in electronics", which taught me how to use logic gates.

    Never underestimate the 12-year-old.

    1. Re:When I was 12... by Chundra · · Score: 1

      Wow, are you serious? Looking at your website, it appears like you are...but one never knows. If so, that's quite impressive.

    2. Re:When I was 12... by Munk · · Score: 1

      ...there was Nintendo...and it was good...until I took it apart and my little brother spilled coke in it....and then it died...very sad day.

    3. Re:When I was 12... by Jennifer+E.+Elaan · · Score: 1

      Yes, I'm quite serious. I also went on to design and built a couple neural nets when I was 14-15. The second one, which had an actual learning algorithm, spanned 2 of the really massive breadboards. I'm surprised I managed to wire it correctly.

    4. Re:When I was 12... by Chundra · · Score: 1

      I'm humbled. So, out of curiosity, were you an electrical prodigy or were you just a kid bored out of your skull in Newfoundland? Sorry if I sound like a dork, but I'm originally from Pouch Cove and it's kind of amazing to me (not for any logical reason) to hear about a Newfie whiz kid. :)

    5. Re:When I was 12... by Jennifer+E.+Elaan · · Score: 1
      Both. Definately both.

      I loved electricity from a very young age. I had a bin of wires when I was 5 :P

  304. PHP by StormReaver · · Score: 2, Insightful

    I'd recommend PHP as an introductory language. It's freely available, is easily installable if you don't already have it (for Linux and Windows, and perhaps the Mac), gives the newbie immediate feedback, on Linux has a command line interpreter that doesn't require a web server (or anything else for that matter), has very simple syntax, and is an exceptionally easy language to grasp. It's the next best thing to the 80s when all home computers came with BASIC in the ROM.

    1. Re:PHP by Pvt_Waldo · · Score: 1

      Besides, you can just have them do "" and they will think it's pretty cool :^)

    2. Re:PHP by Pvt_Waldo · · Score: 1

      Ooop. Put phpinfo(); in those quotes...

  305. My solution by Angst+Badger · · Score: 1

    I was facing this predicament recently and found a few solutions. They're all BASIC dialects, but I learned BASIC on the Apple II decades ago and still turned out to be a decent programmer when I learned "real" languages. (Personally, I think that if you can be "ruined" by using a language, you were too brittle to be a programmer anyway.)

    The first was BLASSIC, which is as close to the BASIC dialects of early personal computers as it gets, complete with line numbers, PEEK, and POKE. The cool thing about it is that it supports simple graphics, which is what really got me interested in the early 80's. It's free and purports to be multiplatform, though I've only tried it under Linux.

    The other two interesting BASICs were DarkBasic and Blitz. DarkBasic actually consists of several different packages. There's one called the 3D Game Designer which lets you create first-person shooters by dragging and dropping. When your little one has exhausted the rather limited possibilities there, you can upgrade to the full DarkBasic package and he or she can begin implementing simple behaviors in dirt-simple BASIC.

    The Blitz product is primarily interesting (to me, anyway) because they offer a dedicated 2D version of the language devoted to 80's-style arcade games, which are orders of magnitude easier to program than 3D games for a novice programmer. Blitz doesn't use line numbers and optionally supports C-style syntax for function calls, and has a GUI toolkit that is pretty easy to use once your beginner gets a toehold in programming.

    My project with my daughter was a clone of Pac Man with Blitz. It took several weekends, much of which had more to do with helping her understand cartesian coordinates than actual programming, but in the end she did most of the coding for a single level of Pac Man, and she was quite proud of herself. I doubt she'll pursue it very far -- which wasn't the point anyway -- but now she has a much better understanding of how software works.

    --
    Proud member of the Weirdo-American community.
  306. HTML is the new BASIC by goodchef · · Score: 2, Insightful
    I first started programming in BASIC on an Apple //e when I was in 2nd grade or so. I taught myself to program mainly by looking at the source of other programs, experimenting with what the different statements did, and playing around with it.

    When I was in Junior High, I learned some basic HTML in much the same way. Every computer already has the "tools" you need to do that, a text editor and a web browser, it's easy for me to picture a kid naturally progressing from simple HTML to some Javascript, and then either to Java, or to CGI/Perl/etc. The problem with this is that I doubt that many websites use "plain" HTML anymore. On the rare occasion that I look through the source of a webpage nowadays, it takes me several minutes to find what I'm looking for, and I know what all that code does. I think it would be quite inscrutable to someone just putting their feet in.

    On a different note, the article complains about programming tools not being included in the set of apps that come with the OS. MacOS X does come with the very nice (and free) Project Builder, which is a joy to use, and I've used it to write C and C++ code, using OpenGL. (It also does Java and Objective C). Because OpenGL is a cross-platform standard, and since ProjectBuilder uses gcc to compile C/C++ code, it's trivial to port it to Unix or Linux. I can vouch for this personally, having moved large projects for an undergraduate Computer Graphics course back and forth between OSX and Solaris&IRIX, and only having to change the path for the OpenGL header files.

    --

    "Inflammable means flammable? What a strange country!" -Dr. Nick, The Simpsons

    1. Re:HTML is the new BASIC by suchire · · Score: 1
      Actually, this is exactly how I started to learn programming. I'd messed with a little bit of BASIC and LOGO when I was in elementary school, mostly on Apple IIe's, but I'd forgotten all of it by middle school.

      I started with HTML (it was a relatively simple matter to find tutorials and look at page sources), and then moved on to JavaScript. From there, I decided to try CGI, and learned PERL, and then graduated to C++. This only took me 2 years in middle school, and I enjoyed it every step of the way.

      Mostly, the key should be learning to program interactively. For little kids, it's boring to program with static programs. Get them started with HTML, making web pages on things they like, have them put JavaScript gimmicks on their webpages (the more annoying the gimmick, the more the kid seems to like it). Have them try to put a web-page counter on their site, show them how JavaScript is inadequate, and then try to get them to learn PERL. Encourage a "do it yourself" attitude upon them, and soon they'll be learning by themselves.

      --
      Such irE
  307. Programming for Kids on Mac OS X by Anonymous Coward · · Score: 0

    Python and Ruby already come preinstalled on Mac OS X. But I personally think Squeak (originally developed at Apple, BTW) would be a better choice for kids. It doesn't come preinstalled, but is available as a free download. (And it's also available for Windoze, if you insist.)

  308. Loads of opportunities for beginners by bismarck2 · · Score: 1

    Computers today are MUCH more accessible to beginners. There's a lot more to learn and it may be more overwhelming but most tool are much better designed and documented and the Internet has an unlimited supply of tutorials, message boards, and chat rooms to help the beginner. Kids learning today have a much greater advantage than those that learned in the 80's. I'm not just being an old grump about this; kids today are learning much more than people used to and its primarily due to the advancement of technology. I remember spending months trying to get color working correctly on an EGA card with assembly language source code from an old book. Today, you don't have to do things like that.

  309. REBOL by Anonymous Coward · · Score: 0

    Rebol does everything that basic does and a whole lot more. Runs on any platform you can name (almost). The entire executable fits on a floppy (~500k)
    http://rebol.com

    Learn it, Live it, Love it.

  310. Squeak Smalltalk for Kiddies-Squeaky steps by Anonymous Coward · · Score: 0

    I agree. Of course younger minds are more flexible than older. look at how much easier it is to teach a foreign language to a young person. But anyway, I'm trying to teach myself Smalltalk and a couple problems make themselves apparent. One is as someone else mentioned is documentation. Both quantity and quality. Tutorials that are outdated. Ever try to find a book on your specific dialect? The bookstores are scarce on such topics. But oh boy is things like VB and C# applenty. Even SVG books are scare. There's also the wrapping of the mind around concepts. What's recursion? What's an instance? What's a method? How about polymorphism, encapsulation, and multiplicity? How is intent represented in an object-message paradigm, without their being chaos? (kind of like getting a crowd to do something, by passing notes around). There's also the question of safety-net. A good language allows you to make plenty of mistakes without penalizing you severly for making those mistakes (Kind of like learning Linux, and having to reinstall every time you make a mistake). Start up squeak, pull up a project and play with it. Want to modify it. Change what? Attempt a change, scary error box pops up with long amounts of text saying you've been a bad boy and I don't understand you. Now what? Where's the undo? Hey! I don't understand you either. I'm going back to the safety of what I do understand.

  311. JavaScript by endquotedotcom · · Score: 1

    You don't need anything more than a browser and one of the billion online tutorials to learn JavaScript. It's simple enough to be productive quickly, but complex enough to get into something like "actual" OOP as you go. As a first language I think it's a great choice.

  312. Alice: designed for kids to learn to program by Khelder · · Score: 2, Informative
    I recommend looking at Alice, an environment that's designed specifically to be an easy way for kids to learn to program. It's quite mature (started at least 7 years ago) and the developers have evaluated it with real kids. It's about programming in an interactive 3D world, which I think is a great environment for beginning programming. One of my early programming experiences was in LOGO, and I really liked being able to type commands and see an immediate effect.

    From what I know of squeak, it sounds like a good environment, but AFAIK it wasn't designed specifically for kids.

  313. a few good starter languages by galacticdruid · · Score: 1

    VBScript comes built in w/ some windows, and perl is what I started in. Those are both a bit easier than c++ for beginning programmers...

    --
    we are all one consciousness experiencing itself subjectively - bill hicks
  314. TI-83 Calculators by Anonymous Coward · · Score: 0

    I think a TI-83 calculator is a perfect option. Kids do not need to learn complex programming, but just an idea of what it is like. They will atleast be able to understand the flow of how programs are constructed. Loops, If/Else, and variable managament concepts can all be learned from a TI-83. They'll also understand the value of programming when they make a program that can help them cheat on their math tests.

  315. GUI's by Andrewkov · · Score: 1

    The biggest problem for begginers is GUI's. Back in the 80's, I was a pretty good programmer on DOS and other systems using text based procedural programming (C, COBOL, FORTRAN, PASCAL, BASIC, Assembly). When the GUI started taking over, I found it extremely difficult to make the transition, it's a whole other world to learn. When a beginner is faced with the task of learning programming, plus learning the API and methodologies of GUI programming, it must be an almost impossible task to get started in. Plus I'm sure most beginners are not going to be excited to make console based apps, they are going to want Windowed apps. But I'm sure they will have an easier time if they forget about GUI's for a while and just learn the basics.

  316. Damn Straight! by Omega · · Score: 1

    I remember growing up and getting the kid's magazine "3-2-1 Contact!" in the mail every month. It would always come with a new BASIC program (always a simple game) and I would rush to my TI-99/4A and type in the program to play the game. Of course the BASIC programs were written for the Apple II so they wouldn't always work (though I learned to "port" them rather quickly). A big motivator was that you had to connect the TI to the television, so it was always fun to see your programs running on the t.v. (at least it was when I was 7 ;).

  317. Virtual Machine by El · · Score: 1

    Teach them to program in Java. Then you only have to worry about the state of the Java Virtual Machine, not the entire computer. Granted, they won't learn how to create thier own printf functionality in a mere 4 pages of MACRO-11 assembly language, but then, why should they?

    --

    "Freedom means freedom for everybody" -- Dick Cheney

  318. So why not.. by rI'HaD+martaq · · Score: 0
    .. Just buy an old P1 era machine (Or P2, or P3, or what have you, just a cheap, basic machine; or better yet, build one yourself) and load the following on it:

    - Windows XP Why? Because, like it or not, MS is the 'standard' right now. It can be a good, reasonably stable front end for the beginner. As has been stated here previously (and to satisfy all the Linux championers) - When the kid bumps up against the limits the system imposes, they'll find a way around them. If that means moving to Linux or a better (home built) box, so be it.

    Of course, do make sure that the system has SP1a and any other available (stable) patches loaded, along with some basic levels of protection such as:

    1) Up to date anti-virus protection. AVG Anti-Virus FE (Free Edition) is great for this.

    2) Up to date software based firewall protection. Again, a free product can fit the bill here as well. ZoneAlarm FE works well.

    3) A 'system restore' CD, preferably bootable. Just image the installed system onto a cd, so that if anything ever corrupts it beyond repair, even given your careful setup of the machine, that the kid can easily restore it back to working order with the CD. Nothing will sap a kid's interest faster than having the machine be inoperative when he/she wants to go learn on it, but it's unusable. A restore CD that they can use without you being around is a good idea to mitigate this.

    Then, load the machine with:

    - QBasic

    Yes, I know MS made it. Yes I know /. has an almost immiediate bias towards MS. But for me as a kid, QWbasic was a wonderfully simple programming environment. And the fact that it had online help for all the commands, many with examples, cut and paste facilities, along with a built in debugger and example programs to pick apart, was a god send. It doesn't come with XP, but you can easily copy the latest version either off the 'Net, or the 98se install CD may have had it buried somewhere IIRC...

    - Games

    The games need not be overly resource hungry, your chice of what games to load should be guided by the power of the machine you are loading them on, and the tastes of the kid that will be using it. The games will serve a very useful purpose.

    Kids sometimes have a short attention span. When they butt up against a wall in their programming, or their homework, or hat have you, the games will be a good way for them to relax. And a relaxed mind that comes back fresh can often find the answer to the problem much easier.

    This should be a good starting point. Encourage the kids to learn on the machine, to poke around with the software (and hardware, but preferably under yur guidance.) Soon they will ask all sorts of "What would happen if I.." questions, and will use the PC to find out, which is the goal here.

    Also, a good book on BASIC programming would be a nice addition. I don't know if your local public library would have any, but look around. And yes, you want this to be a physical book, not a CD. Why? Because it will encourage their typing skills, as well as be better for their eyes. Looking at a computer screen with no break is bad. Having to shift your eyes between a book and the screen is much better.

    Good luck, and Qapla'!

    --
    Qapla'!
  319. Javascript by batkid · · Score: 1

    All modern computers come with web browsers, so they can learn to program in JavaScript.

  320. Re:C? C++? Java? Get real! by sco08y · · Score: 1

    Yup. Java the language isn't all that hard... but try explaining to a kid how classpaths work and all that nonsense, or imagine pulling up the APIs and being swamped with fifteen thousand classes.

    Even the tutorials would be overwhelming to a kid.

  321. Lego Mindstorms by Anonymous Coward · · Score: 0

    What about the Lego Mindstorms Kit? This is the sort of thing that kit was invented for. You get a bit of engineering, a bit of programming, and a bit of problem solving all in one.

    The Lego software is very, very simple-- so simple it's like clicking blocks together, but as they get more advanced, they can use Visual Basic or other languages to get more advanced functionality.

    If they're more interested in the engineering side, there is at least one O'Reilly book available that tells them how to build their own sensors and many other advanced applications.

    I only WISH I had something like that when I was a kid.

    -Alan

    [Sorry for the AC post. I know I left that Slashdot ID around here somewhere....]

  322. It was built in by PetoskeyGuy · · Score: 1

    My New HP computer from Office Max had Python 2.2 pre-installed on it in a hidden system folder just off the root. No idea what it's used for by HP, but I was thrilled to find it.

    This is a great article. My little one is 2.5 and just learned how to work a mouse good. On a related note, does anyone know of good keyboards or mice for kids? He has a hard time managing things sometimes.

  323. This CD might be better than Knoppix by coyote1 · · Score: 1

    This site is a high school web site for a beginning course called Introduction to Computer Programming. The instructor uses Python, and has a link to the iso of the CD given to each person in the class. I have the previous (2001) version of the CD and it has Linux, Windows and Mac versions of Python, all documentation, Tutorials, How to Think Like a Computer Scientist, sample code and games and much more. While Knoppix is great, I think this CD is better.

    --
    Eat Lamb, 1 million coyotes can't be wrong
  324. Perl by pergamon · · Score: 2, Funny

    Introducing programming to a kid with Perl would have to qualify as child abuse.

    [That being said, I use Perl wherever possible ;)]

  325. VB User/Evangelist becomes VB Basher by mnemotronic · · Score: 1

    I created a complicated feature req + bug report + task mgmt DB in MS-Access. It's a split DB with the data tables on an NT server and a forms client on each user PC. 33 tables, 39 relationships, 188 fields, 42 forms & sub-forms, 84 queries, 27 reports, 10 macros, and 20 modules with several thousand lines of VB. It worked great with a couple hundred records and 2 users. With 125+ users (usually 5 or more simultaneously), and a 14 Mb of data, it's a real, slow, piggie, and the primative page-level locking becomes a major pain.
    Yes, I've done the basic optimizations. Yes I use the .Visible property on forms. Yes, I try to use SQL instead of recordsets. Yes I've analyzed my indicies. But still, users beat me up when their brand new, high dollar, 3 giga-poodle, thousand mega-ram, half tera-disk, compiles-faster-than-a-bat-outta-hell PC looks alike a 286 when accessing my DB.

    --
    The Russians have won. They have made the world a cesspool of distrust, greed, fear and hate.
    1. Re:VB User/Evangelist becomes VB Basher by prince+hal · · Score: 1

      You chose Access as the db for this application? I can't stop laughing...

  326. Try KiXtart instead of WinBatch by prandal · · Score: 1

    Why not get KiXtart and play with it? It is free, has a lively user community, some great addons, and can be easily debugged. ScriptLogic have produced a good HTML Help version of the documentation, too. And there are loads of User Defined Functions to play with.

    One idiot is even scripting Nagios plugins with it ;-)

    Phil

  327. Just download PHP ;) by d3designs · · Score: 0

    PHP is a rather easy language to learn and it uses the same type syntax as other languages.

  328. Who says the kid has to use Windows? by Anonymous Coward · · Score: 0

    Get him an iBook with OSX and let the kid learn Ruby - it's builtin to OSX.

  329. Resources for introducing programming to kids by Anonymous Coward · · Score: 0
    For more beginning kids, there are: HyperStudio, SuperCard, AgentSheets, NetLogo, E-Slate, Logo variants, and see many others listed at the site Teaching Kids Programming.

    Another entry into programming is creating web pages, by tweaking them with JavaScript, and eventually CGI scripts. Really anything that allows tweaking is good, such as tweaking Mozilla or the computer desktop. Programming is about tweaking the world.

    Once they feel ready to transition to a full programming language (Java, C++, etc.), there are ways to ramp up to that too. JavaScript is a great way to learn object-oriented concepts. Learning game programming really motivates kids and they learn about 3D graphics too (Nehe and GameTutorials). For building real desktop applications, NetBeans and the free JBuilder edition let you visually design java user interfaces, but something like Thinlets simplifies java development greatly (and introduces you to XML, see also other XUL-based development tools). Of course there are thousands of resources out there for learning java, see Sun's New to Java center.

    Lastly, I think kids should keep a blog or a journal somewhere. If you have webspace, set them up a MovableType blog and let them tweak everything they want (adding commenting, shoutboxes, javascript goodies, etc.).

  330. Hire More H-1B's by Anonymous Coward · · Score: 0

    Don't learn. Hire more H1-B's. Problem solved. That's what the big businesses do.

    Why should kids bother to learn any programming langauge when they can hire some hi-tech coolie from India or China?

  331. Ahhh BASIC.. I started there.... by Anonymous Coward · · Score: 0
    The first computer I was exposed to was the TI/99-4A. PARSEC RULEZ!!! Heheh

    It came with TI Basic. I was only in Kidnerdgarten and remember copying short TI-Basic game programs out of computer magazines so I could play them, and also remember having to queue up the tape recorder to save/load them. Heheh that's the first time I heard 'The modem sound'. The best games tended to be too long for a kidnerdgartener to type in, so I'd ask my Mom or Dad to do it. Although I never understood the programs for the games, I do remember drawing colorful pictures with print statements... ( on the TI, you could make say the letter X display as a character sized red 'pixel' and the letter O display as brown and so draw a red house with a brown roof. I don't remember if I comprehended for loops, but I doubt it..

    The novelty of that wore off with the Atari 5600... They made like 8 games for that but I scored over a million points in Joust!

    My next experience with a computer was with a used Macintosh 512KE. My mom used the spreadsheet program Wingz at work, and had shown me how to add columns of numbers etc with it. I was about 10 or 11. I never used the thing much though. Didn't interest me much. Then my friends turned me on to AD&D and I thought... "Why not have a spreadsheet to keep track of rolls/hitpoints/dice etc. Soon I taught myself enough formulas to create a speradsheet to do that, and my Mom was asking me for help with formulas..

    After that success, I wanted to learn to program a game of my own. I got out the old TI and took out the BASIC manual but I was missing the cord for the tape recorder and the RF adapter caused screen static. So I looked through Mac magizines for stuff about programming... I read about a 'programmers switch' that stuck on the back. I tried pressing it, but nothing interesting happened. I think there was a prompt or something.. There was certainly no useful documentation in the manuals. I was looking for the TI-BASIC Ready sort of prompt for the Mac ( I had no idea what a compiler was and assumed computers must have a 'programming mode' or something. I kinda gave up till I found Microsoft Quickbasic for the Mac. I asked for it for my birthday and got it. After playing with that for a while I was hooked. Soon after they got a Mac II si. I used the algebra I was learning to draw funky shapes etc, and tried to make spirograph looking stuff.

    I was irritated because there was no way to draw a nice elipse using ax^2 + by^2 = c. If I looped over x, then the circle was smooth at the top and bottom but choppy near the sides and if I looped over y then the sides were smooth but the top and bottoms were choppy. I tried everything my crappy grasp of math could think up to make a nice circle like the 'DrawElipse' function made to no avail.

    That was until we got to the trigonometry section of our algebra textbook. Then I learned how to loop over degrees and could draw some neeto circles by computing x and y using sines and cosines. Now I could make all the spirograph pictures I wanted - even nifty lissougous screen save looking things!

    Microsoft Quickbasic for the Mac had replaced cross country running as my hobby by the time I turned 15, and soon I lost interest even in that. I was onto BBSs and majoring in Biology in college. But once I took calculus there I decided to switch majors to math/comp-sci and started taking classes. CS101/102 was Turbo Pascal for DOS. I ended up learning x86 Assembly language and Scheme next. Till then I'd had to use the computers in the lab, but there was a nice scheme interpreter for the Mac ( I'd stupidly bought a Centris 610 before switching majors ) so I could do my home work at home for once. I also bought Symantec's 'Think C' a bastardized C that wanted to be something like C++ but was just plain dumb. ( By then I'd heard that C/C++ was the thing to learn - too bad no C/C++ classes were offered at my school at that time ) I taught myself that, and even managed to make a little Mario looking icon animate usi

  332. Problem? by Anonymous Coward · · Score: 0

    I don't see the lack of programming access for kids to be a problem. The days of the 80's where everyone ended up learning to program are over. We now have the programs, both free and costly, that serve the purpose of the old needs.

    As a programmer we often wish that others were able to build their own tools or fix their own problems. Perhaps we wouldn't have as many problems with programs or other programmers if programming hadn't been such an informal subject in the 80's?

    If a child is interested in computer programming, there are too many sources of information and free software to not be able to fulfill that desire.

    I see no situation that needs improvement.

    DH

  333. You're missing the obvious. by brundlefly · · Score: 1

    Sure, Win32 doesn't come with any reasonable built-in programming languages.

    But it does come with MSIE 5+. Kids can easily begin "programming" in HTML in 5 minutes (I've taught junior high school kids the basics of how to create and view a file this quickly). And from there it's only a short matter of time before they want to check out JavaScript.

    Granted, JavaScript can't manipulate binary files, it can't [really] open socket connections, and it cannot do a bunch of other things that adults expect a programming language to do. But it is free, it is readily available, and kids *can* be motivated to learn it through seeing all the "neat" things they can do to their web pages. There are lots of online resources, etc. The bar is set very, very low for learning JavaScript. And from this they will learn variables, loops, functions, objects, syntax, etc.

    (I know very well that full-fledged DHTML is a nightmare to do cleanly and x-platform, but I'm just talking about basic JavaScript getting their feet wet in programming.)

  334. Good idea by Anonymous Coward · · Score: 0

    I'd say that Dark Basic or Blitz Basic (and their 3D versions) could be a great start for kids. At young ages, it really helps to have projects that keeps the child's attention, and a game can do that. Also, there is near instant satisfaction (you can write a good version of pong in less than 50 lines).

    The one thing that you have to be carefull of is bad programming practice - unless they have good guidence, they can pick up bad habits very quickly.

    (Also, I don't think either have you explicitly declare variables, so debugging can be a pain.)

  335. visual programming - rambling rose by djocyko · · Score: 1
    A bit like logo, but not at all - you visually see the program you are creating. I know this image doesn't really show you what you can do, but basically you move code blocks in. It auto indents and things like that. It enforces syntactical correctness. Even though I thought this was a silly project, in retrospect, it seems like something like this could be very useful to learn from the beginning:


    Picture here.


    By the way, this was a final project for cs32, the sophemore level software engineering class at Brown University.

  336. A good beginners programming language by AndrewWood · · Score: 1

    There's a compact, simple development language called OZEXE at http://www.ozexe.com. I think it fulfils most of the points in the article. At any rate, the language is easy, but flexible. There's a mini-API interface for I/O and other windows functions. It has a lot of support for automation. There's a built in UI editor. You can write all kinds of non-graphics-oriented programs really quickly. The coolest thing about it is: it hides your source code right in the .exe file, so you don't have to maintain separate source files, and you can actually load the .exe file right into the editor! Plus, it's a small download, and it's basically free for non-commercial use.

  337. Re:Java? No, probably python... by white_owl · · Score: 1

    I was asked this question two months ago and for a home schooled high school student and I said python. Because:

    As for Java, that would be fine as well and probably has some similar resources but why start (as mentioned elsewhere in this thread) with a bunch of detail you have to master before you can start getting something done <flame> indeed why get into it at all -- unless you need it </flame>.

  338. I'm teaching my kids Python by ChaoticCoyote · · Score: 2, Informative

    For the purposes of home schooling, I use Python. The interactive nature of Python resembles the old MBasic and GBasic interpretters; immediate feedback is terrific for learning.

    Python's capabilities scale nicely between simple "hello world" and complex applications; my daughters can gradually learn concepts and techniques.

  339. What's the problem? by Anonymous Coward · · Score: 0

    If anything, I think there are a lot more good options for kids these days than there were 20 or 15 years ago. Machines may be more powerful now, and programming environments potentially more complex, but that power can also be (and has been) used to make the task of creating programs simpler. RealBASIC is just one great example of an environment that's both powerful and friendly. You essentially draw your user interface, then hook stuff up to it using a language that's relatively straightforward.

    Other good choices are AppleScript, Visual Basic, and Java. I haven't heard much about LOGO recently, but it's long been a favorite in the educational realm, and I'm sure there are some good implementations out there. Heck, there are so many different programming tools that you can basically pick the level of complexity that you want to work at and find an environment to suit.

    Kids today may not have as much opportunity to dig into assembly programming and all that, but that's probably a good thing. In a world where very few of us ever have a chance to design and implement an entire project from the ground up by ourselves, it's not such a bad thing to start out in a sort of black box environment where you have to read documentation and use the tools at your disposal.

  340. Get a Mac by Anonymous Coward · · Score: 0

    Seriously, get a Mac. Mac's come with a full set of development tools for free. Learn to program in Java, C, Objective-C, or C++. And we're not talking about a command-line-vi-or-emacs-and-type-Make build, either. Project Builder and Interface Builder, though not perfect, are pretty good and free.

    1. Re:Get a Mac by Anonymous Coward · · Score: 0

      Absolutely. OS X also comes with Python and Perl. If you download the developer tools and related material there some great stuff to get you started. Combine that with all the material available on the web and I would say that for a bright motived person it is a great time to learn!

  341. www.squeekland.org by dbj · · Score: 1

    Works for my kids.

  342. Access Basher not VB Basher. by GoofyBoy · · Score: 1

    > DB in MS-Access

    Thats your problem. Not VB.

    VB and a good back end (say SQL Server 2K or Oracle) can handle your app no sweat.

    --
    The surprise isn't how often we make bad choices; the surprise is how seldom they defeat us.
  343. Robolab! by Anonymous Coward · · Score: 0

    Give your kids a National Instruments - Lego RoboLab kit!

  344. Logic is easy, syntax is hard. by BoomerSooner · · Score: 1

    Syntax is difficult when you're first learning because you can easily isolate a simple program down to it's core functionality. Learning how to implement that pseudo-code in a real language can be daunting. A good reference helps.

    C programming isn't difficult, it just requires attention to detail (same with Java, C#, C++, etc...). VB is a sloppy language. I do a significant amount of work on Linux and Windows systems. My first choice on Windows is VB (quick and dirty). My first choice on Linux is Java. For web apps it follows the same pattern, Windows/ASP Linux/JSP. If I had my choice I'd do everything in C/C++. However since there is always a time constraint I am forced to choose speed of development over the time necessary to make a stable implementation in C/C++. Granted this is largely due to my experience. However, I've worked with some pretty intelligent people who were C/C++ developers for years and they all seem to prefer Java by a significant margin.

  345. HTML by autopr0n · · Score: 1

    Most windows machines have web browsers with a built-in Javascript interpreter that kids can learn to program with. There are also hundreds of other free platforms kids can download to play around with, from perl to the JDK to custom RPG engines and game engines.

    I really don't think the fact that computers were more limited in the past meant they were easier to program. I remember trying to hack some GWbasic once and it was difficult just to edit the text! The editor didn't even have the smoothness of MS-DOS edit!

    A kid today using a free copy of the JDK and any one of the free fantastic IDEs is going to be able to do way more then I was with my paid-for copy of Borland TurboC++ for win3.1 that I got with my first computer.

    The person who wrote this needs to learn that "The way I learned" is not "the best way to learn".

    --
    autopr0n is like, down and stuff.
  346. Goal oriented learning by Anonymous Coward · · Score: 0

    This is a really good example for how to learn new things effectively. I can bore the heck out of anyone with data-modeling/OOP/CS concepts who are new to computers. But if someone has a goal in mind, then you wouldn't mind jumping through hoops to get to the the finished line. For me I started to program on an Atari 800 because I was intrigued with their games and wondered 'how they do that?'. I didn't care if I have to learn BASIC or ACTION or some assembly language to do I wanted it to do.

  347. There's your answer by default+luser · · Score: 1

    "I for one started writing text adventures on my TI-82. :+)"

    I would say the TI-82 was also the platform that sparked my love for programming.

    I took classes and coded up the assignments on PC, but I never really got hooked. But after I discovered just how powerful and complete the basic-like language of the 82 was, I was hooked.

    People were astounded when I showed them the simple driving game I came up with. Nobody at my school had ever thought of the 82 as anything more than a fancy calculator.

    The key is, kids need something straightforward to initially ignite their interests. The interface and programming language need to be closely tied to the hardware, something you can't get on PCs today.

    So, get your kids a graphing calculator. It's the closest thing on the market to the computers of the 70s/80s.

    That or else download an emulator for your computer of choice. Simplify the introduction. They'll pick up the complicated stuf when they discover how much they like the process.

    --

    Man is the animal that laughs.
    And occasionally whores for Karma.

  348. Livewire Python Course by Zapdos · · Score: 1

    You can find it at http://www.livewires.org.uk/python/index.html

  349. I started with.. by butane_bob2003 · · Score: 1

    PovRay. (http://www.povray.org/) Folks like to see their code DO something, ray tracing is interesting. Its free as well. PovRay has a nice C-looking scripting language and lots of examples to get started with. You might get bored fast, and want to move to something like QBasic, but I suggest Java. Most of the problem when people are starting to programming is finding something for their code to DO, with out getting to complicated. High level languages like Java or Python will allow for maximum satisfaction in minimal time.

    OS X has lots of good developers tools (being unix,it would). I dont understand how some developers can enjoy programming on Window at all, unless they have not been exposed to other platforms.

    --


    TallGreen CMS hosting
  350. Scheme IS practical, you insensitive clod! by brlewis · · Score: 4, Funny
    it's Scheme....get them something a bit more practical

    I program professionally in Scheme, you insensitive clod!

    (Seriously, I do.)

    1. Re:Scheme IS practical, you insensitive clod! by Anonymous Coward · · Score: 0

      standard input:1:1: In expression (Seriously, I do.):
      standard input:1:1: Unbound variable: Seriously,
      ABORT: (misc-error)

      Type "(backtrace)" to get more information.

  351. Use anything you can get by Anonymous Coward · · Score: 0

    If I were teaching this imaginary kid, I'd go out and find two things:

    1. "Fun" types of programs that allow you to ease into programming with some constraints and a built-in scripting language(there are lots and lots of game-making tools that satisfy that need, or you could try something like Flash...)

    2. Modern languages that are designed to cater to the programmer over the machine(Python is a good example of course). C and C++ may be the standards for the "heavy apps" but they are fairly frustrating at times.

    Personal experience: I tried learning some C out of the K&R book, using GCC on a Linux box my brother had set up. I stopped around pointers because I was getting frustrated with the fact that I wasn't able to immediately use what I had learned in a bigger project.

    What I wanted, and still see a need for today, is a set of standard library functions that give you the same level of control that a programmer using the built-in or cartridge BASICs got in the 80s. There isn't a guaranteed no-hassles solution for a lot of otherwise fine languages, which is too bad since a young programmer would probably appreciate, like most humans do, being able to make pretty pictures and sound appear a lot more than learning new data structures, especially if it can be done with only a few lines of code.

  352. True, but by autopr0n · · Score: 1

    I mean, the kids who learned everything about their computer 10 years ago didn't do it because the tools were there. The computer was something that interested them and they soaked up all they could when they could. The same is still true.

    Back when I first got my computer, in 1995, I didn't even have an ISP account. Then I got AOL on 2400bps (hey, it was a small town, OK?). Eventually I got unlimited dialup, but we only had one phone line.

    Now I live in the dorms and have 24/7 internet connectivity.

    But it sucks, I spend all my time surfing the web and posting on slashdot and fark rather then coding, like I used to.

    So I wonder, maybe having access to the web isn't the greatest thing for kids who want to learn to program :P.

    But other then that, I agree. This article is totally pointless. Not having DOS with built in basic isn't going to hurt kids. I cut my teeth coding win16 programs with copy of Turbo C++ I paid for with summer job money (along with the rest of my computer). Later I moved on to Java with JDK1.0. Along the way I picked up C, Pascal, VB, Scheme, X86 assembler, Qbasic (okay, so my computer did have basic built in after all. I didn't discover this for quite some time though :P), and a lot more. I didn't learn to program because it was the only thing I could do with my computer, I learned to program because I loved computers.

    --
    autopr0n is like, down and stuff.
  353. Python by p3d0 · · Score: 1

    'nuff said.

    --
    Patrick Doyle
    I mod down every jackass who puts his moderation policy in his sig. Oh, wait a sec....
  354. BASIC, still best learning tool!!! by nexusone · · Score: 1

    I think BASIC has to be the best simple to use and learn.
    Once they have got their feet wet, then they can move on to a higher language like C/C++, etc.

    Just add window control commands?

    OPENWINDOW
    CLOSEWINDOW

    OPENDIALOGBOX "HELLO"

    OPENFILEDIALOGBOX OPTIONS, *.JPG

    SETMENUITEMS

    SETMENUBARITEMS

    --
    Wise men speak because they have something to say, Fools because they have to say something!!!!
  355. They won't by autopr0n · · Score: 1

    Why the heck should a kid who's never coded before download a bunch of incredibly obscure (to THEM, not US) crap like Cygwin

    They won't. They'll download things like sphere an Javascript interpreter optimized for writing RPGs or any one of the hundreds of other programming systems designed for fun rather then UNIX hacking.

    And anyway, they'll almost certainly start hacking together web pages with Javascript and stuff.

    --
    autopr0n is like, down and stuff.
  356. Been there... use Python + GTK/QT/wx... by Sleepy · · Score: 1

    I was just thinking about this subject recently...

    I "started out" at 14 years old with a 64K Atari and Atari BASIC. You guys with C64's, Timex etc. all know the story... you got your computer, traded code with friends and typed in every magazine listing you could find.

    Back when there were more OS "choices" the vendors shipped decent languages... and even IMPROVED the languages after they shipped. The language was designed to add value to the computer, and hopefully drive sales. What "bundled" language does that today? Oh, that's right... monopolies do not depend on value ;-)

    Now we have, what? Microsoft Visual BASIC (for Windows only, not that I want it on Linux). VB's purporse is not to drive sales of computers (or Windows OS licenses), it's just a product. VB users are not quite happy with the MS market-roid decision to fold VB into the .NET either.

    Best thing out there for curious coder folks is Python. It is clean, designed to be simple and very high level (more so than the language it is most compared to, Perl). Python favors an "application" approach as opposed to quick string-parsing tools. You have bindings for most popular GUI toolkits, such as GTK1/GTK2, Qt, wxWindows (Win32-ish but portable), Curses etc.

    Assuming GTK is installed, I'm having a blast experimenting with GUI code that's at home on Linux or Windows. Yes, GTK runs great on Windows these days (assuming it's installed! :-)

    It's still not quite like the 80's, but the open-source tools are the closest thing.

    For graphics and sound, the *SDL libraries are nearly universally portable. For Python, you want "PyGame" not PySDL (which is unmaintained).

  357. simpler ??? by dorfsmay · · Score: 1

    Learning to program in the 80's was simpler because the machines were more limited, and generally came with BASIC

    On my TRS-80 BASIC was quite limited, plus admiting I used it would be admiting I actually used a Microsoft product at some point in my life ;-) Anyway, I don't think programing back then was easier, if you wanted to do any kind of graphics you had to pretty much write it from scratch (there was no graphic library, engine etc...). If you wanted to get into something a bit advanced like having lower case characters in your output (no I am not kidding) or play "music" on the speaker, you had to learn Z80 assembler (I enjoyed it, but don't tell me it was simpler).

    Beyond the technological limitation there was a culture thing too. Most kids today have access to a computer and can easily have access to somebody who has a clue about computers. Public libraries carry a lot of books about computing and programing these days.... Going online you can find documentation on pretty much anything, and even find people who can help you.

    I had to buy my first computer which cost me the wages of working for two summers full time, and any adult I knew at the time thought it was a waste and that I should have bought a moped instead. To get books I had to go to specialized stores, and books were very expensive.

    Simpler ? I think not.

    1. Re:simpler ??? by Queuetue · · Score: 1

      You may be confusing "simpler" with "easier."

      Today's computers and languages make it easier on the developer, because more functionality was included off the shelf by the designer.

      I think your TRS-80 was probably a lot simpler to do those things that fall outside of the scope of "batteries included," though.

  358. How about Lego? by Anonymous Coward · · Score: 1, Insightful

    When I have children, I will be more than happy to let them use my Mindstorm RCX.

    RCX Basic (?) is a simple way to program, based on putting together different tiles to write a program. Any 10 year old could do it.

    Later, they could move on to Lejos, and once they are confident with that, they could move on the RCX scripting language (I forget the name... might even be RCX basic) in order to gain some insight as to how the machine really works (eg interrupts, thread management, etc).

  359. Linus by Alpha_Nerd · · Score: 2, Funny

    I remember reading that Linus used to program games in machine code when he was a kid(can't remember what system that was...)

    I'd pay to see a kid(or anyone) do that today.

  360. What about... by Timothy+Brownawell · · Score: 1
    MSWLogo? http://www.softronix.com/logo.html
    It's free (beer), and easy for kids to use (comparatively). It's also what I started on.

    Tim

  361. Find ways to do cool things... by Quixadhal · · Score: 1

    The reason I started programming (on my Commodore 64) was that computers were cool. I loved computer games, and wanted (doesn't everyone?) to write my own. I leaned BASIC by a combination of trial-and-error-and-error-and-error, and good old COMPUTE magazine.

    After a little while, I learned 6510 assembly, because I wanted to do things fast, and was amazed at just how fast assembly would do little things.

    Because I learned assembly *before* any formal classroom computer education, I had a really easy time with things that other kids struggled over. If you learn assembly, you understand what the computer really does with your data, and concepts like pointers and data structures are really easy.

    The problem is, kids today have 3GHz P4 boxes on their desks. They have 512M of RAM or more. Therefore, they can write in bloated languages and it STILL goes fast. Since everything has to have lots of pointy-click buttons and menus everywhere, you can't write assembly from scratch the way we used to... so we're back to trying to teach kids the abstract ideas of programming without having a totally hands-on way of showing them why it works the way it does.

  362. Re: Functional Programming is great, but... by Mr+Smidge · · Score: 1
    We ought to use them to teach children those languages that are immensely powerful yet, judged by our standards, too inefficient to be practical. In particular, I'm referring to functional programming languages like Scheme and Haskell.

    I do think functional languages such as Haskell are absolutely gorgeous, but they do tend to have an inherent confusability-factor that isn't so severe as with imperative languages.. Try to explain this to a young child and have them understand it:

    > sieve (p:xs) = p:(sieve (filter (\x -> (x `mod` p /= 0)) xs))
    > primes = sieve [2..]


    Don't get me wrong, I think it would be a fantastic thing to teach, but maybe it should be restricted to nearer the GCSE level.
  363. BASIC is ok by Anonymous Coward · · Score: 0

    It lets you make mistakes. You will never learn why (and when) goto is bad until you hit a problem using it.
    I learned why functions are good via hard way. Wrote a game in qbasic and then to add a second level I needed to retype all 1000+ line all over again. It then became very clear why functions are good.

  364. From little Acorns... by chiller2 · · Score: 5, Insightful

    My experience - early 80s home computing in the UK
    ---
    Back in '83 my father bought the family a BBC B [1], and not long after playing the bundled games thoroughly I found the User Guide, tried out the teletext examples to do double height text, the moving man vdu23 example, and didn't stop until I got to the end. It was a wonderful learning experience..

    Switch the Beeb on...
    *blur*beep*
    BBC Computer 32k

    Basic

    > 10 PRINT "Ooh look a programming language"
    > 20 PRINT "that is right there at power up"
    > 30 PRINT "and easy enough for a preteen"
    > 40 GOTO 10
    > RUN

    From that prompt BBC BASIC was right there available to you from power up. Want to draw a triangle - plot 85.. play a middle C note - SOUND 1,-15,53,5. Now is that or talking to DirectX via C/C++/VB/Delphi/etc easier for a child?

    Along with the Beeb, plenty other 8 bit machines also provided a simple to use programming environment right there by default at power up. No extras to have to buy, no alternative OS's to install, and what plenty of people who've posted here seem to be completely forgetting - a learning curve suitable for a pre-teen.

    Nowadays
    ---
    I think the article is spot on. A child who sits down at an out of the box Windows PC can do nothing more than play Solitaire. Sure there is plenty that can be done if you know about it. This requires purchase of $50+ books, programming languages, or knowledge to wipe the system and install some Unix variant with an oss compiler, etc. These are out of reach for a child. Even if a knowing parent had sorted out one of these solutions, it is still have a steeper learning curve.

    It's all about accessibility, and nowadays programming really is less accessible to young children. Anyone who can't see that either wasn't there in the 80s or lives in an alternative reality.

    [1] Huge UK success. Never cracked US market. See here for some background history on it.
    [2] For the BBC, Electron, etc there was Micro User, A&B Computing, Acorn User, Electron World, and others besides. The C64/128 had Crash, Zzap, etc, and for the Speccy there was Your Sinclair, and lots of others I've forgotten.

    --
    --- Commission free trading & free stock up to $500 - use http://share.robinhood.com/kelvinp6 :)
    1. Re:From little Acorns... by Anonymous Coward · · Score: 0

      After a nearly 20 year break in programming I wanted to start again. What I turned to is Win32 assembler. MASM can be downloaded for free, along with lots of tutorials and Intel Pentium technical manuals. http://www.movsd.com , http://masmforum.com are good places to start.

      Starting was not easy, but this was the only Real Programming Language I could find for free. Somehow it also feels closest to the feeling of 80's home computers with their builtin Basic.

    2. Re:From little Acorns... by Anonymous Coward · · Score: 1, Insightful


      Back in '83 my father bought the family a BBC B [...]

      Switch the Beeb on...
      *blur*beep*


      The correct way to pronounce this is to to write out the two notes -- *blur* and *beep*, which are one octave and a tone apart -- as letters. Note that the first note is twice as long as the second, so it is written twice:

      BBC

  365. The author missed the difference. by zackbar · · Score: 1

    In the 80's, pc's were largely for hobbyists. The original Apple was designed by, for, and sold to hobbyists.

    A huge percentage of the people who bought computers were buying them for the sake of the computers rather any other reason. They wanted something to play with, program with, and explore. Even in schools, 99% of them were bought to teach programming.

    Nowadays, the machines are sold for primarily non-programming purposes. People want home machines for email and doing their taxes, and maybe playing games. (They want to see this new thing called the world wide web.) Even updating a web site or blog doesn't require programming.

    Currently, I doubt if 1 in 20 computer users ever do, or want to do, any programming. (linux users mostly fall into that 1 in 20)

    Today's machines aren't primarily for hobbyists anymore. It's been corporatized and the suits sell machines now.

    Naturally, no one is going to provide programming functionality to every box if 95% of your customers don't want it and can't understand it. Why develop it as part of the OS then?

    It makes a lot of sense to separate it out from the operating system and sell it as an additional program. After all, if the compiler came with Windows, it could never stay competitive with separate compilers. If it did, it would probably prevent other compilers from doing well. (IE vs netscape. *cough* *cough*)

    Now, linux is a different story. Linux users tend to have a much higher percentage of programmer vs mere user.

    Of course, it would be nice if the ps/2 and xbox allowed coding for free. But both Sony and MS are basically monopolies, and neither has any interest in helped the hacker-minded modify their systems. If they did, they wouldn't have added the "security* features that require mod-chips to defeat.

  366. Check out DevApprentice.com by Crag · · Score: 1

    The guy there specifically wants to address this very problem and has created a java applet for new programmers to use to get aquanted with procedural programming.

    He's been at it for over a year, and hasn't had much feedback. Maybe the /. crowd can help him out... (please be kind!).

    devapprentice.com

  367. The best way to start? by beaverbrother · · Score: 1

    Source code, of course is the easiest way to learn. Just have the person start with web pages, let them view the HTML and javascript. The languages are very easy to understand, even if you have no programming knowlage, and it makes it possible to learn without anyone teaching. After that, download the code of some program that kids will probably want to mess around with, like Quake 2. They can just fiddle with things, by making players go faster, weapons spawn differently etc... By just messing around with the code, it is very easy to learn how it works and its a great start as a way to learn how to program.

  368. As the parent of a child learning to program... by sayerofno · · Score: 1

    My nine-year-old son has been learning to program (brings a tear of geeky-paternal-pride to my eye). Our approach has been two-fold.

    On the expensive side, we've purchased a Lego Mindstorm set (VERY cool! I like it as much as he does). The starter set runs about 200 bucks, but you can get 'em a little cheaper on eBay.

    The Mindstorm development environment is drag and drop based and you fill in property settings to make things work. It has most of the fundamental coding constructs - if statements, for loops, while loops, etc. You can use variables, and it also has various I/O functionality by way of timers and external sensors. My son and his 10 year old friend both picked up on it very quickl, and are now doing really cool things with their Lego robots.

    On the free side, we've also been teaching him Web development with JavaScript. My computer at home has a whole host of development tools/environments on it (VS6, VS.NET, PHP, Java, etc). He doesn't use any of it - Just notepad and a web browser (IE and Mozilla - to point out the differences!).

    My point is this - if a kid wants to learn how to code, he/she doesn't need the computer to come with BASIC or anything more fancy than a text editor and a web browser. I'm familiar with the argument that "scripting isn't programming", but as an ealier post pointed out, programming is about learning to solve problems, and you can do that just as well without a compiler.

  369. Python by libertynews · · Score: 1

    Its got a well defined syntax, is ported widely, works interactivly (makes a great calculator), integrates well with GTK.

    bcl

    --
    Remember Lexington Green!
  370. Re:From someone who cut their teeth in the eightie by arkane1234 · · Score: 1

    Your right, and I hear that alot from people. (what the previous person said)

    They ask what assembler language is, and you explain how it works... they look at you with a wierd look and ask you why the hell you would use something that simple with no structure.

    Elegance definately comes to play with assembler...

    --
    -- This space for lease, low setup fee, inquire within!
  371. Turbo Pascal... It's Alive!!!!! by OldCrasher · · Score: 1

    You really want to reinvent the wheel? You really want to give people an old fashion start at the noble art of code hacking? Well, deep in the Borland Web site is a free download of Turbo Pascal (5.5). It wiped BASIC's clock; it made heroes of Boys; It came with IDE and Debugger, it washed clothes whiter...

    An' thee wonder why t' young generation dont understand us naymore...?

  372. The Big Vendors' Predicament by Swami · · Score: 1

    Here's how I remember my mindset as a "little coder" playing with Apple IIs, Atari 800s, etc.: What novelty can I coax out of this 8-bit machine? I see my "little coder" peers do stuff with their computers that make me say, "wow, that's neat! Show me how you did that!" What can I code that'll make my peers say the same about my work? (That motivated me to write a small turn-based wargame on a 40x24 text-screen.)

    The mindset was the same when I became a "not-as-little coder" with an HP48 graphing calculator for Calculus class: What novel use can I coax out of this 4-bit machine? I see my classmates do things with their calculators that make me say, "wow, that's neat! Show me how you did that!" How can I get the same reaction from them? (That motivated me to write "simulate two sound pitches out of one speaker" code in 4-bit Saturn assembler, so that my calculator could sing a Christmas carol in two-part harmony.)

    Unfortunately, my mindset is considered threatening by software and hardware vendors. I find a way to make their product do things that the designers and engineers never intended or even dreamed of. In people like me, that mindset is called creativity, but for a few, it's instead called vandalism. Viruses and similar horrors are unleashed, for no other reason than the desire to hear or imagine a peer saying "Wow, show me how you did that!" Then the big vendor is publically scorned as a company that makes insecure products, instead of heralded as a company that fosters creativity in their customers. The "big vendors" predicament is the complement of the "little coder's" predicament. The bad apples motivate an electronic gadget or software company to:

    • "lock down" their products, make them only minimally customizable, or
    • raise the barrier to entry for "little coders" by omitting, hiding, or underdocumenting the scripting or programming tools in their products.

    You see, end-user creativity and freedom to tinker are security risks.

  373. Linux! by Ignorant+Aardvark · · Score: 1

    Last time I checked, Linux came with gcc, and java, Perl, Python, PHP, etc., are only a free download's step away. Real hackers, real programmers aren't going to get their start on Windows: it'll be on Linux.

  374. Languages teach nothing by msobkow · · Score: 1

    I got into computers because of video games and curiosity, not because I had access to some whiz-bang machine with high level languages.

    Machine code was POKE'd into memory. No assembler. No compiler. BASIC at that point was little more than a CLI you booted into, not a real language.

    You can't "make" someone interested in things, just encourage them when they show interest. Anyone looking for quick gratification is not going to stick with programming -- it just takes too much time and attention to detail for most people to tolerate.

    --
    I do not fail; I succeed at finding out what does not work.
    1. Re:Languages teach nothing by John_Booty · · Score: 1

      You can't "make" someone interested in things, just encourage them when they show interest. Anyone looking for quick gratification is not going to stick with programming -- it just takes too much time and attention to detail for most people to tolerate.

      Very true. However, surely exposing more people to it will let many more people get into it that would get into it otherwise, no?

      When I was a kid I had no idea how games and other computer software was made. In fact I didn't even care. It's not that I couldn't figure out how it was made, it just never even crossed my mind. So typing in that first BASIC program was a bit of an epiphany- "wait, I can make my OWN stuff on here?"

      Most people never even think about where software comes from. What I think is important is that first moment where the lightswitch goes on a people realized THEY can make computers do cool stuff too. Of course you can't make anybody be a programmer, but the more people who see how fun programming can be, the more people who will discover it....

      --

      OtakuBooty.com: Smart, funny, sexy nerds.
  375. Turbo Pascal rules! by YourPreferredNicknam · · Score: 1

    One of the best thing about TP was the sample programs that demonstrated their BGI. Having a set of sample programs to start from really helped me get started.

  376. POV-Ray by Pall+Agamemnides · · Score: 2, Interesting

    POV-Ray is a free raytracer for making computer-generated images. You can build up 3D scenes using the Scene Description Language (SDL), rather than a modeller; and after a little practice, you naturally move toward writing algorithms to generate more complex images, etc. It comes with lots of sample code, a good help file, and could be used as a way to learn programming. The nice thing about it is that the language itself is simple to use, and making pretty pictures is a good incentive to keep practicing and learning more.

    You can do pretty nice things with the SDL. The help files explain how to write a raytracer within POV-Ray. You can also read and write text files, etc.

  377. What about... by Mondain98 · · Score: 1

    VBscript? ASP? .BAT? Did we forget these? Maybe they are not the gcc that people might be thinking of, but anyone who thinks you cant interact with Windows hasnt read a WSH book.

  378. "robot programming" games by divbyzero · · Score: 4, Informative

    There have been many, many "robot programming" games written for just about every platform. Some use their own mini languages, some use real world languages. Some, like Core Wars, are even portable and semi-standardized. As a category, these are definitely a great introduction to programming.

    --
    But my grandest creation, as history will tell,
    Was Firefrorefiddle, the Fiend of the Fell.
  379. It wasn't so easy then ... as it is now by Anonymous Coward · · Score: 0

    I disagree! In the 80s there was a lot of programming going on, but there was also a lot more people who got their parents to buy 8 bit micros for educational purposes, with the real intention of doing nothing more than play games on them.

    Ok there were a some hobbyists that built their own ZX-80s but by the time the ZX-Spectrum was available it was all about playing games.

    The reason was that games were cool and fun, and there was very little information available about programming. You had to buy a book, buy magazines or go to school where you would be taught a little.

    These days I'd say it's far easier. We have the internet where you can search for information about programming, unlimited free tuition and plenty of examples. Lots of open source code to look at, from complex projects to simple ones. Lots of mailing lists where you can get involved with something or get interactive help. Things may be more complicated but there is better documentation available and a wider community to help with any problems. Serious coders these days have better tools, better editors, IDEs, debuggers, code profilers and memory checkers.

    Would you really want to learn machine code by poking it in to Sinclair basic REM statements? Or learn 6502 assembler with BBC basic inline assembly? If you were lucky you had a monitor and disassembler, source level debugging was a dream.

    The bottom line is - I'd give anything to be starting again right now :)

  380. *cough*bullshit*cough* by badfish2 · · Score: 1

    Just because a kid can't write games natively to the XBox doesn't mean a kid can't find things to program with, whether he/she's running windows or linux.

    Get over it.

    --
    "On the Internet, nobody knows you're a dog!" - a dog
  381. Problem solving, productivity, creativity by globalar · · Score: 1

    The motivation to learn to program comes from many things, but really learning something comes from having a problem to solve. It is true there is fun and interest in doing meaningless things with a language, but the real passion comes from making something - or making it work.

    Kids have to see the problems, limitations, and complications of the real world to understand how the computer enhances human thinking, not replaces it. This does not have to be a complicated understanding. A problem can be simply wanting see a different background with every login.

    The point is, the kid needs to understand that he/she can do what he/she wants with the computer. He/She has control of the machine. If he/she wants more control, there are many ways to find it. The first step is the key: making the computer a tool for itself.

  382. No no no no no! by Anonymous Coward · · Score: 0

    *Simple* language, easy to learn... something that can do useful work, too. Sorry, guys, but the old Basic crap fit the bill to a T. For all that's wrong with Basic, it was an enabling language that got a *lot* of people into programming, and helped jump-start the whole PC scene. The computer world needs a new Basic, not Perl, not Python, not Java, but something simple and easy to understand. And it'll need documentation too - not crap like the O'Reilly Perl book, go read an old old Basic book to see how to get the docs right... *every* instruction explained, with a snippet of in-context code for an example. "This works just like it does in C" is an absolutely useless explanation to somebody who doesn't know C, and O'Reilly books are full of crap like that.

  383. JavaScript by CowboyRobot · · Score: 1

    Two different friends have asked me for advice about their sons, both of whom are into computer games, prefer science to language classes, and generally seem to be future geek material.

    The question was how do the parents encourage their sons to apply their interest in computers so that they will be better-prepared for college, and perhaps have a head start in terms of being able to program.

    In both cases, I recommended that the kids learn JavaScript. It's an easy language that doesn't require compilation. The work ends up on a Web page, so it's easy to get feedback about errors in the code, and it's easy to put up your projects on a Web site. And, even though JavaScript is not a complete, robust language, it is based on C, and gives a good foundation in the most basic aspects of programming: if/then, for/while loops, recursion, etc.

    Older kids would probably want something more challenging, but JavaScript is the way to go for kids 12 or younger. Also, no software to buy, the interpreter (any Web browser) is already installed, and the Web is full of code snippets to try out.

    --
    every stain tells a story
  384. All is well. by saider · · Score: 1

    WindowsXP still comes with debug.

    --


    Remember, You are unique...just like everyone else.
  385. Brilliant! by wfolta · · Score: 1

    A great recommendation. It would give wonderfully-graphic feedback: very fulfilling as long as they were just wanting to learn.

    My only cavaet would be how much of a framework they need to understand to make things work.

  386. If only I was just learning today!! by Anm · · Score: 1

    Java, JavaScript, gcc & Linux, and Web tutorials galour!! All for free!!

    Not to mention UnrealScript and the Mod' community!!

    Back in high school (early nineties) I was a dry sponge. Living in Redmond, WA helped a lot 'cause I could get Visual C/C++ from friends and their parents (still prefered Turbo C++ when I had it though). But even having a guy come in to our computer club every other week wasn't enough to help me learn what I wanted.

    I considered myself lucky back then, and I can only imagine there were thousands of others without the means I had back in the day.

    I'm not saying nothing existed, but it required a lot of motivation and dedication to jump from BASIC (GW-, Quick', or even C64) to another language/project. Today the slope is more gradual with more excitement along the way to keep people involved. It is a perfect time for eager minds to get involved!!

    Anm

  387. Omega Tank Simulation Game by ingenuus · · Score: 1

    I am a big proponent of self-motivated learning, so I'm very impressed with you (and your son's) approach. I think ideally, an interested beginner should be introduced to a very simple programming language with relatively instant gratification.

    IMHO, part of the problem with modern programming systems is that it requires much work and planning to accomplish anything really significant... much less something significant to a youngster -- "ooo, I just made it say 'Hello World!', how exciting!" :)... probably much the same reason your son started out with Inform rather than C.

    I remember a game called Omega by Origin Systems for the Apple IIe from my youth. It was a "high-tech" tank simulation game wherein you programmed a very basic script for a tank and pit your tank against others on a battlefield in automated warfare. I thought it was awesome at the time and probably helped fuel my interest in programming. Once I mastered the basics, I started optimizing my tank scripts to figure out the best way to balance speed of execution with maximum features and intelligence.

    A while ago I installed an emulator (AppleWin or ApplePC) and tried out the Omega game again (along with Taipan, Pirates, etc.:)... you can get Omega here.

    By modern standards, the graphics are fairly sad, but all that needs to be done is to put a modern face on it... I think the basic idea of a simplified game language is an excellent beginning for learning to program and, perhaps more importantly, for cultivating interest in learning to program.
    --
    Programmers do it with their 1s and 0s.

    1. Re:Omega Tank Simulation Game by dekashizl · · Score: 1

      I too remember Omega. It was an EXCELLENT game. What the did right was that you really didn't have to spend any more time on the programming than you wanted to. I think you could buy (in-game) modules that did various AI/targetting scripts, or you could write your own. Something like that... It's been a while, but I remember that game was very well done. Play it today! Somebody port it to windows with a new face so kids can learn to program once again!

  388. Cygwin by wfrp01 · · Score: 1

    If the poor kid must deal with Windows, install cygwin. Show them a little about how to manuever in the bash shell. Show them how to read the relevant newsgroups for the language(s) that they're interested in. Buy them an introductory book or two. They can do shell scripting, python, perl, c, c++, guile, whatever. They could use a simple text editor, or you could introduce them to vim. If the kid is really interested in programming, this is real programming. If the kid isn't really interested in programming, then this thread doesn't pertain to them.

    The next thing you should do is install a real operating sytem for them. Or short of that, download Knoppix (Linux which boots from CD - doesn't affect what you currently have on your hard drive). Save work to a floppy or CD-RW.

    --

    --Lawrence Lessig for Congress!
  389. Re:Do you want to teach programming or development by schuster · · Score: 1

    while I agree that it's a long way from programming to development, I think the goal here is to teach programming. Kids don't have the mathematical skills necessary to do serious development anyway which is why really high-level scripting languages are probably a good place to start. Unfortunately, there really is no good scripting language to start with that will hold a kid's attention. I had initially thought that perhapes a language like AppleScript might be an okay place to start, but I think that kids will find it too limited in terms of functionality.

    The reality is, there's no magic bullet. Each language has its own niche and none of the current options really helps a kid who's interested in programming to learn. And to those who have suggested that using games to teach programming could be effective, all that will do is teach kids who aren't really interested in learning in the first place. Then again, that's just my opion, I could be wrong.

    --
    --- Don't ever trust a woman until she's dead- B.B. King
  390. Random thoughts on kids & programming by Kismet · · Score: 2, Interesting

    Kids want to make cool stuff. In 1984 I could write a stupid script to scroll my name on the screen using TI BASIC. I could also write a neat graphical maze game with speach synthesis using the same tool. With Windows Scripting Host and JavaScript (etc), I can write stupid stuff, but not cool stuff. Anyway, how many people here know how to fire up WSH and go? I don't think that's even in the manual.

    At least with DOS 2.11, the manual said I could run "BASICA" and, by the way, try out these few lines of code.

    I had classes in the 4th and 6th grades with C64 LOGO and Atari Basic. It was neat back then. In 2003, neat is 3D graphics and surround sound. Are you going to get a kid hooked on programming with a few batch files? I don't think so.

    The old TI rags used to publish code listings for games like "Dogfight" and "Conquest of Camelot." They were in BASIC and you had to type them in from the magazine and save them onto an audio cassette. I spent hours as an 8-year-old typing in lines of code that I didn't understand. It was cool to see what would happen when you typed "RUN" though.

    In the 80s, programming was one of the things that you bought your computer for, other than games. So if a computer didn't have a tool to program it with, it was either junk or a game console. Not everybody had a computer back then, but those who did kinda liked it.

    Now that there's money in computers as a commodity, it's another story. People still buy computers for games, but not for programming. Besides, if you program, you might become competition, and that's not good, especially if you give your code away for free. That and the increasing complexity of computers and operating systems make languages diverse and specialized.

    So instead of computers that say, "hey, see what you can do with me," we have computers that say, "hey, you can run Word and Half Life and surf the Net if you have a license." And we're moving closer to "you can't run anything else, even if you have a license to run it, unless it's one of ours." Pretty soon (if Microsoft has its way), instead of only needing a license to run a program, you'll need a licence to make one too.

    Anyway, back to the point. If a kid thinks computers are neat, he'll need a system that still lets him try the neat stuff. That is no longer Microsoft unless you've got the cash for VB, which is now an "add on." Can you get VB without buying the whole Dev Studio? I doubt it.

    Today's equivalent to my old TI are the Linuxes, BSDs and other "Open Source" platforms that still actively encourage tinkering and learning.

    Is Linux programming too hard for an 8-year-old to figure out? I guess it depends on where you start. At least you don't have to buy the extras.

    I'm afraid the really cool stuff has been the domain of the big guys for at least ten years now, though. Sorry kids. Well, a few kids might be interested enough to figure it out.

    Nobody's stopping us from making a Linux distro geared towards 8-year-old programmers. If we had a language that made it easy to do some neat sound and graphics, it'd be like the old days.

  391. Depends.... by ctve · · Score: 1
    If the kid was interested in web stuff, I'd get them going on PHP and Javascript. PHP can give a kid very quick rewards, which is kinda what BASIC did.

    If they wanted to know about games, I'd start them in Java.

    One thing, I'd keep them off C or C++. No kid is going to start programming writing 3d quake clone games. If they want to do games, try something like Java.

  392. Duh question by Ogerman · · Score: 1

    Now we have Windows, which typically comes with no built-in programming language. What can be done to improve the situation?

    This is Slashdot. Isn't that sorta a rhetorical question? (: On a serious note, kids should probably use "live" Linux distros until they're capable of repartitioning their parent's machines and fixing their mistakes. Python would be a good starter language.. and there is increasing use for game development, which is a good draw for youngsters.

  393. Re:If you really want your child to learn to progr by richieb · · Score: 1
    Send them to any "intro" class at the nearest community college. There is no faster way for them to find out what's available and where they stand in terms of skill and interest.

    Ha, ha, ha!

    I can just see trying to tell a 12 year old, that he has to take a college class to learn to program. That's really going to spark his/her interest!

    --
    ...richie - It is a good day to code.
  394. Macromedia Director by no+parity · · Score: 2, Insightful
    It's so f*cking obvious, yet I see no mention of it among the 800 comments.
    Yes, it's evil, it costs money, but see the advantages:
    • Lingo is an easy-to-learn language.
    • You can easily create pretty, colorful stuff.
    • You can even put your results on the web, for everyone to see.
    • Once you add buttons and stuff, there's a natural tendency towards event-driven GUI programming, which most Slashdotters don't seem to understand even today.
  395. Thank you!!! by Anonymous+Brave+Guy · · Score: 1

    Finally, a few hundred posts later, someone gets it! :-)

    Your average ten year old is unlikely to care about any of Python, Perl, Java, PHP, VB, etc. etc. etc.

    Your average ten year old want to have some fun. Let them play with a dead simple language that does funky graphics easily.

    The best computer book I ever had when I was younger was a load of type-it-yourself games for BBC BASIC. (OK, that was too grown up, I only had an Electron, but that's not the point. :-)) I programmed space invaders and such out of the book, and then messed around changing things.

    The next best thing was when my dad introduced me to Fractals. I didn't understand the maths much yet, but I could program what he showed me for that, and then make it look pretty. This was waaaaay before Fractint came along! :-)

    Kids want to have fun. They want to draw pretty pictures, or make noises, or play games (graphical or otherwise -- good ol' text adventures and word games are cool too). They don't want to write the next database front end for a web app.

    Did anyone think of POV-Ray, BTW? Lots of fun, simple to use, makes pretty pictures. Might be a bit frustrating if they're not up to the geometry yet, though. Maybe better for mid-teens, who'll understand enough about the camera and lights to see why their output is totally black the first time they run anything...

    --
    If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
  396. My son uses Linux by wishes · · Score: 1

    My son uses Linux happily and codes in whatwever language he needs. The 80s you HAD to program to do ANYTHING decent with a computer, or payout HEAPS to get software.
    Nowdays people dont have the need so much because you can get programs that do it all for you.

    My son is 11, he knows the basics of perl/php/html/etc

    --
    /sig
  397. Shortcuts for downloading JBuilder by Anonymous Coward · · Score: 1, Informative
    From Borland, shortcuts to bypass the free registration...enjoy.

    JBuilder Personal Edition for Windows: Windows


    for Solaris: Solaris


    for Linux: Linux

  398. pygame + python by impi · · Score: 1

    Install pygame and python, find the docs, and let them play.
    However, they must want to do this. When I was 10 years old, I was programming on my Apple ][ in Basic and 6502 assembler. I had the computer, the tools and the books. But it also fascinated me - my parents didn't understand what I was doing, and my mom even discouraged me ("go play outside stop wasting time behind that thing").
    And give kids credit - they are persistent and they don't have silly notions like 'failure' and 'I can't' yet. They stubbornly persue what they enjoy.

  399. need more than a language by bshanks · · Score: 3, Insightful
    I think most of the 5s that I read above are missing the point. Many of them answer the question "If you want to teach a kid to program, what do you do?" (and most get even more specific, to "which language?").

    When I was little, my dad got an Apple IIc. It came with a bunch of disks. The Apple at Work, The Apple at Play, Introduction, The Inside Story, Exploring Apple Logo, and Getting down to BASIC, among others. These were what got me into programming, particularly the "Getting down to BASIC" disk.

    The two best things about the "Getting down to BASIC" tutorial were:

    1. It came with the computer, and I tried out everything that came with the computer.
    2. It was very, very, very friendly.
    This is what we are lacking today. Something that most kids will discover on their own that gets them into programming, WITHOUT the influence of an adult in their life to suggest it.

    I think we need a well advertised website with a tutorial on it like the Getting Down to BASIC tutorial. A tutorial that you don't have to download or anything; the website has it's own interpreter.

    Furthermore, for most of the tutorial you shouldn't even be using the real interpreter yet; in Getting Down to BASIC, most of the time the tutorial would type a line or two of code, and then ask you to finish one word or something. You weren't really in the BASIC interpreter at all. If you typed the wrong word, it would give you a fake error message and then explain in detail what you did wrong, and ask for another guess. If you made a common mistake, it had a response tailored for that. It also heaped congratulations on you when you did something right. Only near the end would you type in an entire line of code at once or maybe even a whole short program.

    I think just telling kids to go use Python is way off. There's like a million steps in between "go learn Python" and writing Hello World. Among them are "download and install Python", "Run the interpreter", "figure out what an "interpreter" is ", "figure out what a "program" is", "find out how to quit out of the interpreter", "figure out why typing "i want you to put my name on the screen" doesn't work, even though i'm saying essentially the same thing as they are saying in the tutorial, overcome confusion and frustration when you say "Python" and the computer says

    Python 2.1.3 (#1, Sep 7 2002, 15:29:56)
    [GCC 2.95.4 20011002 (Debian prerelease)] on linux2
    Type "copyright", "credits" or "license" for more information.
    >>>

    etc. With Getting Down to BASIC, all you had to do was put in a disk and follow the instructions. Almost anyone who could read could do it. This is what we need. For example, I think that when you are at the tutorial website and you get to the point where you type "Python", the computer should reply something more like this:

    Python 2.1.3 (#1, Sep 7 2002, 15:29:56)
    [GCC 2.95.4 20011002 (Debian prerelease)] on linux2
    Type "copyright", "credits" or "license" for more information.
    >>>

    Good job! Now you've started the Python "interpreter". This means that it is time to start giving commands to Python. Commands are things that tell your computer to do something. For instance, if you typed

    print "hello"

    next, here is what would happen:

    >>> print "hello"
    hello
    >>>

    Now you try! We've already done the first part for you. Type the word "hello" in quotation marks, and then press <return>:

    >>> print
    )

    1. Re:need more than a language by whytheluckystiff · · Score: 1

      Ah, this is fantastic idea! I had the same experience learning C when I was ten. An ANSI tutorial that explained things interactively.

      Someone push this comment to the top. It's not about treating kids like idiots. Just giving as much of a boost as you can. Thanks, Bayle.

  400. Not Really by VirtuaKnight · · Score: 1

    When I purchased my hp 762n from Circuit City about 8 months ago, Python came preinstalled. Also, you can use batch scripts, even if they lack the power of a real programming language.

    1. Re:Not Really by VirtuaKnight · · Score: 1

      Also, I think it's worth mentioning that all I had for a while was a TI to program on. One year I got an introductory edition of MSVC++ along with a book, and I turned out fine. If kids want to program, they will find a way to do so; they don't have to be spoon fed.

  401. Thanks for the comments, notes by whytheluckystiff · · Score: 2, Informative

    A thanks to those who sent personal stories about how they learned to code. Kind of fun to read about. Didn't expect the amount of responses, of course.

    With all the comments that have been posted, it seems a lot of you believe there is no problem. That there are a wealth of intriguing technologies for kids who want to find them. Which is true. Kids can build websites. Kids can hack Hotmail. Kids can mod games.

    I still feel like we haven't cracked the door open on mainstream coding. I believe a majority of humans could learn to code. How many students are required to take math, chemistry, physics? Could programming become a commonly taught skill?

    Many of you have suggested that the job market would die. Are you kidding me? The job market for programmers would undoubtedly swell. More using the Web, more understanding the need for software, more purchasing software to help their casual coding. Better yet, the more who understand how to code, the fewer people have to say they are "computer illiterate!" Instead, clients could possibly have a better understanding and appreciation of the things we do.

    Let's push coding to the mainstream. There are those among us who can influence the world to make such a thing happen. I believe it could be well worth it.

  402. Z80 assembly by duncan+bayne · · Score: 1

    Well, I was hacking in a mix of BASIC and Z80 assembly language at the age of 10. I wouldn't write off 10 year olds being able to understand C, & getting GCC to compile an ANSI-C program really isn't that difficult.

    I mean, how hard is 'gcc foo.c -o foo' ???

  403. g77 by Anonymous Coward · · Score: 0

    The programmable games ideas are pretty nice. Fortran-77 is pretty much glorified BASIC, and seems more intuitive to read than C. You don't need to declare variables (if you assume the defualts), and print statements are as easy as BASIC. I'm sure an 11-year old could pick it up quickly. No pesky line numbering, either...no void stuff....afterwards, they can learn C++.

    A free compiler is available (g77) which will run on either linux or windows platforms.

  404. Its gotten easier. by Anonymous Coward · · Score: 0

    Things have actually gotten easier. With
    Visual Basic kids can write professional
    windows applications. I know from my son.
    And no I am not trolling.

  405. Re:C? C++? Java? Get real! by Christ-on-a-bike · · Score: 1
    I totally agree. I would say 'mod parent up', but you're already at 5.

    I'm not a 'youth' any more; my first experience of programming as a child was with 8-bit machines running Logo and BASIC. That didn't get too far though, and after a long break (and a Maths degree) I am now taking up Python as a 'first' programming language.

    I feel that I am learning fairly good habits with Python, as it is strongly typed and the syntax enforces readable code, to a degree. As a free scripting language, it's cross-platform compatible. It also has lots of 'buzzword' features like introspectibility, garbage collection, multiple inheritance, and functional programming tools. So there's plenty still to learn once the basics are grasped.

  406. Not true... by Kindaian · · Score: 1

    Linux computers come with all sorts of programming languages and environments...

    Windows machines will be shipped soon with the .NET platform, which will come with a compiler (ok... it won'y ship an IDE, but... you can program with a .NET windows out of the box... or will... depends on when there will be such thing... - for now is just vapourware on steroids).

  407. "...no built-in programming language..."? by Anonymous Coward · · Score: 0
    Now we have Windows, which typically comes with no built-in programming language.

    Not really. M$IE is, for all intents and purposes, embedded in Windows. M$IE runs JavaScript proggies, among other things. Therefore, JavaScript is the embedded language. (See also the comments of previous posters.)

  408. problem a few years ago, not now. by happylinuxguy · · Score: 1
    I think that the problems with not being able to find a programming language have gone away in the last few years. The worst time to learn was right when I was learning to program, before the internet and linux took off, and when BASIC fell out of favor. I'd say about '92-'95ish

    I ended up buying CodeWarrior limited edition for Mac not really too sure of my $70 purchase.( It was sure the best one I've ever done though!)
    Now, anyone who buys OS X has developer tools included. Cool! And PHP, Perl, etc, whatever language flavor of the month you want to learn can be downloaded for free on whatever platform of the month your using.

    I think a greater problem is with standardization of languages. There's so many out there now, I've learned C, C++, PHP, Perl, LISP, Python, BASH scripting, Ruby, Ada, plus all the Linux commands, and some proprietary database stuff, macromedia director Lingo, javascript, (D,X)HTML, XML, Mac toolbox commands a few years ago, remember CopyBits() anyone!? it's just blowing my mind now. Give me a break!.
    Jeez, I never knew I had this rage inside me.
    Free therapy on Slashdot!!

  409. Kid accessible programming... by FingerDemon · · Score: 1

    Hmmmm... I don't know, I think a lot of you are missing one very key component of kid "accessibility" that exists now that didn't when I was a kid. The internet itself. There was nobody to ask about programming my Timex Sinclair. I had to find books. If I couldn't get a book on a subject or find someone else who knew about it. I either had to figure it out myself or suffer in ignorance.
    Nowadays, kids can just go to Google and get all kinds of answers and find in depth tutorials or forums with loads of good information. Maybe they don't have DOS or BASIC, but just being pointed in a direction for learning to program and having the Internet for expert help if they get stuck, puts them in a position that I think is at least as good as when I was a kid.

    I'm probably revealing too much about my age with that Timex Sinclair comment. :-)

    FingerDemon

    --

    "Contrarily the lookaside buffer might not be the panacea... "
  410. Re:A couple places to start, "Shameless plug" by NoMoreNicksLeft · · Score: 1
    Well, I'm going to get flamed to no end for this, but why not teach them assembly? Nothing is more important, than knowing how the CPU actually works.

    My own "ebook" is somewhat lame, and still not finished, but I did (at least partially) intend it for someone at the 12 yr old level.

    Introduction to Assembly Language

    PS Spalp="society for the preservation of assembly language programming", not some weird porn site...

  411. Brings Back Memories by ShonFerg · · Score: 3, Interesting

    When I was young, about in 3rd grade, I ran across my first book on computer programing in the school library... naturally it was a neat little colorfully illustrated book on the BASIC programming language. Unfortunately my family didn't have a computer at home at the time, but there isn't much syntax to the language anyway, and I ate the book up like candy. I actually sat down and wrote out all sorts of programs on our word-processor (fancy typewriters that used to be big but died out as computer prices came down) which I could never run.

    Oh how I longed only to try my programs for real! But none of my friends who HAD computers knew anything about where to go in the system to look for a place that would accept input in BASIC. They probably had GWBASIC on there somewhere, but they certainly didn't know it. I actually remember the first time I got to run a program... it was in a toy store that was selling one of those "Kid's computer" type toys and it was on display. It said it could be programmed, so I went up and typed:

    PRINT "What's your name?"
    INPUT $NAME
    PRINT "Hello, "; $NAME; "!"

    I can't begin to express how pleased I was to see "Hello, Shon!" appear on the screen just as I expected it to.

    We finally got our first personal computer in 1994, but it wasn't for a long time that I realized that, buried deep in a directory, was a program called QBASIC, which I eventually had quite a run with.

    This brings me to the question: As I've seen new computers ship over the years without even QBASIC on them, I feel bad for all those kids who'd like to try to program, but don't know how. Sure we have the internet now, but downloading something like GCC is probably a bit much to ask for a 3rd grader who's never used anything but Windows. I really think that Microsoft should create a Windows GUI version of QBASIC and include it in the start menu just to encourage kids to play around with it. Barring that, OS's like MacOS and Linux that include C/C++ compilers win lots of points in my book. One other thing that I think that has especially helped get kids interested in programming is making Web pages... they see a cool thing on some other page and they wanna learn how to do it. Java's pretty complex for most kids, but there's a huge incentive in that it takes relatively little effort to do something that will really impress your friends, while it can seem like languages like C/C++ let you do nothing but output text.

    So yes, I think that all OS's should include some sort of compiler with a GUI as a basic part of the operating system. If a basic paint program and writing program are worth including, then a basic compiler is definitely worth including as well. Lots of kids are interested in programming a computer at some level, but have no idea where to start.

  412. Buy a Mac with OS X by Anonymous Coward · · Score: 0

    I too had that feeling of "How the hell do I program this thing?" when I first started learning to program. I stared at my computer perplexed as to how to even approach making an application. That was 1998, its 2003, I'm going to be a 2nd year student in college next quarter, and Cocoa has finally made programming applications as easy as I always wanted.

    I dabbled in linux and all my programming courses in high school were taught on linux boxes running Debian/GNU Linux, it was certainly an approachable programming platform and easy to make programs, but I would never use a linux box as my primary machine. Without getting all into it, there wasn't enough prettiness to it, keep in mind this is in 2000 that I was considering making linux my primary platform. I could not bring myself to like any of the window managers enough to persuade me from my mac.

    Then Mac OS X came out and Apple saved me by bringing me Cocoa. The single most approachable programming language I have ever encountered. Within hours I was doing GUI programming and I didn't even have to write huge code blocks to do it. It wasn't till this year when I took my accelerated CS courses that I gained Software Design skills and crafted GUIs with code in Java that I was able to approach the more complex techniques, but now I have two full fledged application under my belt and It seems like I can only go up from here.

    X cheers for Cocoa.

  413. Re:A couple places to start *.HTA by Anonymous Coward · · Score: 0

    An HTML Application .HTA looks like and HTML page and can run scripting languages similar to browsers, but also has more 'trusted security' than a browser.

    ie: it can do file i/o and basic os stuff in script

  414. Which to Pick? by kc0dxh · · Score: 1
    I should think the biggest problem these days is deciding where to start. And if all else fails, why not try shell scripting or (sorry guys) batch files?

    --

    --- "1.21 Jigawatts!" -Doc

  415. Clear he wants by golrien · · Score: 1
  416. The obvious solution: by master_p · · Score: 1

    MINGW32 and C++ (sooner or later they would need to develop something serious anyway).

  417. Sincere advice by maharg · · Score: 1

    Stop writing shell scripts and bat files, no matter how simple. Install Python, and write your utilities etc in that.

    Lesson one: "I am cool" in python:


    while 1:
    print 'I am cool'

    --

    $ strings FTP.EXE | grep Copyright
    @(#) Copyright (c) 1983 The Regents of the University of California.
  418. python gui by NoOneInParticular · · Score: 1
    Another thing is graphics, and I don't know if Python has an interface to the Windows graphics APIs

    Check out wxPython, these are wxWindows bindings for python, work very naturally for Windows API literates and binds to several widget sets: windows API, gtk, and quite likely more.

  419. A tailored Linux erector set on a cheap mini-itx by Anonymous Coward · · Score: 0

    I would build them a simple Linux box with a simplified package/application load, backed up to a home file server for easy restore of mistakes. This lets them play with:
    Â gui config tools for Window Manager â" immediate flashy changes (background, borders, etc.)
    Â xhtml (apache set up for them, and fire walled) â" again immediate but a bit more advanced.
    Â java shell (xemacs had this, not that I recommend xemacs for them.) â" starts getting to programming but in an interactive environment. Shell interpretation and immediate feed back are great.
    Â python/java â" getting serious.
    Â bash â" Kind of like BASIC as a command line language. Leaving them with a java shell seems deceptive except as a simplification for the very young.
    Â Boots to console, they type startx. So they see there is a back end.

    This deliberately lays as many fun erector sets as possible within easy reach with big icons plus 24/7 access. I would add a few books, or an Oâ(TM)Rieilly subscription. Or I would conveniently have some beginner books in my library.

    I think having the full Linux platform available â" as in not closed - is important. This way, efforts at exploration are encouraged which is likely far more important long term. Plus that back up.

    I learned Basic at around 12 at a local science center plus school computers, then some high school Lisp. I now do (I think) very good OO C++/Java/XSLT/ etc, so the possible BASIC scaring can be overcome.

  420. Try cocoa by AngusH · · Score: 1

    Some people might like to start off with cocoa. This allows for interesting results from a few lines of code and allows for C and C++ as well as the normal objective C or Java.

    You can start off connecting simple buttons to effects and move on to more sophisticated programs, it has a good collection of pre-written objects too.

    As a personal opinion though I wouldn't recommend Applescript.

  421. Tcl/tk by Anonymous Coward · · Score: 0

    Comes with Red Hat Linux 6.1 cd, and I found a simple use for it, although I am not a professionally trained programmer:

    My Linux Files, Page Two

    I would have loved to have had something like that to play with when I was a teenager. At the time, all we had was Ham Radio, and PC's didn't exist. Only transistors I could get my hands on were the 2N107 (GE) and the CK722 (Raytheon).

  422. Two simple solutions: by gerardrj · · Score: 1

    Teach programming on the older machines.
    Seriously... if you want to teach BASIC, PASCAL, ForTran, C, Assembly; you know, "the standards", why not use antique machines? In just two local second hand shops that I frequent, there are continually at least a few Commodore 64, Tandy CoCo, Apple II type systems about. They usually sell for like $2. It shouldn't be too hard to accumulate 30 or 40 of them to populate a programming classroom or two.

    Or go back to the days of terminals and a central computing system. A modest Pentium II or a Mac G3 system should be able to run at least several classrooms worth of terminals (via serial line MUX or Ethernet) when just simple 50-100 line programs are being compiled and run. Run a basic GNU/Linux or BSD system (like Mac OS X). I learned Pascal by programming on punch cards... nothing makes you want to write good code like a 3 day turn around time for your code run results.
    In this case, the students could use dumb terminals, or generic PCs to connect to the programming environment and program in simple, API and GUI free environments that still protect errant programs from each other.

    --
    Article X: The powers not delegated... by the Constitution...are reserved...to the people
  423. Improve the situation by killing spreadsheets by tonyl · · Score: 1

    OK, I'm not serious. But really: too many people use really dumb spreadsheets to do things they SHOULD be doing in a simple script.

    The other day I was asked to evaluate a tool someone wanted to sell that required some simple input (size of your disk, a few preferences for file systems) and that would output suggested file system layouts. Nice little helpful thing for some folks. I doubt he could sell it for any price at all, but that wasn't my main objection: the darn thing was a big (BIG) ugly spreadsheet.

    I suggested that Perl or VBScript would do this easily, and also suggested that what it probably needed to be is a html form powered by a cgi back end. Heck, ugly and dumb as it would be, they could even get that same spreadsheet to give up its answers to a web page. The response was that they had no one in the organization that could do that and it was too much trouble to learn. Pretty amazing, I think.

    I see spreadsheets used as databases all the time, and of course they are usually awful. The programming effort that goes into building and maintaining these monsters has to be tremendous, but it's "too hard" to learn even a simple thing like Perl.

    --
    -- Tony Lawrence
  424. I know! by briancnorton · · Score: 1

    How about programming in Javascript. Works just fine and is more capable than basic ever was.

    --

    People who think they know everything really piss off those of us that actually do.

  425. SuperCard! by Josuah · · Score: 1

    SuperCard!

    HyperCard was the first environment where I built real tools and applications for my own use, back when I was around 12 or so. Before then, I had done things in Symantec C++, BASIC on VAX, and a little C, but nothing that was actually an application or tool (e.g. Hello World!). Anyone who used HyperCard has got to admit it was an amazing development environment. I actually got a personal finance shareware application (named BalanceBook) on the Shareware Of The Month Club CD and wrote a trade route tool for Federation in HyperCard. I started putting together a Final Fantasy like game in HyperCard too, but I never got around to finishing up the sprites.

  426. assembler by Billly+Gates · · Score: 1
    Tell him or her to write a towers of honia program with 64 disks utilitizing recursion in pure assembler. Nothing like that to interest a potential child into programming. So simple and encouraging.

  427. Python, of course. by Anonymous Coward · · Score: 0

    Python is a terrific language to teach with, and no need to tie the kids down to any platform. Unix, Mac, Windows, whatever. GUI development, command line, web, whatever.

    Small language, very nice standard library, logical.

  428. a cheaper alternative to VB by SHEENmaster · · Score: 1

    Just give them hardware from the 80s! That's what I learned on, several years after the eighties.

    --
    You can't judge a book by the way it wears its hair.
    1. Re:a cheaper alternative to VB by BrynM · · Score: 1

      Or give then basic compilers and basic interpreters that will run on today's hardware. We still teach writing with a pencil and paper. Most learn to ride a bike before learning to drive. Teach them good old basic and avoid trying to re-invent the wheel (unless you've come up with something like Logo).

      --
      US Democracy:The best person for the job (among These pre-selected choices...)
  429. Give the Kids Apple Macs and AppleScript by schappim · · Score: 1

    A very simple combinations give the Kids Apple Macs and AppleScript, throw in apple script and they'll have a small but powerful scripting language which they can make applications out of... ~Marcus

  430. Well, if they've got a Mac... by Squidgee · · Score: 1
    The easiest and most fun place to begin would be Konfabulator. Write your applets in Javascript, and call any command line function (read: perl scripts, python scripts, gcc compiled programs, apps, shell scripts, java, etc) and pipe its output into the applet.

    Not only that but the things are graphically stunning. And, the runtime is free (with a small nag, but no time limit or crippling). I've used it to create a personal applet to check my hotmail account and feed back the number of new messages. It's a beautiful applet, took me ~1 hour, and uses perl for the grunt work. Sweet! =D

    1. Re:Well, if they've got a Mac... by Squidgee · · Score: 2, Interesting

      Err, that link should be to here. Sorry!

  431. Yet Another Car Analogy by Anonymous Coward · · Score: 0

    If you want to teach a kid auto mechanics, you don't start him out on a Cadillac, you start him out on an old Briggs and Straton engine on a push mower. Take it apart and put it back together. Computers are really the same. Get the kid some old PC like a Vic-20 or a C64 where he can actually interact with hardware and the scope is small. I wish so much that I had had one of those when I was starting out...

  432. what basic did timothty use? by Anonymous Coward · · Score: 0

    whats this 10 goto 20, 20 goto 10 garbage?

    whatever happened to good ol 10 goto 10?

  433. I miss BASIC. by 602 · · Score: 1

    I miss BASIC. I refuse to learn object-oriented programming or a complicated programming environment. I just want to crunch a few numbers.

  434. Strange interface by Pseudonymus+Bosch · · Score: 1

    Well, I have downloaded several two or three versions of Squeak and still never got into programming it.

    The barrier I find are the strange interface. It works different from the rest of the operating system. If I press ESC, a frightening window appears to debug the unimplemented event.

    I am also afraid of saving the image. I can easily make changes that I don't know how to revert.

    Maybe it's me having habits from other computer experiences.

    --
    __
    Men with no respect for life must never be allowed to control the ultimate instruments of death.
    GW Bu
    1. Re:Strange interface by pHDNgell · · Score: 1

      I am also afraid of saving the image. I can easily make changes that I don't know how to revert.


      Have it save as a new version. You can always go back to an older version of the image.

      --
      -- The world is watching America, and America is watching TV.
  435. Uh.... by Anonymous Coward · · Score: 0

    Kids don't want to study theory, they want the goddamned box to do something cool. You *need* to give them a language. Not just any language, it has to be interpreted for the instant gratification rewards, and it has to be a hell of a lot simpler than than the stuff that's out there now. To suggest kids should learn a lot of theory or a complex language is elitism at its worst. The key is for kids to have fun at the keyboard. If they want to do more they'll figure it out, but if they just want to screw around, well, that's cool too. They're just kids, dammit. Don't force a lot of dry theory down their throats and take the joy of discovery away from them.

  436. Re:I did some consulting for a school near me and. by Anonymous Coward · · Score: 0

    From one geek to another, that's a touching story man. You did a great thing for that young boy.

  437. there is a demand by Anonymous Coward · · Score: 0

    Most young computerusers of today loves one thing, chatting on irc. There is a client which allows for some pretty hefty scripting and from what I can tell, it's pretty darn popular to make your own script and whatnot in it. Even if they're tied down into the boundaries of mirc I believe this proves that there is a demand for exploring the computer beyond the desktop.

  438. Linux and/or Python by monopole · · Score: 1

    The simplest solution is to simply install Linux, once this has been done you have an embarasement of riches, several dozen languages and enviroments to develop in. Personally I recomend python with pygame . Allowing the kids to code videogames in a page or two of code.
    If you stick to the Windows Enviroment (which, alas will lead to stunted growth, hairy palms, feeblemindedness etc...) simply download ActivePython from ActiveState.com along with pygame from pygame.org. Now you have a full tilt language and an excellent integrated development environment for free (as in beer).
    On the other hand you could simply download brainf*ck http://www.muppetlabs.com/~breadbox/bf/ and a win32 freeware version of vi.

  439. Re:A couple places to start *.HTA by RevAaron · · Score: 1

    Interesting! I've never heard of this. I use Windows at work, but Mac OS X or some other Unix at home, and I really know little about Windows specific development. With this and PerlScript, I could create happy little apps for work that distibute easily, are small, and can run with the base ActivePerl install- no need to get a GUI toolkit. Thanks AC... whoever you are. :)

    --

    Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
  440. YABASIC - free download by sbszine · · Score: 1

    It's called YABASIC and is also available for Unix and Windows.

    --

    Vino, gyno, and techno -Bruce Sterling

  441. Postscript by crucini · · Score: 1
    Someone's got to say it. If you're on Linux, type 'gs' and try this. A really simple program:
    0 60 600 { 50 exch moveto 30 30 rlineto stroke } for

    The gs command prompt is sort of like a BASIC prompt. Add to the drawing:
    0 0 1 setrgbcolor
    0 0 moveto 300 300 lineto stroke

    See? Results in real time. Something better:
    300 300 translate 0 10 360 { 360 div 1 1 sethsbcolor 0 0 moveto 300 0 lineto 300 -20 lineto fill 10 rotate } for

    Yes, I know BASIC is more intuitive. And I'm glad I learned on BASIC - if Postscript was my first language I might be insane. But Postscript is possibly the most beautiful language.
  442. Have you looked at squeak? by Anonymous Coward · · Score: 0

    http://squeak.org/

  443. Bert Kersey, where are you? by Our+Man+In+Redmond · · Score: 2, Informative

    For those of you who weren't paying attention in the early to mid 80s, Bert Kersey was the mad genius behind Beagle Bros Software, the coolest software company out there. Their catalogs were a hoot and their products exhibited a complete disregard for taking themselves seriously (this site will give you some of the flavor of the Beagle Bros style), but their best claim to fame was their software. Not only did they write programs that let you do cool things with your Apple II, they showed you how to do the cool things yourself. They were open source years before its restoration to hipness.

    Maybe what we need is someone who enjoys building marvelous toys and then distributing the plans so we can see how they're built, along with a programming environment a kid can use "straight out of the box". If I were doing this I'd do it in Python and distribute it on a CD with Python interpreters for the major platforms to give a kid the best possible chance of being able to start playing right away.

    --
    Someone you trust is one of us.
  444. What's the point of pointers? by Anonymous Coward · · Score: 0

    "Anybody care to describe the purpose of the damn things to me in a way that actually makes sense?"

    Do you understand the purpose of a shortcut, or a symlink? A pointer points. That's all. Different languages may dictate what it can, and can't point to, as well as what the pointers behavior is when it's pointed to something in particular. You see pointers all around the real world. i.e. Directional signs and signals, treasure hunts, Dewey Decimal. In all the cases pointers give a measure of flexibility to what would otherwise be either rigid, or even impossible. Pointers are in file systems. Add, or take a file away. A list of pointers are manipulated, to keep everything straight.

  445. Re:Do you want to teach programming or development by Our+Man+In+Redmond · · Score: 1

    That's an easy one. Coding first, development later. We're talking about kids here, and coding is a lot more fun than development.

    It's sort of like the difference between "OK kid, here's a piggy bank you can save some money in" and "Son, today I'm going to teach you how to manage your portfolio."

    --
    Someone you trust is one of us.
  446. Examples by Our+Man+In+Redmond · · Score: 2, Informative

    The real problem these days is examples. And I'm not talking about downloading the kernel source to see how to write programs in C, either.

    Back in the Early Days Of Microcomputing (1980, give or take about five years) there were a number of sources for Basic programs that you could type in to your computer. Once they were typed in you could see how the code correlated to what was on the screen. You could also steal, er, ah, learn from the code in building programs you had created yourself.

    Creative Computing, Compute!, 80-Micro, Softside, Beagle Bros (mentioned in another post farther up the page) . . . if we really want kids to get hooked on computers, we need something like what these magazines and companies provided.

    --
    Someone you trust is one of us.
  447. My Programming Tale by Phishpin · · Score: 2, Interesting

    I learned networking instead of programming.

    When I first became interested in computers, we already had Windows 95, a system that didn't lend itself well to absolute beginning programmers that were 10 years old. I did want to learn to program, as learning to network is decidedly more expensive. I started with Qbasic. It comes on the 95 install disk, if I recall correctly.

    I was able to do the rather trivial things in "Qbasic for Dummies". The problem was, I knew they were trivial. And when I showed a program I had written to someone, they weren't all that impressed with a little blip moving around the screen becuase they regularly used apps like Office and played 3D games. I wanted to write things like Office. So I pretty much gave up becuase I didn't really enjoy creating those insignificant programs.

    Fast forward to now, and I can easily amaze Joe User with my networking skills, becuase the things the network does isn't what they typically see while using a computer. Nor are they what I had typically seen. Networking allowed me to do things that I hadn't seen with my own eyes a million times before.

    I have learned some programming skills, mainly scripting (shell scripts, PHP, and a small amount of Perl). I learned to write small scripts primarily to enhance the network or for web development. But put me in front of some C or Java, and I'll look at it and kinda understand what's going on, but not to a point where I could do anything usefull.

    My main problem was my own motivation. I didn't see the end results as being interesting, so never bothered to learn to a degree of usefulness.

    Had I began programming on an Apple II, where I could make graphics similar to what mainstream games looked like, or write an actual useful program, I could have imagined myself being a much better coder.

    --
    -phish
  448. Early feedback is important... by dvd_tude · · Score: 1

    Think back to when you started programming - what you wanted most of all was to get the computer to do something - anything - under your control. Once you gotten that far, you're hooked....

    There's much wisdom in making 'hello, world' a first goal for novice programmers. By the time they've done this they've run through the tool chain at least once. So, make the tool chain to get there as easy and straightforward as possible to build confidence.

    If it's a visual suite, that fine but be prepared to train your young coder on it. Personally I think a simple text editor and a shell (with stdin/stdout/stderr) is easier to master at first. It sidesteps the Byzantine GUI 'window dressing' trap and focuses the young mind on the logic of the program itself.

    I also have a strong bias toward C/C++ as a starter language because of its compactness and that it can allow a young coder close to the bare metal if that's their proclivity. Some people make a case for Java; mastering its initial environment (classpaths and such) could be daunting, and in many ways it's too restrictive.

    Finally, I think providing a dedicated Linux box for your hacker-in-utero helps better foster programming creativity: the tools, languages and sources are all there to be seen, used, and learnt from. Second choice would be OS X, except the hardware is expensive in these days of $100 EPIA boards.

    - dvd_tude

  449. Where there's a will.... by Anonymous Coward · · Score: 0

    IRC, peer to peer, gcc, perl, whatever. Kids who are eager to learn will find a way, legal or not. Just like in the 'old skool' days.

    The only thing that has changed is now the software is more bloated and takes that much longer to download.

    Shrug. This is news?

  450. Oh Poor Friggin' Babies by ReadParse · · Score: 1

    Nothing against the kids themselves, but for crying out loud. Hard to learn to program in 2003? Too bad there's not a free unix-like operating system (actually a few of them) that you can put on any old box that happens to be lying around. Too bad there's no Free Software Foundation to provide a high-quality C compiler. Too bad there's no Perl. To bad there's no Java. Too bad all those things would be so expensive if they existed.

    No wait... they DO exist, and they're FREE. Now if only we could come up with an easy and affordable software delivery method to get these poor bastards the code. If only we could connect all the computers in the world together. Dare to dream.

    Imagine that. If all the computers in the world could talk to each other, it would revolutionize research. Kids learning to code today wouldn't have to buy all those BOOKS... they could just go look up what they need. They could learn to program from the best programmers in world and collaborate in realtime.

    Too bad that doesn't exist. If it did, it would definitely be easier to learn to program than in the 1980s.

    Oh, by the way... don't have an old machine lying around and all you have is Windows? Download Cygwin. How much? Yep... free.

    RP

  451. Why assume that kids need to learn to program? by mikearch · · Score: 1

    While I don't think that the craft of programming will ever go away, given the large number of kids with access to computers I am confident that the supply of programmers will be sufficient. Kids have a very rich source of programming languages and paradigms from which to choose in the Windows environment. Windows scripting, VB Script embedded in IE 6 and MS Office, an almost infinite supply of environments like Java, Python and Perl.

    --
    -- Michael
  452. built in languages by dtfinch · · Score: 1

    Windows has built in languages. Javascript, vbscript, etc.

    Example javascript program. Run it with cscript.exe:

    var con=WScript.StdIn;
    var out=WScript.StdOut;

    out.write("Enter your name: ");
    var name=con.readline();
    out.writeline("Your name is "+name);

    You just can't do much with it, unless you put it into an html page and save it with an hta extension, in which case you can write pages that look like windows applications and run with full permissions. They're very easy to write but they can quickly become unmanageable if you're not careful, and many tasks require ugly hacks.

    Otherwise kids can download decent compilers pretty easily nowadays. In the past, when most computers didn't have internet access, having a built in language like basic was all-important. I suppose that doesn't justify them taking it out though. Linux, on the other hand, usually ships with all the best programming languages.

  453. What can be done to improve the situation? by axxackall · · Score: 1
    Give them Linux CD :)

    Especially Gentoo LiveCD :))

    --

    Less is more !
  454. I hate BASIC! by SHEENmaster · · Score: 1

    All those different methods of linear programming that I figured out had to be unlearned the moment I started with structured programming. IMHO, it was a waste.

    I fooled around with logo on an Apple IIe back in elementary and middle school, when the rest of the world had advanced to much more powerful machines. IIRC, it isn't much more than turtle graphics.

    I recommend a simple, structured language. Something along the lines of PHP, but with a simpler (optional) API and printed documentation. Lego Mindstorms graphical approach is most certainly the WRONG way to do such things.

    --
    You can't judge a book by the way it wears its hair.
  455. It's just not the same. by Anonymous Coward · · Score: 0

    Here is what I did with my first PC, a VZ 200.

    Plug in power.
    Plug it into the TV.
    Turn it on.
    Start programming with help from the manual.

    No grappling with the OS, no downloading stuff, or installing programs. It was ready to be programmed from step one. The closest you would come to emulating that, is to have a DOS system that loads GWBasic or QuickBasic automatically when it boots.

  456. kids figgure it out on their own by heybo · · Score: 2, Interesting

    Being a Father of now an 18 year old that has been playing with computer since he was 10 or so and can say he has found his own path to learning code. Like all kids cool sites and programs are spread by word of mouth and email. Gaming what else hold a young mind! There are a lot of free game writing program out there and have been out there. He wrote his first games around 13 using a free Windows based program writng DOS games in basic. At 15 he got together with 4 of his freinds built their own development team. Built a little DOS based role playing game and even sold it. Imagine letting my 12 year old inside my computer? Personally what I have seen I would rather have a 12 year old inside of there more than someone my age (49 jesus you're an old fart!) Kids these days grow up with it they teach it in the schools, and the kids have a need to figure out what makes it work (ust like the rest of us geeks) I agree that html is a good starting point. I mean what do you need but Notepad and a book of code and the passion to learn. Its a easy (see what I did!) and pretty simple language to learn. Kids understand the pratical application of the language and can see the results quickly through a web browser. After learning html XML is fairly easy and this looks like this is where the world is headed. Notepad is better I think to learn the basics of coding anyway, AND no need for high dollar development software. There is also a plus to this track of learning. High dollar development software does make the job faster and easier (yes I use it yes I do this for a living and time is money) but starting out with it you don't learn what make it work you just "see" it in the WYSIWYG. They also learn to get by and make what they have work. I guess the moral of my dribble is I think will have plenty of good programmers in the future.

  457. Smalltalk is for small people. by chris_sawtell · · Score: 2, Interesting

    Squeak smalltalk is a briliant language for smalls. Runs on all small computers under your o/s of choice. Your work will be completely shareable because the Virtual Machine is identical on all hardware platforms. It leads on to the the most productive language ever created.

    Squeak smalltalk for kids

    Squeak smalltalk for grownups

    Smalltalk for business

    Smalltalk for engineers - Very fast.

    There are many others, have a look through The Smalltalk Portal.

    Just remember that with 30 years of developemnt it just works!

  458. It doesn't stare you in the face by Liberty+BASIC+Guru · · Score: 1
    There are plenty of programming tools aimed at beginners (my own Liberty BASIC is a popular example), but since Microsoft does not promote programming as a high profile activity it really gets no attention. There is no icon on the desktop or in the Start menu that starts up an easy and freewheeling programming language for the masses. I mean how much would it cost Microsoft to employ a couple of people whose sole job it was to develop a version of QBasic for Windows, and then give it away?

    I don't get it.

    -Carl Gundel, author of Liberty BASIC
    http://www.libertybasic.com

  459. It's the magazines by Anonymous Coward · · Score: 0

    I got started programming because back then, computer magazines had type-in lists in them. And they actually had articles about programming.

  460. It's not just Windows... by Jasin+Natael · · Score: 1

    I don't know about anyone else, but I'm trying to get back into programming for PalmOS, and am appalled at the high ($400) price of development for such a cheap machine. My old version of CodeWarrior won't run on my current version of Windows, and demo versions are no longer available without a personal phone call to Metrowerks' sales department.

    I know PRC-Tools is free and available, but it's wounded without a good front-end and graphical form / resource editor under (Cyg)Windows. I don't feel like anyone (specifically me) should have to install another OS just to write software for a third OS!

    Call me a wuss, but I'm a seasoned programmer who doesn't want to deal with this hassle, and certainly wouldn't expect a middle school student to. I know in my heart that the Palm would be a wonderful first platform for young programmers. Some of my best learning was done on an Apple Newton in its own self-hosted development environment (Steve Weyer's NEWT), and my earliest assembly was done for my TI-85. Handheld gadgets are captivating, are simpler than desktops, and make it easy and fun to show off your 1337 5k1lZ to your friends and family.

    Let's do something to reduce the barrier to entry. Until then, let your kids sharpen their teeth on a TI calculator with TI-BASIC. You won't get any closer to the old command-line machines of yesteryear unless you happen to have one in your attic.

    --Jasin Natael

    --
    True science means that when you re-evaluate the evidence, you re-evaluate your faith.
    1. Re:It's not just Windows... by Quixotic+Raindrop · · Score: 1

      This may not help the junior programmer, but if you own a version of the Palm dev tools from Metrowerks, you can get the current version for $199. I realize that getting _in_ requires a significant layout of capital, but continuing isn't that expensive.

      Of course, they used to have the "Discover Programming" series (at least for Win/Mac), something like that might not be too bad for budding PalmOS developer kiddies.

      --
      Only two things are infinite, the universe and human stupidity, and I'm not sure about the former. (Einstein)
  461. Vtcl and Tcl/Tk by Anonymous Coward · · Score: 0

    I am constantly surprised at how few people are aware of and use this useful little tool. I use it on both Windows and Linux as I would use VB...it is a great little substitute for VB on Linux. It is cross-platform, easy to use and very useful. Write code on Linux - works great on other platforms.

    Not that great for basic programming learning but certainly great for learning GUI programming with widgets.

  462. Re:C? C++? Java? Get real! by pHDNgell · · Score: 1

    but try explaining to a kid how classpaths work

    I've had programmers working with me who couldn't figure out how to launch java programs on their own.

    That said, I'd wager that the majority of java programmers couldn't tell you how they could get a ClassCastException when casting an instance of a given class to the exact same class.

    (answer: two different class loaders loaded the class)

    --
    -- The world is watching America, and America is watching TV.
  463. I'm not talking about the program by autopr0n · · Score: 1

    I'm talking about the IDE. No amount of bad coding should cause me to lose that bad code. I shouldn't need to 'error handle' every single loop, and forgeting a single line of code shouldn't cause me to loose hours of work. That's just idiotic.

    --
    autopr0n is like, down and stuff.
    1. Re:I'm not talking about the program by blix5 · · Score: 1

      Sorry, I misunderstood your original reply.

      And you're right - you shouldn't have to lose your work, especially if you save your work before testing the app. :)

    2. Re:I'm not talking about the program by bedurndurn · · Score: 1

      I'm reasonably sure that with the way the IDE works, if you try to run an unsaved program it will first save it, then compile and then run it. So even if it does crash the IDE all the code was just saved prior to running your crappily written program.

  464. Re:C? C++? Java? Get real! by egarland · · Score: 1

    I agree. C C++ and Java are bad options. I'm a Perl programmer so I'm biased when I say this but I would start with Perl.

    Perl is arguably as simple as BASIC but much more powerful when you get into it. The compiler is friendly and spits back nice error messages. The learning curve is gentle, you can get simple things done quite easily. It has libraries that let you extend it to do almost anything. And best of all, it's concepts and syntax bridge well into the rest of the programming world.

    It has loose variables which makes it conceptually easy to start in (and "use strict" for when you are doing real work.) It's interpreted so it's easy to write something, then run it and see what it does.

    print "Hello World\n";

    actually prints hello world. It's a complete program. Perl is able to run parse the output of other programs easily which makes it great for extending other programs to get somthing done.

    It runs well on the currently popular Windows platform but is at home on the *nix's which will likely be popular when a young programmer enters the work force. It also is a great platform to develop web-based apps in which makes it easy to write things that they can show off to anyone in the world.

    I like what I have heard about Python. It seems like a good powerful language. It's probably another good place to start but I would start with Perl.

    --
    set softtabstop=4 shiftwidth=4 expandtab nocp worlddomination
  465. Tell that to kids, and they'll never believe you by epepke · · Score: 1

    I used to dream about having OR and NOT gates. I used to have to build circuits using neon bulbs as negative resistance elements, using resistors and diodes unsoldered from old television sets found on the street powered by wall current filtered using 40 microfarad capacitors salvaged from one-tube kiddie record players.

    (The strange thing is that this was actually true for me. There are an amazing number of things you can do with neon bulbs. You can even use them as input devices--biased with DC between the points of hysteresis, if you touch them, the hand capacitance is enough to make them go on. My 7th grade science fair project on basic computer circuits had a 6-bit binary adder made entirely using neon bulb logic.)

  466. Line Numbers by Anonymous Coward · · Score: 0

    I cut my teeth on ROM BASIC, and I actually appreciate the line numbers. Even though they suck from an advanced point of view, they provided a way to see how the program was flowing. Sure, GOTO 250 is considered poor coding by todays standards, but if you can learn to step through spaghetti code (especially at an early age), you can step trough just about anything. (Thank the maker for the RENUM command though :)

  467. Try learning Bash. by Wolfrider · · Score: 1

    --It doesn't have a GOTO (or equivalent) - which is a major fault, but you can do lots of cool stuff with shell programming.

    --After picking up a Bash programming book from O'Reilly I was able to write quite a lot of helpful scripts that are used almost every day on my Linux boxen.

    http://safari.oreilly.com/?XmlId=1-56592-347-2
    ( Online version )
    http://www.oreilly.com/catalog/bash2/
    ( Print version )

    --
    .
    == WolfriderV6 == I'm willing to admit that *I just might* be wrong... Are you??
  468. POVRAY by Anonymous Coward · · Score: 0

    I am another sad child of the 80's that remember BASIC coding on a ZX Spectrum. At the time it took about 6 months worth of pocket money for me to buy. For that you could probably buy an old Pentium and mod it (windows/lights) and run some cool Op Sys like Vector Linux.

    As other have pointed out, things like Python would make a good start, but the libraries are big and complex.

    Although not easy, I would also recommend kids playing with POVRAY (http://povray.org) as the language is C like (and complex) but you can start by playing with the sample scripts and see the result of tweaking object properties by rending it - which looks nice.

  469. Not quite the same, but by wumpus2112 · · Score: 1
    Nothing taught the horror of spegetti code like trying to cram 48k of basic code into 32k (after "dos") RAM. On an Atari 800 (basic) you had 128 variables, run out of them at your peril. Contants ate up more memory than variables. Of course, your initializtion routines could be overwritten with a little work (of course, you have something like: "press enter to continue/anything else will end the program".

    On the other hand, visual basic 2.0 would probably fit the bill. It worked fine, and didn't try to dump the whole visual studio on you at once.

    Wumpus

  470. Number of coders a harmonic oscillator? by 3.1415926535 · · Score: 1

    Now that I think about it, the number of people entering the coding job market shows all the symptoms of being a damped, driven harmonic oscillator:

    Restoring force: If coding is a "hot" job, more people will want to start. Likewise, if there are too many coders, people will be less likely to start learning.

    Driving force: New people becoming interested in programming through e.g. TI BASIC.

    Damping: The lag time between people becoming interested in programming and entering the job market.

    It would be interesting to see a plot of the number of people entering CS-related jobs vs. time. The gradual disappearence of a default programming language just removes some of the driving force. Hopefully the system is not critically damped...

  471. You guys know Jack Shit about child development by Anonymous Coward · · Score: 0

    Kids should be outside playing in the street, hitting each other, calling each other names and falling in love with unreachables of the other sex.

    They should _not_ be stuck behind a computer at a young age.

    In fact computers should be kept out of reach of kids until they are 15-16 years old. Then if they have talent they'll pick it up fast if not, then they'll become lawyers.

  472. How kids are learning to code... by kris · · Score: 1

    I am a maintainer of the FAQ for the de.comp.lang.php.* cluster of newsgroups and we see quite a lot of beginners coming over. Many of these people have already been creating HTML pages and now want dynamism in their pages, by adding counters and guestbooks. Or they have a site based on some PHP nuke variant or the other, and now want to understand the code and customize it. Often these people do not even know the most basic programming concepts, such as variables, scope, conditionals, loops and the like.

    Using PHP, beginners get going from hour 0, and they have instant gratification because very little code can have rather well visible effects on web pages. Also, PHP has a very gentle learning curve, but goes a long way: Starting with simple echo statements and a few conditionals, PHP reaches up into the realm of low-end application servers (with SRM), touches on issues of concurrency which are often seen in web server environments, handles databases very well, introducing beginners to the concepts of relational databases, and starting with version 5 even has a decent object concept.

    PHP is in no way pure or structured, but this is not really necessary. PHP is not an academic project or tries to make a point. It gets the job done, it gets the idea across, and it does it gently and conveniently.

    Also, it is ubiquitous in hosting environments. At least in Germany, you'd be hard pressed to find web space that does NOT offer some version of PHP, again making it a very common beginners language.

    Kristian

  473. Re:VB? you're joking! by toby · · Score: 1
    Aha! I was looking for an angle from which to push VB off the ledge. BASIC did, and does, stand for BEGINNERS' All-purpose Symbolic Instruction Code, hence the simple imperative syntax, declaration free variables and a myriad of other design decisions meant to smooth the road for beginners. And it works well as a beginner's language - it was the first computer language learned by millions, including myself.

    But it's hard to take VB seriously as a "production" language, no matter how widely abused for real-world purposes, or how cute its IDE is, or how sentimental M$ is about the product that launched their global crime spree.

    Perhaps just a coincidence, but VB is a godawful beer, too.

    --
    you had me at #!
  474. kids are the same... by zogger · · Score: 1

    ...social circumstances and parents differ, and it reflects on the kids education and accumulation of skills. For example, there's still a lot of farm kids who can do an amazing amount of skilled tasks, because it's part of their normal environment, they can weld, operate machinery, repair, construct, etc, because they just do it, it's part of their life. Granted, the numbers are very small *today*, but it's entirely possible and normal and used to be way more common. I would imagine it's the same with computers, either the hard or soft side. Programming simply has to be easier to learn when you are younger, it's closer to being bilingual or multi lingual, almost every expert you can read says it's easier to learn multiple languages the earlier you start. Older folks who learn foreign languages can do it,but it's a bear for them to get so good their accents don't suck, whereas kids raised bilingual can pull it off pretty easy.

    I would have loved it as a kid, there weren't any home computers to play with. My dad was a mainframe guy going way back, but that's all there was, nothing to play with at home. Didn't have a spare several million and a spare building back then for a learning experience, and no way was it taught in schools under college level that I recall. At best they had electronics shop and mechanical drafting. But I learned a lot of other stuff, had my own tools since geez, maybe 6 years old? So long now can't remember clearly, seems like that though, around first grade was when I started getting them, usually hand me downs he gave me, because he did his own carpentry/home repairs and auto mechanics, etc, as well, that stuff I learned, because it was there. Age doesn't has as much to do with it as exposure.

  475. GNU by Anonymous Coward · · Score: 0

    "It used to be that programming was practically an inalienable right for users"

    This is the reason why GNU and the Free Software movement was started! :-)

    I think that a 'GNU-like' revolution for coding on widley availiable consoles is an exelent idea.

  476. TI calculators by Kirby-meister · · Score: 1
    Every kid these days seems to have a calc, and these babies have a BASIC-esque language in them (except the 89 and 92/+ models with use a C-ish BASIC language).

    Or you can always do scripting. It is fun trying to do weird things when you're scripting, because you learn what boo boos are and you become a tad bit innovative getting around certain issues.

  477. Perl/Tk and SciTE, the ideal couple (both free) by franois-do · · Score: 1
    To download Perl 5.8 from ActiveState (free)

    http://www.activestate.com/Products/Download/Get.p lex?id=ActivePerl

    To download SciTE :

    http://www.scintilla.org/SciTEDownload.html

    (I would recommend the download with extensions)

    Have fun ! Tk is a quite good graphical interface, and Perl/Tk used with SciTE is much more pleasant to write small graphic programs than BASICA, GWBASIC or QBASIC ever were.

    --
    Signature omitted in order to save space. Thanks for your understanding.
  478. i'm interested... by i+chose+quality · · Score: 1
    I tried to build a time machine.
    did you succeed? :)
    --
    the computer is online
    i am not at it
    what a waste of ressources
    1. Re:i'm interested... by MikeFM · · Score: 1

      Not that I recall but it was a pretty impresive construction for a toddler. I glued together every penny I could find (100's of them) into a weird spiral pattern and attached wires and batteries and bits of clocks and things like that.

      It should be noted that at around the same age that I managed to melt my babysitters etch a sketch by trying to turn it into a computer. I wrapped wire around the handles and tied the other ends around the handles of some nice lil metal scissors.. which I then tried to plug into an outlet.

      Maybe I watched to much tv as a kid. (I was also pretty seriously injured trying to learn to fly.) I've still got the builders itch though. ;)

      --
      At what price learning? At what cost wisdom? The price is a man's peace of mind, and the cost is his life.
  479. Bingo! by Moraelin · · Score: 1
    Everyone seems to miss that point: that as a kid I didn't want to learn programming just for programming sake. I wanted to make cool games.

    The '10 PRINT "Hello World!"' stage was a step to that end. But the very second program I wrote was a (very primitive) level bombing run simulation.

    So the points are:

    1) And in BASIC that all easy. You just needed to print some characters at given positions, and your games were (almost) as good as shrink wrapped titles. Before moving on to complex stuff, you saw some feedback on your efforts on simple stuff.

    To that end, I _pity_ the poor kid who gets Linux and GCC to get him started. Or Java. Or Microsoft Visual C++. What's the poor kid going to do with THAT? Learn a _ton_ of X (or Win32 or Swing) programming before he can even see his first mini-game working at all? Good grief!

    2) It didn't look discouraging. On a ZX-81 games were really primitive. Noone, not even the biggest software house, could do more than blocky characters as graphics. It was easy to think "hey, I can make one of these too." And indeed you could. See again point 1. You saw some positive feedback for your efforts.

    Nowadays... well, if you were 12 nowadays and you saw Unreal Tournament 2003... would you think the same? And could you really? In C++ or Java? And are you going to make all those 3D models and textures alone? Dream on. Basically this time the feedback for your efforts would be _negative_ for a long time.

    So what to do?

    Well, as you've said, give the poor kid a _game_ construction kit. It may be Pygame, or one of the many other freeware game building kits out there. I can think of half a dozen just for RPGs. (And at least two scriptable MMORPG engines.)

    _That's_ what the kid needs. Something where it's (A) easy to get some minimal scripting done, and (B) quick to get some positive feedback. I.e., where it at least _looks_ like "hey, I'm actually making a game here."

    --
    A polar bear is a cartesian bear after a coordinate transform.
  480. Linux and choice by srussell · · Score: 1
    Linux is a much better learning environment than Windows, simply because of how open it is.

    I learned on an Apple II, starting with Basic. Basic had a low cost of entry, so it sucked me in pretty quickly. Soon, I was coding in 6502 assembly, optimizing critical pieces of code. The memory map was fixed, and the entire machine was easy to dig into and poke around it. In fact, 'peek' and 'poke' were the terms for mucking about with the guts of the machine. This was an amazingly useful learning process in a number of ways. First, I learned a lot about how computers work, pretty close to the metal. It also gave me a huge appreciation of high level languages.

    Today, I'd recommend starting coders with a high level language, such as Ruby, and encourage them to recode critical sections in assembly as a linked library. This isn't much different than how I'd program commercially, only I'd only drop down one level to a compiled language, such as Haskell or C for the critical sections; most compilers can do a better job at optimization than I could coding the assembly by hand, anyway.

    It is easier to do this with Linux than Windows. There's less OS overhead, and more variety in tools. It is still a much more complex system than an Apple II, but is much more open than Windows.

  481. however by da2 · · Score: 1

    with our playstation 2 YaBASIC was included on the demo disk, infact the first thing i did with it was grab my USB keyboard and start messing with it. Who ever said games consoles couldnt be educational.

  482. peter pan advice applied to the universe by LifesABeach · · Score: 0

    Invincibility is defense. Vincibility is attack. Defend and one has a surplus. Attack and one is insufficient.

    i believe that the city fathers of carthage, and the employees of the twin towers in new york could debate this statement on point.

  483. FP is efficient by Blackheart2 · · Score: 1

    We ought to use them to teach children those languages that are immensely powerful yet, judged by our standards, too inefficient to be practical.

    Functional languages are not inefficient. Haskell programs in particular are much faster than equivalents written in scripting languages like Python or Perl, which are widely deployed in industry, because they can be compiled in an efficient way. With Haskell, space usage can be a problem for naive users, but in call-by-value languages like SML and Ocaml that problem disappears as well.

    --

    BH
    Fools! They laughed at me at the Sorbonne...!

  484. Re:Java Applets by wrfink · · Score: 1

    Having applets is a nice thing if the younger coder is interested in having something viewed from a web page. I'm thinking of a "Young" developer as being in Jr. High.
    Applets, and maybe Java, might be overwhelming for anyone below the 6th grade.

  485. Have'm learn like I did.... by CharlieG · · Score: 1

    Hand them a bunch of pencil fill-in type "Punch cards" and WAIT 3 days to get your output back

    That'll teach'em

    (Feeling really OLD today). I can remember the Apple ][ and the Commodore PET/CBM series coming out, and wishing I could get my hands on it! My 2nd year in HS, you actually got to use ....

    The teletype!

    If you can't remember the JOY when folks came out with cheap (read under $200) 300 baud modems, you have not been doing this long enough

    And yes, this is a poor attempt at being funny, but true

    --
    -- 73 de KG2V For the Children - RKBA! "You are what you do when it counts" - the Masso
  486. what a fucking dork by Anonymous Coward · · Score: 0

    some of us were out getting LAID when we were 12. Not writing BASIC on paper at our grandma's house.

  487. StarLogo by Anonymous Coward · · Score: 0

    No contest. Cute turtles, clear language, instant graphical results.
    here

  488. Re:Java? No, maybe python... haken at dying.com by Anonymous Coward · · Score: 0

    having fun? you seem to have a lot of time there. you know why? you are almost out of a job because you are at a failing .com. and judging from the FUCKING CRAP you write, you probably have a major role in said .com's failure.

    you cant fucking say aything without code samples, fuck, and then you hide behind NDA. you are a fucking poser loser asshole whitepaper fucking fag. SHUT YOUR FUCKING MOUTH.

  489. GW are initials by xintegerx · · Score: 1

    GW were initials of a Gary Wozniak (I know, I know) or somebody else who wrote it. One of the founding members of Microsoft.

  490. Windows has Many FREE programming tools by oldCoder · · Score: 1
    Built in, you have Windows Scripting host. This has two different language front ends you can use to build stand-alone non-gui programs. VBScript and JScript. Yes, the same JScript you use for web pages. No, you don't need to use a web page or browser or HTML with it. I recommend downloading the latest stuff if you're going to use it. If you have a Windows XP you're all set, but I'd recommend downloading the "JScript Documentation" or "VBScript Documentation" or both. If you have an older system, like windows 9x or even Me, you may as well download the "Microsoft Windows Script 5.6 Download" for your system. Otherwise you might be stuck with version 5.5, or whatever is on your system. 5.6 is just better.

    This is the programming system that is so powerful that the virus writers all use it for those HTML and Outlook email viruses. And the documentation is very complete and thorough. And it's on every windows machine. These languages also have an object model that can be used to program every aspect of a windows client or server machine, including active directory. Look up WMI and ADSI to learn how to use VBSCript and JScript to totally control your windows system or entire network. Also, you can look up those two keywords on Amazon if you want to spring for a book. Furthermore, there are web sites with lots of free scripts that run on Windows.

    Plus, you can get free cygwin tools from cygwin.com that will enable you to program in all those GCC languages.

    Plus, you can download a FREE Java environment from the Sun website. Mostly command line.

    Plus, you can download for FREE, the entire suite of .NET Framework programming tools, at this web page, provided you are willing to live with Command Line tools! You are slashdot, are you willing to live with command line tools to use FREE C# and so on? It's a big download, though.

    Plus, you can download FREE perl and Python, already compiled and adopted to Windows from Active State.

    Wait -- there's more! Batch files! The latest 32 bit OS's have a powerful batch system with real if-then-else structure! And, on XP, it's even documented !.

    Wait -- there's more! Inside Cygwin, there's emacs, and inside emacs, there's Elisp!.

    Complete enough for you?

    No? Okay how about free command line C++ compiler from Borland?

    --

    I18N == Intergalacticization
  491. Wait! There's More! by oldCoder · · Score: 1
    Even more free programming tools for Windows (than my first post).

    For children, try LOGO. The programming language developed for kids!!

    Also, try Kids Freeware for other ideas.

    --

    I18N == Intergalacticization
  492. COBOL is the language... by hayriye · · Score: 1

    So as a responsible parent, you can read and understand what your little kiddie is trying to do...

  493. Waaaaaa! by DanAnderson26 · · Score: 1

    I'd love to have had it "so hard".

    Some thoughts...
    1. Notepad + i.e = scripting
    2. PHP
    3. perl
    4. The other 1,000,000 free compilers here (or a hundred other such lists): http://www.thefreecountry.com/compilers/
    5. The MASSIVE amount of free information, tutorials and source code available

    ANYONE with access to a PC and the internet cannot whine about not having qbasic/BASIC/etc. It is a non-issue. I only learned basic because my vic20 had (er has) it. I wanted to learn a "real" language, but there were no free compilers, damn little PD source, and few free tutorials.

    Dan