Slashdot Mirror


Programming For Terrified Adults?

makeitreal writes "My mom is getting bored with learning the basics of email and has mastered Solitaire. She asked me what I do on my computer and I told her that I was teaching myself programming in Scheme. She expressed an interest in learning what I was doing, but I tried to teach it to her with the HtDP and we didn't even get past the introductory chapter. Everything I've looked at so far seems too complicated (Scheme, Python, VB) or too childish (Logo, Squeak, Lego Mindstorms). Is there anything in the middle that is also cheap/free and suitable for adults? Or should I give up the whole idea?"

184 of 909 comments (clear)

  1. HTML by Q-Hack! · · Score: 4, Insightful

    is a good choice...

    --
    Some days I get the sinking feeling Orwell was an optimist.
    1. Re:HTML by BorgDrone · · Score: 3, Insightful

      HTML is a markup language and has little to do with programming.

    2. Re:HTML by colinemckay · · Score: 2

      I second this suggestion.

      HTML basics are pretty simple, you get results quickly, and the tools are readily available.

    3. Re:HTML by sokk · · Score: 2, Insightful

      One of the teachers I had on high school gave me a negative score on a test because I wrote that HTML is not a programming language.

      I still stand by this, I even argued with him - but he meant he was right.

      It's Hypertext Markup Language. Far from programming. The closest thing must be javascript, which isn't HTML at all.

      Anyways, my point is HTML is not programming. It's markup.

      But your point may be valid, it's something to do -- but it isn't programming.

    4. Re:HTML by colinemckay · · Score: 5, Insightful

      Tables can be pretty involved, if you a just using notepad as an editor.

      However, the point of learning HTML first is that it teaches you a few concepts that will be helpful in programming, namely the importance of structure and correct spelling and grammar in order to generate the desired results.

      It is also simple to teach, and gives results quickly, and most people have the tools already on their computer, namely a browser and a text editor.

    5. Re:HTML by ejaw5 · · Score: 5, Insightful

      HTML isn't a "programming" language, but through use it does demonstrate some "programming concepts. When you start using HTML POST/GET forms you start learning about variable naming. Then, moderate use of JavaScript introduces if/else, loops, as well as more variable concepts. So, with those experiences learning C, JAVA, or whatnot will mostly be learning syntax. Getting more advanced, you could venture into data structures and OOP.

      --

      $cat /dev/random > Sig
    6. Re:HTML by Pxtl · · Score: 2, Insightful

      Absolutely. Directly oriented with how she _uses_ the computer.

      Another good one is Visual Basic 6. I know many computer-illiterate people who picked that up - it seems natural to them, as it looks and feels like making a typical MS program.

      If she wants to automate her daily computer tasks in a fun and easy way or make simple action games, I recommend Python. Its imposing at first, but IMHO its the easiest text language to learn and tinker with (want to know what does what? Help(modulename) ). Python is the language all computer n00bs should learn. Easy sequential programming that can lead to GUIs, games, full OOP, etc. and all relevant packages are easy to get and learn.

    7. Re:HTML by dogfart · · Score: 3, Funny
      I'm a dyslexic agnostic with insomnia... I lie awake at night wondering if there really is a dog!

      I'm a dog. I lie awake at night wondering if my owner is really a dyslexic agnostic.

      --

      "dope will get you through times of no money better than money will get you through times of no dope"

    8. Re:HTML by rrhal · · Score: 2, Insightful

      I respectfully disagree. It's certainly not a general purpose language. But one can arange commands in a logical sequence to produce a desired outcome. That pretty much programming as we all knew it as beginners.

      Learning HTML would be a good way for her to get some basics down. After she bumped into the limits of HTML maybe she would see why someone would go for VB or perl script.

      --
      All generalizations are false, including this one. Mark Twain
    9. Re:HTML by raduf · · Score: 2, Insightful


      Javascript.

      Try not to freak at the ideea: if you aren't too serious about programming and don't intend to do big things it's actually ok.

      - no need for a complicated programming environment, notepad will do
      - quick gratification - first "programs" will likely do something visual
      - fully functional programming language. I read somewhere it's the simplest language that's also turing complete.

      You have to mix it with html of course but if you keep a clean separation between javascript code and html code everything will be fine :)

    10. Re:HTML by Vancorps · · Score: 2, Insightful
      You sir do not know html. It does indeed have variables which you use when dealing with forms.

      That said html can be learned in a few hours so yes it does indeed help programming because you have to plan out what you want especially when dealing with complex tables.

      The ability to manipulate text to produce an image in your head is a very key concept when programming.

      Also, very few people ever learn html without learning css and javascript in which case you would be woefully incorrect because javascript supports a great deal and contains most basic programming concepts. Its still not C but its a hell of a lot closer and produces real results a hell of a lot faster. Plus when you learn javascript you learn a bit about C syntax so jumping over is quite simple.
    11. Re:HTML by Tony-A · · Score: 4, Insightful

      so spending weeks learning HTML when you want to learn how to program would be completely down the drain

      Just like learning the alphabet would be a waste if you wanted to learn to write.

      You have to know how to start, how to stop, and what you can put inside what. Each different language has its own peculiar rules, with an emphasis on peculiar.

      I doubt that HTML itself is Turing-complete, but it can easily be made so by running it through PHP or JSP.

    12. re: HTML by Anonymous Coward · · Score: 2, Interesting

      Don't write off Lego Mindstorms. It was used in my MSc class to teach the basics of programming to non-techies. It has the advantage of showing off the program you have created in the real world by getting the robot to do something interesting. It also teaches the basic things like subroutines, how to debug problems, counters, etc. In your shoes, I'd borrow or buy a kit, and give it a go.

    13. Re:HTML by Total_Wimp · · Score: 2, Insightful

      Plus it solves three of the biggest problems with teaching programming:

      you get instant results.

      debugging is very visual and very easy.

      the results of your "programming" can look really cool thus making the "programming" itself seam cool. (big problem with most "hello world" type programs.)

      As you go on to more advanced concepts these advantages go away to some extent, but hopefully by then the student will be in more of a position to not need these advantages.

      TW

    14. Re:HTML by Weirdofreak · · Score: 5, Insightful

      I went from HTML to Javascript to Perl.

      HTML: Not programming, but as far as a terrified adult is concerned, what's the difference?
      Javascript: Start off learning to write HTML to your pages and ask for names via prompts and stuff. Annoying, evil stuff, but it makes you wanna learn more. Before you know it you're on to using it to solve logic problems or what have you.
      Perl: This wasn't due to prompting from Javascript, just ego (my brother knew it), but if I hadn't known Javascript I would have thought it far too complex. The fact that it's easier is irrelevant, it can read/write files, therefore it's harder. It also can't do any of the flashy stuff Javascript can wihout a LOT of fiddling around with complex modules, so there's not much reason to learn it until you realise what it CAN do, such as wordsearches.

    15. Re:HTML by dallask · · Score: 4, Insightful

      It will show her instant results without having to understand the complexities of programming... It will give her something to try without taking alot of time... and it will allow her to see if this is something she wants to get deeper into.

      When she is ready to get deeper into it, show her PHP and she can get all the control structures she wants... and build on what she knows...

      If you start her out in an application language, then it would take years for her to get to the point where she could actually write a functional application...

      But if you start her out in HTML then in just a few days she can have her own web page... That alone will give her a since of accomplishment. Even if it does in up on www.webpagesthatsuck.com :)

      --
      The Code Ninja is swift with his tool, precise in his delivery, and deadly accurate in his execution.
    16. Re:HTML by cloudmaster · · Score: 2, Interesting

      The problem is that HTML "intrpreters" as well as ECMA Script (Java Script, JScript, etc) are very lax as far as enforcing good syntax. While I *love* Perl, I think it'd be an awful first language for many. A beginner needs a language that doesn't let them develop really bad habits so easily. Some would argue that it's more important to get someone "hooked", which is more easily done with something that will let them make mistakes - but I think it's more useful to use a language that identifies the error and doesn't work until the error's fixed. I'm not saying that Fortran or any other evil whitespace-dependent languages are the way to go either, but I do think that something like Scheme or even Java would be a good starting point. You want lots of sample code (java.sun.com) and a compiler that tells you where the syntax error is (javac). You don't want the program to either run or, worse, appear to run without giving you any debugging info (javascript under IE).

      Sure, if the "teacher" is gonna guide the "student" and drill good practices in, that's fine. But the Javascript and HTML that's to be found on the web is 95% awful code - so I personally think that'd be a bad choice for a first language. That's my 50 cents, anyway.

    17. Re:HTML by OmegaGeek · · Score: 5, Insightful

      But if someone learns to make web pages with HTML, they learn a certain level of abstraction that is fundamentally necessary for any basic sort of programming. I teach computer science in a high school, and we start with HTML for this very reason. By the time they can write img tags and link tags, students have started internalizing the idea that these funny written symbols can produce something more concrete.

      BTW, I recomment Logo for the very same reason - IIRC, it was designed to present abstract concepts in a concrete, visual-kinesthetic way. In the past I have started a class with turtle graphics and progressed to having them write a simple 8 bit binary adder by writing functions for various logic gates and combining them.

      --
      Even heroes have the right to dream
    18. Re:HTML by los+furtive · · Score: 5, Insightful

      True, but it is a good introduction to other more involved laguages.

      In what way ?

      In this way:

      1. It shows the user that most programming can be done by a text editor alone (lets not confuse her with a compiler just yet).
      2. It shows her how important syntax can be.
      3. It gives tangible results very quickly.
      4. After you've created a static page, you can introduce her to JavaScript... a programming language that again doesn't require a compiler but contains a C like syntax, gives her a feel for conditions, arrays, loops and even regex if she wants to go there. Best of all it is simple, has loosely typed variables and runs from just about any browser. Plus Mozilla has an excelent debugger.
      5. After she's figured out how for loops and comparators and functions work and realizes she can only do so much with JavaScript, introduce her to a server side language, and go crazy from there.
      But the most important reason of all I can think of starting her off with HTML, is because she can show off her work to her friends, both faster and in a much more impressive manner than writing something in perl/c/c++/java/vb/python/whatever, and they will be able to appreciate it.
      --

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

    19. Re:HTML by ibbey · · Score: 4, Insightful

      The problem with learning to program is that unless you can forsee a possible use for it, it's hard to be motivated to follow through with the studies. Your Mom may want to learn programming in the abstract, but the challenge is enough to keep her from following through since she doesn't really know what she'd do with the skills once she's got them.

      HTML is the perfect answer to the problem. With even basic HTML she can do something productive. Help her come up with an idea for a web site (Geneaology, recipes, particle physics, whatever interests her...) & put her to work.

      Once she has basic HTML, Skip Javascript & go straight to PHP. By the time she's here, she'll probably have some ideas on what she can do with the language, so she'll be more motivated to tackle the (fairly shallow) learning curve.

      As far as more traditional programming, I highly recommend Ruby (though the site is down temporarily). It has all the power of a language like Perl or Python, but it's syntax is quite clean and simple, and close enough to natural english that the code quite readable even if you don't know the language. For anyone new to programming who wants to write things that are in the realm of a scripting language, I wholeheartedly recommend it.

    20. Re:HTML by Weirdofreak · · Score: 5, Insightful
      Pros:
      • Strict (some would see this as a con; I don't)
      • Simple implementation of variables
      • Nice effects; nobody wants to learn a language when all they can do to begin with is make white text on a black screen
      • Similar syntax to many other languages (C[\W]*, Java, Perl)
      • If taught properly emphasises the importance of good programming
      • It can't do anything to screw up your system unless you have ActiveX enabled and plenty of skill; most other languages will never screw anything up accidentally, but it can be hard to convince people of that
      • It may just be me, but I never had a problem with OOP, and I think that that's because I started with it.


      Cons:
      • Requires at least basic knowledge of HTML
      • If taught improperly... I don't wanna think about it
      • Browser incompatibilities
      • You could easily stop having mastered the flashy bits and not get on to important things like user-friendliness
      • Can be hard to debug; the error messages usually suck and I've never been able to figure out Venkman
      • Too easy to confuse with Java


      I'd say it would be a good 'second start', the first one being HTML. Just make sure you don't give them a book/tutorial that emphasises flashiness, uses browser detects (unless there really isn't any alternative), fails to acknowledge the existance of other browsers than IE, or is in general plain stupid. The site having Javascript errors is a sure sign of wanting to stay away.
    21. Re:HTML by FFFish · · Score: 2, Informative

      That wasn't as out-to-lunch a suggestion as others have made it to be. Though I'm not at all confident you meant it to be taken seriously.

      Starting her with HTML will teach structure and will provide immediate feedback. It's also dead easy to learn, and if she has an interest and some webspace, she can be immediately productive.

      The next step would be CSS, from which she'll learn some neat concepts about side-effects and referencing and suchlike. Again, dead easy to learn.

      Finally, she'll want to get into CGI and Javascript and suchlike, which is where she'll start to learn real programming -- all the while being immediately productive and getting immediate feedback.

      Once she's there, it's not at all a large step to programming stand-alone or web applications.

      So, yes, HTML would be a good start. It isn't programming, but it is a step in the right direction, is easy, is productive and useful, and will help her decide if she really wants to commit to the big enchilada.

      --

      --
      Don't like it? Respond with words, not karma.
    22. Re:HTML by los+furtive · · Score: 2, Informative

      The problem is that HTML "intrpreters" as well as ECMA Script (Java Script, JScript, etc) are very lax as far as enforcing good syntax.

      HTML lax? Absolutely.

      ECMAScript? No way jose.

      JavaScript/JScript may be lax in following ECMAScript standards, but if you don't follow the syntax, it blows up in your face as soon as its called. I think HTML is lax, but still requires enough accuracy that it can reward the person with results, while not driving them nuts with nitpicking of details, while JS will turn it up a notch when the time comes.

      --

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

    23. Re:HTML by Eideewt · · Score: 2, Funny

      Because it's a waste to hit caps lock again after only one letter.

    24. Re:HTML by cortana · · Score: 3, Funny

      Your caps lock has a limited number of presses? :)

    25. Re:HTML by eurleif · · Score: 2, Informative

      But is deprecated markup which won't even be in future versions of HTML. Proper HTML, like and doesn't specify appearance (italic and bold), it specifies meaning (emphasized and strongly emphasized). A visual browser could make flash and be red instead of italic, and that would be perfectly within the HTML standard.

    26. Re:HTML by prodangle · · Score: 5, Funny
      One of the teachers I had on high school gave me a negative score on a test because I wrote that HTML is not a programming language.
      Dear Miss Manners:
      My home economics teacher says that one must never place one's elbows on the table. However, I have read that one elbow, in between courses, is all right. Which is correct?

      Gentle Reader:
      For the purpose of answering examinations in your home economics class, your teacher is correct. Catching on to this principle of education may be of even greater importance to you now than learning correct current table manners, vital as Miss Manners believes that is.

    27. Re:HTML by MillionthMonkey · · Score: 4, Informative

      The PHP and JSP are Turing complete. The resulting HTML is not- it's output.

      Still, whether or not HTML is Turing complete is irrelevant. If you look at the mistakes that most beginning programmers make, it's that they have no understanding of the human-machine interface. They don't know how to communicate their intentions into forms that computers can understand.

      People are used to conversing with people, not computers. Telling people what to do is much different than telling a computer what to do.

      First of all computers have no common sense, and a human being has a variable amount of common sense that can be depended upon. So beginners write code like this, relying on the computer's common sense to fix it for them:


      begin
      readln("Number of Apples", apples);
      readln("Number of Carrots", carrots);
      readln("Price for 1 Apple", a_price);
      readln("Price for 1 Carrot", c_price);
      writeln("Total for Apples", a_total);
      writeln("Total for Carrots", c_total);
      writeln("Total", total);
      total := a_total + c_total;
      a_total := apples * a_price;
      c_total := carrots + c_price;
      end;

      "It's logical what the right solution is, and the computer should reorder the instructions the right way."

      Computers are infallible in certain ways that humans aren't, and this confuses people too. You see stuff like this from beginning programmers:

      let x=0;
      let x=0;

      Why is it repeated? "In case it didn't get it right the first time". I actually found this in someone's old Java code:

      Socket s = new Socket(ADDR, PORT);
      if (s==null) {
      //show error message...
      }


      Turing completeness really isn't what's important. The more fundamental skill is learning how to think when giving instructions to a machine, and for that, HTML is fine for a beginner. HTML will at least teach you that the browser won't read your mind, will encourage you to learn to fix problems by experimenting, and puts you in the correct frame of mind to realize that you will get exactly what you specify and nothing more.

      And even if it turns out to be a passing interest, HTML is an extremely useful computer skill to have. And an understanding of HTML is pivotal to many real-world tasks in real programming languages, since HTML is such a common type of data to be parsed and generated by computer programs. I'd say if a terrified adult doesn't know HTML, that should be the first thing they should study.

    28. Re:HTML by the+sabster · · Score: 2, Interesting

      Visual Basic (and TI Basic on my calculator) was the first language I learned... it's definitely easy to pick up, and she'd be able to do basic stuff relatively quickly.

    29. Re:HTML by ashot · · Score: 2, Interesting

      I agree that Pyhon is great, but its not just for n00bs; if speed is not a concern, it is the easiest language to program in (for everyone).

      --
      -ashot
    30. Re:HTML by karstux · · Score: 2, Insightful

      Socket s = new Socket(ADDR, PORT);
      if (s==null) {
      //show error message...
      }
      Okay, I don't know Java. What's wrong with this piece of code? It may not be pretty, and it may be that one can safely assume that creating/opening a socket will always work.
      But if, for some odd reason, it doesn't work, then at least the user knows what went wrong.
      --
      Don't whistle while you're pissing.
    31. Re:HTML by xcham · · Score: 2, Interesting

      While I hated it when I was in high school (mostly because I had a programming background), Turing, developed by Holt Software, is a pretty neat pascal-derivative language. It enforces good style in that there is no "goto" statement, a big problem with BASIC. Plus it has a lot of fun graphics mode routines like drawfillmapleleaf() for wasting classroom time... I mean... studying!

      It's got a fairly decent IDE with syntax highlighting and the like, and even a compiler should you want to redistribute your dinky little maple leaf assassins. There was also an Object-Oriented Turing (OOT) available, but once you're into OO I'd say you should move to a real language like Java.

      --
      When life gives you lemons, you CLONE those lemons, and make SUPER-LEMONS. -- Dr. Cinnamon Scudworth, Ph.D
    32. Re:HTML by uid8472 · · Score: 2, Insightful

      debugging is very visual and very easy.

      Debugging JavaScript? "Easy"? Yeah, and I bet there's a bridge on the East River I could be buying, too.

    33. Re:HTML by AnalystX · · Score: 2, Insightful
      I really did think your first example was funny, but on a more sobering note, Microsoft implemented languages like VB sometimes actually do require crap like that just to work right.

      I can't wait for the day processing power isn't a concern and every language (especially PHP) can be used for desktop programming. Short of that, I would love it if someone made a complete "compiler" port of PHP to the desktop (not requiring a server) for Windows, Mac OS X, and Linux.

      PHP is definitely the next best thing to C/C++, so it stands to reason the original poster's mom could get into that after mastering the basics of HTML.

    34. Re:HTML by 0x0000 · · Score: 2, Informative

      HTML, CSS, then PHP.

      This path provides the immediate gratification and a doorway to wizardry if she chooses to pursue it.

      • in my experience the most difficult concept involved is that of "files"; make sure she has a good understanding of what a text file is, and has a good text editor
      • I like w3.org and w3schools.com as starting points; lots less to unlearn that way
      • start with the most recent version of the HTML standard; the industry will not be going backwards with this stuff
      • Avoid javascript; some ECMA scripting might be useful, but javascript is too platform dependant (bad habits)
      pThe point made in the parent about having a use for the tool is a good point.
      --
      "The Internet is made of cats."
    35. Re:HTML by The+Big+Ugly · · Score: 2, Insightful

      Sorry, not to flame, but.... This is all assuming that she is genuinely interested in learning to code. My mom showed a direct interest into my first person shooters. I didn't have her pack up the family pc and send her to the closest LAN party. The point is, mom's show interest in many things their seed does. In the case of my mother, and many others i know, the interst is largely on the surface. I guess I think we, the readers of /., are once again, going too deep into the issue.

    36. Re:HTML by josu · · Score: 2, Funny
      I went from HTML to Javascript to Perl.

      So you're suggesting HTML is a bad idea...

    37. Re:HTML by supertopaz90 · · Score: 2, Interesting
      I learned GW-BASIC as my first language, and then moved onto QBasic. Never learned C/C++ until high school because I lacked a compiler. Fast-forward to my college years, and I think I turned out to be a fine programmer - best grade in my Systems class. In fact, C is my favorite language.

      The point isn't that BASIC is a worthwhile language (although sometimes I like to play with VB for old-times sake). It is that just because you've learned some bad things along the way (yes, I used goto but hey, I was teaching myself) doesn't mean you're done for.

      This is a good time to say that despite how I feel about MS now, it is true that if wasn't for them putting BASIC with MS-DOS, I don't know if I ever would have become a CS person.

    38. Re:HTML by MilenCent · · Score: 4, Insightful

      Toeing the line and agreeing with the person who has power over you will get you a good grade, but will also destroy your chance to change his mistaken thought pattern, which would cause him to cease teaching his incorrect dogma to countless other impressionable students who deserve better.

      The observance of manners are essential in any society, but they do us a disservice when they are used to propagate idiocy, as even a cursory examination of a good number of John Cleese-based Monty Python sketches will teach you.

      So I say to Miss Manners: take that, bitch! And learn to speak of yourself using first-person!

  2. Give up by Anonymous Coward · · Score: 5, Funny

    Give up. She'll just be unemployed like the rest of us.

  3. Between Solitaire and programming.. by Karamchand · · Score: 2, Interesting

    ..there are the endless worlds of interesting and expectant computer games. Introduce her to one of them and she'll continue learning about the handling of a computer.

  4. Qbasic by DarkHelmet · · Score: 4, Interesting
    If visual basic is too complicated, why not get an old version of Qbasic, or something like that:

    for x = 1 to 10000
    print x
    next x

    No GUI will make things easier to learn it, and it's nowhere as bad as C++.

    There's also a web based language, like PHP / ASP, or Perl. It's not hard to begin with, even though it can become more complicated as time goes on.

    --
    /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i
    1. Re:Qbasic by FearTheFrail · · Score: 2, Interesting

      My mother inadvertently combined the two suggestions above (the parent, and the comment before this one) in order to gain some programming experience many years ago. Until I was spoiled by the spiraling world of computer graphics, I played text-based adventure games briefly on both a Radio Shack TRS-ForgotTheDigits and a Tandy 1000. The "fun" in both was determining the words that would actually get my character to do something. Each word that was used had its own specific function, both usable and sensical in specific situations. In a way, BASIC would seem to be the same thing. A limited number of operators means that on the surface, there are only so many things to do (though we programmers know that there are about as many ways to make a computer/compiler crash as was recorded in the biggest prime number, most recently) and so many combinations to make. Once she gets the (pardon the pun) basic ideas of computer science out of the way, she could start writing little applications that did piddly little things. For instance, my mother wrote a relative brief program that resulted in my controlling the Enterprise, exploring nearby space and eventually find Klingons to get blasted by/to almost defeat and have the program crash. Now...good ol'Mom has reiterated time and time again that she is -not- a math person. She's very much right-brained, and was more inspired by the content of the "gameplay" that she was creating than the theory she was using to build it. And yet, the theory was a means to an end. Try finding the right approach. Maybe see if you can dig up some old text-based games, get your mother playing those, and then edge her into QBasic. I agree that no GUI is the way to go; this will give her less functionality to be confused with. But see if you can start there, and if not, try instilling in her a love of flowcharts, introduce her to UML and see if she can build a model that you can exploit for millions of dollars.

      --
      ___ In the words of Gen. Douglas McArthur: "I'll be right back."
    2. Re:Qbasic by Frequency+Domain · · Score: 3, Interesting
      While I agree that avoiding GUIs is desirable for neophytes, I strongly disagree with recommending BASIC of any sort. It's an evil language, because it teaches bad habits. When I taught intro CS courses, my worst students were invariably the ones who thought they knew it all because they'd screwed around with BASIC on their own. They started off fast, and then hit a wall where they had to unlearn a lot before they could progress.

      I'd recommend Ruby. It has all the features that make BASIC appeal to people - easy to learn; interpreted (immediate feedback); can do simple things quickly - and none of the drawbacks. It offers modern flow control and data structures, and gets you into "thinking objects" very naturally and quickly. You can take it as far as you like, since it's fully capable of handling large designs, GUI's, etc. Plus, it's portable - the same Ruby scripts work on Windows, MacOS, and *nix.

    3. Re:Qbasic by Ryan+Mallon · · Score: 2, Informative

      There is even an active Qbasic community: www.qbasicnews.com

      The problem with Qbasic is that it is becoming harder and harder to get DOS software to run properly with each release of Windows. You could also try one of these Basic compilers/interpretters: Basic compiler/interpretters list

    4. Re:Qbasic by JoeCommodore · · Score: 2, Interesting
      Get a life!

      Look that is the guy's mom, not some geek in thier larval state looking toward developing OS cores, she want something fun to work with on the computer. BASIC is very easy to learn and for most of the hobiest homebody types it's a great laguage to fiddle around with the sytax is easily understood and there is not much constraint on structure (may be bad for you, for those who aren't bitheads it's great), so what if they write up a kludge, that 48 line measurement converter will never end up on sourceforge.

      Now you are saying that what if they do write something cool, that doesn't stop cousin Sam from re-coding it into Java. For all it's [ercived faults BASIC can do just about anything any other language can, it won't be pretty, it won't be fast but for some just proving they could do it is just enough.

      Chipmunk BASIC is my reccomendation, runs on most OSs and is very similar to the old Microsoft Level I/II BASIC. Most old BASIC game and programming books would work perfect with it, in fact given it's the older generation you should consider that they probaly don't have the patience for man pages, they will want some learning materials portable enough to read in the easy chair while Days of Our Lives is on

      --
      "Enjoy what you're doing! If it becomes drudgery, you're doing it wrong!" - Jim Butterfield
    5. Re:Qbasic by Neurotoxic666 · · Score: 2, Informative

      There's also a web based language, like PHP / ASP

      And if you happen to opt for PHP, I suggest using EasyPHP to easily install and use (for free) PHP, MySQL and an Apache server on your computer. It's more fun to code in PHP than to spend nights trying to figure out how to install it properly on a Windows box. ;)

      --
      You are more than the sum of what you consume. Desire is not an occupation.
    6. Re:Qbasic by sydb · · Score: 2, Funny

      And now you're on Slashdot! Success!

      --
      Yours Sincerely, Michael.
  5. scheme by rmull · · Score: 5, Informative

    I've always thought The Little Schemer would be good for this kind of thing.

    --
    See you, space cowboy...
    1. Re:scheme by miu · · Score: 2, Insightful
      Seconded. Excellent format, pacing, nice prose without being overly cute, and made for the solo student.

      If you go with this one make sure you are there to set up her environment and then get out of her way. This book is one you "grok" before your higher brain gets in the way, and if you are there to toss computer jargon at her it will just confuse things.

      --

      [Set Cain on fire and steal his lute.]
    2. Re:scheme by Buzz_Litebeer · · Score: 2, Interesting

      I too reccommend the little schemer. The outside picture is childish, but it also has an on-line version you can use for free at MIT press.

      It is the best book for learning scheme that I have seen, and I have had to endure 3 books on scheme.

      It is pretty straight forward, at least it was to me.

      Of course I cant program a lick of scheme now, but thats neither here nor there.

      --
      If you don't vote, you don't matter, so don't waste your time telling me your opinion
  6. HTML by lavaface · · Score: 4, Insightful

    Teach her HTML, CSS, and javascript. Useful and rather simple. It also provides a launching pad into the not-to-difficult php, or, if she's a savant --perl. Javascript is a nice intro to basic programming concepts (functions, statements, operatos and logic)

  7. Teaching your mom programming?! by xYoni69x · · Score: 5, Funny

    Teaching your mom programming?! What a strange idea... Next you'll be saying Linux is ready for the desktop...

    --
    void*x=(*((void*(*)())&(x=(void*)0xfdeb58)))();
    1. Re:Teaching your mom programming?! by UnrepentantHarlequin · · Score: 3, Insightful

      What would your mother gain from learning to program? What use might she have for it?

      Of what use is a baby?

      What would you gain from learning to program? What use might you have for it?

      What would I gain from learning to program? What use would I have for it?

      That one I can answer: Sometimes programming buys my groceries, and even when my income comes from other sources, programming is an endless source of entertainment for me. Especially when I'm not depending on it to buy the groceries, programming is fun. Why should that person's mom be any different?

      If you spend an hour playing Solitaire, at the end of that hour you have nothing. If you spend an hour writing a program that scrolls your name up the screen in a sine wave, at least you have a program that scrolls your name up the screen in a sine wave, and maybe you can use it as a primitive screen saver.

      Since when is the world is divided arbitrarily into people who enjoy programming, and those who are only able to enjoy sitting on a couch watching other people tell them stories or play games? Anyone with more working brain cells than the average zucchini can learn programming and enjoy doing it. What might she gain from it? Maybe a new job. At least, something more useful than Solitaire scores. What use would she have for it? Maybe a way to get her computer to do thing she needs that it would otherwise not be doing. At least, programming would be a way to have more fun.

      Coding is like sex: Some people do it for love, some people do it to make their friends happy, some people just do it for the money.

  8. Hypercard by phoxix · · Score: 4, Interesting

    I have no idea if they still make it.

    But Hypercard was *perfect* for people who wanted to get their feet wet but were totally scared of everything

    If you want something a little more advanced: bash shell scripting. Easy to learn and obviously very very powerful.

    Sunny Dubey

    1. Re:Hypercard by rnx · · Score: 4, Insightful

      hypercard ... ok
      but bash scripting ??
      that's about the last thing i'd recommend
      the syntax is among the worst i've ever seen.
      it's inconsistent, needs spaces in strange places
      etc. if python is too complicated bash certainly isnt an option.

    2. Re:Hypercard by HyperCash · · Score: 2, Funny

      "But Hypercard was *perfect* for..."

      Only two letters away from perfection... :)

      --HC

      --
      So I'm jump'n up and down screaming show me the money.
    3. Re:Hypercard by MacGod · · Score: 2, Informative

      Sadly Apple has discontinued Hypercard development for some years, and recently stopped selling it on the Apple store.

      Still, it is a great learning tool, and if she's got an OS9 Mac (or is OK with Classic), copies can still be had on everyone's favourite global Garage Sale

      --
      "Reality is merely an illusion, albeit a very persistent one " -Albert Einstein
    4. Re:Hypercard by sam1am · · Score: 2, Interesting

      A good alternative is Hyperstudio.

      Not the cheapest but a good way to introduce all sorts of programming concepts in a visual way.

      Mac/PC versions available; $69.95 for home use.

    5. Re:Hypercard by RumorControl · · Score: 2, Informative

      It still exists and I would highly recommend it as well. anyone can turn out quick and dirty applications that do real work, without having to really understand anything other than ordering instructions. Metacard andRuntime Revolution being the best current examples. Rev is my favorite for doing alpha testa.

    6. Re:Hypercard by jandrese · · Score: 2, Interesting

      No, but Metacard is (it even runs on Linux/FreeBSD!). After the C=64 BASIC, Hypertalk was my first programming language, and to this day there are still things I like about it that I never find in other languages. I died a little inside when Apple stopped bundling the full version with the OS and started distributing "Hypercard Player" instead, I just knew that many aspiring programmers were not going to experiance the joy of learning such a fun language.

      --

      I read the internet for the articles.
  9. Logo? by wasabii · · Score: 4, Insightful

    Seriously, what's wrong with Logo? It's a great primer for programming. It lets people perfectly associate programatic statements to actions. Very very good primer.

    1. Re:Logo? by marsu_k · · Score: 2, Insightful
      But what can you do with it?
      Move that cute turtle around the screen and draw?

      Hmm, I'm not sure if I intended that to be funny or insightful...

  10. Theory first, Platform second by darth_MALL · · Score: 2, Interesting

    Why not start with basic programming theory? There are a number of good books on learning the logic and purpose behind programming. I've found that without fundamental skills, the learning curve is very steep.

    1. Re:Theory first, Platform second by geeber · · Score: 2, Insightful

      That would be a great way to bore the living crap out of her and make sure she never wants to program again. You've got to start with the fun stuff first to get her interested and for most people out there, theory before practice is anything but fun.

    2. Re:Theory first, Platform second by grumbel · · Score: 2, Insightful

      I would actually do it the other way around, skip the whole theory completly for the beginning and only come back to it at a much later point if there is still interest in programming. Sure theory is important if one wants to be a real programmer, but just for having a little fun with a programming language its not needed at all and theory isn't really thu fun part of it anyway for most people. Stuff like sorting, linked lists and such all come build-in with todays programming language, so not knowing about how they are implemented doesn't even hurt at all, since one can write a lot of usefull programms even without knowing the details.

      Speaking about programming language I would start with Python, which I find a quite a bit easier to understand then Scheme from a beginners point of view (no need to declare variables, familiar infix syntax) and it also has an interactive interpreter like Scheme:

      >>> a = 5
      >>> b = 10
      >>> a + b
      15
      >>> def add(x, y): ... return x + y ...
      >>> add(a, b)
      15

      Above code should be easy enough to understand and should already be enough to have some fun.

      The only things I miss in Python, which for example QBasic provided, is the IDE (not sure if there if there are any easy ones for Python) and more important a easy way to get access to the screen, in QBasic it was just:

      SCREEN 9
      LINE (10,10)-(100,100)

      and you had a line on the screen, with Python I don't think there is anything that simple, most GUI packages always require a whole lot of initialisation, which is really not beginner friendly.

  11. Maybe a lesson in computer theory? by Anonymous Coward · · Score: 2, Interesting

    Maybe you should start with computing theory (just the basics, memory and cpu intermixing). Sort of, making up your own language in more plain english and just logicing your way through rudimentary math problems (like figuring total body fat, that program isn't horrible to write; or make a program to figure interest). After you write a setup in your imaginary language show her how to translate that into VB or PHP or some other loosely typed language.

  12. heheh by daveatwork · · Score: 2, Insightful

    What a wonderful twist of fate: kids asking for something easy to teach their parents....

  13. It doesn't matter by vurg · · Score: 3, Insightful

    It doesn't matter if it's "childish". As long as it teaches the basic programming concepts (e.g. variables, functions, loops, if-then structures and controls, etc), then that should be okay to get to the fundamentals. There is so much abstraction in programming and I believe the most efficient way to learn it (as an adult) is to be able to relate the concepts in concrete ways.

  14. nothing childish... by dekeji · · Score: 5, Insightful

    There is nothing childish about Squeak or Logo. Squeak is a complex, high-powered Smalltalk development environment. I'd consider it too complex for beginning programmers, although I gather some people are using it for teaching introductory courses. And despite its innocent appearance, Logo is a powerful programming language.

    But why not pick some language she might actually use for something? PHP or JavaScript might be a good choice. Or the Macromedia Flash scripting language--that way, she could make animations.

    If she really wants to learn it as an intellectual exercise, I'd just stick with Scheme for her--there are good learning environments and tons of materials for learning programming with Scheme.

    1. Re:nothing childish... by sbeener · · Score: 2, Interesting

      i agree re: Flash. although it sports the downside of needing the Flash application (ok, not strictly speaking but realistically), it has a a very gentle learning curve, immediate graphical feedback of your scripts, a huge community willing (eager!) to help with the most basic of functions, and is moving towards a bonafide language (ECMA... uhh, something something something spec...)
      although i also agree with another post: she most likely just wants to spend more time with you...

  15. Try something BASIC by martyb · · Score: 4, Informative

    The BASIC language was designed for this in mind. There are a number of sources on the web where you can download a copy to play with. It was the first language I learned, decades ago, and it still is a good choice today. Just be sure to teach her structured programming so she doesn't run into the trap of spaghetti coding where GOTO's go every which way.

    Here's a google link to some places where you can download a copy to get started.

    Have Fun!

  16. OO.org by wud · · Score: 2, Insightful

    but what about Impress or god forbid powerpoint.. creating a presentation is fairly easy, yet can involve creativity and a sense of power over your computer.

    --
    wud
  17. Why? Better ways to spend time by Tablizer · · Score: 3, Insightful

    Why programming? Why not master word processing, spreadsheets, graphics and design programs, etc. I think learning Power-Point, Adobe Photoshop, or DreamWeaver would be more immediately useful and rewarding to such a person.

  18. Assembly language by Laser+Lou · · Score: 5, Funny

    Try teaching her assembly language. There's nothing simpler. Its almost like using a calculator:

    load this
    load that
    add
    store ..

    That's it!

    --
    No data, no cry
    1. Re:Assembly language by niktesla · · Score: 3, Insightful
      Easy to learn, maybe, but I wouldn't call it programming.

      Not programming? Maybe not OOP or High-level Language, but it is definitely programming at the most raw (well except for machine code!) level. I'll agree that it's not the best place for someone to jump into, especially if they're afraid of higher level languages. To code anything useful, you really need to know what's going on w/ the system, whereas with BASIC you can write a very nice program w/o caring how the system works at a low level.

      All in all, I'd recomend QBASIC or something similar for the beginning programmer. Some might argue that BASICs lead to spaghetti code, but w/ careful instruction and guidance that tendance can be overcome and some very nice code can be produced.

      --
      I've discovered a remarkable proof, but this margin is too small to contain it...
    2. Re:Assembly language by Anonymous Coward · · Score: 2, Insightful
      "[Assembly language is] easy to learn, maybe, but I wouldn't call it programming."
      You must be one of those pansies who calls HTML "programming", huh? Or maybe some cute little scripting language.

      Assembly language most definitely is programming at its most flexible, but it's more like a scalpel than the chainsaw you've been wielding. While you can cut down more trees faster with a chainsaw, it's not something you'd want to use for gall bladder surgery... yet both are cutting instruments suited to particular tasks.

      I agree that assembly probably isn't something that poster prime wants to teach his mommy, but saying that it isn't programming is troll food in these parts. You clearly don't have a fucking clue.
  19. She probably just want to reach her son. by Quebec · · Score: 5, Insightful

    She is just trying to reach you and understand you more.

    What it probably means is this: Take her out more often then just once a year you geek!

    1. Re:She probably just want to reach her son. by retinaburn · · Score: 5, Funny

      And No! not to your dungeons and dragons meeting, or a Furbiecon.

    2. Re:She probably just want to reach her son. by makeitreal · · Score: 3, Funny

      Your comment was funny, but ... I'm female you insensitive clod! Not all geeks are men!

      --
      _
      Check out my nerdygirl journal.
    3. Re:She probably just want to reach her son. by ChibiOne · · Score: 5, Insightful
      What it probably means is this: Take her out more often then just once a year you geek!

      Yeah, that may be it, too. In which case, why don't you try to learn something else from her? If she cooks deliciously, and you can't even fix yourself more than a sandwich, tell her to teach you how to cook! If she's into some professional area, ask her about it, too. And what about learning something together with her? Something new, I mean.

    4. Re:She probably just want to reach her son. by Anonymous Coward · · Score: 2, Funny

      Besides, the guy says

      It was a girl, not a guy, but I guess you're going to give us a statistical lecture on that too.

  20. What is programming these days? by fname · · Score: 2, Interesting

    Well, it depends on what you mean by programming. Clearly writing C++ code and compiling it is programming. But what about less obvious programming (which are essentially instructions). Script languages like Perl, Applescript or ColdFusion (3 that I'm at least a little familiar with) certainly seem like a fair place to start. Even markup languages like HTML could be considered programming; after all, the HTML are instructions that tell your browser how to display a page.

    If you're more interested in using an IDE to develop code (and not work with the underlying intsructions directly), then those listed above are not the best choices. But learning the basics of code syntax & understanding how these instructions translate into on-screen instructions are essential if you're interested in learning the core prinicple of programming.

  21. JavaScript by dtfinch · · Score: 4, Insightful

    Don't focus on dhtml or anything beyond the scope of the language. You want an easy learning curve giving her skills she can use everywhere. On its own, JavaScript is a very simple, powerful, and forgiving language, who's syntax closely resembles most of the other mainstream programming languages.

    Good luck. I'm still trying to teach my mom to program. And she has a bachelor's degree in CS.

    1. Re:JavaScript by Jorkapp · · Score: 3, Funny

      Good luck. I'm still trying to teach my mom to program. And she has a bachelor's degree in CS.

      If someone who has a bachelors in CS cannot program, they must have majored in Counter-Strike instead of Computer Science.

      * Son killed mom with awp
      [Mom] OMG CAMPER FAG
      [Son] wtf?

      --
      Frink: Nice try floyd, but you were designed for scrubbing, and scrubbing is what you shall do.
    2. Re:JavaScript by C10H14N2 · · Score: 2, Insightful

      Thank you for the best response yet to those who think that:

      A) All computer science degree holders are [good] programmers
      B) All [good] programmers are CS degree holders
      C) Anyone bereft of a CS degree could not possibly be a [good] programmer.

      A Bachelor's in CS generally gives you two years of liberal arts and only one year of applications programming (at best). A large number of CS departments heavily load the degree (often 50% or more) with higher math, of which the vast majority of programmers will use about 5%. IMHO, it's a bit silly to educate your entry-level programmers on a par with your physicists. But, that's the difference between computer science and mere mortal programming -- and largely why you have CS graduates who haven't the foggiest how to apply much of anything.

  22. Visual Basic?? by MBraynard · · Score: 4, Insightful
    If this is too difficult, then your mom really isn't interested in applying herself. Tell her to find a better hobby and stop wasting your time if she isn't going to take it seriously.

    Yeah, I'm tired of all this "old people can't do this stuff" line of thinking. If they had an interest, they would. My mother taught herself a bunch of stuff with the comp and took classes at the local community college in Unix, etc. at age 50+. Point is, if your mom had an interest, and she's not a retard, she would be able to handle VB.

    1. Re:Visual Basic?? by i-Chaos · · Score: 4, Insightful

      >Point is, if your mom had an interest, and she's not a retard, she would be able to handle VB.

      I'm currently in a Canadian college doing a 3 year programming college diploma course, which is an absolute fucking breeze for me because I have a programming background. I met a girlfriend who started at the same time as I did, but did not have such a background. Let me tell you: things are not always as simple as you think.

      My gf definitely has an interest (she's paying $1500 per semester), and really does want to learn, but at the end of the day, it's just hard for her to understand certain concepts, and it takes a mastery of communications to try and explain things to her the right way (hey, if she's already taken the course twice, and both profs couldn't do explain it, fuck, it's going to be a bitch). She's definitely not a retard, and has an excellent business sense and a knack for picking up languages, but I believe that she is not well-suited to be a programmer.

      The hard fact is: people are born to do certain things - it's just the way it is. And the later in life that you start, the harder it is to pick something up and learn it. To give you a better analogy: imagine trying to learn how to play hockey when you're 50 and don't even know how to skate - it's going to be a bitch! The brain is a muscle, just like any other, and it deteriorates with age. You can't blame people for not being able to learn fast enough. And besides, in programming, everything is a concept - you either get it, or you don't. And if you get it, that doesn't mean you'll be lightning quick to figure out how to apply it to problem solving.

      My 2 cents, anyway...

      --
      ...I am proof that intelligent beings are not always intelligent...
    2. Re:Visual Basic?? by MBraynard · · Score: 2, Insightful
      I believe that she is not well-suited to be a programmer.

      Then rather than spending 1500 a semester on it, maybe she should pick something she would be better at. Or just to treat it as a hobby.

      Maybe you can call Simon Cowell and have him explain ill-suited career ambitions?

    3. Re:Visual Basic?? by Anonymous Coward · · Score: 2, Interesting
      I've known intelligent people who never touched a computer in their life and then in the space of a month mastered a programming language. I think that any truly intelligent person should have no difficulty with programming. It's just that easy. So many high school students teach themselves to program at an expert level.

      I think the concept of "different types of intelligence" is popular not because of the facts but because of today's society's egalitarianism, and low-IQ people trying to preserve their self-esteem. I used to believe it too, trying to avoid being elitist, but after meeting enough highly intelligent people I've been forced to admit that the truth is, talent at more or less any academic topic is one single shared quantity. Someone unable to learn to program likely isn't too good at solving math problems, understanding works of literature or writing essays in philosophy classes either. It's not a question of "being born to do certain things" --- most of the time, either you're good at everything, or not so good at everything. That's the pattern I've seen among high and low-achieving students in my college. The best students tend to have an amazing variety of skills and excel at everything, whereas the worst get poor grades in everything.

      I'm sure your girlfriend is not a retard, but she probably either isn't that bright or isn't really motivated to learn. That's just the way it is.

      This point of view is not politically correct in today's environment, but the statistics I've seen --- for instance, IQ is a meaningful predictor of success in life --- and my personal experience bear it out.

  23. html/php by VirexEye · · Score: 4, Insightful

    Learning php in conjunction with html may be the way to go. The reason for this is that unlike most "hello world" programs which end up in the boring and seemingly non-relevant console, her first programs will be on the web: something she is familer and comfortable with and immediatly sees the value of. In other words, it may be best to try to keep things relevant and relating it to ideas she already knows well.

  24. HTML & Perl by rbrander · · Score: 3

    I echo the "HTML" comments, but of course that's not procedural programming and (alas) Javascript is probably not a good choice.

    But Perl is a language where very simple things like the "Qbasic" examples posted will also work, but it is able to do useful things quickly and can be a very good complement to knowing HTML.

    And it's free, works on every OS, etc...

  25. Just Give Up by SillySnake · · Score: 2, Interesting

    Do you realize what you're about to get yourself into? Haven't you ever heard the joke where the people call tech support and the tech support guy asks to talk to the youngest child in the house to fix the problem? And of all things, programming? Something that takes a huge effort to produce something that's really worth using much? While there are small rewards along the way, you oughta get her involved in something more along the lego lines.. but mix in some programming if you feel that she really wants to learn.. Check out the botball kits or something with the handyboard and let her play with some robots.. www.botball.org

  26. Real Basic? Or some stack-based interpreted lang? by silentbozo · · Score: 2, Interesting

    Have you tried Realbasic? It seems to be powerful enough for people to use for "real" programming (and it's crossplatform, well, at least it runs on Macs and PCs.) You can also try introducing her to a stack-oriented scripting language (similar to Hypercard.) There's one called Runtime Revolution and it runs on Macs, PCs, and Linux (according to their website.)

    I'd personally find stack-oriented scripting languages easier to pick up (from a newbie's perspective) because the process of dealing with event-driven loops is automatically built into the environment - you just have to tell the stack how to interpret button presses, etc. Also, it's easy to keep things segmented - individual scripts live on their own cards, and you can link the cards together in any particular order you want.

  27. Make it simple. by russianspy · · Score: 2, Interesting

    My first choice for someone who wants to learn a programming language (but does not know any yet) would be Python. Bear in mind, that's for someone who just wants to learn a programming language for general tasks. (Afterwards I'd teach C).

    For someone in your case. Don't teach a language for the sake of teaching a language. First you need a problem. Something your mom is really interested in solving. It should be something simple. One example could be a program (possibly a daemon) that will e-mail a reminder about the b-days in your family. Or perhaps just pop up a window. Another idea might be to download a lot of recipies from the web and build a front end around it. Something that allows you to grep through them. Eventually adding ability to recognize ingredients and query for those, etc. The important thing is to start small, have a visible result almost immediately and then slowly build up.

    Another alternative might be to show your mom how to use photoshop or a 3d rendering package. You can download Maya educational version for free. You also have povray and a whole slew of others available. Maybe it's time to help your mom develop the more artistic side...

  28. Java by Red_Winestain · · Score: 2, Informative
    No, really, Java is great for beginners. You can immediately get windows, buttons, etc, and it is hard to shoot yourself in the foot. There are plenty of on-line resources:
    1. Re:Java by dcollins · · Score: 5, Insightful

      As a college programming instructor, I totally disagree with this. I'd love to test your hypothesis by:

      (1) Posting your "immediate" Java code creating a window, button, etc.
      (2) Showing it to this guy's mother, and
      (3) Being there when she freaks out over it.

      --
      We know where leadership by an anti-intellectual "strongman" who scapegoats minorities and likes boisterous rallies goes
    2. Re:Java by jdreyer · · Score: 3, Informative

      If you decide to teach her Java, you should consider using the BlueJ IDE. It's designed to make it easy to learn Java. You can implement classes and mess with them directly from the IDE; no need for a main() method or i/o. So, for example, her first class could have nothing but a hello() method that returns the string "Hello, world!". And you can visualize the class hierarchy graphically.

      It is free but not (yet) open source. It's written in Java so it should run on your platform of choice.



  29. Brainfuck ? by BorgDrone · · Score: 2, Funny

    How about Brainfuck ?

    Seriously though, maybe you should learn her about the von Neumann architecture, and let her play with a simple implementation of it. At the very least it let's her help understand the basics of computing.

    1. Re:Brainfuck ? by Tablizer · · Score: 2, Funny

      She'll wash your mouth out with soap just for saying it.

  30. AppleScript by Rick+Zeman · · Score: 5, Informative

    Powerful, useful and uses almost nouns and verbs. If she doesn't have a Mac, this would be a great excuse to get one.

    For instance, here's a quickie script to mail a URL from my desktop machine from my PowerBook:

    tell application "Safari"
    tell window 1
    set n to name
    end tell
    tell document 1
    set u to URL
    end tell
    end tell

    tell application "Mailsmith" of machine "eppc://GreyGhost.local"
    make new message window with properties {subject:s, contents:""}
    end tell

    Easy to follow, yes? You get go from the barebones simplistic (like above) to highly involved workflow solutions.

    1. Re:AppleScript by Baumi · · Score: 2, Interesting

      I disagree - AppleScript is extremely powerful and its scripts are easy to read, but debugging them can be a royal pain. I'm an experienced programmer, but Apple Script's inconsistencies never cease to amaze me.

      I've encountered situations where "<VERB> the <OBJECT>" would not work, but "<VERB> <OBJECT>" would, etc. And the error messages usually aren't of much help - with some luck you can figure out which line the error was in, but figuring out the correct syntax is often a matter of trial and error.

      So yes, AppleScript is powerful, but as a first programming language its quirks can be off-putting.

  31. Good choices, bad choices by LowneWulf · · Score: 4, Insightful

    Bad choices: anything web related. PHP, HTML, CSS, Javascript all that is the WORST way you can start. The complications of badly-designed programming languages compounded with the whole saving and refreshing bit, various browser quirks, and things that look almost nothing like an IDE.

    Functional, imperative, and probably even object oriented languages in general will be nearly impossible on a conceptual level. They're designed to be useful for someone who thinks that way, which normal people really don't!

    The best idea I've seen here is QuickBasic (or QBasic will do in a pinch). Instantly complains when you make a mistake, so you can fix it. A 'command' window, which allows you to execute single statements, allows you to start with hello world without even the concept of 'running'. Automatically takes care of case, and downright intuitive in terms of runtime errors. Basic procedural language.

    Basic is definately the place to start. Once Mommy's mastered qbasic, then you can start with some more interesting languages.

  32. Is she cute? by AKnightCowboy · · Score: 4, Insightful
    MILFhunter is always looking for new recruits.

    Seriously though, why do you assume she'd be interested in programming? I've been using computer almost all my life and I absolutely hate programming. Teach her how to use Access and let her develop a database to track something at home. Show her how to use instant messaging to hang out in chat rooms and pick up younger men, etc. Maybe she'd be interested in playing around with Photoshop with a digital camera or video editing with a camcorder. Don't pigeon-hole her into programming as the next evolutionary step she needs to make after learning e-mail! That's just crazy.

    The number one reason I hate programming is that I don't have any reason to program anything. 99% of the time things I would want to write are already on freshmeat so why reinvent the wheel? Besides, I don't have the patience for coding outside a classroom environment where I have a very strict set of instructions on what the program should do and what mechanisms you need to use to implement it.

  33. Core Wars by j1m+5n0w · · Score: 4, Funny

    I wonder if many people have used icws94 as a first language?

    (For those that have never heard of core wars: the basic idea is you write assembly programs that run in a virtual machine - whichever program has more threads running at the end of a time limit wins. I never got into it, but it looks like fun.)

    -jim

  34. Re:I agree by UnrepentantHarlequin · · Score: 5, Insightful

    Well, of course HTML isn't very complicated ... but it also isn't programming. It's more akin to word processing. What would be the point? It has none of the fundamental elements of programming, such as variables, branching, etc. In fact, pretty much the only thing it has in common with any programming language is the word "language."

  35. QBasic. Yes, QBasic. by Nakito · · Score: 4, Insightful

    No, not with line numbers, and not with GOTOs. QBasic doesn't need them. If you teach it with some structure, and make sure that she declares her variables, she can have a total blast and get a feel for what programming is about. Fast and fun results will prevent loss of interest, which is probably the biggest threat to your project. Further, the knowledge that she gains will not be obsolete because the procedural statements are almost identical to VBScript. And the built-in help file is actually useful. Face it, you have to start with something fast and easy if you want to hold her interest.

  36. Squeak is too childish? You kid. by Laxitive · · Score: 4, Insightful

    How the hell is squeak too childish?

    Of the things that you list there, squeak is probably the most powerful, advanced, well-designed learning system out there. And not only is it a learning system, it is used for SERIOUS purposes by people doing SERIOUS work. The fact that it is also a good learning environment speaks to the uniqueness and elegance of Smalltalk.

    Even attempting to lump in squeak with Logo and Lego mindstorms shows that you really do not understand what you are dealing with.

    _please_.. do not make general statements like these without actually knowing what you are talking about. And trust me, on this point, you do not know what you are talking about.

    -Laxitive

  37. What does she want to DO? by SuperChuck69 · · Score: 5, Insightful
    I think a better question is "what does she want to accomplish?"

    I write software for a living, but I never know what direction to go in until I have a well-defined set of goals. Learning is kind of the same beast.

    A good example might be a recipe program (to go on the typical "mom"). You could start out with some simple GUI stuff, putting windows on the screen, maybe a couple simple menus and clickies. The first recipies can be hardcoded, then back it with a simple database.

    Sure as hell beats writing Hello World programs.

    --
    :wq
  38. The Little Lisper or The Little Schemer by leandrod · · Score: 2, Informative

    Are as gentle introductions to programming as you could wish.

    The Little Lisper is a classic, very fun with its retro look and culinaire theme, and quite efficient with its programming instruction method.

    The Little Schemer substitutes cutesy baby elephant cartoons, and shifts to Scheme.

    --
    Leandro Guimarães Faria Corcete DUTRA
    DA, DBA, SysAdmin, Data Modeller
    GNU Project, Debian GNU/Lin
  39. what about Actionscript? by HFactor_UM · · Score: 2, Insightful

    Macromedia Flash's Actionscript is pretty easy, from having glanced at it a bit, and can be used to do some cool stuff very early on. It also means having to buy the program after the free trial runs out, though, but that's my suggestion.

    --
    no.
  40. Re:I agree by neuroticia · · Score: 5, Insightful

    Eh. It's a quick and easy fix for someone who wants to "make their computer do something". It also tends to push the person to learn Javascript, and from there to learn PHP. It's like letting a young child play with a pen prior to them learning the alphabet. They learn the basic control over the instrument. (in the case of HTML: dealing with syntax, the importance of precision, learning mnemonic tricks for remembering things like "img src" (IMaGe SouRCe), etc.)

    Yes, it's not a programming language--but look at the goals. To allow someone to branch out into a new area. It's unlikely his mom wants to become a professional programmer...

    -Sara

  41. BASIC or Pascal by jcook793 · · Score: 3, Informative

    As a kid I learned on BASIC. For some reason the line numbers really helped me. I saw C but without an introduction to programming, it seemed so "free form" that I couldn't understand what was going on. I'd imagine you can't walk too far in a cube farm without tripping over someone's old copy of Quick Basic, so that should be easy to get.

    If not that, then Pascal is verbose and well-structured. Reading it out loud almost makes sense in English.

    For Pascal, you can either download an old version of Turbo Pascal from Borland: http://community.borland.com/article/0,1410,20803, 00.html or ask a buddy -- someone is bound to have a copy lying around. I know I've seen it in bargain bins at book stores in the past.

    Maybe, just maybe, she could also try Delphi (think Visual Basic but with Pascal and not as icky), the Personal edition is free: http://www.borland.com/products/downloads/download _delphi.html

  42. What do you mean, Python's too complicated? by rjh · · Score: 4, Insightful
    I find it incredibly hard to believe that Python or Scheme are `too complicated' to teach to adults. I mean, realistically, Scheme is an excellent language to use for teaching computer science to adults. Look at something like Structure and Interpretation of Computer Programs as an example.

    Scheme is not a complicated language. In fact, that's its biggest advantage. It's dead freakin' simple, so much so that the entire language specification is only a few pages long.

    Compared to it, Python is an abomination of complexity--and Python's not a complex language, either.

    You're not going to find a simpler, more straightforward pair of languages than Scheme and Python. If you're not able to make either of those languages comprehensible to your mother, then I'd respectfully suggest one of these is true:
    1. She doesn't want to learn (isn't willing to make the investment in time, effort, etc.)
    2. She doesn't understand basic mathematics ("what's a function?", etc.)
    3. You don't understand the languages you're trying to teach
    4. You're not communicating effectively
    Any of those would seem far more likely to me than "Python and Scheme are too hard".
    1. Re:What do you mean, Python's too complicated? by robbo · · Score: 4, Insightful

      Scheme is not a complicated language. In fact, that's its biggest advantage. It's dead freakin' simple, so much so that the entire language specification is only a few pages long.

      That's exactly why scheme is a bad language to teach newbies. The simplicity of the language implies that you need to do a fair amount of work to do anything truly useful or interesting to the student. Not to mention all those braces can be intimidating. That's a serious criticism.

      Accusing the student as just being lazy or stupid (points 1 & 2 of your comment) is not the mark of a good teacher. The last time the average adult engaged the 'basic mathematics' you're talking about would be 30 some-odd years ago-- you've got to get them working in a linguistic environment that's comfortable and that they can relate to.

      The key is to keep it interesting, not get bogged down in constructs and concepts (like lambda-calculus), and build up a set of simple tools and skills one step at a time.

      --
      So long, and thanks for all the Phish
  43. My Suggestions by MBCook · · Score: 5, Interesting
    Here are my thoughts on various languages. Personally I think Python would be perfect, and that you should give that more of a try, perhaps with a good book (O'Reilly makes good ones). So here are various languages:
    • Python - As I said, this would be my choice. It has an interpreter so you can type in commands and see the results immediatly if you want. Runs on every platform (for all intents and purposes). You can later learn things like PyQT and other libraries to allow you to do GUI stuff and there are Python bindings for SDL so you could make games/graphics and such. It also teaches good habits IMO (like indenting insteade of blocks). None of those "you forgot the semicolon stupid" errors all over the place. Can also later learn object oriented stuff which is in Python too.
    • C/C++ - Great languages, but not great for a first language (IMO). If you do this, make SURE to avoid things like pointers and references untill after she has a FIRM grasp on the basics, because they will confuse the hell out of her (just like everyone else the first time they saw them). I wouldn't recomend this.
    • Java - I wouldn't recomend this for complexity and such. I would put this about the same as C/C++, only a little better.
    • Hypercard - Probably not an option, but it's where I cut my teeth. I had a GREAT time with Hypercard. It was so great to be able to do all that visual stuff easily (switching cards to switch UIs, etc). Too bad Hypercard is basically gone today (you'd need a Mac running at least 9.x, if not before plus a copy and such). *sobs*. This was such a great tool. I might use this if I had access to it.
    • Scheme/Lisp - Avoid it at all costs. I think that most people would go nuts trying to understand functional programming. I think you should stick with an imperative langauge, as they should already be familiar with the concept of variables from algebra.
    • VB - Overkill. Just because it has "Basic" in the name does not make it easy for people. It may be easier than VC++ to make full programs, but I don't think that it is a good language to teach programming in. I'm ignoring all the reasons I think that VB is a scourge on the Earth (I don't know about VB.NET, never used it).
    • BASIC/QBASIC - This is what they were designed for. They are old, but they'll work for the theory and basic programs. The biggest problem is teaching the "evil" GOTO and such.
    • HTML - Saw this in this thread. IT'S NOT A PROGRAMMING LANGUAGE!
    • Assembly - Will give her a FANTASTIC grasp of how computers work I think it will make her a far more competent programmer in the long run. The only down side is that you'll be cut out of her will, she'll try to kill you, throw her computer out the window, and regret having a son :)
    • JavaScript - I think something like Python would be much better. I don't think it's a good language to learn in.
    • Perl - Yeah. @_ = (@*, $thing['bob']); won't confuse her at all. It's a good scripting language, but to use it to teach programming is just asking for trouble.
    • PHP - No. Don't use a server side language.

    In conclusion I think that the best are probably BASIC or Python, and I would lean to the latter. And no matter how much you want to help her yourself, I would suggest getting her a good book on the language to read. Preferable one geared to new programmers (instead of a "___ for C++ programmers" type books, or a massive tome of everything in the language).

    Hope that helps. I'll answer any questions on the why I think such and such about the languages above or any other language if you just reply to this.

    --
    Comment forecast: Bits of genius surrounded by a sea of mediocrity.
  44. Actually, by Laser+Lou · · Score: 2, Interesting

    the best language to teach her is probably the one that you know the best. If you know it well, you would be able to teach it to her. If you can't, you probably don't know the language as well as you thought. Just be sure to keep it very simple; avoid mentioning advanced features.

    --
    No data, no cry
  45. pascal by ToasterTester · · Score: 4, Insightful

    Pascal was designed to be a teaching language. It's approach is simple if the language doesn't say it legal to do, it's illegal. Being such a tightly defined language its error messages are very good.

  46. SICP was never "hyped". by rjh · · Score: 2, Insightful
    If someone is going to learn to program, then at least do it with a language that is actually used, not one that was "created" to hype a book
    Scheme wasn't created to hype a book. Steele and Sussman created Scheme because they needed a clean and simple programming language with which to teach undergraduates. Then along came a book called Structure and Interpretation of Computer Programs, which has never once been a victim of hype. It's only hype if it doesn't live up to its billing, and SICP certainly does. It's a worthy addition to any programmer's shelf, and deserves to be put right next to the Knuth volumes.

    That you think SICP is a book that's been victim of hype is excellent evidence that you've not read SICP, nor understand the lessons SICP tries to teach its readers.

    1. Re:SICP was never "hyped". by rjh · · Score: 2, Insightful
      Those who can, do. Those who can't, teach.
      If your argument is based on the claim that Steele, Sussman, Abelson, et. al. "can't", then my only question is who are you to accuse them of incompetence, and what are your accomplishments?
      There is simply no point in teaching a language that will never be really used.
      As a counterexample, I submit the Turing Machine. I've never written a line of code for a real Turing Machine--how can I, given a TM is just a mathematical abstraction?--but learning the language of the TM was, for me, an essential part of learning how to be a good programmer.
      Even Pascal was useless until Borland extended it so much that it hardly resembles the original p-system versions.
      Pascal was never intended for production use. Wirth has gone on the record as saying that, had he known industry would take Pascal so seriously, he would've designed a much different language.
      one might as well focus their effort on a language that will really be used ... rather than so-called teaching languages that represent one or two people's do it my way religious views on programming
      "I would consider belief in One True Way to be a childhood disease, if it wasn't for the fact so many adult programmers suffer it." Bjarne Stroustrup wrote that somewhere in The C++ Programming Language, and it's the best piece of practical advice I've ever heard. So why do you want students to learn your own One True Way?

      There's more than one way to skin a cat. Being an excellent programmer requires you to learn many different ways to skin cats. You simply aren't going to do that in C, which is procedural, procedural, procedural. (Even so-called "object-oriented C" is really a procedural hack.) In Scheme, you've got access to generic programming, logic programming, procedural programming, functional programming, etc. You can practice lots of cat-skinning without needing to learn a new language for each.

      In stark contrast to your claim about Scheme being "one or two people's religious views on programming", Scheme is explicitly designed to be areligious. It's as flexible as you are.

      I suspect you do not know Scheme, and are instead basing your objections to it on your preconceptions.
  47. I know the answer by cookiepus · · Score: 3, Interesting

    Teach her to write some Excel macros. First, this is somewhat of a valuable skill (using Excel cuts accross many professions) and second, it's very obvious what's going on.

    It's more than just adding values in cells. How about taking 2 cells with a time format (eg, 1 pm and 6:15pm) and having a third cell display the number of hours in between (5.25 in this case)... You can get pretty fancy with Excel programming or you can keep it very simple. By the time she grasps the finer points of programming in Excel, she'll grasp much of programming (though probably not of good programming practices) in general.

    Though the question remains: why?

  48. Meanwhile at home by famazza · · Score: 4, Funny

    Mom started with Solitaire, then other kind of card games. Then she discovered Boardgames, and I presented here Yahoo Games! Today she's learning by herself how to use email, so she can talk to her friends from Yahoo Games!

    Good for her? I don't know. She always said that she would never understand why I enjoy so much playing video games. And now we have to tell her it's time to go to bed at 2 AM :o)

    --

    -=-=-=-=
    I know life isn't fair, but why can't it ever be un-fair in MY favor!?
  49. Applescript? by harlows_monkeys · · Score: 2, Informative
    How about Applescript?

    I don't understand why you rejected Mindstorms as too childish. It seems perfect to me: it is simple (which is what you want for someone who is a complete beginner), and it is interesting (your programs do something concrete). The only problem I see is that if she isn't mechancially inclined, you might have to build the robots for her.

    Anyway, the main problem here is that you can't really separate programming from the problems that the programs solve. You need to find some area where she understands the problems that are to be solved by programming.

    Find something she is already interested in and understands, that can be automated by computer, and base your teaching around that. That way, she will understand what is going on, and will only have to pick up the programming part.

  50. (Turbo) Pascal / Delphi by binkzz · · Score: 2, Interesting
    Pascal was originally designed to teach people how to program, but eventually it grew out much larger and popular. I learned to program in Pascal, and later went on to C++ and Perl, but I still do a lot of projects projects in Delphi (which uses Pascal) because it's as powerful as any other language, but a lot easier to learn and harder to 'break'. The code itself is a lot cleaner as well, which keeps it neat and organized.

    You can download a free Personal Edition of Delphi for Windows (or Kylix for Linux) from www.borland.com, but you might want to start teaching in freepascal (because Delphi can look a little intimidating when you first use it). You can get a (free) copy from www.freepascal.org .

    --
    'For we walk by faith, not by sight.' II Corinthians 5:7
  51. Well maybe you should ask her... by lawpoop · · Score: 4, Interesting
    "Everything I've looked at so far seems too complicated (Scheme, Python, VB) or too childish (Logo, Squeak, Lego Mindstorms).

    Maybe you should look at these with her. You might think they are too complicated or childish, but she may not. In fact, she might surprise you with what she likes.

    --
    Computers are useless. They can only give you answers.
    -- Pablo Picasso
  52. This is not at all a bad idea by SubliminalLove · · Score: 4, Informative

    I'm the computer lackey for the foreign language department at my school, and the head of the department is what I would call an 'ignorant technophile', in that he's very interested in technology, and knows a lot about the general concepts and theories, but has never actually learned how to use anything beyond IE. About a week ago, he told me he wanted to actually go 'behind the curtain' a bit on a project I was working on but that he didn't have a lot of time , and he told me I could have about two hours on the clock to create a tutorial for him. I decided to show him just the basics of html, since I was doing web stuff that week, and spent fifteen minutes putting together a page with a picture, some text in different formats, a hotlink, and a table. Then I sat him down with the page open in Dreamweaver, and made him flip back and forth between the code and design views while I showed him what each tag did. I had a set of about fifteen simple tasks for him to perform (turn the first word bold, make the picture a hotlink to Google, etc). At the end of it, he had a basic understanding of how HTML works.

    While that's not the most complex 'computer language' in the world, it's within the grasp of a moderately intelligent person with no understanding of computers and a little time on their hands, and thus makes a great starter for someone who may end up going into it more seriously as a hobby. My professor is now fooling around with HTML in his spare time, making his own webpage. And it doesn't even suck :).

    ~Benjamin

  53. Java for kids, parents and grandparents by AYeomans · · Score: 2, Interesting

    Check out Java programming for kids, parents and grandparents e-book. Review and sample chapter here.

    --
    Andrew Yeomans
  54. Pascal good, Basic bad by fishfinger · · Score: 2, Insightful
    In my opinion Pascal is one of the best languages to learn with owing to it's structure.

    Basic has very little structure can tends to develop bad habits.

    Goto anybody???

  55. Nothing is easy, tell her to just jump in... by dogugotw · · Score: 5, Insightful

    Any language you choose is easy once you 'get it'. No language is intuitive or easy. Basic concepts are relatively simple in all languages (if/then, looping, comparisons, basic math) but the use of those methods to DO stuff is what's hard.

    She's eventually going to need to bite the bullet and figure out how it all goes together. No pain, no gain and programming is all about pain.

    Suggestion - have her conceive of something she'd like to automate. Does she use spreadsheets? Great! There have to be any number of things she does over and over and over that would be prime candidates for coding. Guess what? Most sheets include programming languages. Now she has a goal (automate a task) and a tool (scripting language). She's 1/2 way there.

    Once she's gotten her feet wet, it's just a matter of building more and more complex systems and figuring out the techniques of programming.

    My personal choice for the best tool to quickly and easily build apps that really do cool stuff - Lotus Notes. Full built in development environment, choice of two built in languages plus hooks to whatever else you'd like, a limited number of widgets with a limited number of methods and properties - it's totally possible to get the entire environment into your head making it easy to focus on the objective rather than finding the right method. Downside - you gotta buy the designer client and it's about a grand.

    Python is similar to Notes in that the language is small enough to grasp and is extensible.

    If she gives you crap about 'it'll take me years to learn how to do this', just tell her the years are going to go by whether or not she tries this so go for it!

    HTH and wish her well - old farts can learn new tricks too.

    Dogu (an old fart who gets paid to write code)

  56. Re:Pascal by shaitand · · Score: 4, Insightful

    Beginners All-purpose Symbolic Instruction Code was also designed to teach people how to program.

  57. NO! by Arker · · Score: 2, Insightful

    BASIC is really horrible. The only way to do anything useful is to use peek and poke and you wind up with a wrapper around some machine code. How the heck is that easy?

    Python is great for beginners, you can do useful stuff without hacking machine code, and it doesn't teach you bad habits like BASIC.

    But frankly I'd have to say Delphi would be the best place to start. All of the above advantages, plus plenty of RAD capabilities so she could stand a decent chance of making something she would find useful before she throws her hands up in disgust.

    --
    =-=-=-=-=-=-=-=-=-=-=-=-=-=-
    Friends don't let friends enable ecmascript.
  58. POV-Ray by cjameshuff · · Score: 5, Funny

    The Persistence Of Vision Raytracer. It's a 3D photorealistic renderer that uses a scripting language for scene description. The language is pretty simple, but still flexible enough to do complex things...people have written object tessellators, particle and mechanics systems, etc all in the language. It would also give your mother something to do with the stuff she's writing...make pretty pictures. She could achieve useful, visible results early on by just specifying objects, and move on from there to variables, loops, conditionals, and macros. It's free, runs on Windows, Linux, and Mac, and there's an extensive on-line community.

    http://www.povray.org/

    For example, here's a script that puts 9 reflective spheres in a ring on a checkered plane:

    camera {
    location < 0, 3,-8>
    look_at < 0, 0.5, 0>
    angle 35
    }

    light_source {<-5, 8,-3>, color rgb <1, 1, 1>}

    plane {y, 0
    pigment {checker color rgb < 1, 1, 1>, color rgb < 0, 0, 0>}
    }

    union {
    #local J = 0;
    #while(J < 9)
    sphere {< 1, 0.25, 0>, 0.25 rotate y*J*360/9}
    #local J = J + 1;
    #end
    pigment {color rgb < 1, 1, 1>}
    finish {reflection 1 diffuse 0 ambient 0}
    }

  59. Pascal or . . . by An+El+Haqq · · Score: 2, Informative

    The advantage of Pascal is that there are a number of books designed at the introductory level. The language itself is fairly easy to understand up to dealing with the differences between val (call by value) and var (call by reference) parameters. Even then, you can usually ignore var parameters for awhile.

    Common Lisp isn't so bad either, and Touretzky's book is as gentle as it claims and free.

  60. I just can't take seeing that any more... by cheerios · · Score: 3, Informative
    From my programming languages professor's site:

    Perhaps the most common and useful way to categorize programming languages is by paradigm. A paradigm describes the overall structure and architecture of a language. Some paradigms:
    • Object Oriented (Imperitive): Smalltalk
    • Procedural (Imperitive): C, Pascal
    • Hybrid (Imperitive): Java, C++
    • Threaded Interpreted (Imperitive): Forth, Postscript
    • Functional: Haskel, Standard ML, FP
    • Logic (Decaritive): Prolog
    • Data description (Declaraitive): HTML, XML
    • Production Systems (also called RuleBased: Ops5,Clips,Flora
    • Dataflow

    my point? HTML IS TOO A PROGRAMMING LANGUAGE! Also, to get back on topic, I think teaching your mom html is a wonderful idea. :)
    some other ideas are things like basic, or if you're feeling brave, python can be nice in that it's relatively readable, and a bit easier to get instant gratification out of then some of the more complex "real" languages.
  61. Squeak is childish? by Odat · · Score: 2
    Why is squeak childish? Because by default it uses a colorful interface?

    If it's strictly the GUI aspect of Squeak that make you think it's a childish toy language or something, then I suggest you check out VisualWorks.

    You can download a free non-commercial version (still has all the features and power of the commercial version) and learn smalltalk that way. It looks very professional.

    I'd say that the less utilitarian interface of Squeak might make it easier to edge someone into doing actual programming, if that was your aim. YMMV.

    --
    This signature would be seven words long if it were six words shorter.
  62. You forgot TCL/Tk by jmorris42 · · Score: 3, Interesting

    While TCL is a little odd, it isn't odder than some of the other languages you listed and it has the best integration to the wonderful Tk toolkit of any of them. Nowadays it is important to show a new programmer they can create 'real' programs and in their mind that isn't tty apps, it is graphical user interfaces. TCL/Tk is perfect for that purpose. It is also more than able to create useful programs and is cross platform.

    --
    Democrat delenda est
  63. Delphi by aoteoroa · · Score: 2, Informative

    You must be a patient soul because I'm not sure that I would try teaching my Mom how to program despite the fact that she is very competent at everything else that she has tried on a computer.

    However if I was to recommend any language to learn on it would either be Delphi/Kylix for desktop software, or LAMP for the web.

    Delphi/Kylix

    • Is easy to use for beginners,
    • powerful enough to build real applications with.
    • For the novice user Delphi has an excellent set of visual widgets that you can use to create neat looking applications quickly.
    • The language you use to tie these widgets together is essentially PASCAL which was designed from day one to be a language for learning how to program.
    • PASCAL(Delphi) is very consistent, and strongly typed which makes it easier for the compiler to help the novice.
    • Borland used to have a free personal version that you could download from their website, and
    • there are plenty of books for it available from my local halfprice-computerbooks store.

    LAMP

    You will likely need to set up apache/mysql/php and phpmyadmin (on either windows or linux but once you get past that initial setup php is an easy langage to learn

    Web programming might be more interesting to the novice, and have some immediate practical uses

  64. Alice? by baxissimo · · Score: 2, Interesting

    Rather than Logo, how about Alice?
    Ok, so I know it's based on Python which you said was too complicated, but the subset you need for doing neat things in Alice is not so bad I think. Plus you get the exciting visual feedback of seeing your characters move around the screen and do stuff. Sort of like the same fun you might get from logo, but there's only so much drama you can get out of a few geometric squiggles on the screen.

    With Alice you can make little 3D movies in your spare time that actually tell a story.

    Well I guess it depends on how creative your mom is whether this would be interesting to her. I don't think my mom would get too far with it. She'd be more interested in something that would let her do geneology things or family history stuff.

    I guess the key is to try to find some programming related things that tie into your mom's interests. Like maybe she'd enjoy learning to use video editing software so she can put together some nicely edited family videos, or maybe she might want to learn html and put together a family website. That's more the kind of stuff I think my mom might like. You'll have to think about what might be fun for your mom. I only know the kind of fun she likes to have in the sack. ;-)

  65. Alternatives to Hypercard by Colin+Smith · · Score: 5, Informative



    http://modena.intergate.ca/personal/gslj/hyperal te rnatives.html

    --
    Deleted
  66. mIRC Scripting by petrus4 · · Score: 2, Informative
    I got my own feet wet programming wise by writing my own mIRC scripts. The language seems to have got a bit more complex since I was doing it (1997 or so) but I think it's just been a case of adding more capabilities...the basic syntax is the same. Declaration of vars is dead easy, because you don't have to explicitly specify type, etc. There are also tons of examples available online in terms of other scripts.
    Probably the way I'd start is first introduce her to IRC in general if she doesn't already know about that, and then after she's used that for a bit, show her that there are some things which she can simplify with a few basic aliases. After that you could possibly move onto popups with embedded vars, and then finally if-then-else/branching.

    I'd suggest ircII, but I've seen unbelievably cryptic code in scripts for that...all bunched together.

    PHP could be really good, too. I found that very straightforward, and it wasn't frustrating in the way Perl was. Although you'd probably have to teach her about clients and servers and the difference between each before you got her into that.

  67. Squeak and Etoys by Colin+Smith · · Score: 4, Informative

    http://www.squeakland.org/author/etoys.html

    Squeak is basically Smalltalk. The programming environment is designed to be fun and highly productive. You can go from simple visual concepts to coding.

    It's also free and opensource.

    --
    Deleted
  68. Career move? by Anonymous Coward · · Score: 5, Funny


    > My mom is getting bored with learning the basics of email
    > and has mastered Solitaire.

    And you want her to program!? Nonsense. Get her up to speed on
    Minesweeper and her MCSE is in the bag!

  69. Try Euphoria instead by sombragris · · Score: 2, Informative

    Euphoria is a interpreted programming language that is simple, fast, and with a syntax that resembles something like Pascal without the anal-retentiveness and with a LOT of common sense. Has lots of features, is very fast for an interpreted language, and gives instant gratification. Works in DOS, Windows, Linux and FreeBSD. The downside, though, is that the license is proprietary and AFAIK the interpreter, though very small, is binary-only.

    If you like to see more, here's the FAQ.

    --
    -- Look to the Rose that blows about us--"Lo, Laughing," she says, "into the World I blow..."
  70. Re:I agree by los+furtive · · Score: 5, Insightful
    What would be the point?

    It has a syntax.

    It is easy to deploy

    It applies the concept of nesting

    Its a weak introduction to xml

    It can be mastered in a matter of days

    Its a great launchpad towards JavaScript

    It makes old ladies smile a heck of a lot more than

    public static void main(String[] args){ System.out.println("Hello world!");}
    --

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

  71. Don't write off Logo too quickly. by Angostura · · Score: 3, Informative
    I would humbly suggest that you have a look for a good, full implementation of Logo, it really can be an immensely rich language and is not limited to graphics.

    It's string handling is powerful and LISP-esque and really interesting - I wrote a decent Eliza when I was a kid using it.

    The turtle commands give a really simple and direct understanding or what it means to issue a command. This can lead nicely on to the simple concept of programming multiple commands, but from there the possibilities explode... not literally, that would be too scary.


    Berkeley Logo looks like a very nice implementation (thanks Google). You can grab it gratis for Windows, Linux. Mac, DOS from this guy's home page.


    Thanks for asking - you've inspired me to download it.

  72. HTML - become not terrified by Riannin · · Score: 5, Insightful

    What does Mom do when she is not on the computer? What interests does she have? Who does she e-mail?

    Rather than just looking at programming, maybe she is more generally looking for other things to do with her computer. Maybe her interest in programming is more of an interest in you and what you enjoy doing.

    Does she craft? Does she garden? Does she cook? Would she like to play bridge with other people rather than just playing solitaire? Would she be interested in putting together a family history? Does she know how to engage safely with other folks with her interests on the internet? Can she google?

    Is she an organization nut who would love to put things in databases? Does she have a collection she would like to itemize? Such lists and collections can be easier maintained on a computer. How about an inventory for insurance purposes? Would she want to use some sort of financial management program?

    Would she be interested in obtaining recipes, craft ideas, or patterns?

    Would she like to read, discuss, or publish poetry?

    As for learning how to program, if her current activities do not point you in another obvious direction, HTML is an excellent place to start.

    For all those screeching that HTML is not a programming language, what is there to reply but "duh, my aren't we all impressed that you recognize that HTML is markup language, bully for you."

    Now let's help Mom.

    HTML will get Mom used to typing in a text editor to produce a file which will get transformed into something else.

    Mom will get instant gratification seeing her results in a web browser.

    Mom will, within a few minutes, have something she can actually use and share with others.

    Mom will make mistakes, see those mistakes, and be able to fix those mistakes.

    Mom will get used to working with blocks.

    Mom hopefully will see the advantages of writing in a manner which is easy to read.

    A terrified adult does not need a tutorial on structured programming.

    She needs to become not terrified.

    Riannin

  73. Sometimes I despair for the profession. by fishdan · · Score: 5, Insightful

    <rant>

    Everyone who said HTML is not a programming language is worried that they are not actually competent programmers. You're missing the big picture.

    Computer Science is no more about computers than astronomy is about telescopes.
    -- E. W. Dijkstra

    This is where so many of us fail our customers (and I do mean customers -- we work in a customer service industry, get used to it). We feel like we have to hide the following facts:

    we like our work

    it's not always super-complicated

    Most people COULD become competent programmers

    they can understand why the site is down

    we are not REALLY mortally insulted when non-techs question us

    Being able to code well is not a viture, it's a talent. You're not holy because you can make more efficient use of the EAX register than your neighbor. And being able to code simple things is not out of the realm of ANYONE. It may be VERY simple things, but people can learn to fend for themselves in simple matters. Macros, mail filters, PowerPoint animation -- these things are ALL programming! Maybe not as holy as you all would like, but they are programming. Many developers feel like they are the priests of the code, and they have to prevent the laity from THINKING that they have anything figured out, because if the laity could figure any one thing out for themselves, then they might figure out OTHER things, and soon, what would they need priests for? Relax, you devout catholic programmers (I mean catholic as in definition #1 -- not religiously) programmers. Just because the laity can learn a little HTML, doesn't mean that your days of molesting your clients are over. You don't have to slam the door on HTML being a language as if it was heresy, and will undermine the church. Lighten UP!!!

    My administrative assistant writes simple queries (forgotten username/passwords) because I took the time to show her how to do it. She also now maintains the web pages that deal with technical support for our product. Now, it's true, her account only has select permissions because I'm not ready to give her the keys to the DB. I also don't require her to check her web pages into CVS (although I should, it's so simple). It probably took 15 minutes to teach her how to read the schema, and how to structure a basic select. And she had had NO previous SQL experience. I've also heard MANY people say that SQL is not a programming language. This is just ridiculous.

    Some developers poo poo (that's right, I said poo poo) HTML because it is easier to do, and people who THEY don't consider super smart are able to produce web pages. Because someone without formal training in "the art" can make something that makes a computer "do" something, insecure developers must berate that accomplishment.

    This is arrogance of the highest order. Get over yourselves. None of us is Einstein. And programming is not the intellectual equivalent of a pissing contest. There is nothing sacred about what we do. Some people tend to talk about programming as if it's some mysterious art (not criticizing the Donald, whose books I revere). It's not. Some developers like to distguish themselves from "scripters." Some developers look down on DBA's as people who only maintain/tend the data.
    You're all missing the fact that EVERYTHING that computers do is ONLY about the display and manipulation of data/information. All SGML derivatives are rules that the computer interprets, and then executes instructions based on those rules. And execution of rules is (IMHO)the beginning of programming

    The reality is that we should be happy to have people understand how things rea

    --
    Nothing great was ever achieved without enthusiasm
    1. Re:Sometimes I despair for the profession. by moreati · · Score: 2, Insightful
      Everyone who said HTML is not a programming language is worried that they are not actually competent programmers. You're missing the big picture.
      First of all, let me say: Agreed, HTML is programming, just as C++ is - the computer is interpreting coded instructions to process data.
      Being able to code well is not a viture, it's a talent. You're not holy because you can make more efficient use of the EAX register than your neighbor. And being able to code simple things is not out of the realm of ANYONE. It may be VERY simple things, but people can learn to fend for themselves in simple matters. Macros, mail filters, PowerPoint animation -- these things are ALL programming! Maybe not as holy as you all would like, but they are programming. Many developers feel like they are the priests of the code, and they have to prevent the laity from THINKING that they have anything figured out, because if the laity could figure any one thing out for themselves, then they might figure out OTHER things, and soon, what would they need priests for?
      Please don't tar everyone with the same brush though. There is merit in making more efficient use of the EAX register, or shaving 20ms of that inner loop. Programming is a mix of latent talent, personal drive & learned skill, hence performing it well is an accomplishment that one should be proud in. Some are better, in one speciality or another, than others, many are better than me or (going with the statistical odds) you. (You're-new-here jokes aside I don't think most of us are that elitist, just some.

      Sorry if I got the wrong end of your rant, but I just felt the need to say that.

      Regards.

      Alex

      PS you (intentionally?) didn't close your rant tag, probably for the best, so I'll leave it open too, just in case of any replys. :)

    2. Re:Sometimes I despair for the profession. by sosegumu · · Score: 2, Interesting

      Now that was a rant worth the time and effort it took to produce. Way to slice through the b.s.! Many good points, though I'm sure the elitists you skewered won't agree.

      Thanks!

      --
      It's easier to wear the spandex than to do the crunches. --David Lee Roth
    3. Re:Sometimes I despair for the profession. by arminw · · Score: 3, Insightful

      Of all the things that are on this whole topic, you have certainly had the best post.

      It seems that the prevailing opinion here is that PROGRAMMING is about the only rewarding thing the mother could do.

      How about learning to make and edit videos, create music or various graphic arts?

      A computer is only a tool to most people, not the be-all and end-all it appears to be to most /. readers. Since most people do enjoy creating one thing or another, a computer can be a means of expressing this creativity.

      --
      All theory is gray
  74. "But I always wanted to learn to play the guitar." by valdis · · Score: 3, Insightful
    OK.. up front, I'll 'fess up that I program for a living, and I play waaay too much guitar myself (side note - "programmer with 4 guitars" == "poster child for carpal tunnel syndrome" ;)..

    And I've heard "I've always wanted to learn how to..." regarding both, plenty of times. And my standard response to that is "But why? ".

    Seriously - the question is equally relevant for both disciplines (and disciplines they are indeed - the number of people that can do either well without investing a lot of effort is severely limited). And quite often, I've discovered that what the person really means is "I think it would be cool/chic/whatever to be able to claim that I could....". And that's something totally different, indeed. If the person doesn't have a grasp of that distinction, it's time to turn away while shaking my head. If they really wanted to learn how, they'd have found a way to scrape up enough money to buy a dirt-cheap guitar and learned how to do it. If Robert Johnson could get a guitar, so can you...

    And sometimes, the person has a fairly realistic goal in mind - one that doesn't involve a whole lot of mental and emotional investment. It doesn't take a lot of effort for somebody to learn enough guitar to not look foolish sitting around a campfire - you learn a I-IV-V progression and the associated relative minor chords in a few keys and how to strum on the beat, and you're set. Similarly, learning enough programming to write small scripts to make your life easier isn't very hard - there's enough "<Scripting Language> for Dummies" books.

    However, that's a different goal from understanding either subject in depth - and neither "knowing enough to fiddle around with it" nor "truly understanding it" are the answer to the unstated question here...

    I'm going to go out on a limb and speculate that simoniker's mother isn't really interested in learning to program - what she's really wondering about is "How can simoniker sit there all day typing away, when Solitaire gets boring after a few hours?". And the right answer there is "Artistic Drive".

    Unfortunately, that's a very hard concept to explain to those not driven by it. It takes many forms - the artist starving because they'd rather buy paint than food, Stevie Ray Vaughn playing guitar till the calluses on his fingers bled - and then crazy-gluing them back in place and playing more, or any athlete or performer who has made personal sacrifices in the pursuit of their goals....

    And those of us afflicted by it are never, and have never, and probably never will be, understood by those of us who aren't.. ey to buy a cheap one and found a way to learn.....

  75. Interesting/Fun learning game by bstone · · Score: 2, Informative

    I started using CROBOTS, a pseudo C-language programming game to pass on to people who wanted to learn programming years ago. It's a small subset of C that allows you to control robots on a very simple battlefield. You can program rules for your robot and 'battle' other robots with instant visual feedback from your efforts.

    It's easy to program the robots, or experiment with making the sample robots included work 'better', and you can immediately 'see' your results.

    Check out http://www.ioprogrammo.it/crobots/home.php or Google for it (available for many environments). I first used in in MS/DOS over 10 years ago.

  76. Revolution by Jonin893 · · Score: 2, Informative

    Revolution has a free trial version that can do just about anything the full one can if you don't mind using a couple of tricks and the support community is excellent. Revolution is basically hypercard with a bunch of new features and is constantly being updated.

  77. Good teachers need to adapt to their student by ArcticCelt · · Score: 2, Insightful

    I think the most important factor is the way to teach it and not the programming language. I myself am already a programmer and I just failed to read the Introduction of the HTDP. This thing look atrociously boring.

    All my life I have teach all sort of things like sports, how to maintain computers and many other stuff to friends, family and for work.

    Good teachers need to adapt to their student and find the particular way that work best for someone. Taking the contend of a book and trying to force it directly in the head of your mother is not the best solution.

    Go for a project oriented method. Ask her questions and try to find WITH HER a not to difficult project that she would like to do. Then choose the programming language the most appropriated and divide the whole project in smaller goals. Teach her goal by goal until you can assemble the whole project with her.

    Star with something easy and remember the most important word in all the process is MOTIVATION. People are willing to learn anything if they have the motivation to do it.

    --

    Yahh, hiii haaaaa! -Major Kong, from Dr. Strangelove
  78. Re:Pascal by shaitand · · Score: 2, Interesting

    Rather odd that all Dartmouth resources (including those written by the authors of the language) say it's an acronym for Beginner's All-purpose Symbolic Instruction Code.

    So whether the jargon file is correct or not, The authors have blessed the acronym repeatedly and therefore it is correct. What used to be true is irrevelent, after being blessed by the originals authors the acronym is fact and to say BASIC does NOT stand for Beginners all-purpose symbolic instruction code now is incorrect.

    All resources from Dartmouth and the authors of the language also make clear that it was intended as a beginners language for learning and a stepping stone to REAL languages like FORTRAN and C.

  79. What does Mom want to do when she learns how? by astrojetsonjr · · Score: 3, Interesting
    Learning programming is fine, but what does she want to do with it? (I want to learn French for my trip to Paris, I want to learn Finnish to talk to that woman at my club. I want to learn (some computer language) so I can (make cool web pages, manage my recipes, solve world hunger, etc.). Then go from that point, that should help the language choice.

    If you are just trying to do basic programming constructs, pick something that has a good IDE, good error messages and can take a cheese sandwich, compile it and run it. Some of the errors from Java and Java script are pretty sad ( "is not an Object" is always helpful to me).

    Logo, Basic, Pascal, Fortran, Squeek, etc. are all easy to learn the concepts with. I say start with one of them. You can always move her to something else later on.

    The other options are to build her a Wiki and let her generate content (family news, ancestors, stories, garden info, hobbies, etc. Wiki presentation can be considered some level of programming (and slightly easier to understand than HTML).

    Good luck, and remember your Mom raised you, so when she does not get the quirky points of Perl you are trying to teach her, don't yell at her.

  80. Good programming language by panic911 · · Score: 2, Informative

    I noticed someone mentioned HTML, which can be a lot of fun and very easy, but that is in no means a programming language (its a markup language). I think PHP would be an excellent beginning programming language for someone to learn. It is so lose and simple, and yet so powerful at the same time. It's built to be used by people of any skill level, whether you want just some simple little page counter, or some super complex object oriented forum or something.

    It's (for the most part) specific to web programming though, so that might not be the direction you're wanting to go in. You would also need to get access to a web server with PHP running on it.

    -panic

  81. Spreadsheet by Roydd+McWilson · · Score: 2, Interesting

    Modern spreadsheet applications are a full programming language. It's a nice interface to learn about programming, because you can see the results of different steps of your program in spreadsheet cells. Furthermore, she can make use of it right away to manage her finances.

    --
    THE NERD IS THE COMPUTER.
  82. Track for beginners by Gunfighter · · Score: 2, Interesting

    1. Have her read ESR's How to Become a Hacker.

    2. After that, start her on Learning to Program.

    3. From there you can cover a little review material as well as some more advanced topics in Dive Into Python.

    I made the mistake of leaving "Learning Perl" and "Learn to Program in C in 21 Days" lying around the house. My wife read them and understood them for the most part, but she's not exactly whipping out kernel modules. The track mentioned above is definitely better for, as you put it, a "terrified adult".

    --
    -- Stu

    /. ID under 2,000. I feel old now.
  83. Does it have to be programming? by base_chakra · · Score: 2, Insightful

    We don't really know what the author's mom is interested in specifically. Obviously she saw some potential in personal computing that she was missing out on, but that doesn't necessarily mean that programming is the only outlet for her creative potential, and certainly not the most appropriate one.

    There are myriad possibilities depending on her interests: landscape/garden planning, digital painting, music composition, interactive learning, personal research, personal finance management, forum discussions, or even multi-player Yahoo! Games.

    Some of these are creative outlets while others are means of personal enrichment or empowerment. Whichever category applies, the fact that she was keenly interested in exploring new possibilities in computing suggests that she has the potential to do something serious and exciting with her computer. I see no reason why that engagement has to involve high-level programming.

  84. I think you're going about it wrong. by ErikZ · · Score: 2, Insightful

    It would be better to see what she likes to do normally, and then see if you can use a computer to improve on that.

    For the amount of time I spend on my computer, I've done very little programing. The little bit of scripting I do now is solely for my website.

    --
    Democrats or Republicans. They are both taking us to the same place and they are not afraid of us anymore.
  85. Behold! by kaos.geo · · Score: 2, Funny

    His mother "expressed an interest in learning what I was doing". Behold, one of the signs of the apocalypse!

  86. Activewords, Lazlo, and Ruby by stephanruby · · Score: 2, Interesting

    I'd recommend Activewords (a Macro?? language for Windows -- it's the easiest to learn), Lazslo (an easy Flash tag based language), or Ruby (an easy object-oriented scripting language)

  87. Am I the only one... by calypso15 · · Score: 2, Interesting

    That thinks Perl or PHP would be a good choice? As scripting languages, you don't have to worry about compile or link errors, but they're also relatively powerful. They can start simple, and, I think, they're pretty intuitive languages. Of course, if you choose the PHP route, you might want to start them off with HTML as was suggested. Ryan

  88. Re:Pascal by shaitand · · Score: 2, Interesting

    I'm going to have to withdraw my small concession that jargon file may have been correct at one point.

    It seems that the jargon was NOT correct to begin with and the current Jargon file states as much:

    "BASIC stands for "Beginner's All-purpose Symbolic Instruction Code". Earlier versions of this entry claiming this was a later backronym were incorrect."

  89. Hobbies by rueger · · Score: 3, Funny

    What does Mom do when she is not on the computer? What interests does she have? Who does she e-mail?

    My mother in law had only slight interest in computers until she found out that there was a gigantic network of grandmothers who exchanged computer embroidery designs via e-mail.

    Or, more accurately, designs featuring characters that are well protected by the Sonny Bono Copyright act. From a company whose name starts with "D"....

    Several hundred floppy discs later we bought her a CD burner so she could better manage her booty.

    Eventually the Alberta cop who was one of the central figures in this operation was shut down and charged.

  90. Feed her hunger for knowledge.... by pjay_dml · · Score: 5, Insightful

    ...and her growing passion for computers.
    DEFINETLY PERSUE THIS TASK!

    commenting the above.
    me thinks, that html seems to be a great choice as the parent points out:
    - it is great as an introduction to getting the "machine" to do what "you" want
    -> this feeling of control encourages to learn more
    - it will make them familiar looking at conventional (as in content) text, mixed with text expressing abstract ideas
    -> any one familiar wit LaTeX has to view html as just anoter way of wordprocessing; though what it comes down to and is of interest for the poster is, that learning and using html is a great introduction, especially for those having difficulty with anything 'academic', combining regular text, their content, with controling text. controling in the sense, as it has some form of control over the display of the content by the browser [regarding html].

    then there is not only html. once you start to delve into the subject, you will unavoidably be confronted with such things as css, php, javascript, etc. php will again be daughnting, and far to advanced. javascript though, can be hacked by any script kidy.
    now we are not only looking at formating text. even if his mother chose css as her next step. she will start to discover how to gain even more power over the machine, as now first actual manipulations are possible. this ability also delivers a sense of capability, encouraging to tackle more difficult issues/tasks. as well as that it trains the brain in abstraction, the basic principals of coding (creating folders, organising files, all very basic stuff, but the UNDERSTANDING delivers far more insight into the actual functioning of a computer), and give a first impression of the linguistic capabilities a machine has.

    teaching your parents can be a daunting task, that one want to organise in a way, to make the whole adventure as pleasent, easy, and least time consuming as possible.
    with html you can let you mum play around. introduce her to a simple editor where she can easily switch from editor to browser view, and explain this concept to her (first look into the difference of code and application, both are text, but both text have different meanings; to US this concept is as obvious as that the sky is blue, just as proving the existence of a probability is trivial to a mathematician, anyone new to programing is confused, that there is text[code] and that there is text[actuall text displayed through code], as one can note in the way i have written this down, 2 them it is all just TEXT). then give her a simple, but not so trivial, example that she can play around with. give her a bunch of links where to find more information. and then let nature do its thing.

    i have tought english to chinese kids, who didn't speak a word of it, while i don't know a word of chinese (exagerating, by then i had learnt how to say 'hello' = 'ni`hao'), i have troubleshoot the troubles of my grandfather and given him basic instructions an application usage via the phone to england, i have helped out most friends and any other family member, besides my job as a software and web deveopment consultant. my experience is: give them the fundementals, and then just be there while they play around. remember all those animal movies, how every animal learns while playing. hhhmmm, (not) sorry if i offend any believers, but we are animals. ergo, we learn through playing. while watching them, guide them. by that i mean, show them how they can gain more. in any game one can not only get stuck, but also go down paths, that lead no where. that is where your job as a teacher comes in: you are their guide. you mountain guide tells you about the pit falls, points out dangers and oportunities, great views, as well as the best way to the desired destination. guide your student (mother) into the computer park .

    good luck, and hopefully also fun;)

  91. POVRAY ! by Lucky+Luc · · Score: 2, Interesting

    I suggest POVRAY (http://www.povray.org). It's free, it's less "childish" than LOGO but still shows great results! Of course, might be seen more as a scripting language than a real language but still. Don't let her start with the plain void; start a construct, let her finish the rest, opening her mind... You have to show her the door, she has to walk through it.

  92. An Interesting Project Is Key by localman · · Score: 2, Interesting

    My mom, born in 1945, had never used a computer before 1999. I bought her one on a whim that year and the first time she used the mouse she laughed like a little kid. She was completely mystified by the whole thing, though, and I wasn't hopeful that she'd actually use it much. But I gave her a couple days of instruction and set her loose. She did master email and web surfing in a few weeks, and I thought that was as far as she'd go.

    What really triggered her learning was finding ebay. She got the bug and wanted to start selling off her old stuff. I would never have guessed it would happen, but a few months after buying her the computer I was teaching her the basics of HTML. She loved it and got pretty good at it for a casual user. Today she codes crypto functions in assembly. Okay, that last sentence is a lie, but the rest is true ;)

    I think the most important thing is having something enticing that they want to actually do with programming. For my mom this came about naturally from wanting to post fancy ads on ebay.

    Programming as an abstract goal or with contrived toy projects isn't likely to stick or be very interesting. But trying to think of a real project with a real language for your mom would probably be difficult. Which is my point.

    Another post mentioned HTML, which is a great idea. It's not a programming language, but it teaches people how to make something using a strict (heh) set of text instructions. This is a huge leap of understanding that will go a long way towards understanding the concept of programming. It's also great because it's easy to thing of an HTML project. Just about anyone would like to try their hand at making a web page.

    Anyways, those are my somewhat disjoined thoughts. Gotta go!

    Good luck!

  93. Fun/Easy way to learn programming by bstone · · Score: 2, Interesting

    I have used a game called CROBOTS to get people started with programming. It is a simple subset of a C compiler with a small game. You program a simple robot to compete with others, and immediately see the results on the screen.

    Comes with sample 'robots' making it easy to start by looking at them and trying to make them 'better' ... then watching the results on the screen.

    I've used it to introduce people to programming for at least 10 years, and it's available for most platforms.

    Either Gogle for it (lots of varients available), of look at http://www.ioprogrammo.it/crobots/home.php

  94. Real Basic by agerson · · Score: 2, Interesting

    http://www.realbasic.com

  95. Re:qbasic free download / win95 disc by wirehead78 · · Score: 2, Informative

    Yes! Qbasic is easy to learn, instantly gratifying, and surprisingly powerful if you want to dig in. It's a great place to start...it's where I started. Easily downloaded for freehere. You can also easily find it on the Windows 95 disc.

  96. Re:I agree by aardvarkjoe · · Score: 3, Informative

    Language is a special case -- there's good evidence that the capacity to learn language is hard-wired into the brains of children, and much of that ability is lost later in life. Older people's lack of success in learning things like programming are almost certainly due to not having the correct experience rather than lacking the mental capacity to learn how to do it.

    --

    How can we continue to believe in a just universe and freedom to eat crackers if we have no ale?
  97. Linear programming vs Object Oriented Programming. by Chaymus · · Score: 2, Insightful

    My Highschool teacher started us out with 2 semesters of Pascal, 1 of C++ only using linear methods. Finally we switched to Object Oriented with C++ and an Independent study of VB. College started with Scheme, then Java for the comp sci intro classes. Now all of our algorithms classes and such are taught in C-C++. Pascal/fortran were the industry standard for intro classes. I believe only 2 universities teach Lisp/scheme and have them centered on the intro curriculum. If you really want to get the just of programming Linear languages teach an excellent use of syntax, methods of style, and a clear approach to problem-solving in a way a computer understands what is being used. Object oriented is (To me) so abstract that it is difficult to understand exactly what is going on when I first looked at it. If you really want to program there are two things that drive a successful programmer. 1: a goal as to what you're going to do with your programming knowledge. 2: Acceptable steps to get there without taking on something that's too advanced. Pascal worked well enough for me because it's a great language to start out with easy to build number-crunching problems. As the end of our Pascal days was introduced we started learning graphic implementations for use on artillery-games or simple animations. Here's where we noticed what a pain a linear approach is to build these as our code lengths approached a thousand lines of code. imho, I would take a good look at what she likes to do on a computer, and then attempt to clone it. Solitaire is a good program to start off with. You really only need to know read/writes and randoms. Graphics aren't necessary in any language as you can do ascii printouts of location and update functions to show the board. As she becomes more confident with her skills continue to recreate the Same game making it more and more user-friendly. This step allows her to change languages, approaches, and designs so that she can begin to understand the numerous variety of ways programming can solve the same problem. Sorry if this is reduntant to other posts, but it won't work unless you can create interest in something you're going to spend hours upon hours doing.

  98. This calls for a vote! by AlexanderYoshi · · Score: 2, Insightful
    Slashdot should start a poll on the easiest language to teach a beginner. ;-)

    -Alex

  99. I teach people Ruby by Pierce · · Score: 2, Interesting

    Although I do most of my programmign in Python, I have had the best success in teaching people Ruby. IMO, Ruby is a lot cleaner and easier for people to learn. There is also a book available for free online at http://www.rubycentral.com that will help with the basics.

  100. Scheme vs Logo by alanbs · · Score: 3, Interesting

    I always thought that Scheme and Logo were basically the same thing. Aside from some simple syntax differences and possibly scoping, I have always thought of logo as scheme with a drawing turtle. In fact one of the first things that I did in the first computer science class I took was first making a Scheme interpreter in Scheme and then making a Logo interpreter written in Scheme, which didn't require many changes. Anyway, you can do some pretty complex things with some simple languages. I would use Logo to draw some cool fractals.

  101. What about Pascal? by Brettt_Maverick · · Score: 4, Interesting

    I know it's not particularly marketable, but I've always thought Pascal was an excellent learning language. Pointers, structures, dynamic memory allocation... and simpler syntax than C. In my experience, most people learning programming via VB get bogged down in UI tweaking, and the C/C++ learners get bogged down in the &*&! syntax. Java leaners tend to get confused with OO when they haven't yet been exposed to variable scope, and functional decomposition, etc. Again, in my experience. Pascal is simple enough to get started quickly, but rich enough to let the learner grow into the advanced concepts. It's a gateway language - it makes learning C/++/#,Java, etc. much less intimidating. Although, for "Holy Crap, I made something!" value, VB's prety good. In no time at all you can make something that looks "just like a real windows application" (with all the inherent reliability ) I guess it all comes down to how much you want to spend on 'fundamentals' and how much you want to spend on, well, let's be honest, 'fun and cool stuff'. Ultimately, for some, it comes down to not choosing the right language, but the right project - start something simple and then keep pushing and pushing it. Maybe start with some HTML, move onto JavaScript (where you can get into parameter passing, functions, syntax, and control structures) and from there maybe into database or media stuff, depending on what would be fun to do next.

  102. Re:I agree by Max+Romantschuk · · Score: 2, Interesting

    On HTML:
    It can be mastered in a matter of days

    I disagree. The syntax is easy enough, especially in XHTML (no this tag ends this tag doesn't mess.) But mastering HTML is much more than the syntax.

    I've been doing HTML professionally for years, and I'm still working towards creating proper semantic documents and learning how to structure my content and then apply design.

    Furthermore almost no sites actually validate against W3C's validator, and if you have mastered HTML you should be able to create valid documents.

    But yes, HTML is easy to learn how to use in a matter of days.

    --
    .: Max Romantschuk :: http://max.romantschuk.fi/
  103. Re:I agree by mdpye · · Score: 2, Insightful

    So programming doesn't involve languages?

    On the contrary. While most programming languages (within a given paradigm) are pretty similar really, the shift from natural to formal language troubles a lot of people.

    I see programming as describing a solution or procedure, and that is language based.

    MP

  104. Flash - or other eye-candy by cruachan · · Score: 2, Interesting

    You're missing the point. She wants to do something 'clever' with her computer but she's never going to be a hardcore 'C' geek, so you need something that is fun, gives fast results and looks good.

    If she's got any hint of design skills at all go for Flash. Hell you might even get something 'commercial' out of it - get here to design a flash game that hooks in 'moms' and you have a seriously sellable product!

  105. Python is the easiest one. by Maljin+Jolt · · Score: 2, Interesting

    Yes, python. Consider it's interactive feature, you have an immediate feedback in teaching code fragments or typical algorithms. This quality made basic a learnig tool for decades, but basic is inferior in it's expressiveness.

    Of course, some people will never understand the paradigm of computing. My mother calls any and all of dozens of computers I have or ever had "that silly thing" for forty years. As an accountant, she used a mechanical calculator for whole life. Her current boyfriend (both are aged over their 70's) was a nuclear scientist in his carrier, and he never touched the computer nor calculator. He did all his computing manually on logarithmic ruler.

    --
    There you are, staring at me again.
  106. It's not the language it's the need by monopole · · Score: 3, Insightful

    Trying to teach someone a skill they don't see the need for will only result in frustration. I didn't learn my favorite language (Python) until I needed it to script vtk.
    The key aspect of teaching programming is to identify a need your mother has for an automated task. Then teach her how to automate it with a simple language such as Python using just the subset needed to solve the problem. Then branch out aadding features to the solution and identifying new needs. As the programs expand, introduce new language features.

  107. Re:How about RoboCode? by AndroidCat · · Score: 2, Insightful
    Events are a very good thing to learn straight off. Learning from a linear procedural system requires a mental shift to understand events later on.

    But most important: it's fun!

    --
    One line blog. I hear that they're called Twitters now.