Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×
Programming Education IT Technology

The Little Coder's Predicament 1073

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?"
This discussion has been archived. No new comments can be posted.

The Little Coder's Predicament

Comments Filter:
  • by A nonymous Coward ( 7548 ) * on Wednesday June 11, 2003 @11:00AM (#6171093)
    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.
  • by Vengeance ( 46019 ) on Wednesday June 11, 2003 @11:02AM (#6171119)
    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.
  • by pir8garth ( 674943 ) on Wednesday June 11, 2003 @11:02AM (#6171123)
    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...
  • /.ed? (Score:2, Interesting)

    by PetWolverine ( 638111 ) on Wednesday June 11, 2003 @11:02AM (#6171134) Journal
    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.
  • by Amadaeus ( 526475 ) on Wednesday June 11, 2003 @11:02AM (#6171142) Homepage

    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.

  • Where to start? (Score:5, Interesting)

    by eli173 ( 125690 ) on Wednesday June 11, 2003 @11:04AM (#6171170)
    Hand them a Knoppix CD and a book on Python.

    Or let them get python for Windows, if you must.
  • IBM's Robocode (Score:5, Interesting)

    by capedgirardeau ( 531367 ) on Wednesday June 11, 2003 @11:05AM (#6171197)

    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 [ibm.com]

    Covered on slashdot here:
    Robocode Rumble: Tips From the Champs [slashdot.org]

    And here:
    Learning Java Through Violence [slashdot.org]

  • by Viol8 ( 599362 ) on Wednesday June 11, 2003 @11:09AM (#6171257) Homepage
    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?
  • Text Adventure Games (Score:5, Interesting)

    by thrillseeker ( 518224 ) on Wednesday June 11, 2003 @11:09AM (#6171261)
    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 [inform-fiction.org]. 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.
  • by levell ( 538346 ) on Wednesday June 11, 2003 @11:09AM (#6171266) Homepage
    By the time linux is commonly found on little coders computers, Gambas [sourceforge.net] should be a nice solution as a visual, free basic.
  • good ol times (Score:2, Interesting)

    by n0mad6 ( 668307 ) on Wednesday June 11, 2003 @11:09AM (#6171267)
    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.
  • by NixterAg ( 198468 ) on Wednesday June 11, 2003 @11:11AM (#6171296)
    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.
  • by larko ( 665714 ) on Wednesday June 11, 2003 @11:11AM (#6171302) Homepage
    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.
  • by amper ( 33785 ) on Wednesday June 11, 2003 @11:16AM (#6171379) Journal
    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.
  • Python (Score:5, Interesting)

    by Dot.Com.CEO ( 624226 ) * on Wednesday June 11, 2003 @11:19AM (#6171436)
    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.

  • I face this problem. (Score:5, Interesting)

    by jdclucidly ( 520630 ) on Wednesday June 11, 2003 @11:21AM (#6171470) Homepage
    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.
  • by schon ( 31600 ) on Wednesday June 11, 2003 @11:21AM (#6171474)
    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 [ibm.com] 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.
  • by Snaffler ( 311068 ) on Wednesday June 11, 2003 @11:27AM (#6171560)
    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.
  • by jmccay ( 70985 ) on Wednesday June 11, 2003 @11:30AM (#6171603) Journal
    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.
  • by F1_Fan ( 255672 ) on Wednesday June 11, 2003 @11:32AM (#6171633)
    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...
  • 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.
  • Maybe Kiddie Knoppix (Score:2, Interesting)

    by Aging_Newbie ( 16932 ) * on Wednesday June 11, 2003 @11:33AM (#6171656)
    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.

  • Game Maker (Score:4, Interesting)

    by httptech ( 5553 ) on Wednesday June 11, 2003 @11:35AM (#6171680) Homepage
    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/ [cs.uu.nl]

  • by tmoertel ( 38456 ) on Wednesday June 11, 2003 @11:37AM (#6171712) Homepage Journal
    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 [haskell.org].

    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 [teach-scheme.org]. 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.

  • by Eight 01 ( 614650 ) on Wednesday June 11, 2003 @11:40AM (#6171752)
    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.
  • by jandrese ( 485 ) * <kensama@vt.edu> on Wednesday June 11, 2003 @11:44AM (#6171816) Homepage Journal
    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.
  • by RevAaron ( 125240 ) <revaaron AT hotmail DOT com> on Wednesday June 11, 2003 @11:45AM (#6171819) Homepage
    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.
  • Re:Except... (Score:4, Interesting)

    by John_Booty ( 149925 ) <johnbooty@NOSPaM.bootyproject.org> on Wednesday June 11, 2003 @11:55AM (#6171952) Homepage
    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
  • by dadragon ( 177695 ) on Wednesday June 11, 2003 @11:58AM (#6171989) Homepage
    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++ :)
  • by Bungo_go ( 680607 ) on Wednesday June 11, 2003 @12:01PM (#6172018)
    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.
  • 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 [angelfire.com]

    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.
  • by HydeMan ( 638036 ) on Wednesday June 11, 2003 @12:05PM (#6172072)
    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.
  • Lego Mindstorms! (Score:2, Interesting)

    by ghztew ( 635132 ) on Wednesday June 11, 2003 @12:12PM (#6172158)
    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.
  • by Transient0 ( 175617 ) on Wednesday June 11, 2003 @12:12PM (#6172159) Homepage
    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.
  • by Alioth ( 221270 ) <no@spam> on Wednesday June 11, 2003 @12:15PM (#6172198) Journal
    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).
  • Re:Python (Score:3, Interesting)

    by leoboiko ( 462141 ) <leoboikoNO@SPAMgmail.com> on Wednesday June 11, 2003 @12:19PM (#6172239) Homepage
    I'd add two points:a large amount of useful libraries, and good "non-programmer tutorials" - including a free book [ibiblio.org].

    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!
  • Why "improve" it? (Score:2, Interesting)

    by Tablizer ( 95088 ) on Wednesday June 11, 2003 @12:23PM (#6172282) Journal
    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.
  • Re:Python (Score:5, Interesting)

    by Electrum ( 94638 ) <david@acz.org> on Wednesday June 11, 2003 @12:38PM (#6172467) Homepage
    The Windows port is very good and allows access to Windows Widgets with a minimum of trouble.

    Pygame [pygame.org] 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 [amazon.com] as an excellent introduction to Python.
  • by jitterbug ( 38915 ) on Wednesday June 11, 2003 @01:09PM (#6172828)
    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 [squeakland.org].

    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â

  • by hether ( 101201 ) on Wednesday June 11, 2003 @01:19PM (#6172939)
    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.
  • Why no Assembly ? (Score:1, Interesting)

    by T40 Dude ( 668317 ) on Wednesday June 11, 2003 @01:24PM (#6173003)
    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.
  • Re:Java (Score:2, Interesting)

    by wrfink ( 563002 ) on Wednesday June 11, 2003 @01:25PM (#6173009)
    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 [eclipse.org])
    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 [eckelobject.com]
    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 [ibm.com] or Race using CodeRally CodeRally [ibm.com]
  • by Alioth ( 221270 ) <no@spam> on Wednesday June 11, 2003 @01:31PM (#6173078) Journal
    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!
  • by JohnFluxx ( 413620 ) on Wednesday June 11, 2003 @01:51PM (#6173304)
    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.
  • Re:Except... (Score:3, Interesting)

    by M. Skjellyfetti ( 680624 ) on Wednesday June 11, 2003 @01:56PM (#6173362)
    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.
  • by Rinikusu ( 28164 ) on Wednesday June 11, 2003 @02:38PM (#6173777)
    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?
  • POV-Ray (Score:3, Interesting)

    by Pall Agamemnides ( 673074 ) on Wednesday June 11, 2003 @03:24PM (#6174249)
    POV-Ray [povray.org] 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 [povray.org]. You can also read and write text files, etc.
  • by Marc2k ( 221814 ) on Wednesday June 11, 2003 @03:32PM (#6174346) Homepage Journal
    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.
  • by richieb ( 3277 ) <richieb@@@gmail...com> on Wednesday June 11, 2003 @04:14PM (#6174811) Homepage Journal
    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?

  • by Kismet ( 13199 ) <pmccombs AT acm DOT org> on Wednesday June 11, 2003 @04:19PM (#6174864) Homepage
    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.
  • by MikeFM ( 12491 ) on Wednesday June 11, 2003 @05:03PM (#6175373) Homepage Journal
    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.
  • Brings Back Memories (Score:3, Interesting)

    by ShonFerg ( 652824 ) on Wednesday June 11, 2003 @05:43PM (#6175775)
    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.
  • by Squidgee ( 565373 ) on Wednesday June 11, 2003 @06:44PM (#6176244)
    Err, that link should be to here [konfabulator.com]. Sorry!
  • My Programming Tale (Score:2, Interesting)

    by Phishpin ( 640483 ) on Wednesday June 11, 2003 @09:03PM (#6177277)
    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.
  • by heybo ( 667563 ) on Wednesday June 11, 2003 @10:23PM (#6177850) Homepage
    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.
  • by chris_sawtell ( 10326 ) * on Wednesday June 11, 2003 @10:24PM (#6177859) Journal
    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 [squeakland.org]

    Squeak smalltalk for grownups [squeak.org]

    Smalltalk for business [cincom.com]

    Smalltalk for engineers [exept.de] - Very fast.

    There are many others, have a look through The Smalltalk Portal. [smalltalk.org]

    Just remember that with 30 years of developemnt it just works!

Living on Earth may be expensive, but it includes an annual free trip around the Sun.

Working...