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?"

909 comments

  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 Anonymous Coward · · Score: 0
      I second this. Then, if she's still interested, work her up to ASP.



      Fight SpamBots!

    3. Re:HTML by Q-Hack! · · Score: 1

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

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

      Nobody said it was a programming language. Apart from the fact anyone knows it's not a programming language, you funny nitpicker.

    5. 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.

    6. 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.

    7. Re:HTML by Eudial · · Score: 1, Redundant

      You don't program HTML. HTML is a markup language designed for text formatting, so spending weeks learning HTML when you want to learn how to program would be completely down the drain since HTML is not a programming language.

      --
      GAAH! MY PRINTER IS ON FIRE!!! PUT IT OUT! PUT IT OUT!
    8. Re:HTML by Alban · · Score: 0

      HTML is a declarative programming language. It is a programming language.

    9. Re:HTML by jimicus · · Score: 1
      Agreed.

      <shameless plug>

      This might be a helpful start. I wrote it a couple of years ago to help a number of teachers (ie. intelligent but not particularly IT literate people) grasp the basics.

      </shameless plug>

    10. Re:HTML by Anonymous Coward · · Score: 0

      HTML isn't a programming language, it's a data format.

    11. Re:HTML by primal39 · · Score: 1

      I also had this argument with a teacher, and was able to successfully convince him by pointing out that there is no method for iteration in HTML.

      --
      Eschew Obfuscation
    12. Re:HTML by dpearre · · Score: 1

      HTML is merely a markup language with no actual resemblence or connection to progamming languages. But for learning the absolute basic concepts of programming, I think a nice launchpad might be a good Javascript tutorial. It delivers immediate results, there's no compiler necessary, and she can learn a few of the basics of variable manipulation and program design before moving onto more useful development environments.

    13. Re:HTML by Anonymous Coward · · Score: 0

      RTFstory. his mom never said she wants to learn programming. that was his idea. and your already unnecessary posting gets even more useless since it is redundant

    14. 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.

    15. 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
    16. Re:HTML by coshx · · Score: 1

      I agree with HTML and CSS, but I'd stear away from javascript, besides the simple "paste this code into your html to get a rollover", because i've found javascript to be more confusing to new programmers than the java language itself. Reason? types. Because javascript (and vbscript, and perl) uses types internally, a programmer who's never had to deal with them will have an extremely difficult time learning basic things, like why 1+1=2, but "1"+"1"="11" (where "1" comes from the fact that they typed the number 1 into a web form).

    17. 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.

    18. Re:HTML by BorgDrone · · Score: 1
      True, but it is a good introduction to other more involved laguages.
      In what way ?

      You'd be better of teaching her BASIC, at least that one teaches something about control structures, variables and I/O.
    19. Re:HTML by pdxdada · · Score: 1

      I totally agree, in my expirience this is the only rout that ever works for non geeks. We may all think it's a good idea to start with the basics of programming, (algorithms, variables, Boolian logic et all), but that's because we're geeks. We like learning theoretical things. However, from experience most people will quickly lose interrest unless they see some imediate gratification. Teach her to build a basic web page, she can see what she's doing as she goes along and will even have something to show for it. If she's still interrested go for java script, if she's still interrested I'd go for one of the P's (php, perl). If she's still interrested after that you've got her hooked.

      --
      Don't mess with the bunny, outsideworld.org
    20. Re:HTML by Eudial · · Score: 0, Redundant

      But HTML has NO programming concepts at all. No variables, no iterations, no functions no nothing!

      Besides indentation and the fact that text can do more than be english it really doesent give anything.

      --
      GAAH! MY PRINTER IS ON FIRE!!! PUT IT OUT! PUT IT OUT!
    21. Re:HTML by Anonymous Coward · · Score: 0

      man youre so redundant its really a shame. and not even check the "post anonymously" checkbox you poor bastard

    22. Re:HTML by Anonymous Coward · · Score: 0

      Sure there is! Meta-Refresh.

    23. 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"

    24. Re:HTML by sploxx · · Score: 0

      As other /.ers pointed out: "HTML is not a programming language".
      HTML lacks loops and is therefore not turing complete.

      I wonder what you meant with 'HTML', probably JavaScript?

      This is a possibility though I would really stick with scheme. Scheme is IMHO:
      - one of the smallest languages available (write your own interpreter/compiler --> it's no problem and covered in the book mentioned below!)
      - *VERY* expressive. Forget Python/Java whatever. In Scheme you have everything. Build your own syntax using macros. You will probably 'stay-ahead' of every other language forever. Well that has also drawbacks - As some have said: Scheme is and will remain the language of the future ;)
      - It lacks syntax. No weird structures to learn.

      Maybe you should use the book "Structure and Implementation of Computer Programs" instead?
      It covers every basic aspect of programming today in a very simple way.

    25. 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
    26. 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 :)

    27. Re:HTML by Hawkxor · · Score: 1

      this may be true...but HTML is like the step in between plain text and all out programming - it may not be programming, but its still coding. I might suggest teaching HTML basics and then trying out javascript.

      So you could start with something like:

      Whatever
      This is my webpage

      and then try to use javascript to do things

      of course, the alternative there is just to use java, which is an excellent introduction to object-oriented design.

    28. Re:HTML by j1m+5n0w · · Score: 1
      Tables can be pretty involved, if you a just using notepad as an editor.

      Just because something is hard doesn't make it a programming language. There's a certain number of minimum features a language must support before its considered turing complete. (These usually include things like variable assignments, if statements, and loops.) HTML exposes people to the tedium of programming without giving them any of the real power that programming languages can provide. Javascript is another story, but as I haven't programmed in it, I really can't comment on its suitability as a first language.

      -jim

    29. 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.
    30. Re:HTML by erockett · · Score: 1

      Okay, okay already! It sounds like it depends on how strict your defintion of a "programming language" is. Some people count it as one, others with stricter definitions don't. Some people might just not know that there's a difference. I think HTML is a really good *start,* (even if it's not a programming language per se) because it easily produces a nice, visual result quickly, and you can do so much with it really easily. That's what I started with, and I hope to learn more about *programming* languages in the future. But HTML is a good starting place. You don't have to spend tons of time on it, but it's nice to learn what some code (even markup) looks like and just get used to the idea. Shorah, erockett

    31. Re:HTML by Anonymous Coward · · Score: 1, Funny

      I would guess x86 assembler is a better choice. If she is a real mom, c++ is the great option. If your mom was a hippie in 60's, perl is the answer. And if your father says she is a pervert, fotrh is the language she is looking forth.

    32. Re:HTML by Q-Hack! · · Score: 0, Redundant

      LOL

      --
      Some days I get the sinking feeling Orwell was an optimist.
    33. 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.

    34. Re:HTML by rizzo420 · · Score: 1

      php, not asp...

      --
      please me, have no regrets.
    35. Re:HTML by MBCook · · Score: 1
      Like I said, to get her used to making the computer do what she wants, it would be good. I think messing with HTML could be a valuable exercise in making her more comfortable with this kind of stuff.

      That said, people calling HTML a programming language is a major pet peeve of mine. It doesn't have an assignment statment (ala X = 3), so it's not imperative. It isn't recursive (how do you call a function in HTML, and what IS a function in HTML) so it's not functional. You can't automate actions on a shell or anything else so it's not a scripting language. Yes you can add those things with Javascript, PHP, CGI, and other things, but then it's not HTML that you're programming in, is it? It's JavaScript, PHP, CGI (usually Perl), or whatever.

      Good to get someone comfortable, but NOT A LANGUAGE! I would LOVE to hear a good definition of a programming language that would include HTML (remember: using JavaScript and such doesn't count).

      --
      Comment forecast: Bits of genius surrounded by a sea of mediocrity.
    36. Re:HTML by mattkime · · Score: 1

      thats a really good idea.....

      if his mom is hot!

      --
      Know what I like about atheists? I've yet to meet one that believes God is on their side.
    37. Re:HTML by Anonymous Coward · · Score: 0
      You sir do not know html. It does indeed have variables which you use when dealing with forms.

      Those variables only come into play in DHTML, client side scripting, or server side scripting. I'd argue that the amount of "just do this, it's magic" that goes into web programming makes it a poor choice for a beginner.

    38. 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.

    39. 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

    40. 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.

    41. Re:HTML by Unordained · · Score: 1

      You could (very loosely) consider HTML a programming language of macros: all those tags are stand-ins for some behavior that is already defined (as with functions) ... when you get down to it, the output of a text file (via cat) and of an executable file that prints that same thing ... are indistinguishable. so you could do web pages the easy way, using predefined tags, or you could do it the hard way ... uh ... involving ... i don't know ... something less easy. activex? flash? something that could be downloaded directly, and appear filling the browser window?

      i didn't say it was a rigorous proof.

    42. Re:HTML by Anonymous Coward · · Score: 0

      Many programmers start by learning HTML. While it isn't a programming language, it provides a platform from which a budding programmer can build off. Once learned, there are many options for a beginner: client side DHTML or applets to serverside PHP/Perl, etc... On a personal note, it was HTML that initially sparked my interest in computers, and now I'm working on my masters in software engineering.

    43. 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.
    44. Re:HTML by Anonymous Coward · · Score: 0

      Good to get someone comfortable, but NOT A LANGUAGE!

      Crap. Whatever else it may or may not be it IS a language.

    45. 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.

    46. 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
    47. Re:HTML by jdog1016 · · Score: 1

      Who said anything about it being a programming language? It is a structured computer language in any case, and it gives a lot of people who otherwise don't have much of a computer background the ability to create web pages, which is something that everyone likes to do.

    48. 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.

    49. 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.

    50. Re:HTML by tomstdenis · · Score: 1

      I'd argue just the opposite. In HTML you put a for bold. You are *instructing* an interpreter to perform an action.

      If you say HTML is not a language I say C is not a language. C code itelf doesn't do anything either. It's the compiler that turns the code into executable code [to perform the actions].

      Though I disagree with other posters. If you want to learn how to write programs [e.g. executable images] then you're best learning a language like C along side algorithms, various maths, data structures, compiler theory, etc, etc, etc.

      Just "knowing" C or just "knowing" Java doesn't make you a programmer in the same way that just "knowing" English doesn't make you a novelist.

      As for the "instant gratification" properties of HTML I say grow up. Sometimes the best feeling when writing code [of any significant size] is seeing larger portions pass testing. It shows that you thought out ahead what you were doing, you implemented it well and you followed through with the given specifications [e.g. a job well done].

      Tom

      --
      Someday, I'll have a real sig.
    51. 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.
    52. Re:HTML by Anonymous Coward · · Score: 1, Funny

      Just what the hell is "JAVA"? I know of a programming language named Java. Why arbitarily upper case the name? Why hold the shift key when you don't have to?

    53. 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.
    54. 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.

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

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

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

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

    57. Re:HTML by Anonymous Coward · · Score: 1, Insightful

      Yes, and HTML/CSS/Javascript also teach you several other important concepts:

      * Documentation doesn't always match implementation
      * 'Portable' languages mean subtly different bugs on every platform
      * "It works on MY computer!"

    58. Re:HTML by Theatetus · · Score: 1
      HTML lacks loops and is therefore not turing complete. I wonder what you meant with 'HTML', probably JavaScript?

      No, he meant HTML. It's not a programming language but it is a computer language, and it's a good place to start: it teaches ideas like the importance of correct spelling, the difference between directives and data, etc.

      Incidentally, you don't need "loops" to make a language turing complete. "if" and "goto" with variable assignment will suffice. So will lambda abstraction. So will a control stack (consider Forth or PostScript; both are turing complete but "loops" are just macros to manipulate a control stack).

      --
      All's true that is mistrusted
    59. 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.

    60. Re:HTML by sploxx · · Score: 1

      Incidentally, you don't need "loops" to make a language turing complete. "if" and "goto" with variable assignment will suffice. So will lambda abstraction. So will a control stack (consider Forth or PostScript; both are turing complete but "loops" are just macros to manipulate a control stack). You're right. But all you're describing is the ability to make loops :) Who said loop==while?

    61. 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.

    62. 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.

    63. Re:HTML by Anonymous Coward · · Score: 0

      Your points are all valid, but there you must consider the person being taught. From the article it really sounds like the person's mother is not in IT or an IT related field, thus there is no reason for her to spend hours and hours of her time learing any of those things.

      True that if you were to teach html to a young child, he or she may become facinated with the concept of programming. Showing it to your mother on the other hand, specifically one who has never had the oportunity to program professinally will only serve to teach her html, and not do the other things you described.

    64. Re:HTML by johnwroach · · Score: 1

      You're right: you know, and I know, it's not a programming language in most senses of the word.

      However, to someone who can use a computer, but hasn't mastered the complexities of one, it's close enough.

      I don't get the feeling that she wants to work on NLP, but just play around and have something to show for it. For that purpose, HTML is a great idea.

      Hell, if he can teach her CSS, then she's miles ahead of 90% of the world (in the computer using sense).

    65. Re:HTML by CanadaDave · · Score: 1

      while (his_mom == MILF) { teach_her(); if (you got action) break; }

    66. Re:HTML by Anonymous Coward · · Score: 0

      How about VB Script? Your mom would probably find spreadsheets useful for recipes, budgets and listing your chores. So adding a few buttons and validation processes would probably be fun.

    67. Re:HTML by Anonymous Coward · · Score: 0

      you can use or even

    68. 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.

    69. 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
    70. Re:HTML by dcam · · Score: 0, Redundant

      From the Question:

      Everything I've looked at so far seems too complicated (Scheme, Python, VB)

      --
      meh
    71. Re:HTML by Anonymous Coward · · Score: 0

      Similar syntax to many other languages (C[\W]*, Java, Perl)

      What part of HTML is similar to the languages you listed?

    72. 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.
    73. Re:HTML by mrscorpio · · Score: 0, Redundant

      Well, for HTML, the "compiler" is the web browser in effect, so instant gratification can be had, moreso even than a "Hello World" program in *insert language here*.

      Chris

    74. Re:HTML by MillionthMonkey · · Score: 1

      It was probably a bad example to use here, since it's not a computer newbie mistake, it's just a new-to-Java mistake. The guy who wrote it had a PhD from Stanford in math which is what made it funny when I came across it a few days ago.

      The new operator is guaranteed to never evaluate to null in Java. If a TCP connection can't be made, the Socket constructor will throw an exception and you won't get to the next line at all. This is different from C++ where new evaluates to NULL to indicate failure.

    75. Re:HTML by E_elven · · Score: 1
      >HTML lacks loops and is therefore not turing complete.

      A looping construct is not required.
      factorial x = x * (x - 1)
      Therefore HTML is turing-semi-complete because you can recurse by means of the frameset tag.
      --
      Marxist evolution is just N generations away!
    76. Re:HTML by tomstdenis · · Score: 1

      I don't see what bearing that has on the conversation at all. HTML "markup" is still a grammar where you instruct an interpreter to perform certain actions.

      I mean a "table" command cannot turn into a HREF link etc... table means table.

      Your argument is analogous to saying C is not a programing language because an ARM and x86 compiler will produce different object code from the same source.

      C is not a programming language!!!!????

      --
      Someday, I'll have a real sig.
    77. Re:HTML by xcham · · Score: 1

      Teaching someone BASIC is a betrayal. As Edsger Dijkstra once put it, "It is practically impossible to teach good programming style to students that have had prior exposure to BASIC; as potential programmers they are mentally mutilated beyond hope of regeneration."

      Even if she's not going to ever need to learn proper style, better to teach her nothing than to have her learn BASIC.

      --
      When life gives you lemons, you CLONE those lemons, and make SUPER-LEMONS. -- Dr. Cinnamon Scudworth, Ph.D
    78. Re:HTML by Dwonis · · Score: 1
      HTML is one of the hardest languages to learn, mainly due to the lack of widespread standardization.

      Python is not too hard for anyone to learn. Perhaps some people just don't want to learn how to program (that seems to be the case in my family).

    79. Re:HTML by Dwonis · · Score: 1

      You haven't removed the Caps Lock key yet (either by remapping or by physically removing the key)?

    80. 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
    81. Re:HTML by eurleif · · Score: 1

      By that definition, English is a programming language too. It has a formal syntax (some people extend it, but the same goes for most other programming languages), and it conveys information.

    82. Re:HTML by quelrods · · Score: 1

      are you sure php is turing complete? They have a ton of problems with getting references to work correctly. Also, they have stated fixing them (so they behave in all our high level languages) would hinder performance of the language so 4 and 5 are very broken. Don't try variables into functions and don't use classes and you should be fine...see: http://bugs.php.net/bug.php?id=20993 good quote "We have discussed this issue and it will put a considerable slowdown on php's performance, to fix this properly."

      --
      :(){ :|:&};:
    83. Re:HTML by sploxx · · Score: 1
      x=(x<2) ? 1 : x*fac(x-1);
      ^
      Ok, I am no web developer, but how would you implement the needed conditional in HTML?
    84. 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.

    85. Re:HTML by Cody+Hatch · · Score: 1

      The table tag is ALSO deprecated, and being phased out, and for exactly that reason. You're still missing the point.

      HTML describes the meaning of a stream of text. This chunk is a paragraph, this chunk is a title, this chunk is another paragraph, this chunk is important. HTML does not (or should not) give directives, because it is NOT a programming language. Its up to the browser to decide how to render various types of data - titles should be larger maybe, or a different color, or spoken in a different voice, or emphasised by a sudden smell of violets - whatever the browser/user wants.

      To be perfectly clear - HTML does NOT instruct an interpreter to perform actions. The browser is not an interpreter (not of HTML, anyhow), and in any case does not receive "instructions" from HTML code. Some HTML tags do exist (font, b, table) which issue explicit instructions, but these are seen as mistakes, and deprecated.

    86. Re:HTML by Tony-A · · Score: 1

      Maybe a good example.
      The code is functional and will work as intended in both Java and C++, despite fundamental differences in the semantics of new.

    87. Re:HTML by scott_evil · · Score: 0

      Your analogy would be correct except that the browser is an interpreter which simply displays the results of the HTML. It does not compile them in the slightest.

    88. Re:HTML by mrscorpio · · Score: 1

      No doubt, but they do the same thing for someone new to programming. First you write a bunch of code, then you "compile" it and see the result.

    89. Re:HTML by Jerbiton · · Score: 1

      > There's a certain number of minimum features a
      > language must support before its considered turing
      > complete. (These usually include things like variable
      > assignments, if statements, and loops.)

      Pardon, but I can no longer contain my pedantry... I trust to be forgiven, since there is a fairly precise definition of the term you are bandying about.

      It is pointless to "consider" something Turing complete, as it is not a matter of opinion. One either proves the completeness of a language, disproves it, or mumble "I really have no idea". Also, Turing completeness is not a vague checklist of language features, it is the quite unambiguous property that a language is capable of expressing a simulator for an arbitrary Turing machine.

      If you have loops you don't need "if", by the way. And vice versa.

    90. Re:HTML by The+Phantom+Buffalo · · Score: 1
      There's this cool key that is right under the caps lock. It's called the shift key.

      If you type a letter while holding it down, it will produce a capital letter. You simply release the shift key and resume typing in lower case. It's quite easy when you get used to it.

    91. Re:HTML by bhtooefr · · Score: 1

      Well, prior exposure depends on how well - my BASIC experience didn't make it to GOSUB/RETURN - only a little bit of GOTO, and I rarely used that. I couldn't do much more than a 10 PRINT "What is your name?" 20 INPUT A$ 30 PRINT "Hello, " A$ 40 GOTO 10...

      I'm not corrupted much...

    92. Re:HTML by MillionthMonkey · · Score: 1

      Well that depends on what the exception handler did with the exception doesn't it? I doubt it got the graceful recovery that was waiting inside the if block. I think in this case it did a printStackTrace() and continued on its merry little way, leaving the user puzzled about what was going on.

    93. Re:HTML by tomstdenis · · Score: 1

      So you're telling me the displaying apparatus is now the message? Gotcha.

      You're not viewing someones creation it's the web browser spontaneously creating an environment for you purely out of thin fucking air.

      Your point doesn't really make sense though. Tables and textarea elements look different in Mozilla and IE. The browser has some leeway. I'd still say the browser was instructed to put a table or a textarea somewhere.

      If you're trying to troll you're not going to win. My resolve is far too great for you.

      --
      Someday, I'll have a real sig.
    94. Re:HTML by tomstdenis · · Score: 1

      I'd say English is a multi-purpose language. It can be used to "program" people todo things.

      E.g. how do you bake a cake? Most people probably follow a set routine [algorithm whatever] to produce a cake. They probably learned how to make a cake from a cooking book [or from other people spoken aloud].

      I don't see the "awe" and "mystery" in calling something a programming language. It's simply a language used to instruct someone/something in order to perform a task.

      MOV EAX,3

      puts 3 in EAX.

      1. Walk over to table.

      Instructs you to walk over to the table.

      --
      Someday, I'll have a real sig.
    95. Re:HTML by JohnFluxx · · Score: 1

      Remember that the definitions is most of the battle.

      First define what you mean by a programming language. Try to get them to agree that it is something that is turing complete.
      Then show that html is not turing complete.

      If they disagree that a programming language has to be turing complete, then you can pin them in a corner by trying to get them to define what it is without also allow lots of other things to be programming languages.

    96. Re:HTML by Anonymous Coward · · Score: 0

      C++ new is supposed to throw std::bad_alloc, some implementations choose not to do this; at all, or by default.

    97. Re:HTML by jtwJGuevara · · Score: 1

      First language I learned was VB in VB6. It's good for teaching people the bare essentials such as what procedures and variables are. But that's all I would use it for :).

    98. Re:HTML by boots@work · · Score: 1

      I think he must have been talking about javascript.

    99. Re:HTML by oneishy · · Score: 1

      HTML is not a programming language exactly, but I would also agree that it makes a good intro language to learn. One of the benefits that HTML has is you can start with the very basics (headings and paragraphs, unordered lists) and build to tables, dt + dd, forms, etc.

      That is all good and well for teaching a slow learner that you (the programmer) write the program (html in this case) which tells the computer how to do something (display page content), but it does not address anything more than formatting and page layout. I would recommend good old C as an intro programming language. The classic hello world is simple, and the concept of variables, and loops can be focused on without the complexity of classes etc. As someone else mentioned on this thread, JavaScript would also work well for this. (it might be easier in that you don't have strict variable types). JavaScript also would be an easier stepping-stone from HTML, as you can easily manipulate HTML objects

    100. 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.

    101. Re:HTML by emberofslush · · Score: 1

      not much sense learning it at all, unless you're one of the 100% of teenage slashdotters who wants to learn it just for the bragging rights. Like me :)

    102. Re:HTML by Tony-A · · Score: 1

      Well that depends on what the exception handler did with the exception doesn't it?

      Touche.
      Maybe going off-topic, but this is starting to become fun.

      Life should be better with exception handlers, but what can/should/will they do?
      I suspect in the majority of systems, the main-line (without exceptions) is tested/debugged pretty well, while the exception-lines with about ten times the complexity get about one tenth the attention.

    103. Re:HTML by Tony-A · · Score: 1

      If I understand it correctly, it is close to impossible to make a language that is not turing complete. Some means of iteration and decision logic is required. Just think, you can compute any computable function in COBOL!

    104. Re:HTML by Trejkaz · · Score: 1

      So just teach JavaScript, since that contains all the actual programming concepts. And you can afterall write full applications in it, if you are really, really bored.

      --
      Karma: It's all a bunch of tree-huggin' hippy crap!
    105. Re:HTML by Trejkaz · · Score: 1

      Actually unlike HTML, CSS actually has counters... it's probably closer to being a programming language than HTML is. Maybe in fact teaching CSS itself is the better option since HTML is a dying breed. :-)

      --
      Karma: It's all a bunch of tree-huggin' hippy crap!
    106. 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."
    107. Re:HTML by Trejkaz · · Score: 1

      That's awesome, so you can write code in a clean language while retrofitting it to work in a horribly twisted hack on C.

      --
      Karma: It's all a bunch of tree-huggin' hippy crap!
    108. Re:HTML by malfunct · · Score: 1

      I am certain that references are not required for a turing complete language. A turing machine has nothing resembling references or pointers. So while PHP may be "broken" and make it more difficult to write complex programs effciently and elegantly, I'm sure it has the same power as any other turing complete language.

      --

      "You can now flame me, I am full of love,"

    109. Re:HTML by SphericalCrusher · · Score: 1

      But take into account that HTML isn't a programming language -- it's a markup. But I guess it's all the same to them, eh? Typing up large bodies of text only to reveal something beautiful. Ha. Either way, as long as she isn't bored with what she's doing, let her use whatever. She can probably express herself better by creating a website other than writing software -- unless of course she wrote a game.

      Teach her C++!!! Just kidding, heh.

      --
      "Instant gratification takes too long." - Carrie Fisher
    110. 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.

    111. Re:HTML by j-pimp · · Score: 1

      It does not compile them in the slightest. What is an interperter, but a compiler that combines the compile and run aspects eliminating the stored machine code?

      --
      --- Justin Dearing http://www.justaprogrammer.net/ We're just programmers.
    112. Re:HTML by UnrepentantHarlequin · · Score: 1

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

      Non sequitur.

      HTML is in no way the "alphabet" to programming "writing" -- as proven by the fact that programming, and numerous programming languages, existed long before the creation of HTML in 1991. There are plenty of people to this day -- a CompSci professor that a friend of mine had the misfortune to encounter being one of them -- who are able to program but not only do not know HTML, but in fact think that learning or using HTML is, in the words of that professor, "unworthy of Computer Science."

      Like hell HMTL is the "alphabet" of programming. It has no connection. It's a markup language, a virtual box of colored highlighters. (it's also currently buying my groceries, but that's beside the point)It's a data description format. Coding HTML is no more programming than typing in the formatting codes for a MS-Word .doc file manually would be programming.

      Whoever modded the parent insightful needs to get into rehab, and quick.

    113. Re:HTML by MillionthMonkey · · Score: 1

      I suspect in the majority of systems, the main-line (without exceptions) is tested/debugged pretty well, while the exception-lines with about ten times the complexity get about one tenth the attention.

      That's why checked exceptions don't work in practice. They're great in theory but they run afoul of human nature. People want to get the main line working, and the compiler keeps giving them trouble about the exceptions. So they write catch blocks that swallow them so they can compile, and then they forget about them.

      Someone at work wrote a cancellation mechanism that relied on Thread.interrupt(). This is another bad idea in Java, and it was even meant to be used to support cancellation mechanisms. In this case you'd click a Cancel or Stop button, and it would call interrupt() on the thread, setting its interrupt flag. The thread would periodically check its flag with isInterrupted() and finish up immediately if it was set.

      That worked great until the thread found its way into code that routinely swallowed InterruptedExceptions. By design in Java, all blocking calls like wait() or sleep() are declared as throwing them, because someone might call interrupt() on a thread while it's blocked. And people immediately swallow them because they're usually an annoyance at the level you're working at when you're using wait() or sleep(). But since the designers of Java figured the exception handling code would be handling things, the interrupt flag isn't set in the case of an InterruptedException. So the Cancel and Stop buttons stopped working, because whenever you clicked on one, you were likely to catch the thread blocked on some low-level sleep() and its catch block would swallow the exception. (The culprit turned out to be the progress bar, which had a 2 millisecond sleep() somewhere in its paint routine.) To fix it, someone had to go around to all those empty catch blocks (all 10,000 of them) and have the current thread re-interrupt itself in each one.

    114. Re:HTML by j1m+5n0w · · Score: 1
      Pardon, but I can no longer contain my pedantry... I trust to be forgiven, since there is a fairly precise definition of the term you are bandying about.

      I can certainly forgive your pedantry if you can forgive my ambiguity.

      If you have loops you don't need "if", by the way. And vice versa.

      While for the most part I agree with you, if/then/else cannot simulate loops because it provides no way to execute a block of code more than once, and no way to remember state (like how many times we've executed the loop). If statements in conjunction with gotos and variable assignments, on the other hand, can be used to simulate a for loop with a counter, or just about anything else.

      Just to make sure the title of this post has some relevance to its contents, I'd like to remind everyone that html has none of these features (unless you use javascript).

      -jim

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

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

    116. Re:HTML by joggle · · Score: 1

      We aren't talking about any beginner, we are talking about somebody's mom. Anything more than simple HTML may be a bit too much for her at first. I have a friend who was nearly totally computer illiterate until she discovered HTML. Now she likes writing web pages and dabbles in javascript. The intant gratification and initial simplicity can't be overrated.

    117. 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.

    118. Re:HTML by Tony-A · · Score: 1

      To fix it, someone had to go around to all those empty catch blocks (all 10,000 of them) and have the current thread re-interrupt itself in each one.

      LOL. There has to be something wrong where one change has to be made in 10,000 places.

    119. 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!

    120. Re:HTML by CableModemSniper · · Score: 1

      too bad that function doesn't compute the factorial of anything. It's also not recursive.

      --
      Why not fork?
    121. Re:HTML by Oscaro · · Score: 1

      No it is not. HTML is not even a programming language. It lacks of all the basic concepts like variables, expressions, assignements and an execution flow.

    122. Re:HTML by el-spectre · · Score: 1

      I dunno... I learned it at 22, and 5 years later it's still making me a lot of money...

      --
      "Faith: Belief without evidence in what is told by one who speaks without knowledge, of things without parallel." - A.B.
    123. Re:HTML by E_elven · · Score: 1
      Yes, yes. Be nice, it was late :)
      factorial 1 = 1
      factorial x = x * factorial (x - 1)
      --
      Marxist evolution is just N generations away!
    124. Re:HTML by wolja · · Score: 1
      ....It enforces good style in that there is no "goto" statement, a big problem with BASIC.....


      There are times when GOTO is the bees knees. Breaking loops with an error springs to mind.
      --
      Wolja Future Tombstone: Shit happened then I died
    125. Re:HTML by LSD-25 · · Score: 1
      This is different from C++ where new evaluates to NULL to indicate failure.

      This is true in old C++, but is wrong in standard C++. In standard C++, if the memory can't be allocated, then the expression throws std::bad_alloc. If you want it to return NULL if it can't allocate the memory, then use nothrow.

    126. Re:HTML by Darkfred · · Score: 1

      Actually IMHO java exceptions seem to be the one thing that keeps it from working in large projects. (that and speed, but speed has been mostly dealt with).
      The 'Horribly Twisted Hack on C" as you call it seems to be infinitely easier to maintain in large projects. Exception handling works like magic in college level applications but as soon as you get into larger applications it begins to break down maintainability and readability. That is if the programmers have not already decided to catch all and simply ignore them.

      Exceptions.
      1. Seperates errors from error handling. Great for modular small project. Shit for maintaining a large program with many modules. Impossible to debug without complete knowledge of the code, and perfect error messages. (NOTE: programmers rarely comment or include useful error messages in exceptions.)

      2. Slow, hog processor and resources, This makes them basically useless in real code for anything but fatal or near fatal error conditions.

      3. Useless Complexity!
      Compare the C code
      if (NULL) {
      printf(GetError());
      assert(false);
      }

      with a standard java exception block. Try it with an exception block which processes 4 different error messages. 20 times the length (I will not post it here, if you have seen one you know.

      Now remember that this: It, adds NO end user functionality, takes time to program where end user functionality is not being added, Must be maintained with every library/version change, and may never actually be called or tested.

      The C version has none of these problems and solves the problem quite eloquently. That is it returns an error if the function doesn't work as intended. The programmer can then debug it.

      4. Want to modify a library and add an exception condition? How do you feel about updateing every class in your entire project which uses that library?

      4. Want to include a large 3rd party library? They probably hacked around these problems in their own way. A way which breaks or eats all of your exceptions when in use.

      etc. etc.
      here are some articles which put it more eloquently

      http://www.artima.com/intv/handcuffs.html

      http://www.joelonsoftware.com/items/2003/10/13.htm l

      --
      ----- 70% of all statistics are completely made up.
    127. Re:HTML by tfb · · Score: 1

      I think HTML is a bad choice because it fails to be programming.

      But it's almost a good choice. If there was a system which had as little syntax as HTML, and in which it was terribly easy to produce HTML pages as output, as everyone can look at them, but was a programming language, then it would be very interesting.

      Javascript fails this horribly because it's a complete other syntax and it just is going to confuse people. PHP may be better, I don't know it. Personally, I'd go for one of the Lisp-based HTML-generation things: since Lisp syntax is tagged-bracket-based, like XML, they are a very close match:

      (:html
      (:head
      (:title "my first page"))
      (:body
      (loop for i from 1 to 10
      do (htm (:p (fmt "paragraph %d" i))))
      (:hr)
      (:p "Final paragraph, bye bye")))

      PHP may be as lightweight as that, in which case it might be a better match.

    128. Re:HTML by Anonymous Coward · · Score: 0

      Sir, we are not talking about selling your genitals to some fat ugly chicks.

    129. Re:HTML by Anonymous Coward · · Score: 0

      HTML is bad, mmmmmmkay?

    130. Re:HTML by Anonymous Coward · · Score: 0

      Ever heard of Netscape Javascript console? You stupid fuck, you fairy. I bet Mozilla has this feature as well.

    131. Re:HTML by Anonymous Coward · · Score: 0

      I can't, I already used all my shift keys. I have a few caplocks left so I don't want to waste them.

    132. Re:HTML by The+Phantom+Buffalo · · Score: 1

      Interesting, I have not run into this. Couldn't you just get another keyboard?

    133. Re:HTML by Weirdofreak · · Score: 1

      Yeah, I shoulda made that clearer. My bad.

    134. Re:HTML by cpghost · · Score: 1

      Right. A programming language should at least be as powerful as a turing machine. Once you can simulate a turing machine in one PL, every other PL' can be build on top of that. Or, said another way, all programming languages are equivalent. HTML is not powerful enough to be a programming language.

      --
      cpghost at Cordula's Web.
    135. Re:HTML by Anonymous Coward · · Score: 0

      Great. I was about to propose the very same thing.

    136. Re:HTML by martyros · · Score: 1
      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.
      How often do you think someone with such an incorrect dogma like that is going to listen to someone they're teaching? I might do it on principle (truth is truth, whether you get a A- instead of an A or not), but I'm not really hoping to change much.

      True story: In a 400-level AI class at my university, the teacher was teaching us about first-order logic, and said "First-order logic is no good at expressing things to do with numbers." And, of course, it isn't very good. On an exam, there was an "extra credit" question, where they asked, "Is it possible to express the following relation in first-order logic? If so, give one; if not, explain why not." My memory is fading now, but it had something to do with "If X is older than Y but younger than Z".

      Now, it is possible to express that in first-order logic, just in a rather convoluted and not very useful way. I came up with one clever way of doing it, and several other people in the class came up with equally creative solutions.

      Well, you guessed it -- everyone who regurgitated what they'd said in lecture 2-3 times, "First-order logic isn't good with numbers", got 10 extra points; and everyone who sat down and actually tried to see what was possible got nothing.

      I must've argued with the prof for a week, to no avail.

      --

      TCP: Why the Internet is full of SYN.

    137. Re:HTML by -brazil- · · Score: 1

      That's what proper languages have exceptions for.

      --

      The illegal we do immediately. The unconstitutional takes a little longer.
      --Henry Kissinger

    138. Re:HTML by -brazil- · · Score: 1
      If you say HTML is not a language I say C is not a language.


      Sure HTML is a language, just not a programming language.

      --

      The illegal we do immediately. The unconstitutional takes a little longer.
      --Henry Kissinger

    139. Re:HTML by xcham · · Score: 1

      Setting a variable and "BREAK"'ing, or better yet, having this within a separate procedure and returning an error code. GOTO just makes code hard to read and harder to debug.

      --
      When life gives you lemons, you CLONE those lemons, and make SUPER-LEMONS. -- Dr. Cinnamon Scudworth, Ph.D
    140. Re:HTML by Anonymous Coward · · Score: 0

      This is true in old C++, but is wrong in standard C++. In standard C++, if the memory can't be allocated, then the expression throws std::bad_alloc. If you want it to return NULL if it can't allocate the memory, then use nothrow.

      I found it amusing that he made fun of someone for not knowing Java and then reveals that he doesn't know what the equivalent is in C++.

    141. Re:HTML by cloudmaster · · Score: 1

      I was speaking more towards things like semicolons being optional, brackets being optional, and similar things. The one that most bugs me is variable declarations, though. You don't *have* to use var, but it makes a huge scoping difference to use or not use var. That's rarely made clear, though. :(

      Then there's the inconsistent DOM implementations, and horrible, horrible browsers that do things like creating a "document.all" namespace and actually *encouraging* people to use it. :)

      You're right, though. I should've said that the language itself is alright, but the implementations that are commonly available make for bad learning platforms.

    142. Re:HTML by cloudmaster · · Score: 1

      I want your debugger.

    143. Re:HTML by Total_Wimp · · Score: 1

      For HTML, my debuggers are Internet Explorer and Firefox. You're welcome to them (at least firefox you are :-)

      I know, this is not real programming and looking at your output is not real debugging, but for newbies it's a powerful way of teaching them to do something with an alternate coding language and giving them instant feedback. Later, when they want to do something more interesting like working with script, this won't be as useful. But hopefully by that time they won't be as frightened about working with code.

      TW

    144. Re:HTML by cloudmaster · · Score: 1

      Firefox (and the mozilla series of browsers) isn't too bad for JavaScript debugging (that's what I use), but there is still much to be desired in the error messages given. I can't count the number of times when I've done something wrong with some JavaScript on a page and the error console's been almost 0 help (not to mention that "Venkman" isn't much more helpful most of the time)...

    145. Re:HTML by los+furtive · · Score: 1

      Crap you're right. I guess I'm so anal that I forgot about all the things you can get away with. Another weakness about JavaScript is I have yet to find a decent tutorial to point people to besides W3 Schools.

      --

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

    146. Re:HTML by cloudmaster · · Score: 1

      That's another biggie - the tutorials out there generally teach you how to write crap code instead of *good* code. :)

    147. Re:HTML by GenSolo · · Score: 1

      I'd still say the browser was instructed to put a table or a textarea somewhere.
      Actually, you're telling the browser it exists. The implicit stylesheet that the browser uses (or the explicit one you provide) tells the browser to put the table or textarea somewhere. The point is that HTML is supposed to describe the data and CSS tells the browser what to do with that data.

    148. Re:HTML by nytes · · Score: 1

      They've been making keyboards like that ever since the shift key got DMCA'd.

      --
      -- I have monkeys in my pants.
    149. Re:HTML by Anonymous Coward · · Score: 0

      Care to give a name? I think that professor deserves a little third party criticism, and that potential students deserve to know this person has a closed mind. (So just repeat whatever they say.)

    150. Re:HTML by Lacutis · · Score: 1

      i THINK OU HAVE IT BACKWARDS.
      mY SHIFT KEY MAKES LETTERS LOWERCASE.

      (Extra text to bypass the lameness filter and to let the clueness know that yes, it was a joke.)

    151. Re:HTML by el-spectre · · Score: 1

      Good point, Anonymous Troll... (ziiiip) Why dontcha come on over here and suck this, make yerself useful... :)

      --
      "Faith: Belief without evidence in what is told by one who speaks without knowledge, of things without parallel." - A.B.
    152. Re:HTML by BillX · · Score: 1


      let x=0;
      let x=0;

      Why is it repeated? "In case it didn't get it right the first time".


      Sadly, I've actually seen this. More sadly, this is because I wrote that code. Most sadly yet, it needed it--the processor didn't get it right the first time, and I was at a loss to figure out why.

      This was a PIC18 microcontroller, actually not that long ago, with a project deadline approaching fast. The assembler program I was writing would occasionally experience what, if I didn't 'know better', would seem like hardware demons. Monkey with the code a bit, the bug would go away, and so I wrote it off as bad programming, i.e. "some incredibly stupid mistake that I'm not catching". With about a week to the deadline, things started to get very bizarre very fast. Things like RETURN instructions that didn't return, registers holding some random data after being cleared, and the behavior of code at location x being influenced by code at location (further than x) that hadn't been executed yet. In the obvious frustration that ensued, the almost-production code contained lines like the following (except for the mangled formatting of course; that's Slashdot's doing) :


      call showREG ; debug - show what's in register REG
      clrf REG ; debug - force REG contents = 0
      call showREG
      clrf REG
      clrf REG
      clrf REG
      clrf REG ; WTF?!?!?
      call showREG


      In desperation I resort to the resort engineers resort to when no other resort remains, which is to Read The Friendly Manual (in this case, looking through the 300-some pages of datasheets). Brief mention is made of consulting their 'errata sheet' for the latest processor errata. I think I did go looking for this once long before, and decided this document was buried cleverly enough that I shouldn't waste my time continuing to look for it, since a measly 8-bit micro would never contain a showstopper like the Pentium FDIV bug (affecting 1 in every few zillion long divisions), right?

      Y-y-y-yeeeeah. Anyway, I chase down the errata sheet for this micro, for real this time, and find the following smack on the first page:

      Certain code sequence and placement may cause the corruption of a few bits in the instruction fetch when the part is used above 4 MHz. A corrupted instruction fetch will cause the part to execute an improper instruction and result in unpredictable outputs.

      Microchip cannot predict which code sequences and placement will cause this failure. If this failure mechanism exists in your system, it should be evident during statistically significant preproduction testing (minimum suggested sample size 100 units) of your particular code sequence and placement.


      Now, the rated speed of this chip is 40 MHz (not 4!), and we were of course running it at 40, because if we wanted to run slower, we'd have bought slower chips.

      In the end, crisis narrowly averted by changing all the system clocks from 40MHz to 4MHz, hacking all the timing-dependent code to compensate, and demoing a slower (but working) prototype. (And of course, a lab-wide resolution not to buy chips from Microchip again.)

      Lesson for today: Always look up those errata sheets, kids.

      --
      Caveat Emptor is not a business model.
  2. Give up by Anonymous Coward · · Score: 5, Funny

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

    1. Re:Give up by Anonymous Coward · · Score: 0

      And never get laid!

    2. Re:Give up by Anonymous Coward · · Score: 0

      Forget it kid. Mom was probably just curious about your spending so much time in front of the computer.

  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.

    1. Re:Between Solitaire and programming.. by s0m3body · · Score: 1

      i'd suggest bzflag ;-)

    2. Re:Between Solitaire and programming.. by {8_8} · · Score: 1

      Amen. Why is it automatically assumed that "programming" is the next thing she should learn? Teach her something else, like basic networking. Couch it in terms like "This is how the Internet works, and this is what the Internet is made of." I started doing IRC and the people there taught me bits and pieces of networking. Hell, I was killing dialup connections from a remote shell before I knew what ls was.

      On a more serious note, perhaps he could teach her simple html so she could make crappy web sites. Give her a beginners html book and show her how to upload files, make directories and set permissions. That alone will teach a bunch of worthy concepts. If she has the interest, she can learn how to do stuff just based on the html foundation.

    3. Re:Between Solitaire and programming.. by zokum · · Score: 1

      Umm, are you recommending she becomes a script kiddie, this is slashdot you know. You've GOT to be trolling :-)

      --
      Rest in peace Malin "looxn" Kristiansen. We miss you...
  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 Sigma+7 · · Score: 1
      If visual basic is too complicated, why not get an old version of Qbasic, or something like that:
      There is a bug with QBasic that causes the appearance of a line to disappear.

      To test it out, run a program, break it in a middle, and change one of the DIM statements to have a bit more elements. You will receive a prompt stating that the change will need to restart your program. Regardless of which choice you pick, the modified line will disappear from the display (although is not removed from the program.,)

      The bug has not been fixed in the QBasic line, but it can be worked around by rapidly using PgUp/PgDn (provided your program is large enough.)

      There are a few other bugs too, but those only crop up when you attempt the more advanced portions of BASIC programming.
    2. 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."
    3. Re:Qbasic by FearTheFrail · · Score: 1

      And...I miraculously failed to include tags to make it readable.

      Maybe Mom can still teach me a thing or two about coding. =(

      --
      ___ In the words of Gen. Douglas McArthur: "I'll be right back."
    4. Re:Qbasic by Uber+Banker · · Score: 1

      I agree, a basic-type language would be great. Forget complicating things with a GUI or objects, for just getting the hang of stepping through, procedures and loops Java or Pascal would be great. Set her up a basic template (so she just has to do the coding), let her loose for a while and get more advanced with objects or user-actioned procedures (move into Delphi, a bit more with Java or VB). Tell her to move through with an interpreter and see the actions. Will get the hang in no time.

      Everything I've looked at so far seems too complicated (Scheme, Python, VB) I am interested why you think this because these languages don't have to be at all complicated.

    5. Re:Qbasic by Jorkapp · · Score: 1

      What also works is just pressing enter. The line reappears like magic.

      --
      Frink: Nice try floyd, but you were designed for scrubbing, and scrubbing is what you shall do.
    6. 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.

    7. 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

    8. 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
    9. 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.
    10. Re:Qbasic by Jim+Starx · · Score: 1

      QBasic is great to start with. When you get tired you can move up to VBasic. Then after a little while at VBasic introduce a real language like C++. That's how I got started.

      --
      The darkness... controls the music. The music... controls the soul.
    11. Re:Qbasic by sydb · · Score: 2, Funny

      And now you're on Slashdot! Success!

      --
      Yours Sincerely, Michael.
    12. Re:Qbasic by vuo · · Score: 0

      Another interesting bug I've found is that QBasic doesn't reproduce a zero (0) when it's placed as a first character in a STRING variable. I noticed this when I created strings like "020113". If accessed, it'd see that as "20113", so the following operations were borken.

      I'd strongly discourage against introducing any of those poor excuses of programming languages of the Basic family. They were abandoned (only exception Microsoft, "yesterday's computing, tomorrow".) for a reason. Basic teaches that programming is all about intellectual masturbation using variables and flow control statements. If you want to show programming, use Java (or Ruby) to introduce object typing, so she sees that programming is about modelling the real world and helping people to arrange things. Basic will introduce unhealthy intellectually inbred manners and concepts that are hard to root out later.

    13. Re:Qbasic by DunbarTheInept · · Score: 1

      The problem with BASIC isn't BASIC. It's that people try to use it for more than it is. As a quick and dirty intro to what programming is like, it's great. But a lot of people try using it for more than that.

      I can remember back in high school in the '80s. We had a cruddy class in programming basic called "Structured Basic". It was taught on Apple II's (I was used to the more powerful Commodore 64 editing system for basic and this was frustrating.) Anyway, the problem was that the teacher (and the textbook) insisted upon trying to teach students that there was one and only one right way to write a particular type of thing. What they were doing (although I didn't know it at the time) was trying to limit the students to only knowing how to write programs that mimiced the control structures of high level languages. The only "right" way to write a counting loop was to start with an initialization line, then second to have a conditional test line that GOTO's to the line following the loop body, and then the loop body, and then the last line of the loop body should increment the counter, then unconditionally GOTO to the check condition line. It looks extremely ugly in BASIC, and not the slightest bit structured, but what it was - was an exact duplication of the for( a,;b;c ) looping ability of higher level languages. It looked like this in BASIC:

      10 I = 1
      20 IF( I > 10) THEN GOTO 60
      30 ...loop body...
      40 I = I + 1
      50 GOTO 20
      60 ...next line after the loop...

      It makes sense ONLY if you know about the "for (A;B;C)" construct and realize this is an attempt to mimic it in a language that just doesn't do things that way. Without exposure to that, it looks dumb. (And even with exposure to that it looks dumb because you've multiplied your GOTO's needlessly, and even at that young age I saw the problem in that - the more links you make from one line number to another, the harder it is to move code around.) This left a false sensation (for me) that "people who want me to write well structured code are idiots who don't know how to program". This persisted for some time because they kept trying to pigeonhole high level concepts into a language in which using that construct not only makes things take a little more time, but also makes things look ulgier. When they tried to claim this way is "easier", my reaction was "what a load of bullsh.. I can do this in a way that's simpler, and easier to understand, and faster to write." And at the time, since we were using old BASIC, this was very true. In higher level languages, it starts to become true that taking longer to write the code, with a few more lines, can make it more sensible. But with that style of old BASIC, that's just not true yet.

      Nowadays, they've added a lot of high level constructs to BASIC that make it a little better, but people still have the problem of trying to do more with it than it's good for - like gluing object-oriented stuff on it.

      Basically, what I'm trying to say is don't make the mistake of trying to teach a concept in a language that's too simplistic for it - it gives the student the incorrect feeling that that concept is painful and should be avoided.

      --

      Don't label something "offtopic" unless you know the topic well enough to tell what's on topic.

    14. Re:Qbasic by kogs · · Score: 1

      My mother taught herself basic on a BBC B and wrote a program to convert knitting patterns for different sizes.

    15. Re:qbasic by attackc0de · · Score: 1

      I think assembly programming would be a better match for beginners rather than BASIC.

      Personally, I find assembly programmming much more rewarding than anything else, except for maybe C and cold beer.

      1. Easy to learn (with time)
      2. Instantly Gratifying (when writing)
      3. Surprising powerful ('nuff said)

      There's nothing more gratifying than saying,

      "Wow! I just wrote my first low-level instruction set!".

      Or,

      "Awesome! I just cracked the my first shareware app!". ;)

      --
      For a nice date: call strftime(3C)
    16. Re:Qbasic by fishbot · · Score: 1

      It appears that this teacher didn't actually know what structured programming was. Changing the mechanics of a for loop is not structured programming. There's no difference between a 'for(a;b;c)' loop and a 'for a = b to c' loop for any practical purpose.

      Even back in the days of BBC BASIC (my favourite BASIC) I could have functions and procedures. This is the basic concept of structured programming, not fancy schmancy ways of writing one liners in 143 lines.

      The problem is not the language - BASIC is perfectly useable as a structured language complete with sensible factorisation of functions. It's just that many of the people teaching it don't actually know what structure programming is - they just heard the word somewhere and figured that they must be doing it. They're great programmers, right?

    17. Re:Qbasic by skt · · Score: 1

      Basic is still fine as an intro language in my opinion. I was one of those kids that screwed around with Apple BASIC when I was growing up. By the time I got to high school, they taught BASIC as the intro programming language. Even though it is not a practical language, it is very good at what it is intended for.. teaching logic concepts that every other practical language uses.

    18. Re:qbasic by mysticwhiskey · · Score: 1
      Initially on reading this I though "Are you kidding??!! My Mom and Assembly??!!!", but I guess it makes some sense. Why not learn the fundamentals, and learn to appreciate the eventual tedium of low-level programming. Then, having an appreciation of the nuts and bolts, the more abstract higher-level language representations will become self-explanatory and MAYBE one will come to appreciate the simplicity and usefulness of a FOR loop.

      Although, I doubt my Mom will get into it. HTML is enough for her, and think what you will of Frontpage, it's been useful insofar as to come to make her to think of a program structure as a series of instructions that affect some sort of out tangible output.

      But for what it's worth, "Hello World" is just as gratifying in ANY language, if it's your first time.

      --

      Stuck down a hole! In the middle of the night! With an owl!

    19. Re:Qbasic by DunbarTheInept · · Score: 1

      The point I was making is that the BASIC language we were using didn't *have* those kinds of tools - no functions. No procedures. Just Gosubs and gotos, and they made the mistake of trying to mimic the structured statemnts by giving you "cookbook" solutions that did the same things with formulaic uses of the primitive tools available, and then they said that these were the only ways you were allowed to use these things. (To write a loop, you must use one of these three patterns precisely (which were essentially, the while/for/repeat structures), to write a function, you must make your gosub routine be laid out just like this...). In an environment like that, trying to teach structured programming has a bad backlash effect because it doesn't make things easier like it's supposed to, and students can detect this. And they don't have experience of a better language in which the structured style actually works.

      --

      Don't label something "offtopic" unless you know the topic well enough to tell what's on topic.

  5. You could always use BASIC by Anonymous Coward · · Score: 0

    I have fond memories of using BASIC in Junior High :)

  6. Perl by Anonymous Coward · · Score: 0

    Makes using the computer significantly easier so it won't be like she is learning it for no reason.

    1. Re:Perl by benna · · Score: 1

      Its not all the useful on windows and i'd assume thats what she is using. Probobly not an easy jump from solitare to linux.

      --
      "It is not how things are in the world that is mystical, but that it exists." -Ludwig Wittgenstein
    2. Re:Perl by Whumpsnatz · · Score: 1

      Guess I should mod you up as funny. I know COBOL, SAS, HTML, Javascript, a little assembler, and more. I'm learning Perl now. I know of no better way to drive someone screaming from the room than hitting them with something like
      $text =~ s/(\w+)/uc($1)/ge;

      and that's only a minor example.

  7. 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
    3. Re:scheme by rkef · · Score: 0
      but it also has an on-line version you can use for free at MIT press.

      Really? All I could find was this.

      I'd be very interested to find an on-line version if it exists.
    4. Re:scheme by burris · · Score: 1

      The Little Schemer is what I also recommend to folks who want to learn to program. Unfortunately, I do not think it is available for free online.

      burris

    5. Re:scheme by Anonymous Coward · · Score: 0

      The Little Schemer is indeed not available
      on-line. You should be able, however, to
      find a used copy for very little money at
      the various internet sites or even at a college
      bookstore near you. It's still heavily used as
      a crash course on functional programming
      (which is the only place where algebraic
      variables really exist).

      Think of How to Design Programs as an expanded
      version of TLL/TLS.

      -- Matthias Felleisen (author)

      Eric Raymond:

      LISP [or Scheme] is worth learning for a different
      reason -- the profound enlightenment experience
      you will have when you finally get it.

    6. Re:scheme by Buzz_Litebeer · · Score: 1

      That is weird, I cannot remember the link, I think I still have it somewhere. I will take a gander at it after work.

      It was a link to MIT (the school) where they provided the text on-line for free to the students.

      We used this all the time, and it did not seem to matter if you were a student or not to be able to view the link.

      --
      If you don't vote, you don't matter, so don't waste your time telling me your opinion
  8. 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)

  9. Why not by Autonomous+Cowturd · · Score: 0

    Why not Beginners All purpose Symbolic Instruction Code?

  10. Stop! by Anonymous Coward · · Score: 0

    Or my mom will code!

  11. 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 Anonymous Coward · · Score: 0

      i know it's OT but you might like this site about various beautiful curves. regards, my dear xYoni69x

    2. Re:Teaching your mom programming?! by Anonymous Coward · · Score: 0

      Exactly. What's the point?

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

    3. 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.

    4. Re:Teaching your mom programming?! by Anonymous Coward · · Score: 0

      It *is* ready for the desktop. Tell me, if Linux is not ready for the desktop, why was Windows 3.1 ready? Why was DOS ready? and why was Windows 95-Me hell ready?

      Today's Linux ditros are easier to install and use than Windows for anyone new to computers. It is only those Windows zelots that can only look at another OS if it only looks like Windows. For them Mac OS X is difficult to use! Windows zelots have a midset of other OSes like most Americans have of people in other coutnries. "America is the best and everyone wants to live here". Well, no!

    5. Re:Teaching your mom programming?! by Anonymous Coward · · Score: 0

      Beautiful curves? I couldn't find Britney or Beyonce anywhere on that site.

    6. Re:Teaching your mom programming?! by Anonymous Coward · · Score: 0

      Perhaps I'm just the sort of person who gets no self-satisfaction from that sort of thing.

      I may code for a living, but I have not yet come across a situation at home that would really truly benefit from a home-grown tool.

      The question stands though, what does your mother have to gain by learning how to program when there are already thousands of perfectly good screensavers out there already - especially considering the amount of time it will most likely take her to learn how to create one.

    7. Re:Teaching your mom programming?! by UnrepentantHarlequin · · Score: 1

      Perhaps I'm just the sort of person who gets no self-satisfaction from that sort of thing.

      We all have our own ways of satisfying ourselves. At least coding doesn't make hair grow on the backs of your hands.

      I may code for a living, but I have not yet come across a situation at home that would really truly benefit from a home-grown tool.

      Odd ... I have, on a number of occasions. Perhaps your holes are as square as the available pegs, or perhaps you just have a bigger hammer to pound with. I can't find a round peg, I whittle -- or code -- one. I get exactly what I want, and I happen to enjoy programming.

      The question stands though, what does your mother have to gain by learning how to program when there are already thousands of perfectly good screensavers out there already - especially considering the amount of time it will most likely take her to learn how to create one.

      I have quite a beautiful knitted afghan which my mother-in-law knitted for me. She could have just gone to the store and bought me a blanket, if the purpose had been simply a way of staying warm. There are certainly as many perfectly good blankets out there as there are screensavers. Yet she chose to spend countless hours knitting that afghan.

      What does anyone have to gain by playing Solitaire, or watching a baseball game, or solving a crossword puzzle? Quite a bit less, I would think, than writing even the simplest of programs.

      You may prefer to live in a world where you do nothing which does not give you some immediate and tangible benefit, where there is no room for pleasure, for enjoyment, for the mental equivalent of a good game of racketball. Most of the rest of us, though, would call that place "hell."

  12. I agree by Anonymous Coward · · Score: 1, Insightful

    HTML isn't terribly complicated, and there are lots of options for people just starting out. They can get more advanced and do the HTML coding themselves, or even transition into something like PHP eventually. Have her start making a webpage about her hobbies, and she'll feel somewhat advanced. Heck, after a while she might be maintaining her own web server.

    1. 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."

    2. 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

    3. Re:I agree by Anonymous Coward · · Score: 0

      Isn't that pretty much the same thing when it comes to computers and non-techie people?

    4. 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.

    5. Re:I agree by N1KO · · Score: 1

      It's easier for younger people to learn new things than it is for grownups. Most children can learn a second language within a few months while it takes the parents several years.

    6. Re:I agree by Quattro+Vezina · · Score: 1

      It's a quick and easy fix for someone who wants to "make their computer do something".

      In that case, LaTeX would also be a good idea. It's more structured than HTML, and thus is a bit more programming-language-esque, but isn't much harder.

      Of course, HTML + JavaScript does have its advantaqes, since you don't have to write a full program in JavaScript--HTML takes care of most of the structure and presentation of the page, so you only have to write the JS code needed to perform stuff, which isn't much early on.

      --
      I support the Center for Consumer Freedom
    7. Re:I agree by emberofslush · · Score: 0, Offtopic

      gmail? wow are they still drawing for lucky volunteers?

    8. Re:I agree by Billly+Gates · · Score: 1

      I made that mistake in the mid 1990's and now the geek friends who learned it are making 6 digit salaries and own their own webhosting businesses.

      Here I am as an out of work techie living at home with his parents while I go back to school.

      Lesson learned here.

      HTML is not programming like ascii is not programing. However with a language behind it yes it is quite powerfull. just like you can manipulate ascii text with C and perl same is true with ASP and php.

      Who uses static html anymore? A few personal homepages and thats it. ITs all dynamic today.

      HTML is highly recommended because the internet is what his mother uses. It would help her more then abstract programming her cookbook recipe's into a database.

      She can also use the right side of her brain and be very creative with graphic design and javascript for effects. She could create her own websites with forums thanks to phpNuke.

      Really things come in generations. First it was radio, then TV, then PC, now networking.

      Simple single user pc programing is obsolete and the internet is where all the research is heading. Pda's and cell phones particularly.

    9. 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?
    10. 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/
    11. Re:I agree by Anonymous Coward · · Score: 0

      mastered? That's a tad intense isn't it?

    12. Re:I agree by richlv · · Score: 1

      yep. some html basics - and probably then php. i'm far from being a coder, but php is one of the languages where you can create complicated things... and also extremly simple ones :) also, qbasic could do the trick - although they say it makes you code bad :)

      --
      Rich
    13. 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

    14. Re:I agree by Blikkie · · Score: 1

      In that case, LaTeX would also be a good idea. It's more structured than HTML, and thus is a bit more programming-language-esque, but isn't much harder.

      I think LaTeX would be a bad idea for a mom to learn, not because of the language per se, but more because making a lay-out for text feels quite pointless if the printed result looks much the same as what Word can produce. If you, on the other hand, give her a good book on web design and html she will be able to produce something that she can show off to her friends and will feel 'more relevant'. Keep in mind that the book shouldn't just be on the technical aspects of html. Proper design is an art, but a good web development book for dummies should point out the most obvious pitfalls and ways to avoid them.

    15. Re:I agree by NineteenSixtyNine · · Score: 0

      So would MiLF

      --

      --
      What would Bill Clinton do?
    16. Re:I agree by samrichards · · Score: 1

      Actually, who is to say that HTML isn't a programming language? Who says it's nothing more than a data file, read in by a web browser to determine what it should display, much in the same way that a .doc file is read in by MS Word?
      There's a thin line between what consitutes a file containg code and a data file. After all, to a C++ compiler, C++ is simply a data file.
      Just because HTML doesn't fit into our standard view of a procedural/OO programming language, doesn't mean that it isn't a programming language at all!

    17. Re:I agree by -brazil- · · Score: 1

      I'd say that the very clear minimum requirement for something to be called "programming language" would be Turing-completeness, and HTML doesn't manage that (excluding embedded scripting languages, of course).

      --

      The illegal we do immediately. The unconstitutional takes a little longer.
      --Henry Kissinger

    18. Re:I agree by bgumm · · Score: 1

      while, it isn't programming, it can be a very good first step for people who have no exposure to making computers do neat things.

      seeing the look of glee on the face of someone who just put <b> tags around "Hello, World!" is pretty fun. it's how i got my start, and seven years later, i'm a Java web developer. joy.

      --
      honnold.org - sometimes-rock band, all the time awesome forum
    19. Re:I agree by Anonymous Coward · · Score: 1, Insightful

      Doesn't matter what you see, this isn't a matter of opinion. The structure of human language is distinct and complex and nothing like what we call "computer languages." It's not just "formal language." Try arranging a sentence such as "Would you like to go to the park later on, master?" in C, or Python, or whatever.

      Human language is for humans communicating with each other.
      Computer language is not for communication at all, it's simply a mathematic representation of the computer's behaviour. Back in the days of punch cards, this would be more obvious, but since we have invented these stop-gap tools called computer languages, which use letters and words and semantic elements like human languages, we get fooled into thinking the two things are a lot more similar than they really are. But all those similarities are just jerry-rigged onto an underlying nonlanguage.

    20. Re:I agree by SimplexO · · Score: 1

      Th reason your are still working towards creating proper semantic documents and separate content from design is because you have been doing HTML professionally for years. I know, because I have too. We had to hack out those tables and 1px spacer.gif files to get things to work cross-browser. The standards movement is just catching on.

      It's like learning a language wrong the first time. You are relearning. She'll be learning HTML properly for the very first time. As long as she reads books and tutorials and doesn't look at random web-page source, she'll learn it the proper way.

    21. Re:I agree by samrichards · · Score: 1

      Sorry - I disagree!
      Why should a programming language have to be able to theoretically do anything that any other programming language can in order for it to be considered a programming language?
      Just because HTML can only do "sequence" out of "sequence, selection, iteration", and is thus unable to carry out many calculations, does not mean it is not a programming language.
      At the end of the day, HTML instructs a browser to carry out specific tasks in order to display a page in a specific way. Imho, that makes it a programming language, although I won't dispute that it is a very limited one.

    22. Re:I agree by arkane1234 · · Score: 1

      No... a language is different.
      A language has sounds, which properly put together form words, and those words used in certain ways form sentences which you must use in a certain way in order to make sense. Think of a human language as a network protocol, sort of.

      A computer programming language is a blueprint of what you want the computer to do. You don't have to learn the intricities of a real lexicon to program a computer, believe me.
      If that were the case, there'd be a whole lot less programmers in this world. I've known some damn lazy programmers.

      --
      -- This space for lease, low setup fee, inquire within!
    23. Re:I agree by Max+Romantschuk · · Score: 1

      It's like learning a language wrong the first time. You are relearning. She'll be learning HTML properly for the very first time. As long as she reads books and tutorials and doesn't look at random web-page source, she'll learn it the proper way.

      You have a good point, but I'd still claim it's only partially true. Most people learn basic HTML syntax to start with, but eventually start asking how to make "real" web pages. That's where the tricky bit comes in... it's magnitudes more complex to make semantc HTML and style it properly than it is to resort to introducing design hacks into the HTML.

      But yes, if guided properly, a tabula rasa style HTML neophyte could probably learn to do things the right way straight away :)

      --
      .: Max Romantschuk :: http://max.romantschuk.fi/
  13. 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 Neophytus · · Score: 1

      we still use it in school for "teaching", albeit without utilising any of the scripting abilities unless someone finds it for themselves

    2. 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.

    3. Re:Hypercard by CmdrMooCow · · Score: 1

      Was/is hypercard available on the x86?

    4. Re:Hypercard by dejamatt · · Score: 1
      I second the Hypercard suggestion... although getting a Mac that runs it probably isn't worth the time if you don't already have one.

      That was the only exposure I had to anything beyond HTML until my senior year of High School. Once we got the Internet, I realized you could download other people's stacks and see their source!! That was my introduction to programming. Before that I didn't even know what loops were, and so I did *everything* with recursive functions... it made them a lot less scary when we covered them in CS class. Hypercard didn't really like that though... after a while it would run out of memory and give a message that said "Too Much Recursion!"... not that I knew what that meant back then.

      It's a great environment to learn in, so it can do some basic things on it's own. (Like link buttons to other cards) Then you can the resulting HyperTalk code that it generated, and begin to get a sense of the syntax.

      I made everything from stupid games, to fun games, to a program that ran on startup that acted as a login-manager (of course you just could Force-Quit it, but it was pretty cool when I was that age).

      And FatBits... FatBits were friggin awesome when you were 8 years old, so your mom would probably like them too.

    5. 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.
    6. Re:Hypercard by dejamatt · · Score: 1
      I don't think so, but Wikipedia has some links to HyperCard closes which might not be any good.

      http://en.wikipedia.org/wiki/HyperCard#External_li nks

    7. 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
    8. 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.

    9. 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.

    10. Re:Hypercard by pherris · · Score: 0
      I had a big, long rant about how great HC was, how much fun it was to program in, yada yada yada but dumped it for this quote:

      Stan: "Oh my God, they killed Hypercard!"
      Kyle: "You bastards!"

      Someone write something as good for GNU/Linux SVP?

      --
      "And a voice was screaming: 'Holy Jesus! What are these goddamn animals?'" - HST
    11. Re:Hypercard by umeboshi · · Score: 1

      one way to teach bash scripting is to quickly whip up a script out of someone's .bash_history in a good text editor.

      This kind of shows them that they have been "programming" all of the time.

    12. Re:Hypercard by Anonymous Coward · · Score: 0
      "But Hypercard was *perfect* for..."

      Only two letters away from perfection... :)
      That's funny, I counted THREE letters between 'perfect' and 'perfection'...
    13. 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.
    14. Re:Hypercard by nwf · · Score: 1

      There is also SuperCard. It's OS X native (assuming you don't make your poor mom use Windows!) and is largely HyperCard compatible, well it's more of a superset. It's like $179.

      --
      I don't know, but it works for me.
    15. Re:Hypercard by Anonymous Coward · · Score: 0

      The following might also be worth a closer look (although I haven't tried it yet):

      HyperNext by Tigabyte (current version v1.2):

      www.tigabyte.com

      Free download for testing available, licence price is very modest ($49 for HyperNext Standard, the smallest package capable of building stacks and applications).

    16. Re:Hypercard by Anonymous Coward · · Score: 0

      They Do, but since apple owns it, it's called Applecard & is only for Apples...Good thing I own an Apple

    17. Re:Hypercard by arkane1234 · · Score: 1

      I don't mean to be a stickler, but that would require the person to actually have something in their .bash_history file.

      If a user has been using the GUI since day 1 (beginner...) they more than likely haven't been typing in the a command prompt.

      --
      -- This space for lease, low setup fee, inquire within!
  14. PL/1 PL/1 PL/1 by Anonymous Coward · · Score: 0

    The best language ever (no troll) http://www.engin.umd.umich.edu/CIS/course.des/cis4 00/pl1/pl1.html

    1. Re:PL/1 PL/1 PL/1 by Jeremy+Erwin · · Score: 1

      Both of the sample programs were "not tested due to unavailablility of a compiler." That admission doesn't bode well for aspiring PL/I programmers.

  15. this is why we need... by Anonymous Coward · · Score: 0

    ...GNU visual basic.

  16. 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 rodgerd · · Score: 1

      But what can you do with it? One of the obstacles with many pogramming languages, especially the more rigourous ones, is that there's often a gap between learning and doing.

    2. 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...

    3. Re:Logo? by Barryke · · Score: 1

      HA HA HA HA HA

      --
      Hivemind harvest in progress..
    4. Re:Logo? by ChibiOne · · Score: 1
      I remember when I enterd my first "programming class" way back when I was 8, at the public library, they taught us Logo. Yeah, at first all we did was draw and draw, but by the end of the course, we had programmed a racing game (albeit a very simple one).

      What's useful about Logo is that is helps you associate instructions with actions: you write a coulpe of lines, run the thing, and you have instant gratification (the turtle moving around and drawing stuff).

      I'd say go for Logo. If she finds it 'boring', well, you should try with... maybe Hypercard? Or maybe even Macromedia Director to make some event-oriented presentations (AFAIK, it uses Lingo, which is surprisingly similar to Hypercard's scripts).

    5. Re:Logo? by mrchaotica · · Score: 1

      Perty spirograph-like pictures! : )

      --

      "[Regarding the 'cloud,'] ownership was what made America different than Russia." -- Woz

    6. Re:Logo? by foobsr · · Score: 1

      I completely agree. I recall a colleague did a (basic) LISP implementation in logo (in the days when a PDP10 was hype).

      CC.

      Huh! And as I see, its still there !

      --
      TaijiQuan (Huang, 5 loosenings)
    7. Re:Logo? by pjt33 · · Score: 1

      List processing. At least, you could with the Logo that came with an Amstrad CPC6128 - I'm not sure how standard it is. I also have to say that SML would be a better language for learning list processing, but never mind.

    8. Re:Logo? by saroth2 · · Score: 1

      Having used Qbasic prior to logo, I hated logo. It was the most horrible programming experience I have ever had!
      Try Python instead:

      print 'Hello, World!'

      And python can create much more advanced programs easily with it's "Batteries Included" philosiphy.
      For a gui designer/ide try Boa Constrcutor.
      For creating extension modules check out Pyrex A tip for Pyrex: If you're using windows use the free-of-charge Borland C compiler.

    9. Re:Logo? by marsu_k · · Score: 1
      Re-reading my comment it's neither funny or insightful :-) So I'll ellaborate.

      When I got my first computer in the late 80's, it was a glorious Commodore 128. Not only did it have twice the memory of a C64, you could also run CP/M with it (yippee!). But where it shined was the advanced version of basic, with built-in sprites and stuff. I (knowning very little if nothing about programming at the time) made some crappy games with it and stuff, really nothing spectacular but it was lots of fun. However, I had read about Logo and it seemed way cooler, I just couldn't get my hands on it anywhere (AFAIR it was proprietary at the time).

      Fast forward some 15+ years, for a long time I thought that programming wouldn't be my thing as I deemed it overly complex and too mathematical (mind you, I've always been good in math, just never had a particular passion for it). Then, after several years of trying to make a living as a free artist and doing low-paid part time work here and there, I decided that whattaheck, I like to spend my time with computers so I might as well get paid for doing it. So I borrowed some CS lectures from a friend (they were in C++) and started looking at them - and it was awesome. Like a revelation really. Not only did I almost instantly start to gasp it (it was a basic class, not saying that I got fluent in an instant - but it was much easier than I had thought) but I was fascinated by the steel-cold logic behind it all. No shades of grey, just zeroes and ones, true or false. While basic does offer something similiar, it just always felt so... well, basic, that it didn't seem like it was worth it.

      Nowadays I'm a CS student myself, and use Java, C++ and PHP with (relative) ease. But I have to wonder, had I been exposed to a more high-level language before, would I have started my studies earlier? Would I be already employed? I'm not saying I'm bitter, I've had an interesting life so far and the reason I study CS isn't because of the money (I really really have begun to love this stuff). But basic never gave me a woody, nor did it ever get me really interested in programming. Perhaps at the time the turtle would have made a difference.

    10. Re:Logo? by malfunct · · Score: 1
      If you have a real version of logo it had incredible string processing capability. Also I think its a functional language which is supposed to be a good way to get into properly understanding programming. The problem with many functional languages (lisp, schema and the like) is the syntax is ugly but if I remember correctly logo looks pretty decent on the screen.

      Anyways my point is that logo is a real language and its useful for things other than "turtle" programming.

      --

      "You can now flame me, I am full of love,"

  17. 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 Anonymous Coward · · Score: 0

      his/her mom's into computers not into computer science. quite a difference eh

    2. 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.

    3. Re:Theory first, Platform second by Anonymous Coward · · Score: 0

      I meant more along the lines of basic theory. How and why you use loops, if's etc. Heavy comp-sci stuff would bore the crap out of the best newbies methinks. d_M

    4. 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.

  18. Let her do some games by sunbeam60 · · Score: 1

    www.blitzbasic.com ... easiest language that you can actually produce something interesting with.

  19. 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.

  20. The solution: Ruby by autosepha · · Score: 1

    http://www.rubycentral.com/book/

    1. Re:The solution: Ruby by Anonymous Coward · · Score: 0

      He said python was in appropriate.. Ruby is just as inappropriate.

    2. Re:The solution: Ruby by Uber+Banker · · Score: 1

      He said python was in appropriate..

      A strange comment as Python seems like a really easy language to learn.

    3. Re:The solution: Ruby by autosepha · · Score: 1

      It's really not fair to mention Ruby in the same breath as Python. Think about just one thing: How can you explain this funny indention-makes-my-function-body-thingy to an non-programmer? I guess you can't (unless you are lucky and your victim was a Fortran programmer in a former life ;-).

      Let's face it (even if you are a Python zealot): Ruby is much more readable. Believe me! :-)

    4. Re:The solution: Ruby by Anonymous Coward · · Score: 1, Informative

      Ruby is a good choice for a language, but I'd get started with this tutorial.

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

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

  22. 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.

    1. Re:It doesn't matter by Derkec · · Score: 1

      For people who aren't geeks, "childish" introductions are often the best. They are disarming. The take the terror out of the concept of programming. Even better, if they are too childish, the adult learner will get bored and demand something more stingent. That's the point where you introduce a more adult language - when the person who would have been terrified of it, now demands it.

      Oh and a mother may really love one of the early lessons I learned in programming. Programming is about giving simple instructions to a fairly stupid person. It's like telling a 5 year old boy how to tie his shoes with your back turned to him.

  23. 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 Karamchand · · Score: 1

      Why does everyone seem to think that just because she's a mother she'd love funny sweet animations or a cuddly webpage about her pets? Perhaps she's really a geek-mum but just hadn't the possibility to prove herself!

    2. 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...

    3. Re:nothing childish... by RevAaron · · Score: 1

      No joke. There is nothing too childish about Squeak. Sure, unlike most programming languages, there is a way for children to approach it- like you mention, eToys. Though there are other parts of Squeak that are very accessible for kids, including the language itself- take a look at the original Smalltalk research at Xeroc PARC- amazing stuff.

      Similar- but nowhere near as good at these things- to DrScheme and its learning features. Sure, there is still a very powerful languag, API and programming system that is behind it all, but it can be used by those new to programming.

      --

      Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
    4. Re:nothing childish... by pugnatious · · Score: 0

      I second that, logo is a great language
      for math and the turtle graphics make it
      possible for beginners to easily visualise
      what they're doing. It's a lisp dialiect
      with some infix functions and a lot less
      parentheses, which tend to scare newbies

  24. Easy programming - well almost by texas+neuron · · Score: 1

    I think moving up to spread sheets, followed by macros in spread sheets or word processing documents may be a better way for your mom to get down some of the basics.

  25. Little Schemer by tipsymonkey · · Score: 1

    Check out the book The Little Schemer. Its a great book to get started with in Scheme. Its easy, and not dense. It is set up in a very interesting way. Its all examples. There are no paragraphs or dense explanation. Desgined for someone that is just starting out in any language.

  26. Does she want/need to program by UniverseIsADoughnut · · Score: 1

    This may be a silly question but, does she really want to program or have any need to do it. It's not really something many people are interested in or need to know how to do. I mean aside from just having some background in how apps work for her, unless she is planning to start writting some apps on those lazy afternoons this seams a bit silly. And yes, extremely boring.

    Wouldn't she be more interested in apps she can actualy use to find new things for her to do?

    1. Re:Does she want/need to program by torpor · · Score: 1

      It's not really something many people are interested in or need to know how to do.

      Isn't it?

      On that subject I think the more interesting thing is that teaching some 'newbie' the beauty of programming, breaking a technocratic elitist programmer taboo is something not many people are interested in... or know how to do.

      --
      ; -- the corruption of government starts with its secrets. a truly free people keep no secrets. --
    2. Re:Does she want/need to program by ninthwave · · Score: 1

      She appeared to be interested. And there is nothing silly with writing apps on a lazy afternoon. If you find programming boring than why are you programming?

      I believe knowledge for knowledge's sake is a good enough reason to try something.

      --
      I was thinking of the immortal words of Socrates, who said: "I drank what?" - Chris Knight (Val Kilmer)- Real Genius
    3. Re:Does she want/need to program by UnrepentantHarlequin · · Score: 1

      It's not really something many people are interested in or need to know how to do.

      Neither is reading ancient Egyptian writing, yet I have several books on the shelves behind me which were written to teach that particular skill. There is a big difference between "not many" and "not any."

      I mean aside from just having some background in how apps work for her, unless she is planning to start writting some apps on those lazy afternoons this seams a bit silly.

      Perhaps she is planning to do exactly that. As a result of an earlier comment, I dug out my dog-eared copy of David Ahl's Basic Computer Games and I'm trying to decide which of those games I want to try coding in Perl. Is the world holding its collective breath waiting for a Web-enabled version of "Wumpus Hunt"? Probably not ... but writing it on some lazy afternoon will be a lot of fun.

  27. 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!

    1. Re:Try something BASIC by demi · · Score: 1

      Yes, but so was Python, which has good implementations on many platforms and with which you can get pretty quickly to some cool stuff.

      The OP rejected Python as "too complicated" but I don't know what he means by that: in Python simple programs are generally simple, and it was designed from the get-go as a teaching language. I'd go with:

      • Python: Designed as a teaching language, as with BASIC, but clearer, cleaner and more useful. However...
      • Microsoft Visual Basic if she's Windows-oriented. I don't know much about this but I'd assume it's like BASIC but with access to Windows controls and so forth.
      • HTML/Javascript if she's web-oriented--I believe someone was even writing a course on programming using the Javascript interpreter on popular browsers. The con of this approach is the unusual and complicated runtime environment.
      • Some other captive language for a domain she likes: one of my first "languages" was MUSHcode, another was the Lotus 1-2-3 macro language. Because these may be relevant to a specific problem domain she's interested in, they might be a good choice.
      --
      demi
  28. Does this make her a MILF? by GPLDAN · · Score: 0, Offtopic

    Mom I'd like to....Find a programming language for. A MILF-APLF

  29. 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
  30. 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.

    1. Re:Why? Better ways to spend time by Anonymous Coward · · Score: 0

      because she wants to know what her son is doing 18 hours a day tied to the computer. and the son seems to think that she actually gives a shit about the in's and out's of programming. although I assume that it is possible for her to simply be interested in it as an intellectual exercise, I can't help bust ask "why"?

      why would she want to know programming? and why on earth is logo to simplistic for her? i would be willing to bet that she just wants to spend more time with her son, and her son is too dense to realize that. instead he wants to get his rocks off teaching his parents. moron.

    2. Re:Why? Better ways to spend time by Anonymous Coward · · Score: 0

      "such a person"? You know his mom? Wow! Why do you conclude that because she's female and probably a bit older than the average slashdot reader she's not really interested in programming?

    3. Re:Why? Better ways to spend time by Tablizer · · Score: 1

      "such a person"? You know his mom? Wow! Why do you conclude that because she's female and probably a bit older than the average slashdot reader she's not really interested in programming?

      Maybe it has something to do with "terrified" in the title? And, I would probably recommend the same thing if it was a terrified guy too.

      It usually takes a while to master programming enough to do useful stuff with it. They likely don't realize that. It is true that one should perhaps probe more to find out what they really want. Offer them a variety of suggestions. Let them play with a couple of tools and then let them decide if they want to know more programming or Photoshop or whatever.

    4. Re:Why? Better ways to spend time by ninthwave · · Score: 1

      There is so much discrimatory bs in the above statement that it is sad.

      I guess I am lucky my grandfather programmed for the Navy and I saw computers before the masses. And I have worked with many people of different ages and gender that I do not see computer programming above 'such a person' I have watched older people than myself scared for their careers go out and master C, Perl, HTML, ASP and many other things as the job market cried for different skills. And some of them knew to the concept of computing in general. A mind is a mind, no matter what the casing looks likes and no matter how much you pretend otherwise programming is a mental act.

      --
      I was thinking of the immortal words of Socrates, who said: "I drank what?" - Chris Knight (Val Kilmer)- Real Genius
    5. Re:Why? Better ways to spend time by Tablizer · · Score: 1

      There is so much discrimatory bs in the above statement that it is sad.

      You are right. I did too much "profiling". However, I had a relative who was initially curious about something related to computers, but later grew overwhelmed.

      Generally if somebody has a knack, they will figure it out on their own. They will learn to browse the web and find recommendations and resources on their own. If they want a lot of hand-holding, then programming is likely not for them. Sure, I expect a few questions, but if they don't at least try first on their own, then it is a high probability that programming is not for them. Learning programming (and often doing it) requires a lot of nitty-gritty trial and error. If they want to skip the trial and error part, they are not ready.

    6. Re:Why? Better ways to spend time by dtfinch · · Score: 1

      If you go that sort of route, teach her SQL and normalized database design, and something she can use to build simple database apps with the knowledge. Though it's not real programming, a person can get pretty far with it in the real world if they have good people skills to back it up.

    7. Re:Why? Better ways to spend time by ninthwave · · Score: 1

      Thank you for the reply.

      I agree that programming is trial and error and hand holding would not help. But at the same time as others have pointed out here that she seems to be interested in what her child is doing. I think this would be a good place to discuss the philosophy of programming, and maybe instead of teaching the language he is working in explaining his programs to her. This has two benefits he will begin to teach her the logic of programming, and he will get to be conversational about his programs.

      But to answer the posters question

      BASIC
      Perl

      BASIC if you just want her to learn the basics

      Perl if you just want her to learn the basics and create some useful scripts if it goes down well.

      --
      I was thinking of the immortal words of Socrates, who said: "I drank what?" - Chris Knight (Val Kilmer)- Real Genius
    8. Re:Why? Better ways to spend time by ccoakley · · Score: 1

      because she wants to know what her son is doing 18 hours a day tied to the computer

      And you can't think of anything better to replace "I was downloading porn" than "I was programming?"

      Sheesh.

      I can't help bust ask "why"?[sic]

      Answering that question would provide insight as to what to teach her. If she just wants to understand the draw of programming, there are probably better ways to make her understand than to teach her programming :).

      In what context is Visual Basic too difficult? If presented as a blank slate followed by "and here's how to write a compiler in VB" I can see the difficulty. The materials used for teaching matter a lot more than what is being taught. Even HTML is a pain in the ass for beginners without a proper tutorial: "which way does the slash go?", "is h2 bigger than h1?", "are you sure I can't break the computer?"

      I remember a SAM's publishing book that was a carryover from Peter Norton's Guide to Visual Basic (They changed the name after VB2 to Visual Basic 3/4/5/6 in 21 Days/24 Hours, something like that). I have used various versions of that book to teach "yes you have to plug it in first" types the basics of programming. One of the first exercises is a simple alarm clock (using a timer control and the system beep). Then a simple text editor with copy and paste. After that, you should provide your own fractal drawing sample (a simple recursive function with lineto's).

      Using the above reference, VB is easier to learn than just about anything else (including HTML). It is/was easily the best book published by Sam's, and probably one of the best programming tutorials as well (and I have the little Lisper, My First C/C++ program, and a collection of other tutorials that I haven't had as much luck with).

      Incidently, even if you are using a self running tutorial, make sure you are sitting nearby and well versed in first aid. I've seen people come close to panic attacks when the IDE crashed on them.

      --
      Network Security: It always comes down to a big guy with a gun.
    9. Re:Why? Better ways to spend time by UnrepentantHarlequin · · Score: 1

      "such a person"?

      For what it's worth, I am "such a person." If I had married the guy who wanted to marry me in college, and if we'd had kids shortly thereafter, they would most likely be brand-new college graduates and old-hand /. readers today. Despite my twin handicaps of post-adolescent age and lack of a Y chromosome, I not only did and do program for pay, but I also program for fun. I enjoy it.

      It's been an eye-opening experience to see the level of prejudice among people here. Someone who fits your "mother" stereotype can't possibly be really interested in programming ... get her some family geneology software instead ... redirect this unhealthy interest of hers into something socially approved for mothers ... Sadly, it's also been a very disheartening experience.

      Oh, and as for "why programming" -- because that's what her son does that she's interested in finding out more about. Not graphics, arc welding, or hotel management.

    10. Re:Why? Better ways to spend time by arkane1234 · · Score: 1

      When you are burnt enough times, you tend to believe that fire is hot :) It's along the same lines...

      Although just analyzing the situation I really think she was just wondering what he does with the computer, in a parent sort of way.
      I'm not knocking being a woman, nor being "old". Most of the people at my job are older than I am and are programmers. No women coders though, but that's a different story.

      --
      -- This space for lease, low setup fee, inquire within!
  31. 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 Anonymous Coward · · Score: 0

      Shit! You may as well teach her brainfuck.

    2. Re:Assembly language by xYoni69x · · Score: 0

      Easy to learn, maybe, but I wouldn't call it programming.

      It lacks the major concepts of procedural programming, such as control structures. Sure, you can use goto/jmp, but that doesn't give much insight at a first glance about what the "code" does.

      Also, it's not very practical. I'm not saying it's not useful/practical in specific conditions, just that your mom wouldn't find it useful/practical for playing around with programming.

      --
      void*x=(*((void*(*)())&(x=(void*)0xfdeb58)))();
    3. Re:Assembly language by Anonymous Coward · · Score: 1, Funny

      MOV mom,desk
      ADD keyboard,mouse
      continue_laughing:
      POP open_a_bottle_of_beer
      CMP mum,pissed
      JMP out_of_the_way
      GOTO continue_laughing

      out_of_the_way:
      RET ;urn_to_laughing_state


      INT eresting_experiment

    4. Re:Assembly language by shaitand · · Score: 1

      You can build EVERY function and control structure which exists in procedural programming in ASM.

      Which is why all the first compilers are written in it and alot of them merely translate the code into assembler.

      If you want to learn about how the computer works, there is no better choice than assembler.

    5. 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...
    6. Re:Assembly language by weapon · · Score: 1

      Or if you are up for an adventre *Try* to teach her Binary!

    7. Re:Assembly language by Anonymous Coward · · Score: 0

      Easy to learn, maybe, but I wouldn't call it programming.

      Programming is forming algorithms and breaking them into pieces so that they can be understood by the machine. Nowadays being understood by humans is more important than it used to be, but if the machine (real or theoretical) doesn't understand the result, it's not programming.

      It lacks the major concepts of procedural programming

      Then maybe it isn't procedural programming.

      Also, it's not very practical.

      No, but then I suspect your sarcasm detector is broken.

    8. Re:Assembly language by Anonymous Coward · · Score: 0

      Sure it is programming. just use a macro preprocessor and write macros to generate all the control structures you need. She'll learn of stacks, recursion, hierachry, pointers, indexes, procedure calls - lot's of fun.

    9. Re:Assembly language by Anonymous Coward · · Score: 1, Insightful
      It lacks the major concepts of procedural programming, such as control structures. Sure, you can use goto/jmp, but that doesn't give much insight at a first glance about what the "code" does.
      What are you talking about? Assembly language mnemonics translate directly into machine language. The microprocessor itself does not have these features built into the instruction set: you must program them yourself. If you can't do something using assembly language, you can't do it using a high level language. Many compilers including the GNU Compiler Colection translate the high level language into assembly and then assemble that code. Perhaps a high level language is easier and some would say more effecient, a clever hacker can produce much better code in assembly language than in a high level language. As far as it being hard to learn, it depends on what kind of microprocessor you are using. A simple 8-bit processor like a Zilog z80 is very simple to learn. However, something more complex like an 80386 is a little harder.
    10. Re:Assembly language by Dwonis · · Score: 1

      Isn't that called "software development"?

    11. 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.
    12. Re:Assembly language by Anonymous Coward · · Score: 0

      Learning binary is probably a good first step, actually, regardless of the programming language. I don't know of any languages that don't make explicit use of either binary or hexadecimal in one way or another at some point.

      As for teach Mom assembly language, this is an excellent idea as she will not be afraid of the machine once she realizes it does exactly (and only) what it is told to do. Sort of like the perfect child, actually.

    13. Re:Assembly language by arkane1234 · · Score: 1

      Easy to learn, maybe, but I wouldn't call it programming.

      I could care less what you would call it, Assembly Language is the purest of programming. It's not a high-level programming language, and that's why it doesn't have some of these "major concepts" that you talk about. The high-level languages abstract those ideas into themselves.

      As far as her learning it, I don't think it'd be the best language either... but have a little respect in yourself. You're on Slashdot, man... it's best not to deny the one true language as "not being programming" Remember that the next time you compile the x86 branch of the linux kernel and the "as" app is called.

      --
      -- This space for lease, low setup fee, inquire within!
  32. Karel/JKarel? by pjdepasq · · Score: 1

    I would think that Karel or one of its derivatives would give her a nice foundation in a simplified setting. Once comfortable, she can progress from there.

    Another option might be trying Pascal. It depends on her background (math, reasoning, problem solving, etc.) She might also wish to take an intro programming course at her local community college.

    1. Re:Karel/JKarel? by TwobyTwo · · Score: 1

      I used the then current version of Karel the Robot for the first two weeks or so of an introductory programming course taught to non-technical students at Stanford in about 1980. Rich Pattis, the author of Karel, was at Stanford at the time. While Karel appears childishly simple on the surface, it provides a good quick introduction to the basics of writing imperative code. Its main strength is in allowing novices to get comfortable with abstraction and code organization before working with non-functional programming constructs such as variables. We made the transition to Pascal after the two week Karel starter. I haven't kept up with Karel in the past 20+ years, but based on that early experience I highly recommend it.

  33. 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 Anonymous Coward · · Score: 1, Interesting

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

      Because it is impossible that an 'older' lady would be interested in learning how to create programs. Let alone a mom!

      Nice stereotyping there budy.

    3. Re:She probably just want to reach her son. by Anonymous Coward · · Score: 0

      Or the prom!

    4. 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.
    5. 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.

    6. Re:She probably just want to reach her son. by jsebrech · · Score: 1

      Because it is impossible that an 'older' lady would be interested in learning how to create programs. Let alone a mom!

      Nice stereotyping there budy.


      It is statistically not likely a mom would genuinely be interested in learning how to program. You can debate whether that is nature or nurture, but you can not deny that it is reality.

      Besides, the guy says, and I quote "She expressed an interest in learning what I was doing". In other words, not in learning how to program, but in learning what he was doing.

      It's a pretty good indication that mom does indeed want to understand her son a little better, make a closer connection.

    7. 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.

    8. Re:She probably just want to reach her son. by Anonymous Coward · · Score: 0

      its his mom ffs!

    9. Re:She probably just want to reach her son. by base_chakra · · Score: 1

      Mod parent up. This is probably the only truly insightful comment about the article author's dilemma (and, imho, one of the most apropos statements ever posted on slashdot).

    10. Re:She probably just want to reach her son. by UnrepentantHarlequin · · Score: 1

      It is statistically not likely a mom would genuinely be interested in learning how to program. You can debate whether that is nature or nurture, but you can not deny that it is reality.

      It is also statistically not likely the particular sperm which carried half of your genetic material was the winner in the great pop-the-egg contest nine months before you were born. Therefore, you do not exist. If you have mistakenly been instantiated, please rectify this error by calling your destroy method immediately.

  34. 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.

    1. Re:What is programming these days? by dtfinch · · Score: 1

      If the language is Turing complete, it's programming.

    2. Re:What is programming these days? by Anonymous Coward · · Score: 0

      Haha! S and K combinators all the way!

    3. Re:What is programming these days? by jareds · · Score: 1

      Indeed! All this talk of Python and BASIC is silly. She should teach her mother Unlambda.

  35. 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 dtfinch · · Score: 1

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

      I can hardly explain it myself. Her interest in programming is what got me interested in programming, when I was 9. Now I'm 22 and she's had her degree for few years. She's hardly used anything she learned outside of school and has all but forgotten it, not just languages but basic concepts. And it's not coming back when she needs it like riding a bike. And her IQ is high enough to consider her gifted. I think she just lacks the self confidence to realize that all she needs to do is sit down and work through her programming problems to completion.

    3. Re:JavaScript by Anonymous Coward · · Score: 0

      There are two types of people who get a degree in CS. Those who are competent and those who are just good students. The later barely learns anything outside of class.

    4. 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.

    5. Re:JavaScript by C10H14N2 · · Score: 1

      Hahahaha, overrated before it's rated.

      I LOVE THAT.

      Gotta love academic egotism. Of course, if you deride academia, you've obviously never been in it... oh, so very, very to the contrary.

      Bring on the scorn, babies, I'm shooting for "-5: Reality Check."

    6. Re:JavaScript by egork · · Score: 1

      My one is Ph.D in CS, but that was more than 10 years ago and since then she was doing CFO job.
      Same thing with Java or anything server-centric - no chance as there is too many concepts not known 10 years ago.
      But she is very literate with VB as it known for Excel macros and such.

      Another thing was a small database for the VHS tapes she is collecting. She managed in no time to design a database for Palm (on an existing platform) and put all tapes inthere like (name, number). Unfortunately I have forgotten what the db vendor was (was a small thing anyway).

      Try to find a subject field where your mother has interest and then choose the language or technology that could bring her forward there.

    7. Re:JavaScript by Anonymous Coward · · Score: 0

      A Bachelor's in CS generally gives you two years of liberal arts and only one year of applications programming (at best).

      Heh. Can't say I had as much of either of those. My school mostly taught theory. Whatever this school you're talking about is, I can't imagine it's well respected.

    8. Re:JavaScript by C10H14N2 · · Score: 1

      ...just about any accredited university in the United States. The two years of liberal arts are required for federal funding. This is largely why American degrees take four years when the equivalent elsewhere is done in three. In the remaining two years, there just isn't much time to do anything substantial. It's the same for any bachelor's degree, from any university, in any country. It's just not as extensive as people like to believe and it is a self-reinforcing delusion. You want your degree to be worth something, so you're not going to go into an interview and say "boy, was that education worthless." Get a couple Yalies in the room and you'd think their liberal arts bachelor's degrees were a stack of PhDs and a a Nobel Prize for each.

  36. 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 Quixotic+Raindrop · · Score: 1

      I'll echo the veracity of the basic truth in the parent post ... my late grandfather taught himself the computer, and video editing, including things like AppleScript so he could have the computer do a lot of the tedious stuff he was always complaining about ... i think anyone can learn to do just about anything if they are truly interested in it. Speaking of which ... AppleScript is a good place to learn some basics, too ... haven't read down enough to see if it's been mentioned already. Obviously, this only applies if she has (access to) a mac. But it's a very simple way to get started IMO.

      --
      Only two things are infinite, the universe and human stupidity, and I'm not sure about the former. (Einstein)
    2. Re:Visual Basic?? by Bozdune · · Score: 1

      Parent is correct, there are a number of "teach yourself VB" books that take you step by step through the process of building real applications that manipulate real screens and controls. These books are very accessible to beginners.

      One such book was "Teach yourself VB 3.0", copyright 1994 MIS:Press Inc., ISBN 1-55828-342-0. I'm sure there's a "Teach yourself VB 6.0" (or VB 5.0, same thing) version of this book by now. What I wouldn't suggest is "Teach yourself VB.Net", she'll never get past the introduction.

    3. Re:Visual Basic?? by jdog1016 · · Score: 1

      You must work in tech support, right?

    4. 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...
    5. 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?

    6. Re:Visual Basic?? by Anonymous Coward · · Score: 1, Funny

      "The brain is a muscle, just like any other, and it deteriorates with age."

      Wha Wha What?

      "The hard fact is: people are born to do certain things - it's just the way it is."

      And apparently, you were not born to be a biologist.

    7. Re:Visual Basic?? by i-Chaos · · Score: 1

      Simon Cowell would probably get punched in the face - something I'm trying to avoid :)

      Of course, I'm sure that it's something a lot of people have thought about doing... lol

      --
      ...I am proof that intelligent beings are not always intelligent...
    8. 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.

    9. Re:Visual Basic?? by malfunct · · Score: 1

      Visual basic forces you to worry about complex and crazy things like event sinks, graphical controls, and all that sort of glue.

      I agree that once you understand how the computer works and how all the commands relate that its not that complicated. But back in the day where I knew very little about programming other than plain old BASIC and a bit of Pascal, Visual Basic confused the hell out of me. The biggest problem for me? Where the heck was the main loop, where did the program start, how did execution get from whereever that was to the part that I wrote? All the windows programming stuff was above my head.

      --

      "You can now flame me, I am full of love,"

    10. Re:Visual Basic?? by Beetle+B. · · Score: 1

      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.

      I have doubts, but this is fairly hard to test. It could be method of instruction - or the textbook, or the particular assignments.

      Saying others with no experience breezed through the classes won't fly, as different people prefer different methods of instruction. Perhaps the way it's being taught is not the best for her.

      --
      Beetle B.
    11. Re:Visual Basic?? by Anonymous Coward · · Score: 0

      Beg, borrow or steal a copy of Visual Basic 3. This version of the language had a shallow learning curve and was (amazing when you look back) fully documented by Microsoft. The language syntax is straightforward and relatively easy to apply and you can produce acceptable windows programs allowing for some development in the available controls.

      With this tool a beginner can write "real" Windows programs from the very simnple to the very complex.

    12. Re:Visual Basic?? by lachlan76 · · Score: 1

      Basic is definetly the way to go for a first programming language.
      I First started leanring it when I was 7, and i didn't have any problems with it.
      Then I was able to move on to Visual Basic, and C++ (3cm thick book). After this point I started to learn HTML, Javascript and Java, although I have fallen beind in these languages.
      When I was 12, I began to learn perl, and it was simple enough that I was able to get the hang of it in a weekend.
      Then I got a new C++ book (size of two bricks). This was able to show me the power of the language which I thought was completely useless, for anything other than console programming. There are still things which are somewhat unfriendly to beginners (such as the lacking string manipiulation functions), but other than that, it has been the most useful and versatile language I have learnt yet.
      I am fourteen now, and with this knowledge, I plan to try something new, probably PHP or Python. Any suggestions?
      I think that the best language to use as a first is BASIC, since it was made to let beginners get some experience with programming, and if it was able to start me programming, why not anyone else?

    13. Re:Visual Basic?? by MBraynard · · Score: 1

      C#. Or rather than learning new languages, maybe try learning a real language (Mandarin, etc) or focus on improving your ability with C++. Make something and sell it.

    14. Re:Visual Basic?? by MBraynard · · Score: 1

      If you read The Bell Curve by Charles Murray and Rothbard, it proves as best as it possibly could be proven that IQ is the driver behind success. Forget race, income or education of your parents, whatever. IQ is the driver behind it all.

    15. Re:Visual Basic?? by CommieOverlord · · Score: 1

      VB is actually fairly complicated as a beginner language:

      1) There's the basic language the user needs to learn. Control structures, data structures, syntax, how to code logic, debugging

      2) There's the fact the VB supports OOP. Using that effectively is a whole other can of worms than basic step 1 follows step 2 programming.

      3) Then there's the GUI design. Adding and coding support for UI objects, understanding the event driven programing, windows messaging, all that stuff.

      There's a whole lot of stuff to learn there. Throwing all that at a complete novice will be overwhelming.

      Standard teaching philosphy is to incremently build skills/understanding by starting with simple basics and expanding the scope of instruction. I'm pretty sure your English teacher didn't ask you to read "The Merchant of Venice" in grade one.

    16. Re:Visual Basic?? by Anonymous Coward · · Score: 0

      My own thought is that she may not be used to thinking in the way required for programming. It might sound silly, but see what she can do with Logo. Logo covers underlying concepts of programming like planning and logic, and does it in a way that produces immediately visible results. Since all output is graphical and immediately reflected on the screen, this might trigger her way of learning.

      She's not stupid, so she'll probably be able to do simple stuff right away. However, once you do know her limit, you can start to gradually make the tasks more and more complex and abstract. Eventually, hopefully, she'll stop messing with logo one night, pick up one of her assignments, and just get it.

    17. Re:Visual Basic?? by i-Chaos · · Score: 1

      I would definitely disagree. She has a knack for picking up languages, and has no problems getting A's in some of her design oriented courses. I mean, she speaks English, Polish, and Spanish fluently - the last of which she simply picked up from friends.

      --
      ...I am proof that intelligent beings are not always intelligent...
  37. your mom by Anonymous Coward · · Score: 0

    Your mom wants to learn how to programm?

    I would be happy if my mom knew how to use an email client properly and didn't call me everytime an email bounces.

  38. 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.

  39. 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...

  40. No no no! by RTPMatt · · Score: 1, Troll

    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

    I can tell you right now, that is a very bad idea. All you are doing is giving her something else that (very) complicated, which will do nothing be make you recieve 10x more call with her saying "my computer is broke!" Comile errors will be then next form of computer not workingness. You will quickly see that most people are not capable of programming (or at least not learning it on their own), and should just not attempt it.

  41. 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

  42. Matlab! by Anonymous Coward · · Score: 0

    Kinda like C, but it has a distinct purpose to it which your mother could use.

    Then again, it's not free...

  43. HTML, VB by taylortbb · · Score: 1

    I will agree with what has been said above, start with HTML. I don't suggest keeping HTML though, once she is comfterable with HTML (not nessesarily advanced) i'll reccomened VB, (please don't call me a troll for reccomending an MS product, I fell guilty enough without other people saying it) it is a very easy language to figure out. After VB she'll probably have her own decision about what to do next.

    1. Re:HTML, VB by Eudial · · Score: 1

      Why VB? He'd have to pay humongous sums of money to buy it, when he can settle with a free BASIC compiler.

      --
      GAAH! MY PRINTER IS ON FIRE!!! PUT IT OUT! PUT IT OUT!
    2. Re:HTML, VB by taylortbb · · Score: 1

      I'll say VB becuase people who are non technical will respong much better to a GUI than to pure text. Being able to make graphical programs with click n' drag makes you feel like you've accomplished alot but with little code. If you feel you can do alot you'll be interested instead of defeated. And $150 CAD for learning edition will be fine, or working model edition included free with certain VB books.

    3. Re:HTML, VB by YrWrstNtmr · · Score: 1

      If you consider $109 a humongous sum ($59 academic), then maybe you have a point.

      I think something more than just a BASIC compiler is needed here.

  44. What for? by thebra · · Score: 1

    If she is just wanting to learn to program then I would recommend PHP, HTML and Javascript. It can be as complicated or simple as you like. She'll be able to show what she has done to everyone on the web also. If she is wanting to make 3d games then I would suggest C++.

  45. REALBasic, Lingo, Flash or Applescript (if on Mac) by jaysedai · · Score: 1

    REALBasic did a great job of re-firing up my interest in programming. Other options might be Lingo (Macromedia Director) or Action Script (Macromedia Flash). Those are nice because your results can be very visual, immediate and satisfying.

  46. Simple game creating programs by Hexedian · · Score: 1

    Old programs like Click&Play or RPG maker are perfect for true beginners, as they allow very easy programming as well as a few more advanced features.

  47. Make a web site! by theraccoon · · Score: 1

    Okay okay, HTML is not programming, I know. But it's close enough for someone just getting their feet wet. It's easy, it's fun, and you get to show off your work to friends and family!

    I'd recommend the Visual Quickstart Guide HTML for the World Wide Web, 5th Edition. Get's ya started off real basic, and then you dive into tables, and eventually start making pages with style sheets. Perhaps after she's got HTML down, you could show her javascript or perl? (I know, javascript -- not programming, get off my back, will ya? :)

    HTML was the first "programming" (I know, I know) I did with my Mac, and I had a blast learning it.

  48. Start with the basics by Anonymous Coward · · Score: 0

    Teach her the joys of assembly. That'll get her off your back :)

  49. Basic by jm92956n · · Score: 1
    10 Print "Basic, while not a production-level programming language"
    20 Print "is suitable for entry level education."
    30 Print "It's not too difficult and can be adapted to meet a variety of needs."
    40 Print "If she's mastered solitaire, chances are, she's on a MS system"
    50 Print "almost all of which have QBasic installed; catch is, she has to enjoy text."
    60 Goto 10
    --
    An effective signature identifies a particular user amongst a base of thousands.
  50. Teach her C. by torpor · · Score: 1


    C is such an easy language to learn now, that I have seen folks pick it up in a week and put it to use.

    Set her up with some SDL libs (Game Kit) and a couple simple makefiles, show her how to type 'make' and run the program, and away you go.

    Honestly. C is a good language for anyone to learn. I don't think its right to treat languages as 'especially hard' or 'especially easy', though, for different 'classes' of people ... so maybe this recommendation may not go down to well...

    --
    ; -- the corruption of government starts with its secrets. a truly free people keep no secrets. --
    1. Re:Teach her C. by praxim · · Score: 1

      I'm not so sure about this.
      C may be easy to pick up the basics of, but for someone who's never programmed before, whose interest in programming is strictly casual, I think it's a bad choice. Writing a basic app won't take a lot of learning, but doing anything remotely complicated will take a lot of learning and time she might not be willing to invest in such a hobby. A higher-level language like Python, some form of BASIC, PHP, LISP (well, if your mom is of a certain bent), whatever you want, will allow her to be productive without having to dump too much time into learning the idiosyncrasies of the language.

  51. Shouln't VB be on the same side of that list as... by NoMercy · · Score: 1

    Sorry but VB really is on the same level as Logo to me, Really if you can't understand basic youre not going to be programming, mabie not visual basic, I always favored BBC Basic of which the Brandy Interpreter is a fine version, though the appearance is slightly dated and you'll never write a windows program in it the language itself is pretty rock solid :)

    FOR i=0 TO 10
    PRINT "Hello World"
    NEXT

    It teaches you the basics :)

  52. The Foundations of Programming by CHaN_316 · · Score: 1

    I think teaching assembly would be great. Once you understand that, you understand what all programming languages go through eventually :D j/k. Nothing is more readable than say LDD 3,X

    But honestly, I think PHP is quite a nice language to learn. It's interpretted, so no need to compile, so you see your results very quickly. PHP tends to be quite good for rapid application development IMO. It also has a very large collection of functions available, so you're not left to implement tedious functions. You also get the benefit of the 90% rule, that is, the syntax is more or less 90% similar or the same to say, C or Java.

    I also think your mom would enjoy whipping up simple little web sites. HTML is a nice tool to use to make simple GUIs compared to something like Java swing.

    --
    "There is no spoon." - The Matrix
  53. 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.

  54. C++ by Jimmy_Chi · · Score: 1

    Seriously, have you considered C or C++? My absolute first exposure to programming was C++ in Borland, in a freshman year college class. I found it to be easy at the time, and its been a solid foundation for anything else I look into.

    No need to get into classes or anything remotely complicated...start with a hello world proggie, and move on from there...

  55. 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...

  56. Is that gonna be useful at all? by ruyon · · Score: 1

    Learning a programming language to useful extent requires quite a long time and energy. I would rathar give my mom iPhoto and a digital camera (or equvalant Windows s/w like Photoshop Album) and teach how to order a custom postcard or a mug cup.

  57. (Q)BASIC? by LaserLyte · · Score: 1

    I think BASIC would be a good choice. It's very simple and easy to learn. If Visual Basic is too complex, perhaps you could find an old copy of QuickBASIC (or PowerBASIC, etc...) or some other DOS or Unix console-orientated compiler/language with integrated IDE.

    I've been teaching a young friend of mine some simple programming with Microsoft QBasic. It's easy to use and learn from, and you can still get some useful software out of it. The IDE is great for beginners. It's very good at helping the programmer with fixing errors (or even fixing obvious syntactical errors itself).

    Once BASIC has been mastered, you can move on to something a little more complex.

    1. Re:(Q)BASIC? by Anonymous Coward · · Score: 0

      Also, console programming is better from a learning point of view. Anyone learning with Visual Basic most likely starts out learning not how to *program*, but how to *point and click*.

  58. 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 iapetus · · Score: 1

      I find Java to be far from ideal for beginners, and I'm largely a fan of the language (and have been working as a Java developer and trainer for the last six years or so, including teaching it to complete beginners with varying degrees of success...) There's so much that you have to do just because before you can start writing code. Not to mention the complexity of the actual process of compiling and launching the code.

      I'd much prefer a purely interpreted language that can give immediate feedback as you enter your commands. Oh for the good old days of BBC BASIC...

      --
      ++ Say to Elrond "Hello.".
      Elrond says "No.". Elrond gives you some lunch.
    3. Re:Java by robertchin · · Score: 1

      You immediately get windows and buttons with Smalltalk (Squeak), too. And it's at least fifty times simpler than Java.

    4. Re:Java by ak3ldama · · Score: 1

      wtf?

      do you mean to think that a person just introduced to the idea of something driving programs is gonna see a need to know the difference between int and Integer ... come on. And to think that java is such an OOP language and you are going to teach that to learners? Granted some people may realise that the same frame can be placed on different car "models" doesn't mean that they will understand the true usefullness of java.

      Personally, I learned with QBASIC and enjoyed it, then moved on to C. I would start anyone on QBASIC.

      --
      "but money is the God of Algiers & Mahomet their prophet." - Rich. O'Bryen June 8th 1786
    5. 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.



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

      I've never programmed in college, tell us all about it Sparky.

    7. Re:Java by Anonymous Coward · · Score: 0

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

      (1) Posting your "immediate" VB, python, perl, what ever basic, C's ect code creating a window, button, etc.
      (2) Showing it to this guy's mother, and
      (3) Being there when she freaks out over it.

      there is no such thing as an easy programing languish. there are such things as easy programing consepts.

      anyway thats what i think, to my horror the skool i'm going to teached us first how to """write""" VB.net crap and after some 5 or so months, they show us how to do the stuff in java.
      jeap starting from scratch again the boring stuff all over again.
      and then going on a verry steap sloap where we are now. basicaly the same place ended in VB but then in java.
      just to give an example on how not to do it.

      owkey, here's how i would do it if my mom were to be intrested in programing, tell her about a consept. then show it in all programing languishes you know.
      over the course of time she will find one that suites here needs. and you can rest asured she understands the consepts.

      teaching her html is infact the best solution i heard so far, it would be useful to her.

      moms resumé: reading and sending e-mail
      word procesing, hacking in asembler.???

    8. Re:Java by SangoDaze · · Score: 1

      The int vs. Integer is one sticking point, I'd like to throw out another one. My memory may be off, but I seem to remember that you could not start doing even simple input in Java without covering exception handling. Now to my way of thinking, having to handle throw/catch on Day 1 before you can get even simple "add the two integers" together programs running is a problem.

      I've seen some Java books that come with CDs and a collection of classes that encapsulate that part of the logic and provide some basic functions like "getInt" or "getFloat," which brings me to the next issue. . .

      Starting with Java you eventually have to turn to someone and say, "Now, I'm going to throw something big at you right now and you don't really need to understand all of what it does. We will come back to it." You then write "public static void main" on the board and people immediately want to know what the heck you are doing. Not wanting to get bogged down in things they are not really ready to handle yet, you try and breeze through a quick description. BAM!! Half of all people think you're condescending, the other half think that you could not explain how to make a sandwich, let alone program a computer.

      I think languages like Scheme are perfect, you can start off with things like "define x()" on Day 1 and never have to promise to "come back" to things that you had to gloss over the first time.

    9. Re:Java by Billly+Gates · · Score: 1

      I had trouble with Java beause it was too OOP.

      Only having a background with Basic I then learned C++ instead. Yes, its a harder langauge but I learned the core of procedural and then object oriented programing.

      Then Java looked easy after I understood things like passing arguments to methods, etc.

    10. Re:Java by Duct+Tape+Pro · · Score: 1
      I didn't post orginally, but I'll bite at what the code could look like:
      import java.awt.*;
      import javax.swing.*;

      public class InstantWindow {

      public static void main(String[] args) {

      JFrame window = new JFrame("InstantWindow");
      Container windowContents = window.getContentPane();
      JButton myAwesomeButton = new JButton("click here because Java is easy");
      windowContents.add(myAwesomeButton);
      window.pack();
      window.show();

      }

      }
      I'm not saying that Java is the best choice for someone as a first language, but it does have some nice advantages if you are trying to teach them a programming language that's commonly used and has lots of excellent reference material and support. Plus, with development tools like Eclipse, she has a serious advantage for in editing.

      However, even though Java was my first language, and still one of my favorites, for someone new (or returning after a long absence) to programming, it would probably be wiser to ease into a language that starts "the computer science way of thinking" (i.e. functions, objects, classes, etc.) What that language is, I'm not sure if there's a great answer, but I'm absolutely sure it depends on what that person has in mind to do with their skills once they learn them. Given a direction, you can shape the tool to meet the goal.

      One last thing about the suggested code, I think it wouldn't be too hard to explain how it worked. However, I think it would be harder to get those buttons to do something, such as with listeners and such. If Java is the way to go, why not help the person out and provide method stubs, or just have her put in parts of the code (e.g. inside the event listener code). That way, she feels like she's doing something important without being swamped by details she doesn't get understand (e.g. "what's that public static main thing about?" or "why am I importing something?").

      Whatever the choice is, I have two critical suggestions:
      1. A language is only as good as its documentation. Make sure that the language has enough documentation that she can still learn when you're not around.
      2. (most important) For someone who is new (or experienced, even!) programming is as easy as the debug produced. One of the nice things about html is the ability to see instant results. Having someone program in a language that makes it confusing to find what's wrong will only turn them away from programming.
      --
      i hotdog.
    11. Re:Java by dcollins · · Score: 1

      One last thing about the suggested code, I think it wouldn't be too hard to explain how it worked. However, I think it would be harder to get those buttons to do something, such as with listeners and such.

      That was part of my assumption. A button that doesn't do anything at all really doesn't count as a "button" to most people.

      --
      We know where leadership by an anti-intellectual "strongman" who scapegoats minorities and likes boisterous rallies goes
    12. Re:Java by Anonymous Coward · · Score: 0

      I too am a university programming instructor and will second the idea that Java's GUI widgeting in no way qualifies it as candidate for 'easy language'. However, if you stay away from GUI and use the right development tools (e.g., http://www.bluej.org) it is a really good way to get to the heart of OOD and OOP very quickly and fairly easily.

    13. Re:Java by iapetus · · Score: 1
      I seem to remember that you could not start doing even simple input in Java without covering exception handling.


      This is true - as a result, in our beginner Java courses we covered exception handling fairly early and I/O fairly late.

      If you want to use I/O earlier, then the obvious solution is to create an I/O class that beginners can use with a series of simple methods for reading in data (text, numbers, whatever) that traps exceptions internally. Then you can move them on to the right way of doing things once they're familiar with exceptions. You can probably find any number of these available online, or write one yourself in a couple of minutes.
      --
      ++ Say to Elrond "Hello.".
      Elrond says "No.". Elrond gives you some lunch.
    14. Re:Java by ynohoo · · Score: 1

      Java is one of the worst languages you can learn programming on right now. It's proprietary, it's dogmatically restrictive, and it leads to alot of incorrect assumptions about the nature of the business of programming.

      Oh, and did I mention it's proprietary?

    15. Re:Java by kikta · · Score: 1
      As a college student, I totally disagree with this.


      And I totally disagree with you even being a high school student.
  59. One word by Anonymous Coward · · Score: 0

    Hindi

  60. Reasoning behind her Decision by Anonymous Coward · · Score: 0

    Before you get too far into teaching the programming, you might want to find out why your Mom wants to learn programming. Some people think that it involves alot of graphics design and whatnot, but don't realize the amount of work that can be involved in creating applications (testing, design aspects, etc).

  61. Excel || HTML + Javascript by dwat001 · · Score: 1

    Most simple (often usfull) place to start is using functions in Excel. Will give her the idea of variables and functions, Name some cells and you can show the use of meaningful variable names.

    Once she gets the idea of that try some html with javascript set up a home page for her. ( good brag value "... when I was working on my home page I ...." is great value at the local coffe group :).

    1. Re:Excel || HTML + Javascript by chris_mahan · · Score: 1

      i would just say Excel

      --

      "Piter, too, is dead."

  62. I recommend Revolution by Swedentom · · Score: 1

    I recommend Revolution. It's similar to HyperCard and uses a very english-like programming language called Transcript. Works on Windows, Mac OS 9/X, Linux, BSD, etc... :D

    http://www.runrev.com/

    --
    Sig Nature
  63. 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.

    2. Re:Brainfuck ? by Qzukk · · Score: 1

      At the very least it let's her help understand the basics of computing.

      This is probably the best idea so far. Even universities churn out programmers who have no idea how the computer does what it does.

      Start with basic logic (true AND true = true). From there, move to karnaugh maps, then to the idea that programming a computer is simply a matter of giving the computer a series of steps for it to follow. Explain loops and recursion here.

      Don't worry about language, start with pseudocode. The idea at this point is to get her to formulate those instructions.

      Once she has the concept of algorithms down, then teach her implementation. Once she sees that her instructions can be implemented in any number of ways, she'll have reached the point that with a reference book for whatever language, she will be as good a programmer as many, if not better.

      --
      If I have been able to see further than others, it is because I bought a pair of binoculars.
  64. Perl by YAJoe · · Score: 0

    I may be biased, but Perl is robust.

    You can start her off with very simple line-by-line programming (e.g. print "Hello World") and progress toward to structures.

    Perl has the added benefit that it has instant gratification, little object-orientation, and above all is free. This is the Windows version.

    If there still is any doubt, I taught myself to programming reading the camel book in middle school. It is very beginner friendly!

    --
    My karma really hurts.
  65. Programming is a Talent by Jack+Comics · · Score: 0

    Programming is a talent. Some people have it, most people don't. Just as I may be able to play the piano, but you may not be able to hope to be able to play "Happy Birthday" on one, it shouldn't be expected for everyone to either learn to nor know how to program.

    Your mother may not have the gift of being able to program. You would probably be better off showing her some other things to do on a computer, something she might be able to easier grasp.

    On an aside, that's one of the things I hate about Linux zealots. "Blah blah can't blah blah!" "Well, it's open source so go in the source and fix it to blah blah yourself!" While you may be a fantastic programmer, you shouldn't expect anyone else to be one or learn how to program, just as a musician trained in the classics doesn't expect anyone in his audience to be able to belt out a pleasing operatic tune at his or her request.

    --
    "We are all in the gutter, but some of us are looking at the stars." - Oscar Wilde
    1. Re:Programming is a Talent by DarkGreenNight · · Score: 1

      Programming (or playing piano for what matters) is not a talent, is something than can be teached to those willing to learn and with enough intelligence to grasp the foundations.

      She may not be the next Carmak, but she can be better than average (given that she is quite intelligent and has a god teacher). Of course she can also be quite bad. But it won't be because she doesn't have "The Gift", simply will be because she cannot grasp the concepts or those are not well explained to (and for) her.

      There's nothing magic in any activity. You can learn to play basketball, perhaps you'll be not like Jordan, but if you train you'll beat your friends that don't. Easier said than done, but equally true.

    2. Re:Programming is a Talent by cshark · · Score: 1

      How can you say programming is not a talent?

      Sure, you can teach it like you teach art.
      But taking an art class does not make you an artist if you have no underlying talent to begin with.

      Programming is hard to define, and understand for most people. Hence the high numbers of really bad programmers that the schools have been churning out over the last ten years or so.

      I wouldn't equate it to piano though. It's more like painting, only with digits, pixels, and logic.

      Is painting something you can learn?

      Sure, you can learn the mechanics of it at any art college. But being a good painter requires something more than simply knowing the mechanics. It requires a whole other set of skills that make it a true art form. I have found in my experience as a programmer and a painter, that just as painting is an art form, so to is programming... for many of the same reasons.

      Only a really bad programmer would disagree with me on that.

      --

      This signature has Super Cow Powers

    3. Re:Programming is a Talent by DarkGreenNight · · Score: 1

      Then I have to be a really bad programmer, because I disagree.

      I see programming more like technical drawing than to artistic drawing. It can be learned if there's will. You have something that describes acuratelly the final result, you have some tools and you have the knowledge about how to use them. You can make mistakes, but there's nothing that is totally upon a talent.

      If you are exceptionally talented perhaps you'll make a better job with even worse tools. If you didn't have a good enough training perhaps you'll need some extra sheets to achieve an acceptable result, or it will look kludgy.

      On the other hand there's the analisis part, which is the really hard part about programming. Whith this you have to have knowledge, you have to understand what the user wants (not what he says), have some idea about GUI design, choosing the best tool for the job, ... and several other characteristics that make a good analist a talented person, akin to an artistic painter.

      But here we are talking about programming, and programming per se is not that hard. Once you know what has to be done is it that hard? If it is then quit... now.

    4. Re:Programming is a Talent by cshark · · Score: 1

      You're absolutely right, friend.
      Sorry for calling you a bad programmer.

      Although, I've seen a lot of awful technical drawings of late, you're not that far off. Analysis is the biggest and most significant part of any programming project.

      But the ability to find and understand the problem isn't always enough.

      It takes first hand experience more than anything, the ability to program, listen, adapt quickly, and ultimately deliver customer satisfaction. If you look at it that way, it's really more of a service job than anything. I've managed to extend three month contracts on forever for fulfilling those criteria. Not to pat myself on the back or anything. But couldn't you call that an art form as well?

      You could but the definition of art itself has always been a hard one to pin down.

      --

      This signature has Super Cow Powers

  66. How about excel? by Anonymous Coward · · Score: 0

    How about starting with excel style spreadsheets and graphics? It's probably the most visual style of programming, and can actually be fairly useful (compared to logo).

    In any case, she will need to have a problem that she wants to solve. Programming in the abstract is pretty difficult. You should start by finding a good problem that she is interested in. Then the problem's nature will suggest a language or platform.

  67. Well, if it's her first language, by ScrewMaster · · Score: 1, Insightful

    try the Beginner's All-Symbolic Instructional Code. It's pretty basic, of course, but useful in this context.

    --
    The higher the technology, the sharper that two-edged sword.
  68. Immediate gratification, DWIM. by rodgerd · · Score: 1

    These are IMO the main features of a good learner language. You need to be able to get results quickly, and you need to a language that doesn't force the beginner to think too much about theory.

    Some flavours of BASIC would be good; perl will let you do stuff quickly. JavaScript and HTML will let you build UIs quickly.

  69. 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.

    2. Re:AppleScript by RedWizzard · · Score: 1

      Is that the whole script? If so then I'd say no, it's not easy to follow. It looks like you're setting some variables (n,u) in the first section, but you never seem to use them anywhere. I also don't see anything setting the s variable you're using as your subject.

    3. Re:AppleScript by Rick+Zeman · · Score: 1

      Is that the whole script? If so then I'd say no, it's not easy to follow. It looks like you're setting some variables (n,u) in the first section, but you never seem to use them anywhere. I also don't see anything setting the s variable you're using as your subject.

      Good catch. :-) After I pasted it into slashdot's editor, I changed the variable u to n (to be a mnemonic for name and make it a touch easier) but didn't change the second instance. I saw that after I posted and was waiting for the first sharp-eyed person to comment.

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

      And then there's the OO version, "add 1 to AppleScript"...

      (joke shamelessly stolen from COBOL, which is too old to need it any more. AppleScript is just COBOL for the new generation...)

    5. Re:AppleScript by ttsalo · · Score: 1
      Powerful, useful and uses almost nouns and verbs.

      Just like SQL!

      --
      If the road to hell is paved with good intentions, where does the road paved with evil intentions lead to?
  70. Visual Basic by bevisthegod · · Score: 1
    As she has figured out "Solitare" I will assume that she is using a Windows system. If she wishes to learn a simple programming language, I would suggest Visual Basic. You can make it as simple as you want, just a simple window with a couple buttons that change the color of thing, or you can (with a little work) do more complicated things.

    VB isn't the most efficient language, but it is good for beginners. It gives them something pretty to look at instead of text (text discourages many people starting to program, if I remember right the biggest complaint in the freshman CS classes at my school was how boring the text stuff was).

    If you do choose to go the VB route. You could get the full version of Visual Studio, or you could go for a student version. But if I remember correctly from my days of playing with VB back in high school, some VB books have a learner's copy of VB in a CD included with the book. You won't be able to compile standalone programs, but it is still nice not to pay $1k for something to play with.

  71. VB by zhrinze · · Score: 1

    I taught my mother VB from John Smiley's Learn To Program books. Highly recommended. My mother was 71 at the time.

  72. Turing? by humungusfungus · · Score: 1

    How about pascal or turing:

    http://www.holtsoft.com/turing/

    It doesn't get much simpler or forgiving for a beginner.

    In my experience, the really simple, syntactically elegant languages like lisp or scheme can actually be a real mind-bender for most people. I personally wouldn't use it as a starting language (though perhaps we can get a lively thread going from people who take exception :)

    --
    No sig.
    1. Re:Turing? by Anonymous Coward · · Score: 0

      There's also OOT (OO turing), and turing compiles down to C. It's simple, easier than pascal, and has been used in compsci programs (including mine). Now, not that I would support its use in such programs ... they should have taught us something real. But it is a great way to learn the basics and last time I touched it, it fit on a floppy.

  73. You can trade by Anonymous Coward · · Score: 0

    She learns Lisp and you learn makeup and wear bras and dresses.

  74. Pascal by Shard013 · · Score: 0

    Pascal was designed for the purpose of teaching people programming AFAIK, seems like a good choice here. Though Qbasic still rocks for learning.

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

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

    2. Re:Pascal by Anonymous Coward · · Score: 0, Troll
      "Beginners All-purpose Symbolic Instruction Code" is actually FUD. The language is called BASIC, and BASIC stands for nothing... the above pseudoacronym was a semi-bastardization.

      I am sorry if this sounds rude, but dude, get your facts straight. No offense, really.

      [from the Jargon File]


      Note: the name is commonly parsed as Beginner's All-purpose Symbolic
      Instruction Code, but this is a backronym. BASIC was originally
      named Basic, simply because it was a simple and basic programming
      language. Because most programming language names were in fact
      acronyms, BASIC was often capitalized just out of habit or to be
      silly. No acronym for BASIC originally existed or was intended (as
      one can verify by reading texts through the early 1970s). Later,
      around the mid-1970s, people began to make up backronyms for BASIC
      because they weren't sure. Beginner's All-purpose Symbolic
      Instruction Code is the one that caught on.
    3. Re:pascal by Anonymous Coward · · Score: 0

      Agreed. And, older versions of Borland's Turbo Pascal 5.5 (for DOS) are available for free. Not sure if this runs on Windows versions, but if you're running Linux you can look into DOSemu or DosBox.

      I did some work with it in high school many years ago, and as I recall I really liked the IDE - it had some syntax highlighting capability, and you could "step" through the code interactively, which made debugging very easy (you could see exactly where the program went, and it highlighted exactly where it errored out).

      Unfortunately I don't remember the text book title we used, although as I recall our comp. sci. teacher said there were a number to choose from at the time.

    4. Re:pascal by bramez · · Score: 1

      Totally agree. Pascal is *the* language to learn programming.

    5. 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.

    6. 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."

    7. Re:Pascal by Anonymous Coward · · Score: 0

      Dude, that's the same thing as BASIC

    8. Re:pascal by mandolin · · Score: 1
      It you're going to go pascal, you might take another step and try Ada -- it's pretty much an industrial-strength pascal, and there's a GNU compiler for it (gnat).

      Just ignore all the additional syntactic sugar (generics, threading model, oo crap) until you feel you need it.

      Oh and get a good book for it too. The RM is complete, but ... a bit obtuse.

  75. 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.

    1. Re:Good choices, bad choices by higginsm2000 · · Score: 1

      Functional, imperative, and probably even object oriented languages in general will be nearly impossible on a conceptual level.

      Did you really mean to include imperative here? I think that QuickBasic is probably imperative, like C, Pascal etc.

      Maybe you meant the logical languages (Prolog)?

    2. Re:Good choices, bad choices by LowneWulf · · Score: 1

      Yes, that's what I meant; by imperative languages I meant languages like Prolog and Make. Rule-based, logic programming, whatever you want to call it. The commonality of these languages is that you state what you want rather than how to get it. Oh wait, do I mean 'intentional' instead of 'imperative'... well whatever. Prolog rocks, but maybe not for Mommy.

    3. Re:Good choices, bad choices by TuringTest · · Score: 1

      The word you was looking for is "declarative": in Prolog and Make you state rules on how to transform your original data into a solution; the order in which those rules are combined is up to the language and not known by the programmer.

      On the other hand, an "imperative" language is a sequence of commands to the machine; it can be interactive/interpreted like Python, Basic, Perl, or compiled, like C, Ada, Pascal.

      --
      Singularity: a belief in the "God" idea with the "demiurge" relation inverted.
  76. 4GL by azatht · · Score: 0

    I think a fouth generation language is preferable for your mom to start with. install a sql-server and give her access (terminal or phpmyadmin for example), and teach her SELECT, INSERT etc....

    It's also useful for her later on, using it for store info about her cash etc.

    --
    ------- In the end there are no begining
  77. Re:Or Python by Anonymous Coward · · Score: 1, Interesting

    I did a lot of my early programming in QBasic, (though I started with gwbasic), it is a good language for beginners. But Python is also good:

    for i in range(1, 10000):
    print i

    range() is a wart in the language, but the basics of the language are on the whole very nice. Python is a complicated language, but the basics for functional programming are quite simple; the complication can be ignored.

    BTW, what the heck is up with <ECODE> stripping whitespace?

  78. PHP, MySQL, HTML and CSS by jb.hl.com · · Score: 1

    PHP has C-like syntax, making it easy to move onto C when she has some confidence. If you couple it with MySQL, HTML and CSS, and then get her some web hosting, she has something to show her friends for her troubles.

    Happy teaching :)

    --
    By summer it was all gone...now shesmovedon. --
  79. 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.

    1. Re:Is she cute? by Anonymous Coward · · Score: 0

      I thought the whole american pie series was over. It's time to let the MILF term rest in piece.

    2. Re:Is she cute? by Emil+S+Hansen · · Score: 0, Troll

      Try to take a look at this and you will get the point.

      Warning, only click if you are over 18 and yada yada yada.

      --
      Will work for bandwidth!
    3. Re:Is she cute? by TheTomcat · · Score: 1, Insightful

      Why bother learning to play a musical instrument? I mean, there are tons of people who already do that, and PLENTY of old music.

      S

    4. Re:Is she cute? by ramlax · · Score: 1

      > 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.

      What you are talking about is requirements, the essence of the world of contracting/consulting. If you sit down and write down a list of requirements and then start designing a little, the mechanisms you need to implement it start floating to the surface.

      For instance, a program you might write for home use is an application that tracks all your online accounts at financial institutions. (I know this service exists at many places).

      Requirement 1 - Be able to view the balance and last 5 transactions at every account that has online access.

      Requirement 2 - Be able to click a button and automatically go to the account on line and not have to log in (pay a bill, make a transfer).

      Requirement 3 - Download the account history into a local history.

      Before you know it you just wrote Quicken.

  80. HTML or BASIC by Nykon · · Score: 1

    I'd say HTML is great, much like VB you can see the immediate result of a code change and how it looks. It is a great way to learn basic "programming" but is easier to understand the concepts and action/reaction changes for those who do not think in the same way many native computer users do.

    If she wants to start learning an easy application type language I'd say start her the way many of us old school programmers learned, BASIC. I mean hell that's what the language was designed for in the first place :)

    --
    "It's better to be a pirate then join the Navy"
  81. Start her off on Linux... by Anonymous Coward · · Score: 0

    With gcc and a good text editor. Doesn't everone agree?

  82. 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

    1. Re:Core Wars by jcuervo · · Score: 1
      I wonder if many people have used icws94 as a first language?
      I used redcode for corewars.
      (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.)
      It is fun. :-)

      --
      Assume I was drunk when I posted this.
    2. Re:Core Wars by HeghmoH · · Score: 1

      Ahh, Core Wars. I had lots of fun with that when I was younger. It was the first assembly-like language I was exposed to, although not the first computer language. I never was very good at it, my best program got about halfway up the beginner hill, but it sure was fun to play with.

      --
      Mod down posts with a "Free Mac Mini/iPod" sig, they're spam!
    3. Re:Core Wars by StormReaver · · Score: 1

      whichever program has more threads running at the end of a time limit wins.

      10 spawn thread
      20 goto 10

      Woohoo! I win!

    4. Re:Core Wars by Anonymous Coward · · Score: 1, Interesting

      Wow...why was this modded funny? Corewars WAS my first programming language, and it is great fun. It also teaches you some important ideas like OPTIMIZATION that seem to be lost on many programmers today. You have no idea how great it is to see your little creation DAT bomb something...

    5. Re:Core Wars by j1m+5n0w · · Score: 1
      10 spawn thread 20 goto 10 Woohoo! I win!

      That's a reasonable strategy until the other program overwrites your tight loop with an illegal instruction (like DAT) and all your threads die when they execute it. There's no memory protection in core wars, that's what makes it interesting. Its often necessary for your program to make copies of itself in memory as well as fork additional execution contexts. Also, your threads run slower than your opponents if you have more of them running. (At least, this is my basic understanding of the game. I never really spent enough time to fully understand it.)

      -jim

    6. Re:Core Wars by Anonymous Coward · · Score: 0
      It is fun and its the first programming that I learned, but I'm not sure I'd recommend starting there. There were several things that I only figured out through plain bloody minded determination (such as relative addressing where the stack is also your code section).

      Its stood me in good stead since then but it would turn most people off programming for good.

  83. 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.

    1. Re:QBasic. Yes, QBasic. by Anonymous Coward · · Score: 0

      If we start with declaring variables and go structural, why not some flavor of Pascal?
      The syntax as easy as Basic, but as powerful as C...

  84. A couple options by mrAgreeable · · Score: 1

    There was this book mentioned on slashdot a while back. It seems like a sensible approach.

    Or perhaps something like Mindrover.

    I wouldn't be too worried about giving her something too childish, though. Most people have an immediate reaction when they're introduced to programming - for whatever reason some people's minds are well-suited to it, and it just seems like a natual and obvious way to talk to a computer. Others consider it boring and tedious. It's definitely not a matter of being smarter or anything, certainly some of the most brilliant people I know positively hate computers.

    Anyways, I would think you'd be find with any of the "classic" beginner languages. And Logo's sort of fun, even for an adult.

  85. 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

  86. I'd vote for perl by dogfart · · Score: 1

    Free, available, flexible, and it is easy to write simple programs. In terms of ease of use I'd say it ranks with the old versions of Basic, but has the advantage of being more powerful

    --

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

  87. You have to start from the basics by miike · · Score: 1

    There is a good reason why algorithm- and programming theory is the first CS class at most schools/univerities. You have to learn how the computer "thinks" before you can do anything more complicated than "Hello World". I would say this is especially true for people who hasn't grown up with computers (pre-windows) and learnt that the stupid box doesn't do anything but what you tell it to do.

  88. Scheme, MzScheme, and MrEd by frovingslosh · · Score: 0, Flamebait
    Forgive the frankness of my choice of words, but Scheme, MzScheme, and MrEd, what crap! 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. C or even Basic would be better choices. I would stay away from the visual versions of these and simply start on simple command line versions at first, but Visual Basic or even Visual C is another option if you want to tackel something that will let you get visually interesting results quickly.

    Depending on your mother's background and interests, learing to use tools like spreadsheets might be interesting (particularly since these can also be programmed in a script language as well as just used as the basic tools thay are). And of course she should be introduced to a word processing program if all she has done in that area is e-mail so far.

    Of course, she should be exposed to the rest of the Internet, particularly the web, if all she has done so far is e-mail. She might even want to set up a web page. Show her the interesting tools available, from on-line encyclopedias to using search engines to find old friends.

    --
    I'm an American. I love this country and the freedoms that we used to have.
  89. Maybe not her thing by Phiu-x · · Score: 0

    If all those languages you mentionned didn't do it, then maybe its not her thing and programming is not for her.

    For example : I know people who would love to learn playing guitar but no matter how hard they try, they just can't seem to get it.

    I started with Basic when I was six years old and moved up from there. My say is : If someone is not interrested enough to put the effort to actually learn and read and be studborned about it then he/she just give up.

    If she really want to learn and be good at it then she would have not give up to the first chapters of said books. My take on it: Not for her/too lazy/not interrested enough and nobody can do it for her.

    Sad but true.

    --
    This is a stolen sig.
  90. Mindstorms by Anonymous Coward · · Score: 0

    Actually, LEGO Mindstorms are not really that childish. They're a really great educational toy. The bundled software uses a crappy GUI aimed at younger audiences but there are other alternatives. NQC is a nice, simple programming language for the LEGO bots. It's essentially simplified C. I showed my dad the robots, and how they are much more fun to play with using an actual language (and not dragging-and-dropping commands onto a colorful workspace). It's not hard to learn, it takes less than a week to get acquainted with the basic functions... If you've got the $200 for the Mindstorms kit, not only will you introduce your mom to fun, simple programming, but you'll have an awesome toy to play with ;)

  91. the diffrence between old and young /.'ers by syynnapse · · Score: 1

    my mom taught _me_ qbasic when i was younger. unfortunately, qbasic teaches bad habits if you have any plans for going into more advanced programming (although i doubt mom will be), but it definetly is very satisfying when you write working programs as quickly as you can in qbasic.

    --

    System.out.println(syynnapse.getSig());

  92. What is the problem with Squeak and Logo? by Anonymous Coward · · Score: 0

    Everything I've looked at so far seems too complicated ... or too childish (Logo, Squeak, Lego Mindstorms). Is there anything in the middle that is also cheap/free and suitable for adults?

    Squeak is a dialect of Smalltalk which I can't imagine any not taking seriously, and Logo is kin to lisp. Both of them are more than capable of serious programming. There is even a complete computer science curriculum based in Logo. Lego Mindstorms in the form of Ada/Mindstorms is used at the US Air Force Academy to tech programming and robotics, and is no doubt a lot of fun. So, what is the real problem with using them? I'm guessing you are just unfamiliar with them?

    If you can't think of anything better Visual Basic for Applications might be the way to go. It is simple, cheap, useful, and there is a lot of support for it. Of course you shouldn't expect her to take up kernel hacking if you expose her to it.

  93. Why not ColdFusion by mdinowitz · · Score: 1

    It's a very human centered language that looks like HTML is ways so will familiar if she has any HTML experience. There personal server is free for dev use even if the production server costs cash. There's also a very strong and social community around it. http://www.houseoffusion.com is just one such community spot.

    --
    Michael Dinowitz House of Fusion http://www.houseoffusion.com
  94. 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
    1. Re:What does she want to DO? by scrytch · · Score: 1

      I think a better question is "what does she want to accomplish?"

      Quality time with her son. Sincerely, does she really want to program, or does she just want to relate to what the submitter is doing in his career?

      My advice is, if she's asking you questions about what you do, you might do best by showing her some of it.

      Incidentally, my mom does fine with her memory for recipes. It's me that needs the database.

      --
      I've finally had it: until slashdot gets article moderation, I am not coming back.
    2. Re:What does she want to DO? by SuperChuck69 · · Score: 1
      It actually kind of sounds like she's interested in what's going on.

      My poor mother's surrounded by geeks (my father's been writing code since grad school and I didn't follow far behind), but she has no interest in computers at all. She has no idea what we do and probably never will. If she were interested in it, my father could teach her anything she wants to know. But, she really has no interest.

      If mom was just interested in her progeny's work, a demo usually does the trick. Five minutes of "see, and if I click here, Elmo says 'That Feels Funny'" usually does it for mothers, girlfriends, or software executives. Curiosity about how it WORKS is usually pretty genuine...

      --
      :wq
    3. Re:What does she want to DO? by aisaac · · Score: 1

      SuperChuck69 (702300) on Monday May 31, @05:09PM (#9298439) writes
      > I think a better question is "what does she want to accomplish?"

      Or, "what might she enjoy?" If Mom enjoys drawing, consider whether PostScript might be fun for her. It is very simple to get started, provides immediate visual feedback (using GSView), and the language will take her as far in programming as she wants to go.

  95. 2 steps by GeekyGurkha · · Score: 1

    1) get her hooked on WarcraftIII
    2) Show her the map editor

    My mum has issues finding the 'on' button (no seriously)

    --
    Hey! What pretty widgets?
    1. Re:2 steps by MrRTFM · · Score: 1

      I got my wife interested in computers by showing her the basics of mapediting.

      It's great, but for a complete beginner it can be tough learning curve (luckily she can RTFM :)
      We play Stronghold a fair bit see who can make the get the highest score on each others maps.

      Some say it's a bit nerdy, but hey, so are we.

      --
      You can't expect to wield supreme executive power, just because some watery tart threw a sword at you
  96. 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
  97. More than solitaire and programming by waynegoode · · Score: 1
    More than solitaire and programming

    There are a lot of things more fulfilling than solitaire and less complicated than programming. I suggest she try something else. Options:

    • Computer games such as SimCity. I'd skip FPS and MMORPG.
    • Simple online games such as chess, checkers, board games, etc.
    • Reading and posting to BB sites on a topic of interest to her.
    • HTML to make a web site
    • Spreadsheets. This has some of the ideas of programming, but broken down into easy pieces. Plus, it is useful.
    • General computer training courses or books.
    • Project Gutenberg distributed proofreaders.

    If you want to teach programming to someone who is just going to do it for fun, I would suggest VBA. It's simple and some programs will write macros for you for example code. Also, by interacting with applications, a little code can go a long way.

    Then, if she's still interested, try a real language, maybe C.

    1. Re:More than solitaire and programming by UnrepentantHarlequin · · Score: 1

      Let's assume that the original person asking the question is about 21-ish and his mother was 21-ish when he was born. That would put her in my general age bracket.

      Computer games such as SimCity. I'd skip FPS and MMORPG.

      In one MMORPG that I've been playing for about five years, I not only know many women around my age (some of them "stealthed" on male avatars) but several who are considerably older ... in fact, quite possibly old enough to be the grandmother of the person in question. At least one of the ones I know does in fact have grandchildren who also play the game. I just sold my DAoC account because RVR on my server went to hell, that was basically all I played for, and I didn't have time to level up a new char on a better server. And why skip FPS? Ok, some go a little overboard on the complexity (I don't want every gun in the world, I just want the BADDEST gun in the world) but in general they're one of the simplest genres of games for a newbie to pick up. "If it moves, shoot it. If it doesn't move, shoot it anyway to make sure it won't ever move" is a pretty straightforward concept.

      Oh, right, women don't like violent games ... to which I say "Ram it. Sideways."

      Simple online games such as chess, checkers, board games, etc.

      If you're directing someone to online games, PopCap would be a much better option. Let's not go into just how much of my time that bloody word tile game has eaten ... it's one of the few games I like that lacks a PK feature.

      Reading and posting to BB sites on a topic of interest to her.

      You're acting like this person is a feebleminded child who needs to be led by the hand around the Web. The question was not what kinds of things would a middle-aged woman (who is apparently, by stereotypical definition, soft, weak, and feebleminded) enjoy. The question was, in fact, "She expressed an interest in learning what I was doing ... Is there anything in the middle that is also cheap/free and suitable for adults?"

      Learning programming is not the same as "Project Gutenberg distributed proofreaders" and I can't imagine what would be going through the mind of a person who listed that as an answer to that question.

      By the way, Lego Mindstorms very well might be a good solution. Its capabilities are FAR from childish, especially when you go beyond the simple connect-the-blocks system (which is a great introduction to the basic concepts of programming) to one of the many other options available. I own a Mindstorms set myself, and that thing is just FUN! Though I still haven't gotten my automated sock picker upper working ... having problems with the sock sensor.

  98. 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.
    1. Re:what about Actionscript? by Anonymous Coward · · Score: 0

      Yeah, actionscript is enough to understand the fundamentals and it is VERY forgiving for a beginner. Plus it's really easy to make things that are animated and niffies early on!

  99. Demand by saned · · Score: 1

    She will only learn if she needs to do something with computers. You learn by demand; you could teach somebody computing for weeks, but if this person doesn't *need* it, s/he just won't learn.

    My mom couldn't use a computer for years, but until she needed it to comunicate with her sons living out of town, then she started learning. Now she can use linux to irc, email and video conference with us. She didn't install the software, just uses it.
    In my mind, this is quite an accomplishment for her!

    --
    signal_connect(0, "test_top.dut.my_sig", "clk");
    1. Re:Demand by ninthwave · · Score: 1

      Hmm there is a need to learn for knowledge's sake. Some people have a curiousity and a drive to learn things. Some spend their lives raising families and not realising that need, maybe now that her offspring are old enough to teach her the subject in this case is feeling the need to know. I find this one of the most uniquely human and helpful traits our species, the need to know.

      --
      I was thinking of the immortal words of Socrates, who said: "I drank what?" - Chris Knight (Val Kilmer)- Real Genius
  100. Get an HP-11C by Anonymous Coward · · Score: 0

    It is a calculator by HP that has a program stack, goto, and other basics. I was able to
    teach my granfather "basic" programming with
    this... the higher level langauges (BASIc, etc.)
    don't seem to have the effect that somehing
    like coding in fn(x) = X+1 does. By understanding the stack, and hte operations, and RPN (reverse polish notation) it is nice model.

    Also, have your mother read CODE by Charles Petzold.

  101. Mom's Interests by roxbox · · Score: 1


    How about pointing your mom to some of the great Web development tutorials out there and letting her decide what she's interested in. For starters, WebMonkey is great and has easy step-by-steps. If she wants to dig deeper point her to O'Reilly.

    As a side comment, if your mom said she is interested in learning about programming, why are half the posters here saying she should learn HTML and moderating these suggestions as "5 - Insightful?" Why don't we just relegate moms to the kitchen and forget they have brains.

  102. Logo. by ivern76 · · Score: 1

    Logo is nowhere near childish...you can do some really complex work with it. Gentle but deep learning curve, and a cute turtle. It's great for kids and computerphobic adults. It still has one of the most intuitive implementations of recursion I've seen.

    1. Re:Logo. by NortWind · · Score: 1

      I agree. Start with Logo, and when she feels comfy with that, then bring Scheme out. Logo will indtroduce the basic concepts with immediate feedback (by turtle graphics) so you can learn easily. Scheme extends thse ideas into a really powerful system.

      Do not expose her to any form of mind corrupting Basic!

  103. The fear... by Anonymous Coward · · Score: 0

    ...arises from fear of computing not programming. Your mom should probably become familiar with Windows first. For example, she should be able to use explorer, change settings in control panel, etc. to get what she wants. The important thing to learn is the intuition of computing. Many of us know that if we want to change some setting we need to look for 'options' or 'preferences' in one of the menus or if we want to defrag the drive we can go to Programs -> Accessories -> System Tools etc.

    Once a person gets the intuition to be able to explore him- or herself the different settings and menus in windows they begin to lose the fear they have. From there programming is a simply Sams' 24 hours or 21 days or 10 minutes or whatever book away.

  104. Possibly not EXACTLY what you're looking for... by Dark+Nexus · · Score: 1

    But as for a language, try Turing. It's a little old, a little underpowered, but it's entire purpose as far as I've been able to tell was as a learning language. The syntax is closer to actual english than most languages, and it's fairly forgiving in that it's error messages are fairly understandable.

    It's basically a higher level of Pascal, so it's not completely underpowered either.

    --
    Dark Nexus
    "Sanity is calming, but madness is more interesting."
    1. Re:Possibly not EXACTLY what you're looking for... by MacDaffy · · Score: 1
      It's basically a higher level of Pascal, so it's not completely underpowered either.
      I downloaded Turbo Pascal 5.5 just for the purpose of teaching someone the language. It is not underpowered. There is very little that can't be done with it. It's certainly as robust as C.
    2. Re:Possibly not EXACTLY what you're looking for... by Dark+Nexus · · Score: 1

      Well, Turing is NOT Pascal. Its syntax is based on Pascal, it uses a modified Pascal compiler, but it's NOT Pascal.

      What it comes down to is that the Turing syntax isn't really meant for complex usage. To make the language easier to learn, and more like english, they focused on the more basic useage. Technically, it's still there, it's just a lot easier to do complex tasks in Pascal than in Turing.

      --
      Dark Nexus
      "Sanity is calming, but madness is more interesting."
  105. No bad habits by Anonymous Coward · · Score: 0

    Unless you frequently use GOTO statements, which are usually present in other languages and always discouraged.

  106. some programming came by Anonymous Coward · · Score: 0

    why don't you look for some kind of game that requires players to programm?
    Colobot would be one example, but unfortunatelly it might not be suitable for mothers (you know, all this 3D and stuff)

  107. 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

  108. If you really want an interesting experience: by cosmo7 · · Score: 1

    How about Intercal?

    INTERCAL's main advantage over other programming languages is its strict simplicity. It has few capabilities, and thus there are few restrictions to be kept in mind. Since it is an exceedingly easy language to learn, one might expect it would be a good language for initiating novice programmers. Perhaps surprising then is the fact that it would be more likely to initiate a novice into a search for another line of work. As it turns out, INTERCAL is more useful (which isn't saying much) as a challenge to professional programmers.

  109. Next question will be... by AchilleTalon · · Score: 1
    Dear son what the fuck are you doing with programming? And before you realize it, you will start explaining Linux or anything else.

    So, maybe the question is just: What is so important in these computers you cannot left them a minute to call me?

    --
    Achille Talon
    Hop!
  110. 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
    2. Re:What do you mean, Python's too complicated? by Anonymous Coward · · Score: 0

      Doesn't "build up a set of simple tools and skills one step at a time" imply exactly what you were arguing against?

    3. Re:What do you mean, Python's too complicated? by robbo · · Score: 1

      By simple skills I mean concrete skills that are meaningful and accessible to the student. You don't need to learn quantum mechanics first to grok newtonian mechanics. In fact it's usually preferable to grasp the more concrete concept first. Similarly, starting with assembly language, or a bare-bones language like scheme is a sure-fire way to lose the student's interest. A simple class with get- and set- methods that encapsulates something meaningful is going to get a lot more mileage in the early going than two weeks of lambda calculus.

      --
      So long, and thanks for all the Phish
    4. Re:What do you mean, Python's too complicated? by Olin+06 · · Score: 1

      As a relative neophyte to programming, i ended up starting with python, and recommend it whole heartedly. All it takes is the right resource to work from and a little guidance on excersizes that will increase skill. I would suggest downloading "How to Think Like a Computer Scientist", http://www.ibiblio.org/obp/thinkCSpy/ (also available in book format). To suppliment the book, which does suggest activities, Allen Downey has created a set of additionally helpful "labs" (http://rocky.olin.edu/sd/) which are educational, while encouraging the timid with frequent milestones.

    5. Re:What do you mean, Python's too complicated? by rjh · · Score: 1
      Accusing the student as just being lazy or stupid is not the mark of a good teacher.
      On the contrary; it's often the mark of an excellent teacher. A teacher who, based on evidence, comes to the conclusion "Johnny just doesn't want to work" or "Jane doesn't understand this material" has made some very useful observations. The next questions then become, why doesn't Johnny want to work? and how much remedial education does Jane need?

      Saying that we can't say people are unmotivated or uneducated, on the basis that it's the mark of a bad teacher, is political correctness of the first order.

      How certain is the original poster that his mother wants to learn to program? Is it possible his mother doesn't really want to learn to program, but rather wants to understand something about why computers are so important in her child's life? If so, that would explain a lot about why she's having difficulties; because he's trying to teach her something technical, and what she's looking for is to learn a social reason.

      How certain is the original poster that his mother has the education necessary to learn programming? I entirely agree that "the last time the average adult engaged the 'basic mathematics' [I'm] talking about would be 30 some-odd years ago". But if that's the case, then the original poster needs to worry about the fundamentals first before trying to teach his mother something built on top of those fundamentals.
      The key is to keep it interesting, not get bogged down in constructs and concepts (like lambda-calculus)
      Quite true. Which is why an introduction to lambda can wait until later. You only need lambda calculus when you start talking about functions as first-class data. It's not even a necessary keyword for creating functions.
    6. Re:What do you mean, Python's too complicated? by Anonymous Coward · · Score: 0

      Point 2: You don't need to already understand mathematical functions to program. I learned about functions from programming, well before I was in a math course which covered them.

      When you're trying to teach someone to code, there are a lot of new elements all at once; it's certainly possible, but it's not always particularily easy.... no matter how much will she has or how effective and knowledgeable of a communicator you are.

  111. Right here, baby. by Anonymous Coward · · Score: 0

    http://www.apple.com/applescript/

  112. C, still the best starting place by Sowelu · · Score: 1

    "Hello World" in C or Java isn't all that bad to do... You can have a program in just a few lines, and it doesn't teach (too) bad programming practices. Find a good, easy-to-use (i.e. not vi) text editor, set up a batch file or script to compile and run in a single command, and walk through the basics. When I teach people to program, I teach them in C.

    1. Re:C, still the best starting place by cerberusti · · Score: 1

      I totally agree. C has a simple syntax, is quite powerful, and is used as a basis for more languages than any other. It also teaches a lot about how the computer actually operates, which is useful when using any language. I teach people C as well.

      --
      I'm a signature virus. Please copy me to your signature so I can replicate.
  113. 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.
    1. Re:My Suggestions by Bozdune · · Score: 1

      Hmmm, I guess I'd like to hear "all the reasons [you] think VB is a scourge on the Earth."

      How about itemizing a few, to expose your ignorance? Let me help.

      1) Incredible productivity.
      2) The entire Windows API is available, plus callbacks, to do anything you want, including subclassing and hooking.
      3) Compiles to very fast code.
      4) Has very few legitimate bugs in the core controls and system, and those are easily worked around.
      5) Provides a simple interface to DLL's, where you are free to stuff code that really has to manipulate memory or do other low level stuff that VB isn't good at.

      I do admit it can't handle objects very well (ok, at all). But objects only help in a relatively small proportion of programming projects. The rest of the time they are useless quiche anyway.

      I've made tons of money shipping commercial code based on VB. Tons. And I wouldn't even have shipped if I hadn't had the productivity multiple it provides.

      So I'll put my pile of money against your visceral disgust any day.

    2. Re:My Suggestions by DylanQuixote · · Score: 1

      perl uses curlies for hash subscripts. @* is not a variable. While @* is a valid variable, I've never seen it used. Valid, yet cryptic perl could be : ($thing{'bob'}, @*) = @_; Or @*{'foo','bar','baz'} = $* =~ m{(?:[a-z])(\w+)(\d)(\d)}im;

    3. Re:My Suggestions by Jeff+DeMaagd · · Score: 1

      Does it have to be a "modern" language, as in one still in broad use?

      Pascal seems to do about 99% of what C does, well, it doesn't have the +=, -= and similar operators, but that's a negative for programming newbies, IMO. It does it in a very similar structure as well, minus all the cryptic symbology that is hard on a newbie's eyes, instead it often uses words or the very basic arithmetic symbols.

    4. Re:My Suggestions by iabervon · · Score: 1

      About your Scheme/Lisp item, I'd actually agree that it isn't a terribly good choice, but I think you're wrong about everything else. Algebra is a functional language; there are no side effects, and each variable has a single value outside of a function or within the evaluation of a function. On the other hand, all of the usual Lisp dialects, including Scheme, are not functional (because they have set!/setq). If you wanted to make things easy to understand, you'd use a purely functional subset of Scheme, which gives a much simpler description of how things work than anything else with functions.

      On the other hand, Lisp syntax is very difficult to follow, because everything looks the same. While it is beautiful in its purity, it is completely lacking in any cues which would enable a novice to keep track of what's going on. Also, it uses prefix notation for expressions, which people have a hard time following.

      In any case, the most important thing is really a good editor mode, which will enable you (or her) to have the computer keep track of the syntax and report it with indentation and highlighting.

    5. Re:My Suggestions by divbyzero · · Score: 1

      It's impressive how you can make so many mistakes in a single post. Scheme and Lisp are not functional languages and can well be programmed in an imperative or procedural style. QBasic, as distinct from Basic, makes little to no use of the GOTO construct, and is quite similar to Pascal in its use of functions and procedures. (Pascal, since it's not on your list, is in turn quite similar to C, but is much more often used as a teaching language.) While there may be other reasons to avoid PHP, its use is certainly not limited to web services, and it can run in a standalone interpreter just like your top choice, Python.

      --
      But my grandest creation, as history will tell,
      Was Firefrorefiddle, the Fiend of the Fell.
    6. Re:My Suggestions by MBCook · · Score: 1

      I was trying to think of the language that was DESIGNED for teaching when I was writing my post, and Pascal is probably what I was thinking of. It doesn't matter though because I know basically nothing about Pascal so I can't recomend it (or avoiding it).

      --
      Comment forecast: Bits of genius surrounded by a sea of mediocrity.
    7. Re:My Suggestions by MBCook · · Score: 1
      I know there is imperative stuff in Scheme and Lisp, but in my Lisp expiriance (not much) it was very confusing. I had a TERRIBLE time with Lisp's syntax. It's amazing how easy it is to do some things in Lisp, so some things were so hard to do and you had to jump through so many hoops to do, it just doesn't seem like something to teach someone programming unless the poster really knew what they were doing in it. If I was looking for a language to teach my mom, I wouldn't pick Lisp, because I have such a terrible time with it.

      I think something with a simple algebra like syntax would be better. Considder:

      x = 50
      x = x / 10
      print "X is: ", x

      Like you see in Python would be much easier for someone new to programming to pick up than Lisp. Just my opinion.

      --
      Comment forecast: Bits of genius surrounded by a sea of mediocrity.
    8. Re:My Suggestions by Dwonis · · Score: 1
      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.

      If you're going to teach BASIC, teach GOTO! Seriously. Teach old-style line-numbered BASIC; preferrably on a system that *requires* this style. Then, teach something more structured.

      Because old-style BASIC is so close to assembly language in its structure, it does the larger job of teaching people how the computer actually works.

      There is nothing evil about goto. Some people who teach programming are just impatient, and like to fool themselves into believing that most above-average people can become good programmers in 5 years. When they see inexperienced programmers' hairy code, they tend to think something's wrong, rather than just accepting the inexperience and moving on.

    9. Re:My Suggestions by iabervon · · Score: 1

      Like I said, it's the fully-parenthesized completely-uniform prefix syntax which confuses people.

      It's actually easier for people to learn if the language actually is like algebra and purely functional. In algebra, if you see "x = x / 10", you then say "9 * x / 10 = 0" and "x = 0", and it doesn't make sense to have two definitions of x. This allows you to use the substitution theory of evaluation, where, if "x = 50", you can replace all of the occurences of x with 50. In your example, this would lead to:

      50 = 50 / 10
      print "X is: ", 50

      There's actually a major conceptual leap to allow "x" to change, which has to mean that "x" is really not "50", but a slot which initially contains "50". Of course, programmers forget that this leap is required, having made it ages ago. But for someone who hasn't seen it before, it's a big source of confusion.

  114. 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
  115. Lego Mindstorms!!! by Psymunn · · Score: 0

    correct spelling and grammer eh?
    'cause all the L337 b4d455 c0D3rZ out there can spell...
    the only thing that html teaches you that could help with actual programming is how to make simple code look like crap
    frankly, lego mindstorms is a simple and effective programming language that can allow you to do cool shit (like make lego attack your cat) and it even supports conditoinals, looping, etc. AND IT'S LEGO!!!
    My personal recomendation, fro someone wanting to try programming but has no aspperations of using it is get them to try get them to write some obfuscated Perl. They'll think you are really smart and never bug you again...

    --
    The Neo-Bohemian Techno-Socialist
  116. 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.

  117. Macromedia Director *Don't Laugh!* by ihouzi · · Score: 1

    No... I know, it' very proprietary, and it costs a bundle. But LINGO is actually quite interesting because:

    - you can see immediate, visual results
    - you can see changes in the memory (stored in the cast)
    - you can step through and debug stuff
    - you can send your 'creations' to other people

    I dunno.. it helped me get into 'the programming mindset'... Hell, it even helped me learn enough about Object Oriented programming that I was able to clep a class on OO design!

  118. Common Mistake by Anonymous Coward · · Score: 0

    Common mistake everyone makes is to jump into the "language of choice" and never learn anything.

    What I would recommend is to learn the basics first - independent of any language's syntax - imagine how hard would be to learn any language if you dont know how to speak...?

    "Introduction to programming logic and design" - Ferrel

    The book teaches the concepts first - concepts that are universally aplicable - once she understands the concepts she'll pick up her own language of preference..

    Just my cent...

    1. Re:Common Mistake by kwikrick · · Score: 0
      No! If you want to discourage people to learn programming, give them a theoretical book!

      To continuou your natural language analogue; children don't learn how to speak from a book. At first they just scream, then start to imitate, and by the time they get to the theory, they are already fluent speakers.

      I learnt programming as a kid (in Basic), by trial and error. My dad showed me how to start the GWBasic interpretor, explained the FOR, PRINT and RUN command, and gave me a reference manual. From there I went to C, C++, Java, etc. Now, I have a Master's in computer science, and during my training I went through all the theory, and indeed I learnt many new things, but I also noticed that those who learn programming as kids write much cleaner and more elegant code than those who had to learn the basics from a book. The latter know the theory well enough, but they don't have the fluency. They haven't made all the mistakes I did as a kid. I suppose they'll improve with time. But the most profound difference is that they don't enjoy programming as much as I do.

      Moral: Let them mess about on their own. Give them just enough not to get discouraged. No big books!

      Hmm, this turned out a bit of a rant.

      Rick.

      --
      assignment != equality != identity
  119. Give REBOL a try... by Anonymous Coward · · Score: 0

    REBOL, by REBOL Technologies.
    It's really simple to use/learn, the programs are almost written in English, and beware... it's an addictive language.

    Some may say "but it's not free sowftware, it's not GPL, yadayadayada".
    Who cares? That's a good start to learn programming. You may choose any programming language you want after that.

  120. Doesn't anyone teach using Pascal any more? by Xerp · · Score: 1

    Ok, so the first programming I did was TI-Extended Basic but then I was only 8. After I moved into double figures I learnt "proper" programming using Pascal.

    You can get Pascal for virtually any OS from the freepascal site.

    Pascal in my eyes is a "learning language", and thats what you need, isn't it?

    1. Re:Doesn't anyone teach using Pascal any more? by pjt33 · · Score: 1

      Not many people do. It's mainly Java or C nowadays.

  121. Re:No no no! by miu · · Score: 1
    You will quickly see that most people are not capable of programming (or at least not learning it on their own), and should just not attempt it.

    Uhm. I'm not even sure what to say to that. I've met (and worked with, and maintained code written by) some incredibly stupid people that have learned to program. It takes a certain type of person to enjoy it and be good at it, but most any person of average intelligence with basic math and logic skills could learn a programming language if they were motivated.

    --

    [Set Cain on fire and steal his lute.]
  122. 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 frovingslosh · · Score: 0, Troll
      created Scheme because they needed a clean and simple programming language with which to teach undergraduates

      Those who can, do. Those who can't, teach. This seems to apply just as well to people and teachers as to real languages and teaching languages. There is simply no point in teaching a language that will never be really used. And certainly no point in creating yet another teaching language because no one is using any of the other ones that have been created. Even Pascal was useless until Borland extended it so much that it hardly resembles the original p-system versions. The basic concepts of programming stay the same; one might as well focus their effort on a language that will really be used like C or even Basic rather than so called teaching languages that represent one or two people's do it my way religious views on programming. Of couse, I would stay away from object oriented languages like C++ for a beginner. But there is simply no good reason to have anyone learn a useless language and then learn C rather than just learn a simple language like C directly.

      --
      I'm an American. I love this country and the freedoms that we used to have.
    2. 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.
  123. Re:Real Basic? Or some stack-based interpreted lan by silentbozo · · Score: 1

    Correction. Realbasic is apparently offering a linux version of their software as well, although they're a bit skimpier with their demo time (10 days, vs. Runtime's 30 days.) Both sell licenses for about $150-$160 for individual users...

  124. Why hasn't thinkcs been mentioned yet? by Anonymous Coward · · Score: 1, Interesting

    http://www.ibiblio.org/obp/thinkCS/

    Invaluable

  125. Just tell the bitch by Anonymous Coward · · Score: 0

    to RTFM

    =D

  126. 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?

  127. Try This... Online Course by Anonymous Coward · · Score: 0

    Introductory programming class for non-computer science students at Georgia Tech: All the lecture notes are online and they use Jython (Java Python). It teaches programming in a "fun" way, manipulating images:

    http://coweb.cc.gatech.edu/cs1315

  128. 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!?
  129. Excel, Word, Macros, VBA by null+etc. · · Score: 1

    Teach her something useful, like macros in Excel or Word. Or, if you're really enterprising, teach her how to make a simple application in Visual Basic for Applications, which comes integrated with any recent Microsoft Office release.

  130. 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.

  131. (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
  132. How about RoboCode? by AndroidCat · · Score: 1

    RoboCode involves much the same in Java with the added fun of a game. Okay, so the turtles have guns... ;)

    --
    One line blog. I hear that they're called Twitters now.
    1. Re:How about RoboCode? by dfries · · Score: 1
      That was my first suggestion when I saw it. I thought it was pretty cool and I showed it to one of my cousins that is in middle school, or was it elementary at the time?

      For some first steps it is pretty darn easy, you can get buy without even using variables to start with and run a hard coded loop. The event based system allows it to fire when another robot shows up in it's radar. Definately a first suggestion for anyone starting with computers.

    2. 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.
  133. Get the Learning Perl book (Llama) by Wheelie_boy · · Score: 1

    I found Learning Perl to be one of the easiest programming books I've ever read. Highly recommended, and she can progress from there or not, as she likes. It's one of those rare books that's entertaining , fairly easy to master, and yet leaves you capable of doing something useful.

  134. 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
    1. Re:Well maybe you should ask her... by HiThere · · Score: 1

      For that matter, why do you think Squeak is too childish? Squeak is a full-blown Smalltalk system. The problem might be that you can't take full advantage of it unless you are also competent in C. OTOH, you can get a very long way without needing that.

      I've looked at Squeak for several projects, but the thing that's always made me reject it is that it's difficult to lock down a GUI, without also locking out the designer. The philosophy seems to be that everyone should be a designer. (And THIS, to my mind, is why you might not think it a good choice.)

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
  135. I have not seen anyone say Turing by da_foz · · Score: 1

    There is a reason many high schools in my area start people out with Turing. It starts out fairly easy, yet introduces you to all of the concepts you will need. From there, moving into VB or Java (or many others) is just learning syntax.

    However, I would only go with this if she is actually interested. Otherwise, HTML is probably best.

  136. This article... by Anonymous Coward · · Score: 0

    Most. Ac's. ever.

  137. Right, I see... by rjh · · Score: 1

    ... therefore, nobody should've ever taught you anything about programming, since most people aren't capable of programming and shouldn't attempt it.

    What you're talking about is morally bankrupt. It says "some people are worthy of education, but the majority aren't, and they shouldn't be educated in order to reduce the inconvenience to those of us who are worthy".

    Anyone who wants to learn should be given the opportunity to learn. Period. Anything less is intellectual fascism, and that is something I will have absolutely nothing of.

  138. 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

  139. 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
  140. 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???

  141. 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)

  142. mIRC script. by mt+v2.7 · · Score: 1, Informative

    mIRC script is a great primer. It's a very simple scripting language has gotten alot of my friends started. It's also based on C++, which makes it a VERY good C++ primer.

  143. Assembly by Anonymous Coward · · Score: 0

    Assembly. And if that's too hard for her, show her Brainfuck.

  144. Introductory programming for adults by sillivalley · · Score: 1

    Unless you're dealing with the rare individual who's interested in learning for learning's sake, you need to be goal or task oriented. (A classroom environment provides its own goal -- passing the class and/or getting a good grade.)

    Before you look at languages, look for a problem they're interested in solving. Can this be broken down into byte (sic) sized pieces? If so, you've got a winner -- and pick a language that allows you to solve that problem without too much pain.

    If they don't have a task/goal in mind, or if their choice may be a little too difficult, step in with smaller problems and/or subsets.

  145. If you have a DOS box handy... by Anonymous Coward · · Score: 0

    ...you should teach ZZT OOP.

  146. 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.
    1. Re:NO! by Anonymous Coward · · Score: 0

      You havent used BASIC in awhile have you?

      BASIC is a perfectly good language to START in. Even the B means beginer. Let me ask you this? Do you still use training wheels when your ride a bike? I hope not. But many people used them at one point to learn.

      Also I am all for her learning the GOTO method. Some people you can tell them the paint is wet, and the listen. But most shmuckos have to go touch it. So let her see WHY functional programming is better....

      While learning bad habits is bad. Learning WHY you do not do something is even better. It doesnt matter *WHAT* language you are using bad code is just bad...

    2. Re:NO! by Anonymous Coward · · Score: 0

      Also I am all for her learning the GOTO method. Some people you can tell them the paint is wet, and the listen. But most shmuckos have to go touch it. So let her see WHY functional programming is better...

      While I quite agree that functional programming is better, your use of it in opposition to GOTO suggests that the term you're looking for is structured programming. Structured programming is C, Pascal, and modern BASIC; functional programming is stuff like Lisp, Haskell, and ML.

  147. Programming not the solution by Anonymous Coward · · Score: 1

    You'r first mistake is assuming that because your mother expressed an interest in what YOU do with your computer, that doesn't mean it's suitable for her. Obviously "mastering Solitaire" shows that she uses the computer as a pastime. People don't "get" programming unless they also "get" the desire to create something. If your mom has nothing she wants to build (in terms of applications) then obviously there's no point in introducing her to programming. She probably would benefit more from other "tools" to use the computer.

  148. GIVE UP!!! by jprupp · · Score: 0

    My recommendation:

    GIVE UP!!!!. Trying to teach your mother how to program a VCR can lead to extreme household violence!!!, imagine just what could happen if you try QBASIC. THIS IS DANGEROUS!.

  149. Assembly by Anonymous Coward · · Score: 0
  150. SQL -- PERL -- C by _aa_ · · Score: 1

    Maybe start with something really simple and common like SQL. SQL is very simple, quick to learn, and very usefull.

    Then move into a web programming language, such as perl. Use the SQL they know to make a simple database interface. This will get the student out of the intimidating console and into the familiar web browser. This will obviously incorporate HTML and eventually lead to CSS, JavaScript, and other client-side languages.

    I personally found that perl5 can be a very good primer for c (or vice versa). Perl5 and c can introduce a student to OOP concepts without intimidating them.

  151. Dude by KrisCowboy · · Score: 1

    PERL. Easy, clean, fun!!! Perl rocks. She should toatally learn PERL.

  152. Don't waste your time unless... by ari_j · · Score: 1

    Unless she's got the mindset, it's too late for her to learn how to program. Programming is an artform and a way of thinking, and unless you spend your whole life thinking like that you will not be able to program other than through excruciating mental anguish to create even the most rudimentary of programs.

    1. Re:Don't waste your time unless... by UnrepentantHarlequin · · Score: 1

      Can I borrow a bucketload of that post of yours to fertilize my garden with?

  153. VBA by YrWrstNtmr · · Score: 1

    What does she like to do? Interests?

    If she has MS Office, VBA would seem to be the place to start. Excel & Word macros. If she has Office Pro, adding some Access development would go far. Maybe a GUI for a home inventory DB or catalog of kids pictures.

    No MS Office? OO.o macros would work just as well. Have her build a spreadsheet app to scale the amount of ingredients in a recipe needed for different servings.

    Programming as a hobby is one thing. Programming as a hobby for something you really like to do is vastly better.

    1. Re:VBA by egriebel · · Score: 1
      I find VBA to be one of the most underappreciated languages even though it is at the core of manipulating the most widely used desktop software in the world.

      Who the hell modded this as a troll??? This guy/gal is absolutely correct, VBA is a great language to use. It's simple to get started with, easy to understand, and one can write complex applications if need be.

      --
      ACHTUNG! Das computermachine ist nicht fuer gefingerpoken und mittengrabben. Ist nicht fuer gewerken bei das dumpkopfen.
    2. Re:VBA by jamie812 · · Score: 1

      I wrote the negatively modded piece about VBA. I am not an employee of Microsoft. It's indicative of the Anti-Microsoft crowd that anything with the Microsoft moniker is instantly thought of as being evil somehow. Professionals in the real world know better. We will use anything at our disposal to achieve our stated objective: Support the business's aims! If Microsoft happens to be the manufacturer that makes this happen, then so be it. Then again, if I was modded down for a different reason, then I hope the person who did it has the guts to come out and tell me why.

  154. Proce55ing is perfect. by teidou · · Score: 1
    You should look at"Processing", even though it is in Alpha.

    It is a simple "programming language", useful for graphics and some math. (The "compiler" creates Java from your sourcecode: see their info page).

    It is also somewhat useful: I had attempted to teach my wife binary several times to no avail. Buyt my first Processing project, a binary demonstrator, made the binary-decimal relationship clear. She can now even read the binary clock she bought for my birthday.


    There are a several demos with source on the website.

    -Teidou

    1. Re:Proce55ing is perfect. by Anonymous Coward · · Score: 0

      Holy crap!

      That is one of the sweetest demos I've seen, nice sense of graphic design, too - some might be fooled by the fact that it doesn't look "designy".

      That one page of code must generate tons of Java code.
      The other demos are amazing, too - I am downloading this puppy, I was dreading learning Java/Swing just to do some fancier graphics that I needed but this might be much better, I can prob. generate the processing code from perl and have it build and run the components.

  155. 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}
    }

  156. 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.

  157. Java and her chequebook by robbo · · Score: 1

    Java's a nice safe, powerful language to start with. The key thing is to keep the programming interesting. Start with a simple bank account class, with deposit and withdrawal methods, and simple input, like from a file or stdin. Then add some inheritance (checking vs savings accounts), and build up a simple personal finance manager. Finally, start adding gui components, first for displaying info, then for data entry, etc.

    Other good examples are recipe databases or CD catalogues. It's got to be something the student will enjoy tinkering with.

    You could take this approach with virtually any language, but java has a nice, clean, idiot-proof syntax, and lots of intense type- and index- checking. No leaks, seg faults, etc. Once a user's mastered some java, they'll have no trouble reading C or C++ or even some shell scripts and grokking what's going on.

    I'd leave scheme and lisp and other languages out of the picture for a while. They have nice features, but it takes a lot more than just casual reading to understand a code snippet (usually a few tylenols and a bottle of scotch). Trying to teach these kinds of languages to someone who just wants casual programming skills is like giving someone who only drives automatic transmission a ferrari to get to the library. It looks pretty, and it seems powerful, but how do I make it go?

    --
    So long, and thanks for all the Phish
    1. Re:Java and her chequebook by jacobm · · Score: 1
      I'd leave scheme and lisp and other languages out of the picture for a while. They have nice features, but it takes a lot more than just casual reading to understand a code snippet

      So
      class Hello {
      public static void main(String [] args) {
      System.out.println("Hello world!");
      }
      }
      is lucid, but
      "Hello world!"
      isn't? Seriously, the whole point of teaching Scheme in intro classes is that Scheme (and particularly DrScheme) is very good at not making people type in mystical invocations they don't understand just to do basic things, and Java is notoriously horrible about that.
      --
      -jacob
    2. Re:Java and her chequebook by robbo · · Score: 1

      Modulo one level of complexity for bootstrapping a class into a running program (public static void main), the rest of a small java program is usually remarkably simple. Once you build up a few small classes you can get a lot of mileage.

      The trouble with scheme is that to get from "Hello world!" to something more functional (pun unintended) can involve a lot of pain. In my opinion, a code snippet with a multitude of brackets that need careful matching is not something you want to throw at a newbie. Scheme is very powerful, but it takes some solid mathematical understanding to really become proficient-- that's not something your average adult student is going to be interested in.

      --
      So long, and thanks for all the Phish
  158. Lua by GodSpiral · · Score: 1

    Lua is spectacularly elegant. A functional language just as powerful as any other, but very simple and readable.
    Also has a powerful alternative to object programming.

    As an introduction to progamming, PDA programming is a good start, because small programs can be useful on these. is a Lua implementation for Palm with a simple and effective integrated UI language that is all thoughtfully designed.

  159. Tcl, hands down by Anonymous Coward · · Score: 0

    I have been using Tcl for several years now, and for some very large complex commercial applications. I've been able to teach it to programmers in minutes. I suspect non-programmers will take a bit more time, but not much.

  160. I'd recommend .NET by Stevyn · · Score: 1

    According to microsoft it's easy, inexpensive, robust, and very stable. Shit, microsoft never lies.

    Seriously though, I'd recommend java. You can do it for free and it's a language that's used. She can start on the console and get comfortable with that and then move on to swing if she wants to get into the gui. If she used the jre, she'll have to use the command line so that'll give her some experience in that.

    You can even ease things up by using ant if she gets thing complicated with a lot of different classes. And the best part is, she she ever moves over to linux, everything will move over with her without recompiling or anything.

    I've taken two computer science courses with java so far and I found it to be relatively easy for the simple stuff. I never used any IDE, just wordpad and ant and I was dealing with apps that consisted of over a dozen classes and using text editors made it easy enough.

  161. Programming for kids by RAMMS+EIN · · Score: 1

    I have a similar challenge:

    My 6 year old brother is very smart and likes computers. He can guide me through a Windows XP install and frequently asks me questions about the programming I do. I think he might be interested in programming as well, and I want to teach him some to see how he likes it.

    The challenges are that he tends to be hyperactive and have a short attention span (I think quite normal for his age), and he doesn't understand any English. I am looking for an environment in which graphics can easily be created (e.g. by dragging and dropping components), and which can also be programmed textually (which rules out things like glade, which generate a rainforest of files which lots of incomprehensible scary looking code). Interpreted/interactive languages prefered.

    I think Python would be a good choice, with some modules to do graphics and GUI - the fun is in color and animation, of course. What other suggestions do you have (besides wait till he's older)?

    --
    Please correct me if I got my facts wrong.
    1. Re:Programming for kids by Beale · · Score: 1

      As new as I am to this lot, I might recommend VB6- if you've got a good copy lying around the place. (I wouldn't go out and buy it, it's far too expensive.) If you think you can get good results with Python, go with it. You'll be much better off teaching something you know, rather than something you've just learned. If you can't find a suitable programming language, have you thought about teaching him Graphics Monkeying instead? (IE Photoshop/Paintshop Pro/the GIMP) Or even 3d modelling/rendering?

    2. Re:Programming for kids by Anonymous Coward · · Score: 0

      I wrote this a while back:
      Introduction to programming

  162. 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.
    1. Re:I just can't take seeing that any more... by Anonymous Coward · · Score: 0

      HTML IS TOO A PROGRAMMING LANGUAGE!

      HTML can be counted as a programming language only if you define ``programming language'' so loosely that the definition becomes useless.

      A better definition of ``programming language'' is a language that can be used to describe an algorithm. That definition is actually useful. Languages like VHDL, MIX assembler, OCaml (I hate OCaml), and shell scripting obviously count as programming languages, but languages explicitly designed for tasks that are not programming (HTML, XML, LaTeX, etc.) do not count.

      At the end of the day, everybody can at least agree that OCaml is the ugliest and worst programming language ever conceived.

    2. Re:I just can't take seeing that any more... by potifar · · Score: 1

      Well, (La-)TeX is Turing complete, I would definitely call it a programming language.

    3. Re:I just can't take seeing that any more... by Anonymous Coward · · Score: 0

      I stand corrected.

  163. Depends On... by Anonymous Coward · · Score: 0
    What you want to do. I find most programmer's coming into college either (1) want to program games or (2) program dynamic webpages and are sorely disappointed when they are instead taught to think like programmers.

    Again, the Little Schemer teaches you to think like a programmer, all examples, it's a let loose and do it yourself type book. Knowning Dan Friedman, one of the authors, I'd highly recommend it.

    If your mom wants to know how to program webpages, teach her HTML, and PHP/Perl/ASP (take your pick). Learning these languages won't teach you how to program though.

    Funny enough, I once heard someone say at a job fair "I know how to program, I can program HTML".

    Keep deluding yourself buddy...

  164. Pseudocode by tabo_peru · · Score: 1

    Or it's executable version: Python

  165. WinBatch by arcdx · · Score: 1

    The first thing I learned to program with in Windows was WinBatch. It's great for learning concepts like variable and loops and such, plus you can easily make fun little scripts to open and close programs, move windows around the screen, or make little applications to do repetitive tasks.

    The basic language costs about a hundred bucks. The compiler is a bit more expensive, but if she's using it on her own she shouldn't really need it.

  166. 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.
  167. The Games Factory! by Anonymous Coward · · Score: 1

    Objedt orientated, event based programming made easy. Its so easy. I used to use this program a lot. You can even make the games playable online with the Vitalize! Plug-in. See the V-cade to see how!

  168. Easy but not that easy. by tomstdenis · · Score: 1

    I'd say if you "grew up" around computers and learned computer languages early on you'd stand a better chance.

    The question is analogous to "I want to teach my mother German. I don't want to start with novels but I also don't want to start with the alphabet".

    If you could just "pick up" a computer language like C and be proficient at it instantly [hello american immediate gratitifcation society] then all these "computer programmers" really would be out of jobs...

    Tom

    --
    Someday, I'll have a real sig.
  169. mozart / oz by knukkle · · Score: 1

    In this recent book, I learned a really clean and elegant multi-paradigm programming language, and bottom-up method for constructing programs with the mozart facility. The language itself (Oz) is constructed and expanded along the book. It is really different from anything I read before. Although the book goes sometimes deep in the theory, you should be fine with lots of examples because of the simplicity and the power of Oz (yes, it's magic).
    And your mom should not be reluctant to math, but you knew it already.
    (A preview of the book was discussed on slashdot before its publication in March, so the pdf is no more available)

  170. 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
    1. Re:You forgot TCL/Tk by MBCook · · Score: 1

      Yes, I forgot it but it doesn't matter, because I can't write anything intelligent about it. TCL is one of the few languages that I haven't looked into, so other than the fact that it exists and is often used with Tk, I know nothing about it. Thanks for the info.

      --
      Comment forecast: Bits of genius surrounded by a sea of mediocrity.
  171. 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

  172. Learning to program by Quiberon · · Score: 1

    Java (with a little help from Eclipse) would be good and free. Prolog ('gprolog' from FSF) would be an interesting baptism of fire. Colobot (www.colobot.com) shows graphically how programming automates things you might do by hand.

  173. 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. ;-)

  174. Java by ManoMarks · · Score: 1

    I'm not much of a programmer, I did a some scripting in VBA, but tackling a real programming language was really hard. Then someone recommended Head First Java, which is written by a programmer and someone who is a learning specialist. It's really great, and seems to teach the basics well: http://www.oreilly.com/headfirst/

    --

    That's gotta fit into your schema somewhere

  175. Tell her the truth by Anonymous Coward · · Score: 1, Funny

    She asked me what I do on my computer and I told her that I was teaching myself programming in Scheme.

    I think it's time for you to tell her the truth. Yes, it is embarassing, but she will let you alone and we can stop discussing this subject. Ok? ;-P

  176. What about SuperCard? by CoolQ · · Score: 1

    Hi-
    SuperCard is basically an updated version of HyperCard, for OS X. It can even load all of your old stacks...
    --Quentin

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



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

    --
    Deleted
  178. Getting Started with TRS-80 Basic by wambaugh · · Score: 1

    I think BASIC is what you should start with and I think the book you should us is "Getting Started with TRS-80 BASIC". It's quite old, but it's what I used when I was a kid. In the following twenty-some years I have never found a book that took a more interesting approach to programming.

    My memory maybe slightly dusty, but the book, which came with the Radioshack TRS-80 computers, includes lots of non-computer user examples (random poetry generator, grocery store stockroom) because it was written for an era that assumed zero familiarity with computers.

    You can get a pdf copy of the book here:
    http://www2.asub.arknet.edu/wade/getstarttrsbasic. htm

    Good luck. I hope you find the book as helpful as I did.

  179. QBasic by CMan0 · · Score: 1

    In my opinion, QBasic is the perfect language for teaching programming. It was my first language, and I was able to teach it several other people with no idea in computer programming. It's simple, it's based on all the principles of computer programming(I don't my OO or such, but it has all the basics), and you can do all you want as long as it's not too complicated, and someone trying to learn won't start thinking of "too complicated" stuff.
    My next language was C++ and the transfer wasn't that hard, so I think you should try it, it's very easy teaching it to people, and after a short while after you get her understanding all the basics tranfer to something more powerful like C.

  180. visual basic .net standard by Anonymous Coward · · Score: 0

    get it free:

    http://msdn.microsoft.com/vbasic/atthemovies/

  181. 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.

  182. brain by k-zed · · Score: 1

    well the obvious and easiest choice...

    PERL of course
    *evil laughter*

    (well, perl was the first thing to come to mind, but there are lots of things one could say here... java.. brainf*ck.. or even the shakespeare thing :)

    --
    we discovered a new way to think.
    1. Re:brain by hdparm · · Score: 1

      She would have to master haiku first.

  183. Interactive Fortran 77 by Anonymous Coward · · Score: 0

    I've been studying quite a few languages and have had trouble with all of them except Fortran 77. I realize that it is not one of the in languages but for some reason my 55 year old brain doesn't grasp some of the complexities of Python, Perl, C, Scheme, Lisp, Emacs lisp, Ruby, etc. The easiest book I've seen to learn from is Interactive Fortran 77 A Hands on Approach by Ian D. Chivers and Jane Sleightholme which is available in pdf format on the internet. I realize the book is a little dated, but then so am I :)

    http://www.kcl.ac.uk/kis/support/cit//fortran/f7 7b ook.pdf

    is the URL

  184. Re:visual basic .net standard FREE by Anonymous Coward · · Score: 0

    http://msdn.microsoft.com/vbasic/atthemovies/

    i should have put FREE in subject line to get folks attention.

  185. Action scripting - Flash by dj_cel · · Score: 1

    While html could be a good place to begin, I would make the suggestion of Flash and action scripting. In Flash MX, there are some good tutorials to teach some basic concepts and you could also supplement it with the visual quickstart giude. I've tuaght my younger brother (16) and sister (13) how to use it to make simple games and they love it.

    --
    Those who can make you believe absurdities can make you commit atrocities. - Voltaire
  186. Language isn't important by miyako · · Score: 1

    While everyone seems to have their own pet language that they thing would be better than some other language, I belive that once you get into really teaching programming language doesn't really matter, at least for the student. What is important is to pick a language you know well so you can really explain what is going on.
    The thing about teaching programming is to teach the concepts and not the semantics of the language. Its much more important for a student to understand the ideas behind sequence, selection and repetition (and objects if you are going to go that route), than it is to know that that you end an if statement with '}' or 'endif' or whatever that languages syntax dictates. Some languages will have more or less memorized code ("public static void main(String[] args)" vs "int main()") but this shouldn't really effect your choice.
    One impotant thing to remember is that the only way to learn to program is to write programs, write a lot of programs, and learn to read and work with other peoples programs. Make sure to let her know at the beginning of teaching her that she should be able to take the initative to write out dozens of hello world programs and the like.
    Tools are also going to be an important consideration, a fully fledged IDE can be daunting to someone just beginning with programming. If she has a mac running OS X then you already have that battle covered, as both project builder and the gnu tools are excellent. If she is running windows consider giving her a knoppix disk, or installing cygwin (if she's not already on linux you could think about putting a linux parition on her machine, but then you will be having to teach her both programming and Linux in parallel), and teach her to use the gcc, make, and other gnu tools. A text editor like Kate or TextPad would be good to get her started with as they feature syntax highlighting without the learning curve of vi(m) or emacs.
    Also remember that to many a true geek things like pseudocode, flowcharts and UML are a pita, they might be usefull teaching aids when concepts and syntax begin to collide.
    Most importantly have fun, you (I would assume) enjoy programming, teach her the joy in it, and enjoy the time you and your mother get to spend together doing something that hopefully you both enjoy, and if it turns out that programming is not for her, find another hobby you can both do together.

    --
    Famous Last Words: "hmm...wikipedia says it's edible"
  187. Don't waste your time by vijaya_chandra · · Score: 1

    Dude don't waste your time replying to an AC worried of losing his/her job because of the competition from a newbie programming mother

    (Karma be damned; I am no better than an AC anyway)

  188. Easy to program languages for your mother by Orion+Blastar · · Score: 1
    Check out this Hypercard at Wikipedia and see if you can find a Hypercard clone that works for her.

    COBOL is so easy, business types can learn it. Check out these freebie COBOL languages.

    Pascal is one of the easiest languages to learn, they used to teach it in high school. Lazarus has a good IDE to help with development. Also Delphi has a free demo to download and try out.

    Also consider Lingo.

    If she still cannot program in those, give up. They are about the easiest there is to learn. Not everyone can learn how to program. Instead teach her how to draw pictures in TuxPaint and if she fails to learn that one, take away her Internet privliges.

    --
    Remember, Slashdot does not have a -1 disagree moderation, and no, troll, flamebait, and overrated are not substitutes.
  189. The problem with most languages these days... by Gldm · · Score: 1

    ...is that it's really hard to get the "instant gratification" factor.

    Back when computing and video games were moving some characters around, it was fairly easy to take a couple months of work learing BASIC and make something reasonably amusing. From there you could kinda grasp how "professional" projects/games were the same thing only bigger.

    These days, it's like spend a year learning C++ and you can umm... display text in a console that nobody even learns the interface for anymore.

    Java and some other languages have the graphical type widgets but those are mostly too advanced to use out of the box for most people.

    The problem is it's hard to find a language where you can have a reasonable graphical app up and running with only a couple days or weeks worth of learning time. If it takes too long, people give up because they can't see the bridge from where they are now to where they want to be.

    What about Flash? I don't have any direct experience with it but I've seen interesting things done with it, it can be used for both business (website/forms/etc) or play (games/animations/etc) and seems like it can't be THAT hard to get going or there wouldn't be such a proliferation of it on sites like newgrounds. I mean sure you're not going to write a database or word processor or nuclear simlulation in it, but it could be a good starting point to keep interest for more serious things later.

    --

    Introducing the new Occam Fusion! Now with sqrt(-1) fewer blades!

  190. Javascript? by xutopia · · Score: 1

    I'm suprised it doesn't come up. Javascript can be fun to learn and teach a parent what can be done with it. It is simple enough and can allow you to learn stuff visually too. Javascript can change colors of elements on your page and so forth.

  191. Ask Slashdot by Anonymous Coward · · Score: 0

    I'm a 13 year old with no experience in the Tech sector but i am looking for a job this summer. How do i network and where do i go? I am considering getting a full time job so that I gain more experience and not have to go to college. Thanks.

    1. Re:Ask Slashdot by Anonymous Coward · · Score: 0

      Is it even legal for you to work full time at age 13?

      Forget about networking (in the sense of meet-somebody-connected-so-can-get-a-way-cool-job) . That's not the paradigm in this field, at least not what I've seen. The paradigm is learn something useful, learn it well, learn it deeply. Also learn other related stuff that may help you in your chosen field in unpredictable ways.

      Figure out what interests you.

      Graphics / webpage design / HTML
      Networking / routers / routing protocols
      IT / desktop support / apps
      Security /

      etc. etc. etc. ad nauseum.

      From there, start to read. I'll pick networking as a case study b/c it's what I know. There are a number of various starter books in this field (and in all the other above fields). They'll help you get a big picture understanding of concepts, terms, layout, vocab, etc. From there, you iteratively work on deepening understanding by reading better books with more complicated material. Also do certs where (a) they are worth doing and (b) applicable; they are a good way for you to conduct a bullshit test on yourself: how well do you really know / understand the material being tested (e.g. CCNA is a good way or at least used to be to ensure that you've got the very basics of networking down). And of course getting real world experience wherever you can get it. And I mean wherever. People can really rise in this field from having no experience / no education / no real knowledge to getting somewhere worth being. But they do this by being willing to start from the bottom and being absolutely committed to doing the job right. Every time.

      Parallel to this, you'll want to figure out what the desired skill set is: system administration? programming? configuring routers? troubleshooting problems of any stripe? So do you need to know how to program? if so, which languages? how to do linear algebra?

      Another thing to bear in mind: some of this stuff can sometimes take awhile to sink in; you think you understand something after reading about it the first time and you probably do have some roughly correct notion of it... but it's like an onion. For most interesting things, you'll be continually peeling away layers and understanding it anew and more deeply as your career goes on.

      For crying out loud, unless you want to be a tech somewhere (by which I mean transitional employment, few job securities, probably at the mercy of your employer): get a college degree. Anyone in this country can afford it; there's too much aid out there for the willing. And you should be among the willing. This is no longer the go-go 90s. A swell attitude and devil-may-care energy won't close the deal. You will be well served to develop deep and careful knowledge. And an unavoidable part of that is: time. It takes time.

      Regarding a job for this summer? Maybe you can get a job at the library doing desktop support for computers they have there? Or at a school that's offering summer classes -- assist in some sort of technical capacity there? I mention these two because these'd be opportunities where you wouldn't need a lot of experience going in... which, I imagine you don't have.

      Good luck;

  192. I agree by modge · · Score: 1

    Basic was what i learnt first. granted the results don't look nice but it's an easy "jumping in piont" i hear what poeple say about it being good to tach structure i.e. by making poeple use java but personlly I'd rather saw though my leg than use java more than i have to. The whole html thing isn't a idea ethier i suppose alough the knowledge gained will only be so much use in the next langage learnt

    --
    I am a sig
  193. Logic by 1iar_parad0x · · Score: 1

    Perhaps a quick lesson about syllogisms and philosophical arguments might get her in the right mindset. This may be a bit much. Frankly, some sort of non-MS (in other words, like the old-fashioned) BASIC or Javascript would be good. She might get a kick out of making her own web page. Later, if she's interested, you could always go on to things like PHP or Java.

    --
    What do you mean my sig is repetitive? What do you mean my sig is repetitive? What do you mean....
    1. Re:Logic by OldMiner · · Score: 1
      some sort of non-MS (in other words, like the old-fashioned) BASIC

      Woah there sailor! MS made one of the oldest versions of BASIC there is for the Altair computer! This is where they became famous before they were famous: They were highly critical of hobbiest programmers who freely shared their BASIC interpretter. MS wanted everyone to pay for their own copy. Some history man! Ye gods!

      --
      You like splinters in your crotch? -Jon Caldara
  194. 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
  195. 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!

    1. Re:Career move? by Anonymous Coward · · Score: 1, Funny

      The good old
      Minesweeper
      Consultant and
      Solitaire
      Engineer ...

    2. Re:Career move? by Anonymous Coward · · Score: 0


      I think you're a fucking idiot. It's much more difficult to attain your MCSE these days.

    3. Re:Career move? by Anonymous Coward · · Score: 0

      I always thought it was Minesweeper Certified & Solitaire Expert.

      Or (more often than not)

      Must Consult Someone Experienced.

  196. You moron... by Anonymous Coward · · Score: 1

    Um, newsflash, genius: your mother's interest
    in programming is NOT a genuine interest in
    programming. Instead, she's trying to stay
    in touch with her child. So, the short-lived
    interest in Scheme (and e-mail) was just another
    way for her to stay in touch with you.

    Are you really such an insensitive child that
    you don't see this? For Chistsakes, she even
    turned SOLITARE, a single person game, into
    something she can use to talk to you about...

    This article should not be filed under Ask Slashdot,
    but under "GeekDisconnetionFromParents" or
    something like that.

  197. What Does 'Programming' Mean To Mom/ by reallocate · · Score: 1

    I've encountered a lot of folks -- all without a clue about computing -- who understood that "programming" was what you did to do something useful with the machine. If your Mom said she wanted to learn programming, she might have though she needs to do that in order to use the machine.

    --
    -- Slashdot: When Public Access TV Says "No"
  198. 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..."
  199. Squeak? Childish? by streak · · Score: 1

    Squeak is not a childish language by any stretch of the imagination. There are parts of Squeak that present themselves as childish (etoys for example) but this is one little part of Squeak and was primarily designed for children.
    The underlying foundations of Squeak are really quite full-featured. I have seen incredible apps written entirely in Squeak.
    I suspect that the author of the question only used etoys and that was it. There is a lot more worth looking at.

  200. C or Java should be fine... by i-Chaos · · Score: 1

    I'm a college programming student who has a girlfriend in the same program who I constantly have to tutor, so I definitely understand what I'm talking about.

    IF she has an analytical brain that is still pretty intact, she should not have a problem with C, as long as you explain it properly, and in laymen's terms. Personally, I would start with a Dummy's book, and try and work through it. For everything that she does not understand, find yourself a million analogies to explain it until she understands it. And then, here's the kicker, ask her to explain it back to you!!! As long as she learns the basic notion that the computer is a dumb machine who takes orders and only understands how to interpret them if given to them correctly, she'll understand most of what's happening in a computer. If even that is hard for her, try and illustrate the inner workings of a computer (gates, then memory and conditions).

    Remember: One statement performs (on a basic level) One outcome. You tell the computer to do something, and it does it. And remember that the reason why computers need variables is because it doesn't understand and doesn't remember anything you don't tell it to remember. Show her a calculator with a memory function, and tell her that the computer is just really a calculator with a fuckload of memory :)

    --
    ...I am proof that intelligent beings are not always intelligent...
  201. How about Awk? by silentmusic · · Score: 1

    It all depends on what you mom wants to do, but you could do some interesting financial analysis programs with Awk that might be interesting since they have an obvious real world application. Like write a program which analyzes historical data and shows how risk and return changes depending upon a simple mix of stocks and bonds. This is sort of a dry area, but you both might learn something here.

    The book "The AWK Programming Language" by Aho, Kernighan, and Weinberger is a classic. Too bad that it's so expensive.

    There was a guy teaching AI with Awk at one point. If you search on google you can probably find a reference "Why GAWK for AI?"

    -K

    --

    Things are not as they appear, nor are they otherwise.

    1. Re:How about Awk? by czas · · Score: 1

      I would also recommend awk. It is the language they taught at my old job to people that were not good in programming but needed to do some text processing stuff (Perl was considered too difficult).

  202. 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.

  203. What does she do? by nelsonal · · Score: 1

    One factor that might be useful is to give her something that will be useful to what she does. If she works with an office suite, teach her how to use things like fields, macros, or excel's functions. If she works with email, a simple subset of renderable HTML (later with scripting) would be a nice second step. I learned most of what I know about variables working with excell (treating cells as variables (and later using simple VB scripts) and all of my html here. She doesn't need to become an assembly hacker, start at what you would consider to be well beneath you and let her work up from there.

    --
    Degaussing scares the bad magnetism out of the monitor and fills it with good karma.
  204. What about FileMaker Pro? by lordDallan · · Score: 1

    I think a good option to get someone's feet wet in programming is FileMaker Pro (I'm talking about version 5 or 6 'cuz I haven't tried 7).

    FileMaker is very rewarding for a beginner user because they can make something useful, that looks pretty professional, in a short amount of time. Mom's might like to make a birthday database with a mail merge/envelope/label generation feature.

    A big plus is the way scripts are created, all your data fields, operators, and functions are right there in the scripting window, and you can just double-click to drop a function (or field or operator) right into your script. This lets the person focus on the logic rather than getting frustrated by a barrage of syntax errors.

    Another big plus is that interface design, scripting, etc. are all done in a single environment (no firing up a separate db designer tool, or a separate layout tool). I think this is less confusing to the beginner.

    FileMaker also has a built in web server (runs on port 591 by default) and a markup language (CDML) that has identical function names to the built-in scripting language. So as the budding programmer gets more comfortable, he/she can play around with building a data-driven web page.

    I think FMPro's combination of easy GUI stuff, basic scripting, and basic DB skills (defining data types, doing basic validations) makes for a quick, rewarding introduction to a lot of basic programming concepts.

  205. There's A Reason It's Called BASIC by gbulmash · · Score: 1
    BASIC stands for *Beginner's* All-purpose Symbolic Instruction Code. That's what I started with in 1980. I never pursued programming academically, but this year when I wanted to learn some Perl and PHP to help me do some back-end processing, my old knowledge of BASIC was the perfect stepping stone.

    It has simple control structures (if... then, for... next), simple arrays, boolean and mathematical comparison operators, and if you avoid the spaghetti programming concept of the GOTO, the GOSUB will help you teach structured programming. And it's all a great stepping stone into functions, while, wend, arrays, hashes, and eventually objects and inheritance.

    The BASIC programming I did for fun on my Commodore was *excellent* preparation for Perl and PHP. Find some good old-fashioned basic and teach your mom that, starting with "Hello World", moving to a guessing game (computer picks random number between one and 10 - you try to guess it while it says "higher" and "lower")... just keep it easy and fun, gradually adding more complexity.

  206. HTML yes, but play it by ear by Flexagon · · Score: 1

    I've had a chance to teach (or help teach) several well-past-college adults to program. HTML and its associated friends are a good start, probably because of the immediate feedback and ability to do something fairly useful right away. For example, perhaps she'd like to make a Web site of her own. But if she's really serious, I'd move to some more formal language before returing to the advanced uses of any scripting language. I think I'd pick a language that was designed for teaching, such as Logo or Pascal (despite its age).

    The biggest advantage that you have is that it'll be one-on-one and you can adjust to her interest and patience. I don't think I can overstate this, especially with the shower of languages that people have listed here. For example, if your mom majored in math but never programmed, you could go right to something like lisp. If not, then maybe something more statement oriented.

    But for teaching serious programming, I'd say that the first two really big road blocks that I've seen for non-technical people learning to program are the difference between a number and a string (and ultimately quoting generally), and indexing (array indexing in HLLs, or registers used as such in assembly language). After that, I'd say it's recursion, particularly for someone with little background in math (has never gotten proof by mathematical induction).

    While I might use a scripting language to get over the initial idea of having the computer do something you tell it (and that might be immediately useful), I wouldn't stay with one very long in the beginning. Most have tortuous syntax, particularly with quoting and arrays.

    About the road blocks I mentioned:

    Number versus string: It seems to be very difficult to get across the idea that these are very different statements (though the differences become more apparent with more complicated expressions and string versus numeric variable types):

    print 12345;
    print "12345";

    My mother took an introductory programming course and this area was a big problem.

    Indexing: I think the major issue is the indirection involved, and having to keep track of two things at once (the index and the target). This one hit two adults I've taught.

  207. Sure... by Anonymous Coward · · Score: 0
  208. COBOL worked for a million liberal arts grads by Anonymous Coward · · Score: 0

    it can work for his Mom too!

  209. What about Robocode? by Anonymous Coward · · Score: 0

    Taken from the Robocode webpage at alphaworks/ibm:

    "Build the best. Destroy the rest. In Robocode, you'll program a robotic battletank in Java for a fight to the finish. The game is designed to help you learn Java, and have fun doing it... from a simple 10-line robot to a very sophisticated, intelligent robot that destroys the competition!"

    Uses robocode api (java classes) and the java api, and is quite easy to get in to.

  210. Sig comment by jared_hanson · · Score: 1

    Ahh, I like your sig. I was beginning to think that I was the only one bothered by that statement. By the way, I believe the exact statement is as follows:

    "I need a better way to buy what I need."

    I think its best that sentences don't both begin and end with the same posessive.

    --
    -- Fighting mediocrity one bad post at a time.
  211. 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

  212. HTML, CSS and PHP by Muttonhead · · Score: 1

    Teach HTML first, then CSS and then PHP because it's in the order of increasing complexity.

  213. Re:Real Basic? Or some stack-based interpreted lan by Angostura · · Score: 1

    >stack-based interpreted lang

    Please don't try to teach your mother Forth.

  214. Pascal is the best language... by geekee · · Score: 1

    I've seen to teach someone structured programming. C is a bit confusing to someone who doesn't understand how computers actually work.

    --
    Vote for Pedro
  215. Try talking about her by th0mas.sixbit.org · · Score: 1

    *wink* sewing for you might be easier ;)

    --
    twitter.com/gravitronic
  216. 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 Anonymous Coward · · Score: 0

      Most people COULD become competent programmers

      Yeah, I'm still waiting for my cow-orkers to get there.

      Keep the faith!

    2. 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. :)

    3. Re:Sometimes I despair for the profession. by zsmooth · · Score: 1

      Everyone who said HTML is not a programming language is worried that they are not actually competent programmers.

      No, everyone here saying HTML is not a programming language is saying it because it's true. It has nothing to do with how easy it is. I'm sure there are several markup languages that are complicated as hell - that still doesn't make them programming languages. Thanks for the rant though.

    4. Re:Sometimes I despair for the profession. by Anonymous Coward · · Score: 0

      I've always considered html as a form of programming - basically it's a specialized interpreted language called a declarative language. You feed it input, you get output, ergo programming.

      No, not Turing complete, but it's still programming. You want Turing complete? Try MS Word macro coding (which I've heard is, or likely is).

    5. Re:Sometimes I despair for the profession. by SolidiusRock · · Score: 1

      I do agree with SOME of the heretics that say that HTML is not a programming language, but only to a point. Second, I would like to say that not everyone can understand what programming is, they just can't. I've seen this at my university where those who went into CIS, and take the programming courses, become COMPLETELY lost on simple structure, and we're on 8th semester (of a 9 semester school). The point is, in general, it IS our exclusive domain, and I'm happy to be the "catholic" programmer that wants to keep it his exclusive providence.

      - Me

    6. 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
    7. Re:Sometimes I despair for the profession. by Anonymous Coward · · Score: 0

      HEAR! HEAR!

      there have been way too many times, especially on slashdot, where i've wanted to choke people for their insecurity and resulting heads up their asses.

      i'm so glad someone had the balls to take the time to write this, and for others to mod it up 5 Informative.

    8. 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
    9. Re:Sometimes I despair for the profession. by Anonymous Coward · · Score: 0

      marking up == programming, dummy

    10. Re:Sometimes I despair for the profession. by Ghostx13 · · Score: 1

      Exaclty what would you consider programming? I'm not saying I agree or disagree with you, but you've basically said nothing except for: "HTML isn't programing because it isn't". Please elucidate your point.

    11. Re:Sometimes I despair for the profession. by Anonymous Coward · · Score: 0

      HTML doesn't do anything, it just gets displayed. To say it's a programming language would make *anything* programming. Word processing would be programming then, because you can bold and italicize text. What? You don't type in the bold tags? Why is it relevant to type something in? There are many graphical (point and click) programming languages.

      Now, if I am typing a letter to my mom, is it programming?

    12. Re:Sometimes I despair for the profession. by zsmooth · · Score: 1

      There are hundreds of replies to this story that explain over and over why HTML does not meet the commonly accepted definition of a programming language (not Turing complete, no data structures, no flow control, etc).

      HTML is no more a programming language than a "computer scientist" is "someone who works on computers".

    13. Re:Sometimes I despair for the profession. by blackbear · · Score: 1

      I once had a customer express amazement at my habit of training the "locals" when I made services calls or worked on projects for that company. They couldn't understand why I would just give away my knowledge. "won't that hurt your business?" They would ask.

      No, of course not. If I was a one trick pony and didn't constantly educate myself on new technologies and techniques, perhaps I would become useless. But that would happen even If I kept my secrets. Instead I build new business by educating my customers to new possibilities and showing them that they can be the master of the machine. Then, I get the more interesting jobs, and they get to do the day to day stuff that's still interesting at their level of understanding.

      We would do well to remember that we all started out ignorant and wanting to learn. And we all had mentors and teachers, even if they were authors who we had never met. It's easy to bitch about ignorance. It's hard to do something about it.

      In the words of Richard Bach:
      "You teach best what you most want to learn."

    14. Re:Sometimes I despair for the profession. by Anonymous Coward · · Score: 0

      Depends on what you mean by a programming language. No, one can not code a turing machine in HTML (A turing machine with a finite tape, of course). But, it is a programming language in the sense that it teaches people that thingys in < and > tell the computer to do things.

    15. Re:Sometimes I despair for the profession. by meadowsp · · Score: 1

      When the title is 'Programming for Terrified Adults', I'd expect the prevailing opinions to be about programming.

    16. Re:Sometimes I despair for the profession. by Anonymous Coward · · Score: 0
      If I see HTML listed under "programming languages" on a resume, it immediately makes me wonder about the potential candidate. I have seen it listed explicitly as "markup" (along with TeX), or as "alternative" skills, etc. However, placing it on a resume as a programming language makes you look bad.

      Well, let's see shall we. Let us choose a general programming lang (GPL).

      GPL:

      • Input/output: check
      • Variables: check
      • Boolean logic: check
      • Hell, expressions in general: check
      • Branching: check
      • Looping constructs (yeah, yeah, technically a more refined branch, but this is the possibility of branch++): check
      • modularity: check

      HTML (sans *script, and server-side help):

      • Input/output: forms, screen (check)
      • Variables: form/element names (check)
      • Boolean logic: ummm?? Possibly whether a form is to be handled, but that is only when used with *script
      • Expressions: ummmm. I'm gonna have to say no.
      • Branching: Nope.
      • Looping constructs: Nope.
      • Modularity: not without SSI for HTML, though CSS, etc. can be pulled in from other sources. I don't think I can give it to you, though.

      Now granted, the definition of "programming" has come a long way, but we're talking about a *general* programming language. HTML is a very specialized programming language, as is Postscript. However, Postscript has most, if not all attributes of a GPL.

    17. Re:Sometimes I despair for the profession. by Erasmus+Darwin · · Score: 1
      "First of all, let me say: Agreed, HTML is programming, just as C++ is - the computer is interpreting coded instructions to process data."

      Is double-clicking on the Freecell icon considered programming? You're coding your intent to start the application into the form of two timed presses of the mouse button, and the computer is interpreting that as an instruction to process the data in the shortcut (which in turn, leads to it processing instructions in the Freecell executable itself).

      I think you've overgeneralized the definition of programming to the point where it includes any interaction with a computer, and then you've used that newfound freedom to apply it to a task that's certainly complex and expressive but still lacking in actual programming.

    18. Re:Sometimes I despair for the profession. by CrayzyJ · · Score: 1

      "First of all, let me say: Agreed, HTML is programming, just as C++ is - the computer is interpreting coded instructions to process data."

      Woah horsy! NO, NO NO. In HTML, a browser does the interpreting to display text boxes. For C++, it is compiled to MACHINE code and run natively in hw.

      See the difference?

      --
      Holy s-, it's Jesus!
    19. Re:Sometimes I despair for the profession. by moreati · · Score: 1

      So what?

      The computer that does the interpretation is remote, and the internal structure used by the browser to represent the page isn't native machine code. Those are attributes are equally applicable to a Java applet (delivery over the wire as bytecode or source work equally well).

    20. Re:Sometimes I despair for the profession. by moreati · · Score: 1
      No, I don't consider double clicking freecell to be programming.

      My glib one liner was too general as a formal definition, wikipedia describes programming thus:

      Programming is the art of creating a computer program, a concrete set of instructions for a computer to carry out.
      Which is also over generalised IMO. I'm not sure I could pin down a complete and exact definition, but it would definitely include that the instructions were stored, loaded and interpreted directly by the computer, without the need for external input (note that doesn't programs that accept external input).

      I still class writing HTML as programming, not procedural programming certainly (declarative would be closest), but still programming according to my understanding.

      Alex

    21. Re:Sometimes I despair for the profession. by fishdan · · Score: 1
      Funny, -- I forgot the
      <ecode>
      tag for my closing rant tag. But it probably IS best left open.

      You're right. I've met many great programmers who were generous with their time, forgiving with their lessers, and patient with impertinant young upstarts. I hope I am deserving of some (more) of their understanding, because you're right, my brush was not fine enough.

      I don't really despair for the profession. Sometimes I just get tired of having to play that game where two developers meet, and we have to sniff each other like dogs to establish pecking order. You're right though, it's not always like that. Mea Culpa

      --
      Nothing great was ever achieved without enthusiasm
    22. Re:Sometimes I despair for the profession. by PCM2 · · Score: 1

      Not true! The things in brackets describe the data. They're tags, nothing more. There is a separate program somewhere, generally known as a Web browser but not necessarily a browser, that interprets that description and "does things" with it. The same HTML page could make the computer "do" ten different things, depending on what program you ran it through.

      --
      Breakfast served all day!
    23. Re:Sometimes I despair for the profession. by fishdan · · Score: 1
      Some more thoughts. Someone posted that a programming langusge has to be Turing complete -- Here are some thoughts on that. I'm sure they read the beginning of the wiki. If you read a little farther it says:
      As an actual example, HTML (Hypertext Markup Language) is not a Turing-complete language because we cannot implement any well-defined computer algorithm in it. To give it Turing-complete ability, one would typically need to add loops, variables, and conditional (IF) statements to the language. However, loops, variables, and conditionals are not the only way to make a language Turing-complete, for there are Turing-complete languages that don't resemble typical programming languages in the least. One curious example is an experimental language called Brainfuck.

      One potential advantage of non-Turing-complete languages is added security. It is much harder to write a computer virus in non-Turing-complete languages, for example. Thus, one will probably have more security problems using JavaScript than "plain" HTML because a virus writer can implement a wider variety of algorithms in JavaScript than HTML. The "Macro" ability in Microsoft Word documents gives Word documents the ability to be Turing-complete. Although this makes them potentially more powerful, it is also a source of viruses and unwanted computer security exploits.

      Non-Turing complete languages are sometimes called "declarative" languages, and often consist largely of attributes (data) rather than direct commands.

      elsewhere wiki says

      A declarative programming language is a high-level language that describes a problem rather than defining a solution. Data-oriented languages such as SQL fall into the category of declarative languages.

      However also in wiki are many other articles, some of which support the idea that HTML is a programming language, and some of which don't. They make great reading -- I recommend starting here. Wiki does not list HTML in it's list of programming languages.

      But my point was more that people who say that HTML is not a programming language rarely do so because of the *hugely dire* technical ramifications of mistakenly thinking that HTML is a programming language (which it may or may not be -- at the LEAST it is a subject which has more than one intepretation and advocates on both sides). Instead, they say that HTML is not a programming language to feel superior.

      You're reading /. That's superiority enough.

      --
      Nothing great was ever achieved without enthusiasm
  217. Somewhat right! by Anonymous Coward · · Score: 0

    Assembly language is very direct. You don't
    have to teach the concept of a pointer, because
    every integer is obviously also a pointer.
    Problem is, assembly can get verbose and the
    register allocation can get tiresome.

    How about C, FORTRAN, or Pascal? Get away from
    the object-oriented and functional crap. Plain
    old normal languages are easy to learn fully.
    You can get the whole 1989 C standard into your
    head, excepting trigraphs maybe.

  218. LEGO Mindstorms by AIJoe · · Score: 1

    Don't be so quick to dismiss LEGO Mindstorms. They're used successfully in AI courses at many colleges. She can spend a few hours writing really simple programs in the RCX code that comes with it, just to get the "feel" of what a program is. Then, you can download and install NQC (Not Quite C), a free, multitasking OS that's simple enough for a beginner yet capable of some pretty impressive tasks. There's a lot of free info available online, & you might want to look for a copy of Jonathan Knudsen's book "The Unofficial Guide to LEGO MINDSTORMS Robots" to help get her started.

    1. Re:LEGO Mindstorms by AIJoe · · Score: 1

      Also, to get ideas for interesting & challenging things for her to work on, you can search online for assignments: search "rcx assignment" or "mindstorms assignment" etc to find projects assigned to college students using these kits. Best of all, they're fun.

  219. My mom by Bluetick · · Score: 1

    Both of my parents have done some programming (and they're rapidly approaching sixty), or are programmers. My dad did some Qbasic and other simple programming languages, as well as html (I know, not programming, but he learned it to make his own site), and he started back in the early eighties from working in a bank and having to pick up some knowledge. My mother on the other hand, learned a lot later. She started picking it up about 8 years ago. She started on html. Later she picked up VBscript, Javascript, VB, asp, css, Coldfusion, and a few others. They're not low level programming languages and I know she wishes she knew C++ or Java, but she's been quite adept at learning them and does a lot of contracting work that sends her all over the country and to Europe. She was originally a graphic designer, but found that didn't pay anything.

    On the other hand, she knows next to nothing about hardware, security, networking or anything like that. That's been a bit of a hindrance for her since on most jobs in these areas they think that if you know how to program, you should automatically know how to be a network admin and hardware guru. She designs a lot of websites because she also knows things like Flash and Dreamweaver. I would say a good place to start is with an easy scripting language like javascript or VBscript. Perhaps the easiest way to learn something, for her at least, has been to have a practical use for it. She'd learn it basically out of necessity to get a decent job. Same thing with one of my aunt, she's always worked in retail, but now she does work in 3d Studio Max.

  220. Your Teaching Ability *** *** by Llamakiller-4 · · Score: 0

    Let's not forget your mom was not privy to all the fast paced technology you have come to take for granted.
    Be Patient.
    Choose your analogies wisely to help her understand.
    Choose something she'll be interested in.
    Choose something that she can contribute to what
    you're doing. (ie: not the same thing as you)
    Choose something she can use or enjoy.

    I've found that most women enjoy making webpages, perhaps something like Dreamweaver or Frontpage that shields her from the drudgery (so to speak) of the web page making process and moves her to the creativity part more rapidly. Mozilla's Composer (built in with the free browser) is quite easy to use. Dont forget to explain the upload process simply and show her how to setup one of those programs to upload.

    Think about this Chinese Proverb whenever you teach someone! This is what works for my Mom...
    and Im 48! Anyone can "get it" if you use patience and dont just tell them, help them do it themselves.

    A Chinese proverb says: "Tell me and I forget.
    Show me and I remember. Have me do it and I
    understand."

    --
    "It's what you learn after you know it all that counts", Earl Weaver - Legendary Coach of the Baltimore Orioles
  221. Forget the programming by marauder404 · · Score: 1

    Forget programming. It's not worth it. No one learns programming because they're bored. They learn it because a) they need it for a job or b) it's interesting. She clearly doesn't really have b and doesn't need it for a. What she need is a purpose.

    Start her off with a blog. She can keep it as a diary and mark most of the entries as private if she wants and just mark certain ones public when they're notable, funny, or she has something worth sharing. When she realizes that it can't do everything exactly the way she wants, she'll get more sophisticated with HTML, Javascript, PHP, and whatever else she needs. She doesn't need to learn tools for the sake of learning tools -- she needs a purpose for using her computer. Nobody gives a shit about learning "Hello world" programs or even writing sophisticated encryption algorithms. They get excited when it makes their own lives easier. Or profiable.

    If she's looking for trying out a few things to try to make a few bucks, she can join an affiliate program and get paid to learn how the web works. eBay has a great affiliate program that's free to join and pretty popular. As long as she's not doing it as a job, it could be a fun way for her to try to make a few bucks. There are some good guides out there to help web novices get started.

  222. "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.....

  223. How about Excel/OpenOffice? by neurojab · · Score: 1

    >Is there anything in the middle that is also cheap/free and suitable for adults?

    Why teach full programming and not something similar that she would find useful? Learning how to do calculations in spreadsheets is quite a useful skill... a skill I'm sure she could put to use. The mindstorms might hold her interest for a while, but unless she's a geek (doesn't seem so), she'll want practical applications.

  224. Something a little more useful? by Anonymous Coward · · Score: 0

    From what you said about email, it seems she is pretty much a beginner. Why not start with something that could be a little more useful to her like some basic applications. Start with basic spreadsheets and work her into macro programming. It may not be real programming but if you get her to set things up that she could use on a daily basis (checkbook etc) she will progress quickly. From macro programming, it's just a short jump to real programming.

  225. ALICE does exactly that by OldMiner · · Score: 1
    The problem is it's hard to find a language where you can have a reasonable graphical app up and running with only a couple days or weeks worth of learning time.

    ALICE, a 3D programming language, originally built on Python, rewritten in the last two years in Java. Previously mentioned, in an earlier, similar Ask Slashdot. Within 15 minutes, you can make a 3D program which reacts to mouse interaction.

    It's object oriented, you can't make syntax errors, as you build programs by dragging and clicking blocks. For instance, you drag in a for loop, then you drag in the command to rotate some object in your scene, then you select the object from the dropdown, and so on.

    Funded by NIST, it's been used in intro to CS classes, and has been shown effective at teaching programming concepts. Your tax dollars at work. Check it out.

    --
    You like splinters in your crotch? -Jon Caldara
  226. Your Mom by Anonymous Coward · · Score: 0

    First of all, teaching your mom scheme as her first programming language is just a joke. What were you thinking? Secondly, start with something simple. Logo is not bad, really; it is not childish; it is perfect as a first language.

    You could try Java, but maybe it's best to avoid object oriented and stick with just procedural languages. Maybe go to the library and get the yellow book series Java for Morons, or Java in ?? days, and start going through the first two chapters.

  227. Lingo (Macromedia Director/Shockwave) by Captain+Nick · · Score: 1

    I've done my share of multimedia programming, and have used lingo in the past (the language used in Director/Shockwave). I absolutely hate it now, but for someone starting off, it's very easy, and provides instant gratification (like making things interactive, etc.). It's geared toward non-techies/programmers and basically reads like English. Otherwise, I'd agree with the rest of the posts and go for HTML. Then she can put her photos on the web.

  228. Rexx by Bohemoth2 · · Score: 1

    How about Rexx? I've yet to find an interpreted ipc control language like Arexx in the windows linux world that is as easy to use. the last time i automated anything was on an amiga as a result. every app had an arexx port on the amiga. I saw a ruby demo a while back and that might work, as well as rebol. It should be an interpreted language in any case

    1. Re:Rexx by os2fan · · Score: 1
      Of course, one could look around for Regina REXX, which is cross-platform, and also Patric McPhee's excellent DLLs for REXX.

      The real killer is that one has to get something useful going quickly; rather than the language itself. This helps to maintain interest in it.

      Unlike BASIC, rexx is fairly easy to learn, while having structured programming, rather than goto's. Also, one does not have to invoke libraries for things.

      If she has a mathematical bent, try also the rexx routines at the Album of Algorithmic Techniques.

      --
      OS/2 - because choice is a terrible thing to waste.
    2. Re:Rexx by treehouse · · Score: 1

      I'd recommend REXX. My father, who turned 86 this year, has a lot of fun programming in REXX. Since it's an interpreted language (usually) it's easy to use. And its syntax is quite simple with about 20 commands and a few dozen built-in functions. But I've written fairly complex CGI-based applications using it.

  229. Perl for beginners? by Anonymous Coward · · Score: 0

    Allow me to laugh.

    Perl isn't meant for beginners, not even for masters of other languages. It's only meant for masters of perl - perl programmers teach each other more perl and create more things to teach about each other all over again.

    Perl has just too many "unknowns" - it's behavior changes slightly with just one more whitespace there and in some cases you can't even use proper function to ask something - you just somehow need figure out the automatic variable.

    Perl is very confusing, really. Ok, there are uses for it but it's not meant to be learned.

  230. Clean and simple? by 2901 · · Score: 1

    I'm reading currently on page 25 of SCIP. I'm reading it because I what to learn about Metalinguistic Abstraction. Page 359 here I come!

    I think it is simple in the sense that the definition and semantics are kept simple so that top students at an elite technical university can top off their computer programming course by writing their own implementation of the language that they are learning. That is a different notion of simple than "keep it simple so that your mum can learn it". For example CL has a loop macro. It is supposed to make it easy to write simple loops. To add the numbers from 1 to 10 you write

    (loop for i from 1 to 10 sum i)
    Does this actually help terrified mums? I don't know. The reason that Scheme doesn't have something like it is that implementing it is busywork. It would take MIT's students time to put it into their implementations, but they would not be learning anything of deep importance while they were doing so. So Steele and Sussman are right to leave out loop, and thus make Scheme simple in the sense relevant to their goals. But perhaps terrified adults find loop easy to use. In that case CL would be simpler than Scheme for teaching iteration to terrified adults.
  231. JavaScript? by pmjordan · · Score: 1

    Although it might seem crazy at first, why not JavaScript? Sure, you'll have to teach her HTML first, but that'll get her started on getting used to sticking to a syntax, and it's something she'll be able to relate to - she knows the web, so she'll find out how web pages work.

  232. Get Visual Basic .Net Standard Version Free by Anonymous Coward · · Score: 0

    http://msdn.microsoft.com/vbasic/atthemovies/

    Spend a few minutes watching some movies and the program is yours free.

    $109 value and MS hopes your Mom will become a master coder for the Windows platform.

    Hehe.

  233. Interesting/Fun way to learn Programming by bstone · · Score: 1

    I have given several people their intro to programming over may years by passing on a game/programming learning exercise called CROBOTS.

    It's a very small/simple pseudo C-programming environment designed to control ascii 'robots' in battle, allowing you to 'see' your results and program your robot to do better in the battle. Very simple interface (the robots are '1' to '4' moving around on the screen), but people get into 'seeing' their results immediately and can learn the basics of writing a program, modifying the samples to make them 'better', etc. easily.

    It has worked to start people into learning programming in a fun way.

    Google for it (several versions are available) or look at http://www.ioprogrammo.it/crobots/home.php

    It's available for many environments (I started using it in MS/DOS over 10 years ago).

  234. Ah, but by warrax_666 · · Score: 1

    does that allow you to pass values to the next "iteration"?

    --
    HAND.
    1. Re:Ah, but by timothv · · Score: 1

      Sure, with a GET argument in the URL.

  235. FORTRAN might be better by p_trekkie · · Score: 1

    Fortran is only slightly more complicated than BASIC, and is actually used in the real world (in spite of it being pronounced dead on a regular basis).

  236. Put her on a real OS, Linux anyone? by tom581 · · Score: 1

    Why not just setup a Linux partition and let her play with it? My wife and kids LOVE the games and enjoy just digging around finding out all the wonders of Linux. If you put SuSE on, the YaST2 makes management a snap, and you don't have to start off with teaching her to use vi for setting up the machine.

  237. Boot camp for Ma by DanielMarkham · · Score: 1

    If you really love your ma, it's time to send her to programming language boot camp.

    Up in the morning at the crack of 10 o'clock, web surfing and emails until lunch, then reprogramming your cell phone to play the old "Star Trek" game until mid afternoon. Then slop in a few lines of code in the IDE and go home.

    And I wouldn't start with any kind of Basic or anything either. Why use a language called, after all, the Beginner's All-Purpose Symbolic Instruction code? Obviously that's not going to work.

    After she learns Octal and Hex, you should start her on the only true programming lanugage: C. Preferably in one of the new GUI IDEs where everything has around 40-thousand lines of code linked in just to say "hello world." The first topic, of course, should be using multiple pointer indirection with function pointers. In Swahilli.

    After a few days of that she won't bug you any more.

  238. Try Liberty Basic by heliopilot · · Score: 1

    I was faced with a similar situation when my fourth and fifth grade children wanted to know what computer programming was all about. I found an adaptatoin of the original PC BASIC language (Liberty Basic) that runs in the windowns GUI environment. It is easy to learn and implements a wide variety of programming constructs (I/O, conditional statements, looping, math, graphics, etc.). I loaded it on the family PC for the kids to play with. My son eventually wrote some of his own programs to generate solutions to the "The Traveling Salesman" problem for a grade school science project. See LibertyBasic

  239. 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.

    1. Re:Interesting/Fun learning game by bstone · · Score: 1

      Oops...I couldn't find it after I posted, and posted again.

      My bad.

  240. Dos Batch Programming by WotanKhan · · Score: 1
    is about as simple as it gets, and since she is on a windows PC it can actually be useful right away. Start her off with a script that backs up her important files, compresses and writes them to CD. Teach her to add directories to this script, and explain the hierarchical file structure.

    Then find out if she performs any other repetitive tasks and help her automate them.

  241. Cocoa by mike3k · · Score: 1

    Start her out with Cocoa & ObjectiveC or AppleScript Studio. She can start designing visually in interface builder and then look at the generated code and add functionality or use AppleScript Studio to develop it into a full application.

  242. Filemaker by hansworst · · Score: 1

    This is both really simple, way more intuitive than VB, and you (she) get(s) instant reward: something that works, (can be) visually appealing, and even usefull, like an address-database or something for a club or collection or similar...

  243. Fortran or Cobol by howman · · Score: 1

    1. Teach her Fortran or Cobol
    2. Enjoy lots of free pizza and pop on mom
    3. Have access to killer hardware when...
    4. Get her a job repairing old mainframes
    5. Profit when she thanks you for her first pay cheque

    --
    flinging poop since 1969
  244. Logo is great for learning initial stuff. by w4rl5ck · · Score: 1

    and I won't consider it "childish" just because it has some obvious "abstractions" like the good old turtle. On the other hand, logo is not really up-to-date compared to what's really going on (objects and all this nifty stuff)...

  245. we didn't even get past the introductory chapter by 2901 · · Score: 1

    That is your mistake right there. Don't have her reading a book. Sit her at the Read-Eval-Print-Loop and have her type at it.

    (+ 2 2) => 4

    (sort "elbow" (function char< )) => "below"

    You are there to give personal tuition, so she doesn't need to use a book.(You may need to!)

    The other thing you need to do is wear boxing gloves. Then you have to tell her which keys to press, which means that she automatically stops you going too fast for her by stopping typing when she gets confused.

  246. 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.

  247. Denim by marko123 · · Score: 1

    It's a fascinating handdrawn design app, that might be appealing to non-programmers.

    Here it is

    --
    http://pcblues.com - Digits and Wood
    1. Re:Denim by Anonymous Coward · · Score: 0

      ROFL. Mod parent up :) That's hilarious.

      Please tell me DENIM was inspired by strongbad or something. I'll feel bad if I just laughed that hard at a serious site.

  248. PHP! by Anonymous Coward · · Score: 0

    Do PHP!

  249. Scientology by saddino · · Score: 0, Offtopic

    Especially if your mom's truly terrified -- she will make an excellent mark^H^H^H^Hvictim^H^H^H^H^H^Hstudent.

    Oh...wait, computer programming...how about Whitespace? ;-)

  250. Inform by Audiostar · · Score: 1

    What about Inform? Its easy, fun, relatively quick to learn, and it definitely prepares you to wrap your head around loops, classes, and objects. Since everyone is being super picky about HTML not being a programming language, I figured I would throw this out there. if your mom likes reading, or gaming for that matter, you could entice her into the nerdy world of Infocom.

  251. Mod me up! by Anonymous Coward · · Score: 0
    INTERCAL, of course. Its use of statements like "PLEASE DO..." will appeal to her, I think.

    (Check out this cool little ROT13 program written in INTERCAL)

  252. Re:Scheme/Lisp by hobo2k · · Score: 1
    Yeah, most everybody I know has trouble with these, especially prolog (same as scheme right?). But I wonder what would happen if prolog was your first... Maybe it is only hard to understand because people only encounter it after a few years of procedural languages?

    Or maybe humans do think in procedural. Not too often you see a recipie for toast written:

    toasted(bread) :- cooked(bread), buttered(bread)
    cooked(bread) :- BreadInToaster(bread, toaster), TosterFinished(toaster)
    TosterFinished(toaster) :- .... ack, kill me now
  253. RapidQ Basic by puddlduk · · Score: 1

    Very fun and usefull, most anything a beginner needs, 1/10 the complexity of VB. "free, cross-platform, semi-Object-oriented BASIC... Console, GUI and CGI applications..." http://en.wikipedia.org/wiki/RapidQ

  254. 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
  255. Learn Programming with bc by sugarmotor · · Score: 1

    bc is pretty easy to use, available under UNIX straightforwardly. Get cygwin if you're on windows. It has "for" loops, "if/then" and functions. Most people would understand and appreciate some arithmetic exercises. They'd run in to syntax errors along the way. There's hardly any overhead (include this or that, compile / link, input / output windows here or there..) and no damage to be done.

    --
    http://stephan.sugarmotor.org
  256. The magic of a *nix shell by rkef · · Score: 0

    Why not put programming on hold, and show her the basic of the commandline? Show her how to navigate the filesystem, how piping works, how useful something like "grep" is (and regexes in general), which we all take for granted.

    Then she can graduate to basic shell scripting. Show her how to automate tasks with crond. Show her how to handle complexity on a practical, useful level.

    Then let her run free on the system. If she isn't hacking away at Perl scripts in a few months, and fighting her way through K&R soon thereafter, well she's not your mom anymore :-).

  257. Stay away from GUI's by nurb432 · · Score: 1

    Don't make learning any more complex then it needs to be.

    Start with flowcharting/pseudo coding to mold the 'mindset' .. If she gets the hang of that, then try something like FORTH or Pascal, or BASIC. This will teach fundamental programming skills.

    Only after that would i even consider something that is graphical.

    --
    ---- Booth was a patriot ----
  258. 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.

  259. What about ALICE? by Anonymous Coward · · Score: 0

    http://www.alice.org/

    It's visual, has drag and drop, and supports OOP methods.

    I had my kids use it for a couple of weeks in a high school programming class and they said it was their favorite language by far.

  260. Spreadsheet by Roydd+McWilson · · Score: 1

    You could get her started programming on a spreadsheet. It's a nice visual interface that lets you see the results of different steps of your program in cells, and she can actually make use of it to manage her finances.

    --
    THE NERD IS THE COMPUTER.
  261. excel by Anonymous Coward · · Score: 0

    It's easy, it won't scare her, and she'll be able to create useful things. Once she is able to overcome her fears she can move on to VBA, and then on to VB.

  262. 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

  263. 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.
  264. Star Logo by Anonymous Coward · · Score: 0

    Forget Logo, get Start Logo. It was described in the book: Turtles, Termites, and Traffic Jams. With it you can run simulations that show emergent behavior in hundreds of little turtles based on the application of rules. It is fun for novices and experienced programmers. If you haven't seen it before you'll both have something fun to explore together.

  265. Don't poison the poor woman's mind ... by chris_sawtell · · Score: 1
    ... with any of the BASICs. They are all Satanic!!

    I have a friend who came within an ace of total mental collapse when programming a complex data-base application with a web front end using VB. I would not wish that on my worst enemy, let alone my own Mother.

    Ruby ( but the site is down in expectation of the /.ing to come :-) is a mature language which does it in such a way that it's free of all those silly surprises so beloved by so many language designers. In essence it's Smalltalk done so that the rest of us can work with it. O yes, nearly forgot: She'll also need to be able to understand this sort of thing too:-


    SELECT CHILD AS 'My Favorite Son' FROM FAMILY WHERE SEX='Male' AND YOB BETWEEN 1975 AND 1985; -- Put the right years in.

    Perhaps start of with a recipe database using Ruby and PostgreSQL

    Alternatively she could always learn to design knitting patterns -- It's virtually the same act anyway!

    1. Re:Don't poison the poor woman's mind ... by malfunct · · Score: 1
      I started out programming in BASIC, moved on to pascal with little problems and even understood procedures and functions quite well, later learned OOP and did great with that though it took me a while to get rid of some of my procedural bad habits (useful habits in some cases I must say).

      Anyways, BASIC isn't horrible to start with, the key is knowing what parts of your starting language still apply and what parts you should leave behind.

      Maybe I'm a special case but I know many other incredible programmers that started programming in BASIC and have beautiful structured and OO code.

      --

      "You can now flame me, I am full of love,"

  266. rapid-Q BASIC, liberty BASIC, XBASIC, SmallBasic by Anonymous Coward · · Score: 0

    rapid-Q BASIC, Liberty BASIC, XBASIC all can handle windows and graphics. Rapid-Q supposedly integrates well with MySQL.

    Supposedly SmallBasic allows all this and even portability of code between the Windows and Linux OS's.

  267. After she has cut her tooth by foidulus · · Score: 1

    On a programming language, point her over to sourceforge to d/l an interesting program written in said language. Explain the whole FOSS concept to her, and get her to look at the code to look for style elements etc.

  268. Re: by Anonymous Coward · · Score: 0

    fuck you, you fucking fuck.
    Why do you lie? If you're going to quote something that changes regularly, at least have the courtesy to quote the current version. Better yet, look at the current version (4.4.7 as of 31 May 2004) before mouthing off.

  269. prolonged adolescence? by mcsneedy · · Score: 1

    "suitable for adults"? how old are you? aren't most people who code for a living also old enough to vote? when do people reach actual adulthood these days anyway?

    25 - it's the new 18.

  270. Rexx? by kmankmankman2001 · · Score: 1

    I guess what isn't clear in the post is what kind of application might she want to code? That's a potential major influence as to what language. That said, I think Rexx is an excellent, easy to learn and use, yet powerful language that a beginner might try to see if they have an interest in coding. It's available on a plethora of platforms and is quite portable.

    --
    "The bigger the lie, the more they believe." - Det. Bunk
  271. Start with the Operating System by RevDobbs · · Score: 1

    Teach her DOS.

    Teach her what her file system looks like.

    Teach her how so user her "Start" menu. (How quickly an analogy gets lost... none of the [l]users I know look past their desktops for programs; they never start with "Start".)

    Teach her what the difference between a "shortcut" and an actual program/file is.

    Teach her about computer security, at least to the extent that if a website ever wants to run programs on her computer, click the "No" button.

    There are so many better things to teach her that will allow her to get more out of this tool than showing her how to write "Hello World" in twenty different languages.

  272. 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.
  273. bash by kardar · · Score: 1

    How about bash? It is a programming language, and most of us use it every day. It also shows you why command lines don't actually suck that bad.

    It's probably not the easiest thing, no programing language is, but there is not all that much weird logic stuff (you can skip some of it) and you can also apply what you learn immediately to speed up your day-to-day stuff.

    But you haven't installed Linux for her yet have you?

    I recommend that you install Linux or some BSD on her computer and then teach her how to program shell scripts in bash.

  274. 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.

  275. 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.
  276. 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!

  277. FORTRAN by hairykrishna · · Score: 0

    I'm actually serious- as easy as BASIC to learn and you can actually do powerful stuff once you know your way around.

    --
    "Physics is to math as sex is to masturbation." -R. Feynman
  278. 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)

  279. Java by POLAX · · Score: 1

    I think she'll find the Java language is probably the most in-between of all. It's relatively clean with very few machine-specific details and has a nice structure. The other thing to consider is teaching her data-flow diagrams and an overview of objects...

  280. TrueBASIC by MacBorg · · Score: 1

    My first language (other than a minimal amount of HTML) was TrueBASIC - it's really easy to learn, mainly because it involves fairly normal syntax and does not have any odd line terminators. Yes, it has only a CLI, although anyone who was inclined could fake a GUIoid object if they so desired. It is also traditionally very geeky... it is also fun. just my 2

  281. MOD UP PARENT by Anonymous Coward · · Score: 0

    RapidQ really is a good, easy language :).

  282. show her some practical shell scripts, by Anonymous Coward · · Score: 0

    or .bat files. A lot can be done, especially the obvious stuff. A good way to see if she catches on to some of the concepts common to all prog languages. After all she only needs what she thinks she needs, anything more becomes hobby-like until she really understands.

  283. hmm by Anonymous Coward · · Score: 0

    intercal/lisp... if she used to beat you, that is

  284. You're missing the whole point by Anonymous Coward · · Score: 0

    For young people, learning to program using a programming language comes very natural, but to an adult it's very different.

    Start by teaching things like "what's an algorithm", "how computer works". "What are the basic structures (loops, conditionals)". If she gets the grasp of that, I think she could manage any basic (not necesarilly BASIC) language.

  285. Assembler by swamp+boy · · Score: 1

    In keeping with the fine tradition of "...back in my day we had to walk to school through 2 feet of snow uphill both ways", you should introduce her to assembly. If your mother has tormented you in the past go right to machine language (in order to even the score a little -- "Son, why do I have to mess with these LEA and JNE instructions? Well Mom, remember when you used to make me eat my brocolli?").

    BTW, I hear that there is a High-Level Assembler (HLASM) if you decide to take pity on her.

  286. Small steps and usefulness by Odin_Tiger · · Score: 1

    Qbasic to get the basic concepts down...and do it in a way that is useful to her. Many TI calculators use a BASIC-like language. Once that bores her to death, move to something like javascript and HTML (also useful and easy to see real results in a short time). If she's still interested at that point, Java or C#, or if she liked the calculator stuff, try VB, or something like that would be a logical step, or perhaps jump right into C++.

    --
    Unpleasantries.
  287. Prolog for beginners? by Estanislao+Mart�nez · · Score: 1

    For the first example you give, as it happens, it's possible to determine automatically a partial order in which to execute the statements: you set up a graph saying which statements depend on the results of which others, and you just evaluate them in some order that satisfies this. Sounds like a task for Prolog. Well, I'm kidding, of course, but it's interesting that the way your beginners are thinking is accommodated by logic programming.

    1. Re:Prolog for beginners? by Tony-A · · Score: 1

      What you're seeing is that it takes extremely advanced programming to catch up with the way beginners are thinking.

      The out-of-order evaluation is the primary advatage of spreadsheets.
      In a way it's cheating because you get the advantages of programming without having to explicity state the execution order, aka programming.

    2. Re:Prolog for beginners? by Anonymous Coward · · Score: 0

      The difference is that spreadsheets are not procedural, they're declarative. If the person you're trying to teach has difficulty thinking procedurally (although, if they were educated right I have no clue how that could happen), then maybe a declarative language is a better place to start.

  288. BASIC by StarWreck · · Score: 1

    Start with the basics... command line, runs on an 8088 with 64K RAM, BASIC. BASIC is still a very powerful language and is also very easy to master. (Visual Basic seems to have little to do with BASIC)

    --
    ... and in the DRM, bind them.
  289. Macros! by Anonymous Coward · · Score: 1, Insightful

    Teach her to create simple Macros in Word or Excel, or some other program that she uses daily. As a bonus she will be able to use her mad skillz at work too.

    I started "programming" by creating simple macros for WordPefect 5.1.

    Have her learn something that she will be able to use right away and her interest will be peaked.

  290. I have a solution! by SnoBall · · Score: 1

    Euphoria Could be right up your alley, and it runs on Linux, FreeBSD, DOS and Windows. It's powerful, and simple.

    --
    Don't eat me ... *looks at nickname* ... okay, eat me.
  291. HTML by SubKamran · · Score: 1

    I think HTML is great, that's where I started and now I know Javascript, CSS, VBscript, and VB.NET. It's a great primer to programming. This summer I'm teaching myself Assembly too...so there you go!

    --
    Kamran A
  292. I think I understand... by Anonymous Coward · · Score: 0

    If you just type enough, people won't be bothered to read it, and mod you up based on the assumption that something so long must be "insightful". Man, you need to lay off the crack pipe, people are saying html isn't a programming language because html isn't a programming language. Why do you take this as such a personal affront? It seems more like you are the one so concerned about not being a "real programmer", and trying to paint anyone who is a better programmer than you as arrogant.

  293. Karel the Robot by theSpear · · Score: 0

    Karel the robot is good.. 5 commands.. good introuductory to programming

  294. Javascript... by argent · · Score: 1

    Seriously. Javascript is a fairly conventional looking language that has a really clean object model. Oh, there are some horrible compatibility problems between different browsers, but for teaching you can pretty much ignore those... AND the student will be able to produce something that's actually neat and interesting to other people even if they're not programmers.

  295. How about AppleScript (for mac)? by Anonymous Coward · · Score: 0

    It's useful and easy to get started on, and will help to clarify how a computer actually works. It has a fair assortment of basic programming features.

  296. Teach a subset of a language by Julian+Morrison · · Score: 1

    Use a fairly comprehensible language like eg: python. Then teach not the whole language, but a useful subset. print(), for, if, raw_input() and range() are enough to get some simple starter programs going.

  297. Adult? by _Neurotic · · Score: 1

    How deluded can you be sonny? Do you really think that kids have a corner on brain power? Get over yourself. Many of the people you call "adults" were were writing the code that keeps our economy afloat before you were a twinkle in your momma's eye.

    The topic should read more along the lines of "Introducing a neophyte to programming." Age has nothing to do with it. And no, this is not a "old dogs, new tricks" thing. Some people just don't think logically enough to "get it" regardless of age.

  298. Java by rben · · Score: 1

    Java is one of the best languages you can learn programming on right now. It's useful, there are good tools available, and there are lots of books and tutorials.

    --

    -All that is gold does not glitter - Tolkien
    www.ra

  299. 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

    1. Re:Am I the only one... by KnightStalker · · Score: 1
      Am I the only one that thinks Perl or PHP would be a good choice?

      God, I hope so. I'm a professional Perl programmer but I would never, ever recommend it as someone's first language. Both Perl and PHP are good for experts who are getting things done. Both languages are kind of weird in places. Both languages are full of opportunities for newbies to learn to do things in a really really bad way. Well, all languages are, to some degree. But a first language, I think, should be a clean and simple system, like Logo, Scheme, or Python, where there may be more than one way to do it, but the right way is easy and well documented.

      --
      * And remember, it's spelled N-e-t-s-c-a-p-e, but it's pronounced "Mozilla."
    2. Re:Am I the only one... by harryman100 · · Score: 1

      I'm not entirely sure I agree, I think any language is the best language to start with, if it is the easiest language for a project you are interested in.

      A couple of times I have just tried to pick up languages other than the ones I already know. Every time I find that I get bored too quickly if I haven't got something to work on which will have a tangiable useful outcome.

      The best thing to do, is find a project that she is interested in, and then give her a kick start in the right direction. Show her the language, point at the manuals. Makes sure she starts simple, but still useful. Web scripting is great for this, because it can be really simple, like a quick guestbook script, retrieving and storing some information, or it can be very advanced.

      I started out with just some basic web scripting. I was authoring a site and mostly where some kind of dynamic system was necessary I was just using Perl scripts from a free scripts archive. However, my curiosity led me to wonder how these things worked, and I built upon that. I still have lots to learn, and now is the time for me to move away from web based programming/scritping and into something different. All I need is a project, which is both simple and challenging at the same time. I will wait until I get to university for this, and I have some more spare time...

      --
      .sigs are for losers
    3. Re:Am I the only one... by KnightStalker · · Score: 1

      I think any language is the best language to start with, if it is the easiest language for a project you are interested in.

      Depends on the person, I suppose, but I can agree with that. Still, you will have to work at overcoming the bad habits you're almost guaranteed with Perl, and you've probably spent some time trying to figure out what the hell some part of the language meant. A different language might be as suitable for a simple web project but not have those other problems.

      --
      * And remember, it's spelled N-e-t-s-c-a-p-e, but it's pronounced "Mozilla."
    4. Re:Am I the only one... by Anonymous Coward · · Score: 0

      As scripting languages, you don't have to worry about compile or link errors

      You say it like it's a good thing! Please explain, why is a runtime error easier for a beginner to deal with than a compilation error? I'd have thought most beginners would like to know about syntax errors _before_ they start running the program...

  300. Eiffel by Anonymous Coward · · Score: 0

    http://smarteiffel.loria.fr/
    http://www.cetus-lin ks.org/oo_eiffel.html
    Syntactically similar to Pascal, very easy to read and has good attribute feature seperation.

  301. Have her go beyond the computer-centric by keyshawn632 · · Score: 1

    This is obviously slashdot, with most of the replies being programming-oriented and arguing whether or not HTML is a programming language....

    However, [IMHO] , the best things for her to do are ones that transcend the 'typical' computer activities.
    Instead of choosing a computer-focused hobby, suggest to her to impliment a non-pc based hobby/activity/job onto the computer or internet.

    Examples include converting her recipes into a nice database and then print them out and organize them rolodex-style; help her contribute to a computer volunteering foundation, or just volunteer in general, where she could share her skills with others close to her age; convert her old vinyl records & cassettes into mp3/ogg and then burn them onto cd's.

    Those are just a few of the ideas that popped into my head...The key point is to integrate an already-existing activity that she's passionate about with the computer, and not vice versa.

  302. Pascal by infernalC · · Score: 1

    Pascal is a great learning language, especially for procedural programming. It sucks for OOP, but who cares? This is your mom.

    It's got all you need - libraries (units), pointers, easy syntax (Begin, End, etc). Compilers are free, and it translates well into C.

  303. perl by Anonymous Coward · · Score: 0

    I don't understand why people are suggesting languages (Java) where you need alot of background and overhead to do simple things - you may like the language but that doesn't make it good for beginngers who are not planning to be fulltime OO programmers.

    What are the qualities you want in a language for a novice to start with:
    forgiving - perl is very forgiving in terms of syntax and goes as far as trying to guess your intentions (and usually guess correctly), Python is more strict and the whitespace thing cause be puzzling for beginners.
    big early "bang for the buck" - so you don't want to have to have a bunch of declarations or helper classes, etc to do simple tasks.
    natural language like - some languages go overboard on this. And yes perl _can_ be obfuscated but you are not required to write any program in the least number of characters/lines. perl can be as readable, if not more readable than other languages.
    Nice environment - ActiveState has a great (albeit MS funded) perl environment for Windows.

    What other qualities would be good for such a situation?
    Smalltalk and esp. Ruby seem, nice, fairly easy and powerful ruby has excellent support for the Windows libraries and I wouldn't consider Squeak or Smalltalk too childish either. If someone has to learn an OO language I would rather have them learn the full power of OO by learning Smalltalk/Ruby rather than the hamstrung version of OO in Java.

  304. 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.

  305. Programming isn't fun like solitaire by christowang · · Score: 1

    I would suggest she learn graphics + html/css and does some web page stuff. She could put up tips on womenly advice, or maybe a page about a non-computer hobby she likes. She can show it off to her family and friends. This way she can start out with the basics and move up to fancy stuff. If she gets really into it, she could always then learn one of the billions of web programming languages out there.

    1. Re:Programming isn't fun like solitaire by UnrepentantHarlequin · · Score: 1

      True, programming isn't fun like Solitaire. It's a lot more fun. I can code for 16 hours straight, but Solitaire bores me after a couple of games.

  306. 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;)

    1. Re:Feed her hunger for knowledge.... by Anonymous Coward · · Score: 0

      DEFINETLY PERSUE THIS TASK!?????????

      How is it that someone who is capable of the precision and attention to detail required to write software cannot master the English language?

    2. Re:Feed her hunger for knowledge.... by i+chose+quality · · Score: 1

      how is it that someone, who writes up stupid comments, isn't aware of the fact, that not everyone is a natural speaker?

      oh, wait... maybe it's because he doesn't know punctuation?

      read.
      think.
      post.

      --
      the computer is online
      i am not at it
      what a waste of ressources
    3. Re:Feed her hunger for knowledge.... by Anonymous Coward · · Score: 0

      Your punctuation is not correct in this case. I mean no insult to anyone. I just wonder why my previous observation seems to be valid. It's amusing, but puzzling.

  307. Declarative Programming vs Imperative by weston · · Score: 1

    The crux of the argument depends on whether or not programming involves, at heart, must involve developing an algorithm, or whether or not a simple set of declarations describing a desired result count.

    In HTML, you describe a document with some understanding of how a browser will render it. In a traditional imperative or object oriented paradigm, you describe a set of operations to be performed on data. But either way, you're using a language to describe a desired outcome.

    In fact, it's very easy to blur the paradigm by thinking of HTML as a set of instructions given to a browser.

    Then there's functional languages -- or even further, logical languages like Prolog... where you essentially write down a set of definitions -- declarations about the problem space, and let the interpreter perform inferences that make an implicit solution (or solution set) explicit. If you're doing it in the spirit of Prolog, you don't focus on an algorithm -- you focus on describing the logic of the problem -- and it "renders" a solution from conditions. The first few times you do it, it tends to challenge your understanding of what a program actually is. Was there an algorithm described? Or did a solution just arise from describing the problems? Or (more accurately) was an algorithm simply evoked from an understanding of the interaction between the interpreter and declarations of the problem space?

    HTML isn't that different. There's a set of primitives that are used to describe the problem space (the semantic structure and appearance of a document) given an understanding of how an interpreter (the browser) is going to render it. And while the browser/HTML doc abstraction doesn't suggest it when considered in their purest forms, an algorithm *is* still evoked from interaction between HTML code and a browser -- which is why there have existed various hacks to get your browser to do various interesting things, like tie up system resource infinitely (remember nested recursive frames, anyone?), blow up on encountering certain HTML constructions, and improperly execute certain file types without asking you the right questions. The difference is that the abstraction that HTML offers doesn't offer you any set of primitives for creating algorithms that can span the set of possible computations -- it isn't, as they say, Turing complete.

  308. Free Programming Resources by Bodhammer · · Score: 1
    Great Book For Java Thinking in Java

    The How to Think Like a Computer Scientist series is very good for both Python and Java. They also have versions for Logo and C++.

    Scheme is not a bad choice for learning programming and the Sussman book which is the intro CS/Engineering text is avaialble for free also.

    All of the above have open source or free environments and if she learns the material, will have a very good chance of learning a trade and having it outsourced to India!

    --
    "I say we take off, nuke the site from orbit. It's the only way to be sure."
  309. TWIPS by MythoBeast · · Score: 1

    When I was learning the basics of computer science, they taught us to program in a language called TWIPS, the TWelve Instruction Programming System. TWIPS was similar to machine language, and its instructions were (I think) Move, Compare Equal, Compare Less Than, Jump, Conditional Jump, Add, Subtract, Multiply, Divide, Print, Stop, and something I don't remember. Everything that was really necessary to write a functional program.

    You started with 100 memory units and had to write an entire program that did something apparently useful. All values and addresses were stored in character form, kind of like Cobol.

    Programming in TwIPS it was like a puzzle. It was fun and interesting, and not overly complex. It taught many extremely valuable lessons, including how to think procedurally, and how to break a problem into adequately small chunks. It also very clearly helped my students to decide if programming was something that they might enjoy doing for a living.

    I wrote a version of this for a class that I ran to teach some friends programming, but it has no real editing or debugging interface. You just created a 100 character long text file and handed it to the execution program, which gave you a printout of the steps it went through trying to execute it. It would be really cool if I could dig up an original copy of this, if nothing else than for reference, and maybe so I can teach my kids programming one of these days.

    --
    Wake up - the future is arriving faster than you think.
  310. how about Scheme but not HtDP? by Anonymous Coward · · Score: 0

    Scheme is a nice simple language that doesn't have too many complicate constructs, so it might be a nice way to get started. Still, I looked HtDP ("How to Design Programs"), and it doesn't seem well-suited for beginners.

    I glanced at chapter 1, but let's look at chapter 2, where it actually starts getting into what programming is and what Scheme is. I'm going to use what my mom knows about math and programming as an example (since I've thought about teaching my mom programming). The first problem I see is in the first sentence in section 2.1. It mentions "classes of numbers". Even I don't quite know what it means by classes of numbers, and I have a BS in computer science. I have a good idea, but my mom, who hasn't "used math" (as she says) since high school in the early 1960s doesn't know what that means. To her, a number is a number. All numbers are just that. She doesn't know what a rational or a real number is. She doesn't care. Numbers might or might not have a decimal point, but who cares? Whether or not they do isn't important, because you can still add and subtract them and stuff. So already, my mom will be lost trying to understand what classes of numbers are and why this is important.

    In the next sentence, they say that "#i1.4142135623731" is "an inexact representation of a real number". I don't see how my mom is going to be understanding that either. As far as she can see, that is a number except with some extraneous crud at the beginning ("#i"). She doesn't know what they mean by "a representation of a number". I do, but that's because I know about the data types computers use (including IEEE floating point, etc.). But my mom is just going to read over that and mentally note that just some text she doesn't understand, and it's probably time to move on, otherwise she'll never get anywhere.

    So skip down 2 or 3 sentences and we get to some examples of expressions in scheme, including
    "(+ 5 5)" and "(* 3 4)". Then we hear this: "All arithmetic expressions are parenthesized and mention the operation first". OK, great, but what the f--k is an expression? The text doesn't explain this anywhere. How is my mom supposed to know what expressions are when they are really an abstract idea that language designers and compiler writers use to group together syntactic constructs which are usually semantically free of side effects and which often involve operators? And while we're at it, what's an operator? That's another syntactic construct. If my mom is lucky, she's going to maybe GUESS that the plus sign is an operator. But the problem is, this text doesn't explain what an operator or an expression is. It just tells you that they are "parenthesized". Most people can probably figure out what that means, but they will have no mental framework to incorporate it into, so they won't understand the significance of it.

    It's like that Far Side cartoon.

    First frame: "What we say to dogs: 'Okay, Ginger! I've had it! You stay out of the garbage! Understand, Ginger? Stay out of the garbage, or else!'".

    The second frame: "What they hear: 'blah blah blah Ginger blah blah blah blah blah blah blah blah Giner blah blah blah blah blah.'".

    Except, in this case, it's more like this:

    blah blah blah are parenthesized and mention the blah blah; the numbers follow the blah and are separated by spaces.

    Bottom line is, in my mind, if they are going to try to explain prefix notation, then they need to start by explaining notation in general. They need to explain that people write "5 + 5" but that we could write it any other way as long as there are rules that everyone can understand. It's just like Spanish versus English. In English, adjectives come before nouns. We are all do OK this way, but if you wanted, you could put adjectives after nouns like they do in Spanish, and it'd be different, but it works just fine if you unde

  311. My experience with programming by u-235-sentinel · · Score: 1

    I've had similar problems with jumping into programming. I have many years experience as a Sys Admin however I wanted to get more into the development. I've struggled with C and C++. Worked a little with pascal (years ago). Basic didn't sound all that glamorous. Someone recently said perhaps I should try Perl Programming. So I bought a few Oreilly books and forged ahead.

    That was 6 months ago. After studying "Learning Perl 3rd Edition" and moving on to the next couple of books (Perl Programming, Cookbook and the references and modules), I'm getting up the courage to write my first module. The "Learning Perl" book was great for people with little to no experienc. I've noticed some stuff I recall from C/C++ coding as I wrote my Perl code. I get the feeling working in C/C++ will be easier in the future once I'm a little more experienced.

    It's probably not for everyone but it works for me. This Oreilly book was excellent. Designed for a classroom and explains each step of your example code.

    Where to go after this? There are modules that allow you to tap into services such as telnet, ftp, ssh and so on. Heck, Once I wrote a Perl Program that used a module to email me the results :-)

    It's a place to start.

    --
    Has Comcast disconnected your Internet account? Same here. You can read about it at http://comcastissue.blogspot.com
  312. 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.

  313. Squeak is full-blown Smalltalk with great UI by mzimmerm · · Score: 1

    Squek is worth the try .. it's a "different" environment but great for kids, beginners and serious stuff alike. I helped my kids to write a simple "swimming fish" screensaver, took a few days after I played with it for 2 weeks or so. <a href="http://www.squeakland.org/">Squeak is here</a>

  314. 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!

  315. How to teach programming by SFA_AOK · · Score: 1
    On the Uni course I'm on, we started out on Python. I thought this was a nice language to get those who hadn't programmed before introduced to the basics before moving on to something else that did those basics in a more complicated fashion.

    The htdp looks like it's a bit on the dull/hard side for newbies (admiteddly, that's after only a few clicks around but then the OP said that they fell at an early hurdle). I was going to suggest the free book "How to think like a computer scientist - learning with python" but after picking it up off my shelf I realised that though it's easy to me, that doesn't mean it's easy for anyone.

    And that's not because I think I'm brilliant it's because I'm used to thinking a certain way; reading words and knowing what context they fit into; understanding the concepts already; "getting" in-jokes like "foo" and "bar" and so on.

    I think my approach would be to find some material that's going to be good for a person who doesn't have a lot of experience with the technical aspects or computers. It's not just about learning how to do for and while loops, it's about why they're necessary. Unfortunately, I don't have any examples of books that are good for what I am suggesting...

    HTML seems like a good way to go, it's easy, introduces some concepts that transfer to programming and it produces results that are more interesting that "Hello, World!"

    JavaScript MAY be a good direction after this but it depends on how much your mum wants to know (JS can lead to some bad habits - true of most languages though and if she's not going to do much beyond HTML + JS, then what's the problem with a few bad habits? ;). Is she going to start the next big, complicated project on SourceForge that makes you tea and toast whilst doing your accounts? If so, perhaps a language that isn't tied in with browser technology might be the way to go. If on the other hand, programming in C++, Java etc are not going to be of any use to her... why bother? Javascript ties in neatly with HTML so you can make web pages seem even "cooler." From what I've seen, some of the syntax looks tricky but then I've not learnt from the ground up.

    You could substitute in PHP or Python for Javascript in the above paragraph I guess, but let's face it, they are all going to present their own problems.

    It really is going to depend on how deeply she wants to get into it (which could be affected by how she is introduced to it etc etc). I'd say finding material that's going to treat her like a newbie is your best bet. Alternatively, give her Knuth's books and tell her to come back when she's taken it all in :)

  316. WiseScript/SMS Installer by Break.The.Ice · · Score: 1

    How about WiseScript/SMS Installer. I believe that you can download SMS Installer free from the Microsoft web site, they (the Wise and MS versions) are basically the same program. All the commands available are listed on the left hand side, syntax errors are nearly impossible, no need to setup variables (altho you can), but IF/ELSE statements and while loops are available. Select your command from the list on the left hand side, a fill in pop up box appears for you to complete the details and you're done. Eg. select the "Delete file" command, box appears, type in name inc path of file to delete, check or uncheck the 2 options: 1. Include sub directories 2. Remove the directory containing the file. VERY EASY!! Even easier when you see it in action. You can compile to an exe and it is not limited to installations. It is actually quite flexible and when you get more advanced, you can learn about custom actions to add functionality eg. Calling DLL functions. I use it as a quick and easy way to get things done. It should give your mom confidence without jumping in at the deep end. At the same time, she should be able to achieve useful results. Cheers Chris

  317. 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

  318. Batch programming and Shell Scripts by zslootsky · · Score: 1

    I know the first kind of programming I ever did were simple .bat files on my dad's old windows 3.11 box.

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

    http://www.realbasic.com

  320. 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.

  321. REBOL by Anonymous Coward · · Score: 1, Interesting

    REBOL www.rebol.com
    Free small, cross platform, interpreted scripting language. Whole development setup less than 0.5MB with GUI and command line.
    These one-liners give a good taste of what you can do really easily.
    oneliners

    Complete example code:
    ; Send an email to someone
    send aperson@aserver.com "Hello from REBOL"
    ; grab an html page from somewhere and display it
    print read http://www.google.com
    ; GUI with a button to send someone an email
    view layout [ button "Send email" [ send aperson@aserver.com "Hello from REBOL/View" ] ]
    ; Run some code directly over the web
    do ftp://aserver.adomain.com/script.r

    Many built in data types to make it easier for new users
    ; eg
    >> type? 3-may-2003
    == date!
    >> 3-may-2003 + 1
    == 4-May-2003
    >> type? $12.99
    == money!

    Very powerful and extensible language. Hints of basic, lisp, scheme.
    Above all, great fun to code in.

  322. The 'table' isn't getting phased out, 'a' is. by Trejkaz · · Score: 1

    I can't tell if this is a troll, but I should let readers know that the <table> tag is in fact not getting phased out any time soon. Tables are of course a big requirement for representing tabular data, even though a whole bunch of idiots use them for page layout.

    However, the <a> tag probably is getting phased out.

    And no, I'm not joking about that..

    --
    Karma: It's all a bunch of tree-huggin' hippy crap!
    1. Re:The 'table' isn't getting phased out, 'a' is. by Froug · · Score: 1

      Tables are of course a big requirement for representing tabular data, even though a whole bunch of idiots use them for page layout.

      You mean like slashcode?

    2. Re:The 'table' isn't getting phased out, 'a' is. by Anonymous Coward · · Score: 0

      Yes, I agree that CSS is far better than tables for doing layout. However, for many years, the only way to lay stuff out on a page was to use frames or tables. If anyone remembers the bad old days of needing to make a table with a black background, then put a table in that table with a different color scheme to get a nice black boarder (this is far easier now that CSS is the norm), CSS is a breath of fresh air.

      That said, my page still uses tables for layout because I've been using tables for so long for layout, it's second nature to me. A bad old habit I hope to break next time I redo the layout of the page; that said the mouseovers and the nice borders are done with CSS.

      Interesting thought: Did you know that the look of Slashdot is virtually identical in Netscape 3? It's one of the few modern sites which renders decently in this ancient browser. I really think Slashdot should use CSS, since it's annoying the way slashcode puts in random spaces when people write long strings.

  323. 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.

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

    -Alex

  325. Too bad there's not a +6 by Anonymous Coward · · Score: 0

    Your response is head and shoulders above what I've read so far.
    Find an itch to scratch, then look for the toolset.

    gewg_

  326. Not just HTML... by eruanno · · Score: 0

    So, HTML is a great possibility... Just think, if she learned JavaScript or PHP (et al), she would (for the most part) need to know some HTML to get at least the very basic output formatting... Plus, the other definite positive to HTML is that it is almost instantly deployable (and if you get PHP or what-have-you, it requires no compilation, just a simple Apache/PHP setup on the computer which is fairly easy to set up). However, there are other, more creative, less boring for a grandma, ways to learn programming or at least how to instruct a computer. Take a look at simple game creators such as the Official Hamster Republic RPG Creation Engine (http://www.hamsterrepublic.com/). It's a simple DOS-based application that requires very little programming to get some kind of action, and really allows for the creator to develop a story with some complexity behind it (or it can be as simple as she wants it to be). If you don't like that idea, there's always Basic or even Perl or Command-Line PHP (or Python, Ruby, etc etc etc). Good luck, I hope to hear how this turns out! Haha. Matt

    --
    "Support Bacteria - Its the only culture some people have" - Circa 1985
  327. BASIC by Yynatago · · Score: 1

    BASIC is a nice simple programming language to learn, I'm sure you can recover a old qbasic program somewhere.

    Its what I started on, but then again, I'm just a VB Guru.

    --
    - No, I am not your imagination
  328. Javascript is a hairball -- try Perl by UnrepentantHarlequin · · Score: 1, Insightful

    It's a quick and easy fix for someone who wants to "make their computer do something".

    Only in the sense that word processing is.

    It also tends to push the person to learn Javascript...

    Trying to learn Javascript as your first programming language would turn off a lot of people. We only think it makes sense because we're geeks, and generally OOP geeks at that. For someone who isn't quite sure what a variable is, let alone what an object is, Javascript would be a nightmare.

    I'd suggest Perl. Yes, really complicated Perl code can get so hairy that fur grows on your screen, but in the main it's a clear, straightforward language. It's also a very forgiving language. It will try its hardest to do what it thinks you want, unlike, say, C++, which seems to delight in shrieking "You didn't say 'mother, may I'!!!"

    Despite those people who claim it turns people away from from programming in the One True Way, BASIC also has some notable advantages. One of those is the availability, via the used book dealers, of this book and its sequels.

    Come to think of it, I could have a lot of fun replicating some of those games in Perl.

  329. 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.

  330. Don't start with the technology by Darth_Burrito · · Score: 1

    I see suggestions for virtually every programming language under the sun, and I don't get it. If you want to teach someone how to do something computer programmy, find a task they are interested in accomplishing that requires programming skills. Then help them learn how to accomplish this task. Don't put the technology in front of the purpose for the technology.

    The question then is, what would your mom want to accomplish? A lot of tech people I know like to make their own web pages that they read kind of like a morning paper. Mine had news blurbs, comics, movie times, and links to a few other sites. This is the kind of thing that might be achievable with a little html and perl. Then again that's two technologies already and you'd also need regex/lwp/scheduling. It might be a little tough for a first venture into programming.

    Another possibility you may want to consider is that your mother isn't really interested in learning a programming language, she's just interested in getting a better understanding of something her son is interested in.

  331. Re:HTML - YES IT IS A LANGUAGE by jackb_guppy · · Score: 1

    HTML is programming. It is the coding language to control screen presentation.

    Does it do useful work? Yes
    Is it simple to understand? Yes
    Is it hard to get right? Yes
    Does it control disk I/O? No

    It is this last part makes most think of it *NOT* as a programming language.

    Best part, it is free to use on about every machine.

    Then again most do not understand that printf function in used in C is a language unto itself. It is not an extention of C, it is function that alot use with C.

  332. Forget about it by ttyp0 · · Score: 1

    Programming isn't like learning how to knit a blanket. You're either adept to programming or your not. I'm tired of hearing from people who think .. hey I'm smart, I could do that. No, you can't. It takes a special kind of person and way of thinking to be a good programmer. I like to compare it to singing. Sure, I could take vocal classes to train me to sing, but will anyone ever pay to hear me sing, most definately not.

  333. Re:"But I always wanted to learn to play the guita by malfunct · · Score: 1

    I get what you are going at, but along another different but related line, the problem may not be the language used but instead the teaching method being employed.

    I've found that most people with even a small interest in programming (yes I've found some to where this won't apply) will understand how if you find the right approach to explaining it. The key is to start small and keep trying new ways to explain stuff until it sticks. The approach that worked well for me way back in the day was the BASIC programming book included with the TRS-80 color computer. If I were to attempt to teach someone to program I'd use that book as a model in the language of my choice.

    Important features of a language to teach a beginner are:

    • Interpreted language, removes complication of compilation. It should preferably be a language where the execution and editor are mixed together. Its nice to type a few lines, and then type run (or click a "run" button) and see the results. One that has a debug stepper right inside the editor would be excellent as stepping through a simple program seems like it would be a great way to help explain what is happening from step to step. I think that maybe Oberon has that sort of feature built in, and I'm sure there are free distributions of it available.
    • A small set of well defined errors that have decent explainations. They should quickly show you where the error is in the code and give you a very good idea whats wrong. Syntax Error doesn't seem like it fits the bill, but it would direct you to a line number, possibly even a column number, and would tell you that "you made a typo of some sort".
    • No requirement to "delcare" variables. Later in life its very important to have the type checking that this provides but for beginners it makes no sense. They want to say that "myVariable" gets the value 10 + "myOtherVariable" and just have it work without special "preparation" steps.
    • Allows useful programs with a minimal set of verbs. I think that you should be able to do many things while only needing to know assignment, a simple output statement, a simple determinent loop structure (for loop, not while loop), a simple decision statement for branching (if - else fits the bill). All the other fancy stuff can be left out until much later. Of course the programs will start out very linear (looping just goes back in the line and repeats stuff, and the branching skips lines you don't need at that time) but thats fine to start out.
    • A limited number of types. Strings and Numbers are all that is really necessary. It would even be nice if the language knew how to automatically convert numbers into strings and numerical strings into numbers but its not a requirement.


    If you have a language that has extra features than those listed above I'd highly recommend "hiding" them until the learner has mastered what I have shown. Once they are at that point of mastry it shouldn't be too hard (though I have been surprised) to introduce concepts such as modularity by using functions and procedures, more complex branching and looping and a whole host of other things.

    --

    "You can now flame me, I am full of love,"

  334. 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.

  335. 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.

    1. Re:What about Pascal? by sht_london · · Score: 1

      I must support Pascal as a first programming language. Honestly: My C++ still looks a lot like Pascal ... Also: Pascal restricts the worst things to do and has a strikt type check - always a benefit.

  336. Re:My Suggestions - Good Python Book by gridlock-lkdn · · Score: 1

    I agree the the oreilly books are good - Python in a nutshell is wicked for learning the language if you can program, so will probably be great for someone teaching it. for the beginner howerver i think you might find Mark Pilgrim's free book 'Dive Into Python' (http://diveintopython.org/) good - it solves a bunch of interesting problems, and does it in a hands on 'how to program suchand such ' rather trying to be as complete and scientific all at once.

  337. Karel (k++) by EdMcMan · · Score: 1

    Karel is an introduction to c++. Basically, the object is a robot and you move him around and make him do stuff with beepers. Very simple programming.

    The most complex thing I ever did was make a calculator. Since Karel doesn't have any arithmetic or variables (per se), it was a challenge.

    Here are some fundamentals that describe the world a bit more.

  338. VBA by Anonymous Coward · · Score: 0, Troll

    For all the talk of QBasic here, there is already a version of Basic that is powerful, easy to learn and has a killer IDE. It's VBA and the chances are great that his Mom already has it, seeing how it's embedded into all the Microsoft Office apps starting with version 97. When teaching someone to program (and I used to do it professionally before I started coding for banks), I always found it helpful for them to see results in the environment they're comfortable with and use everyday. Everyone knows what Word looks like, and it's easy to write one line programs that actually manipulate visible objects on the screen. Once a person is comfortable with that, it's easy to start teaching why loops are important. From there it's a short step to Sub's and Functions, which begets classes and so on...

    VBA allows for nearly all of the advanced features of Visual Basic, including forms, classes, file manipulation, use of COM objects, etc... The IDE allows for easy browsing of object libraries, so new users don't have to memorize long strings of object properties. The help system is extensive and the user base (www.deja.com) is phenomenal.

    I find VBA to be one of the most underappreciated languages even though it is at the core of manipulating the most widely used desktop software in the world. The banks I have worked for trust it with billion dollar operations for a reason. Not only does it lend itself to RAD development, but it's simple enough to learn that the bankers and traders who use the applications won't be intimidated by it. Most of the apps I've rolled out have seen tremendous improvements by amateur programmers hungry to pore over the VBA code. While they might not be able to optimize my tree search algorithm, they can certainly pick up on most of the basics. Basics...hmmm, that sounds like a good name for a language. :-)

  339. Prolog is the answer... by Anonymous Coward · · Score: 0

    Sorry, had to suggest it - everything else has been!-))

  340. tutorial geared towards moms by pdamoc · · Score: 1

    Is not about languages dude is about tutorials. Here is a link for a tutorial geared towards moms:
    python for moms

  341. applescript by philge · · Score: 1

    It has an english like syntax and you can make your scriptable apps to useful stuff. Con's: can be very frustrating Pros : can be very rewarding Plenty of sample code, its free with every mac

  342. read into it by martinflack · · Score: 1

    Your mom isn't trying to learn programming, it's just her way of trying to identify with some control over the computer. She's asking you to help her understand the computer, that's all. What she really needs is for you to sit with her for a couple hours and show her fun stuff like web browsing, email, IM, etc.

  343. Suggestions by rneches · · Score: 1
    The big question is this -- what would she like to be able to do at the end of the day? Does she just want to program for the intellectual challenge of it? Or does she want something to tinker with? Or, does she want to learn a skill? (I really mean a skill, in this case, not a vocation.)

    If she's interested in programming as an intellectual challenge, I think PLT-Scheme's DrScheme is your tool of choice. I've never used HtDP, but just following the built-in tutorials that come with DrScheme is very instructive. This is especially true if you are willing to set aside the goal of building some particular program. When I get bored, I will occasionally do a problem or two from the DrScheme tutorial. It's much more fun than dumb desktop games like Solitare. Personally, I think of it more as solving puzzles than as "coding." (It's also a Debian package, so life is good.)

    If she wants something to tinker with, I suggest getting a little colo box (a UML box isn't too expensive) and hacking around a little with apache, perl, python, shell and web-ish stuff. It's not always strictly programming, but it's a lot of fun and results can be seen without a huge amount of time/knowledge/effort, and she'll have something tangible for her efforts. Well, as tangible as anything in computing can be, anyway.

    --
    In spite of the suggestions and all the tests that I have made, I have not cavato a spider from the hole.
  344. Flash - for instant gratification by x3ro · · Score: 1

    My own introduction to programming was through Macromedia Flash. I learnt about HTML later (and thence JavaScript, Perl, PHP, Java, C, C++ ..)

    I think this was the ideal introduction because I was able to do animations immediately (instant gratification), just by dragging things around, using non-code skills. As time went on, I learnt to add little bits of code to buttons and so on. Then I realised I could make things happen just with code. As time went on I outgrew it and moved on to greater things. But without the gentle learning curve, I don't think I could have got a handle on why it would be a good thing to know how to write code, and so I'd never have bothered ('Hello world', so what, I could say that myself) .. and coding whole apps seemed way too remote. Flash provided a great first step.

    P.S.: I'm sure I'll get flamed for this. But who gives a monkeys.

    --
    [ UNSIGNED NOT NULL ]
  345. Brainfuck! by Anonymous Coward · · Score: 0

    Hey, get her to learn Brainfuck! It's so simple! It's Turing with numbers! Easy, only eight commands to learn, and you're done!

  346. BF by DMUTPeregrine · · Score: 1

    BrainFu*k of course! It's the simplest language around. Here, I'll teach it to ya. Make an array. It's like a bunch of cups. You have a pointer. it's like a funnel. You can increment or decrement the location of the pointer (move the funnel a cup to the left or a cup to the right) You can increment or decrement the value of a given array location (add or subtract a marble to the cup with the funnel.) You can do a "while" loop. It works like this. You say, While there is more than one marble in this cup, I'll do the following steps, then go back to this step and check again. You can get input from a user (add a given number of marbles to the cup.) You can output to the user. (count the marbles. 1=a, 2=b, etc, 27=0, 28=1, etc (actually ASCII of course, but that makes it easier.) Increments the location of the funnel. + Adds a marble. - removes a marble. , Gets input. . Gives output. [ Starts the above mentioned While loop. ] tells where to loop back from. there. Turing complete programming language, and only eight operators. Of course, getting it to do anything other than a simple hello world, basic math, etc CAN be a tad trying at times, but it's easy to learn!

    --
    Not a sentence!
  347. don't complicate your life by Wolfier · · Score: 1

    teach her photoshop instead.

  348. Easy Assembly Language by Anonymous Coward · · Score: 1, Informative

    You just have to make some macros...
    And a little program that allows you to put multiple instructions on one line seperated by semicolons...
    And then start using # signs for comments instead of semicolons...

    But really, it can be quite structured and easy.

    Some Structured Assembly Language

    It's just that most assembly programmers are bent on keeping things difficult for some reason.

  349. What applications would she be interested in? by Haydn · · Score: 1
    All of the times when I've learned a new programming language, it has been because I was interested in doing a particular something, and that interest drove me to do the necessary reading, writing, debugging, and learning.

    A good conversation to have with your mother would be to ask her what she would be interested in writing a program to do.

    Once you know the answer to this question, that will guide your choice of programming languages/environments to recommend to her.

  350. Oops by Jerbiton · · Score: 1

    Right you are; I forgot to include the comefrom construct and its equivalents in the vice-versa.
    Let us split this humble-pie, and I'll scurry out of view before this spirals any further from the topic.

  351. assembly ! by rkoot · · Score: 1
    Nono, no joke.
    I wouldn't recommend 386 assembly (too complicated to start with), but she might take a look at DroidBattles.
    it's a game dedicated to programming.
    You use a simple assembly variant to program a droid's hardware in order to obliterate your opponents in an arena.
    It's easy to learn, it comes with tons of documentation and the examples are very clear
    If your mum is able to program a droid, i386 assembly shouldn't be too hard to learn for her.

    r.

    1. Re:assembly ! by rkoot · · Score: 1
      BTW. you can find DroidBattles here:
      • http://www.bluefire.nu/droidbattles/

      r.

  352. Bash by UrbanAnjar · · Score: 1

    Teach her e few unix/linux commands and then teach her to use pipes and other fundamental shell tricks. That's 'programming' om a high level where she will be able to build something useful in short time.

  353. Ada by Anonymous Coward · · Score: 0

    Have you considered Pascal style languages, like Ada?

    They're good for teaching, and once she has the hang of say, Ada, it would be easier to move on to a more complicated language.

    I would avoid trying to start someone off on an object oriented language.

  354. Non-programmer's Tutorial for Python by Anonymous Coward · · Score: 0

    Have you checked out the Non-programmer's Tutorial for Python?
    I'm currently having success teaching my wife how to program with it.

  355. a more thorough html response by Anonymous Coward · · Score: 0

    The reason to start with html is that it gets people involved in a development cycle without putting something hard in front of them first.

    There are patterns and workflow tricks that you learn that really make the difference no matter what you code in. You learn the way of going about things, get some research skills and teach yourself to program. How many people feel that's an accurate description of how they got into it?

    HTML has a fast turnover time for that cycle (people see their results real quick) and leads to more advanced things. Javascript is object oriented and it's syntax is like c. Then they work their way into PHP and PERL.

    HTML is an interface thingy. Learning how to do it involves the use of a text editor and QA. Over and over again. Then there are bits you can pursue that involve logic and flow control.

    The real problem here is motivation. HTML is an easy baby step that can lead to some more advanced things. A little motivation goes a long way.

  356. lies! by Anonymous Coward · · Score: 0

    >She asked me what I do on my computer and I told her that I was teaching myself programming in Scheme.

    So you lie to her and tell her "programming" is how you spend your time (have never heard of browsing porn referred to that way) and we have to suffer through helping your alibi?

    1. Re:lies! by Anonymous Coward · · Score: 0

      MOM: What are you doing?
      SON: I'm programming, mom!
      MOM: It smells like lotion in here- What on earth is that plastic bag doing over your head?!

  357. Teaching programming by awol · · Score: 1

    I went to university in the eighties to learn comp sci having played wth basic for a number of years before hand. It took me a bit of time to grok procedural programming over the years of my degree program e went from pascal to prolog and throughout the whole thing the best lessons came from knowing the math of logic.

    Seriously, if you want to teach your mum (sorry, mom) to program start by teaching her the basics of logic. From there you can use any language, java, javascript, scheme, haskel to demonstrate the specific implementation details until she gets the bug and picks a project to run with.

    --
    "The first thing to do when you find yourself in a hole is stop digging."
  358. Graphical languages like PD or jMax by tedboer · · Score: 1

    I'd go for a graphical programming language like PD or jMax . While mainly aimed at musical applications, you can do a lot of generic stuff or graphical stuff as well, and the whole concept of interconnecting "little machines" with "wires" is easy to learn.

  359. Python by Anonymous Coward · · Score: 0

    I think she could learn programming with Python.

    Instant Hacking : Learn how to program with Python

    This is an excellent article which explains the basics of programming, with an analogy between a program and a recipe. It is very well written and progressive to teach the different concepts of programming (what is programming, variables, loops and so on).

    And Python doesn't seem to be "too complicated" at all to learn programming... Its syntax is the simplest I know, and if you don't do "complex" things it is very easy to understand, even for a total beginner.

  360. I know the perfect language. by fwc · · Score: 1

    Only 8 instructions to learn, fully Turing-complete, implementations which run on almost anything, and a name sure to get your mouth washed out with soap just for mentioning it.

  361. Start with the REAL basics by vikingpower · · Score: 1

    Programming means, in whatever sense you turn it: handling ( an implementation of ) logic. And logic is math. Logic is also a domain of philosophy. So start with teaching basic math - set & group theory + logic - and Aristotle's philosophy to your mum. If she survives that, she can survive assembly, Logo, VB, Java. IF she can't, she won't.

    --
    Religous speak to God. Insane are spoken to by God. When all shut up, one can finally hear Shostakovich in peace
  362. MOD UP PLEASE by Anonymous Coward · · Score: 0

    Mehe.

  363. RTPMatt, it's time to go... by Anonymous Coward · · Score: 0
    Please delete your Slashdot account immediately, and refrain from posting for the next sixteen(16) months. After this period, you will be required to write a five(5) paragraph essay explaining why you had to leave, and submit it as an article.


    Please limit your use of the internet in general to ninety(90) minutes per every seven(7) days. This time is not cumulative.

    RTPMatt, it's time to go...

  364. Try Perl or for the bold - Lisp by q256 · · Score: 0, Flamebait

    As far as learning to program :
    I would very stongly avoid the web side of the programming world. It is way too full of oddities which will not aid in teaching programming skills. "Which browser" is a difficult first question to ask for most web programmers to start out with, and everyone know they still miss that one.

    Perl is a good area to learn a powerful skill that would be beneficial to move forward to the next language / script. Hey, if a script kiddie can bring an internet site down... mom could too.

    For the bold mom :
    Lisp - get her to make self learning program to WIN that solitaire game, make a mega EQ bot - RAM / HD space is cheap now cheep.

    --
    Once upon a time, a soon to be mommy and daddy loved each other very much (the lust was strong as well as the drinks)
  365. Python, Java, Acorn by Anonymous Coward · · Score: 0

    Python is an ideal language for teaching people about programming, it has very clear structures, and even the OO support is simple to grasp. The availability of a python language CLI is a huge bonus.

    One disadvantage of Python maybe is that it doesn't have a nice graphical API. Using computer graphics while learning to programme helps a lot (and it's addictive ;-) ). Java might be much harder to learn than Python, but the graphics APIs (and especially the ability to throw out a quick applet) might make it the choice of a current generation.

    Finally maybe you might be able to get hold of an Acorn machine. Be it an Archimedes or a RISC PC, these machines are ideal for teaching (it's a major design goal of these machines). The manuals are well known for their tidyness and readability, and you could even learn everything there is to know about programming straight from the full set of manuals (though some teaching is always handy).
    The OS has a built in BASIC interpreter which supports structured programming. There's a CLI available for it, naturally.

    There's interesting ways to teach people about structure when you also have GOTO available, but I'll leave that as an excersize to the reader. :-)

    Having a CLI available in the langauge of your choice is a great boon. Writing statements at a command prompt is a much faster cycle than edit-compile-run. (An alternate language that supports a cli is scheme)

  366. Empire by RedLaggedTeut · · Score: 1

    Yea, show her that "popular" internet game Empire, I mean the text networked version, not the flashy stuff that you kids know .. heck even C&C is 3D now .. . The text interface to Empire is so annoying that your Mom simply will have to learn programming and write her own client .. probably in Python and Tk. ;-)

    --
    I'm still trying to figure out what people mean by 'social skills' here.
  367. HTML then move to PHP by robstarr · · Score: 1

    It's a fantastic way to get instant results (HTML) then when she is good at that, throw in some php and she can access database and whatnot, do loops, all the jazz. REALLY good way to get people into programming. Add the ability to show everyone her work and she'll be hooked ;)

  368. Gödel, Escher, Bach by ebbe11 · · Score: 1
    by Douglas Hofstadter.

    This book teaches a lot about logic, patterns, complex systems and (as a side effect) the basic structures of programming (sequence, iteration and choice) - and a lot of other fascinating things. If she reads this book and finds it interesting she has a chance of learning how to program. Otherwise, I'd suggest that she picks up other pastimes that will more easily hold her interest

    --

    My opinion? See above.
    1. Re:Gödel, Escher, Bach by vikingpower · · Score: 1

      True, it teaches a lot. Good start. Just take care that mom doesn't buy a ticket, after having read it, in order to enter a Zen monastery.

      --
      Religous speak to God. Insane are spoken to by God. When all shut up, one can finally hear Shostakovich in peace
  369. 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!

  370. I beg your pardon?!? by anothy · · Score: 1

    Did you just call Mindstorms "childish"? Ohh... you and i are gonna' have words, mate! :-)

    i actually got paid for a week to reconstruct a lego clock model without instructions. then another few weeks playing with software for it. it was good times.

    --

    i speak for myself and those who like what i say.
  371. Re:Or Python by Anonymous Coward · · Score: 0
    stripping whitespace? I don't know what you're talking about.
    I did a lot of my early programming in QBasic, (though I started with gwbasic), it is a good language for beginners. But Python is also good:
    for i in range(1, 10000):
    print i
    range() is a wart in the language, but the basics of the language are on the whole very nice. Python is a complicated language, but the basics for functional programming are quite simple; the complication can be ignored.

    BTW, what the heck is up with stripping whitespace?
    I see no stripped whitespace.
  372. QBASIC by CanadianCrackPot · · Score: 1

    Qbasic is pretty simple, even my sister the technological disaster sould at least read some of what I was trying to do in that so there's hope.

    --
    Good programmers drink beer to relieve job stress.
    Great programmers drink hard liquor and work best hungover.
  373. Pascal/Delphi by turgid · · Score: 1

    Something nice and simple like a modern pascal or Delphi could be a good introduction. The syntax is clean and readable and you have nice things like array bounds checking. You can get Free pascal compilers for *nix and I think you can do Delphi on Linux in the form of Kylix. Modern Pascals have object extensions, so once you've mastered the basics you can start learning about encapsulation, polymorphism, inheritance etc. It should be a relatively easy jump from there to Java or Python or something. I recommend keeping as far clear of scripting languages like PERL for as long as possible until the student has learned good practices. PERL is the 1990's equivalent of BASIC.

  374. Obvious choice by slavemowgli · · Score: 1

    Just teach her APL, and she'll have learned a lesson for life. :)

    --
    quidquid latine dictum sit altum videtur.
  375. learning programming by Anonymous Coward · · Score: 0

    One of the best intros to programming is BASIC. Not the visual kind but the stuff one use to get in most introductory classes. There you learn the early processes quickl. Let,goto and other commands introduce one to the concepts of programming. HTML is a good introduction but the actual programming concepts are almost automatic in Basic.

  376. Perl as a first language by frankie_guasch · · Score: 1
    Forget the myth of Perl. It is a full featured language made by a linguist. That makes it fine as a first language.

    Beginning programmers took quickly to Perl because "it allows you to express yourself naturally." For instance, the automatic conversion between string and numeric types is what non-programmers expect:

    the string "3" doesn't mean 51; it means 3. And if you add "4" to it, you expect to get "7" back.

    In this article you'll find an interview with Simon Cozens about this very issue. There are experiences about theaching perl as a first language that will surprise you.

    Cozens firmly believes that Perl should be a first programming language. "Oh, absolutely! It's ideal because it's a real-world language, unlike one designed specifically for teaching, such as BASIC (Visual or otherwise). It's a high-level language that deals naturally with natural concepts like strings and lines of text, unlike something like C; and it allows easy data and text manipulation without a tortuous syntax, unlike something like Python or Tcl. In fact, I don't know if there's a better first programming language."

  377. Are you out of your mind? by Qbertino · · Score: 1

    Sorry to ask this question that way, but even the first page of that book you link to gives me the creeps. And I make a living of writing Software.
    How did you get the Idea that a book like that would bring your Mom closer to what computers are all about???

    Show her someting PRATICAL! Such as how she can sort the adresses of her friends by name or how she can automatically rearange knitting maps with self made algorythims. Use "O"s "X"es and other characters to resemble different knots.
    In case you've forgotten: Computers emulate primitive aspects of human thinking and automate these. Give her examples of this to show her what makes these machines so fascinating. With numbertheory and all that stuff she'll never grasp what you're so exited about.

    On a sidenote: I'm right now building my mother a new Linux box. It's her first computer. She's 64 years old. I showed here the screenshots of Fluxbox, KDE and Windowmaker (all three of which I know best) and explained the up's and downs of all. She chose Windowmaker. She's going to do Content Management for me, helping me out a little and that will enable us to pep up her pension a bit. She wouldn't have touched a computer with a ten foot pole if I would've bugged her with spaced-off computer science and number theory.

    As PL for what you want to do I recomend Python, because it's the most consitent of the modern ones. Perl, Scheme and whatnot are much to quirky and have to much historically grown inconsitencies to be understandable for someone new to the field.

    Bottom Line: Whatever you do, stay practical and try to remember what fascinated you about computers and programming when you got involved. I bet it was something like infinitely printing out 'Pogo was here!' in a Basic loop on the c64 or something like that... That's almost where you should start of anybody else aswell.

    --
    We suffer more in our imagination than in reality. - Seneca
  378. Scheme? by TVC15 · · Score: 1

    > She asked me what I do on my computer and I told her that I was teaching myself programming in Scheme.

    Is that the best thing you could think of to keep from telling her about the pr0n?

  379. Java? by blue-rabbit · · Score: 1
    Java is now being taught as a first language at UK universities, but I'm not sure about how she would take it. Has anyone come across the Robocode game before? It's helping a few people I know learn how to program.

    Robocode

  380. 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.
  381. Java? by blue-rabbit · · Score: 1
    Java is now being taught as a first language at UK universities, but I'm not sure about how she would take it. Has anyone come across the Robocode game before? It's helping a few people I know learn how to program.

    Robocode

  382. Re:bash, sql, tcl\tk by Anonymous Coward · · Score: 0

    the question is - what for?
    we program to automate some tasks.
    if there are some tasks to be automated for your mum, let her use tools that are not too far from human language.
    She could fill family expenses to *sql, make some queries and it'll be almost readable and definitly usefull, not like perl or bash one-liners.
    If her interest grows, then will be time for other tools, like tcl - where you, as system archtect, implement some interfaces - for tasks she explain.

  383. Turing Machine! by cpghost · · Score: 1

    Why not teach her to program a turing machine? Or a register machine? Or recursive functions? Once she has learned the concepts, she can implement Scheme, Assembler, C, whatever. And best of all: no hardware (except pen an paper) required.

    --
    cpghost at Cordula's Web.
  384. Java w/ Bluetooth Technology by NoThumbsForMe · · Score: 0

    Teach her some Java. Bluetooth just released an API for Java. I mean frick, then she can learn to program shit to cook, clean, and wash the clothes. Maybe even an ass whooping device, when the kids won't move their ass around the house. I think your mother will find it interesting to say the least. A world of Bluetooth in that sense is definitely a "mommy's utopia."

    --
    now stand up and smell your chair...
  385. Inform by jonadab · · Score: 1

    If she shows any interest at all in text-based games, introduce her to Inform.
    About a third of the people who learn Inform do so saying, "I'm not really a
    programmer, I just want to create this game I have in my head..." Some of them
    move on to other languages later.

    Inform is really good for teaching object-oriented design, too. It was my
    third language, after GW-BASIC and Pascal, and it revolutionized the way I
    thought about certain kinds of programming problems.

    Also, the Designer's Manual is really top-notch, especially the section on
    the object-oriented world model with the Ruins example game. It's a joy to
    read. Really excellent stuff. Recommended.

    --
    Cut that out, or I will ship you to Norilsk in a box.
  386. Re:Hypercard - Mac hardware fit to run HC on by Anonymous Coward · · Score: 0

    A Mac that runs HyperCard will be virtually any Mac that is available in the second-hand market.

    A Mac like a Power Mac 7600 or 7300 would be comfortable to use for HyperCard development work - expect to pay no more than $50 for the hardware, maybe less (excluding display, but you can use most any PC display with an adapter).

    A Mac like an early G3 (beige) would be very generous to use even for advanced HyperCard development work - expect to pay $100, maybe $120 for it.

    HyperCard itself runs nicely under Mac OS versions between 7.something and 9.2, including Classic under OS X.

    Remember, HyperCard/HyperTalk has taken the natural-language (English-like, that is) approach to an all time high, compared to all other programming languages past and present.

    As Apple has stopped selling HyperCard just two or three weeks ago, there should still be packages available in the distribution and retail channels. Make sure to try Amazon too, if other wells should have dried up.

  387. Runtime Revolution by sproketboy · · Score: 1

    http://runrev.com It's based on Apple's Hypercard. Pretty easy to create simple apps. Cross platform as well.

  388. C# and .Net SDK ... no, I am serious by JamesR2 · · Score: 1

    I found that the SDK samples are simple enough to learn fast and build confidence, but useful enough to work the concepts into real apps. Trouble with mickey mouse stuff is he will hit a wall (like nice GUI, or db) and wonder why he wasted time. The SDK help was excellent.

  389. pro lisp by sanctimonius+hypocrt · · Score: 1

    As a middle-aged mechanical engineer, I did something similar. I found David Touretzky's book just the thing. Lisp's syntax immediately made sense to me, and the book is interesting in it's own right.

    I had taken the required course in Fortran twenty years before and hated it. I suspect some people find functional languages a pretty good fit. After all, spread sheets seem pretty popular.

  390. Outsourced by narsiman · · Score: 1

    Ask her to give up. Senior citizen programming has already been outsourced to Elbonia where moms who are half as bored as yours do programming.

    BTW They are way past the introductory chapters.

  391. Not HTML, but HTML/CSS by UnConeD · · Score: 1

    HTML/CSS is the perfect choice for all the reasons others have mentioned, but also for another reason:

    You have the chance to teach proper HTML/CSS to a person who has never been poisoned with frames and tables!

    Start with basic semantic HTML and explain to her that the tags offer extra information about the text: this is a title, this is a list, this is a paragraph. Stay away from FONT, TABLE, CENTER, B, I and friends.

    Get a proper HTML editor which has syntax highlighting, tag lists, etc.

    Then introduce CSS. First start with tag styling, don't use id's or classes. Don't use style attributes (no style="", but only a tag). Show her how to use simple attributes like color/background-color, font-family, font-size, etc. Don't bother trying to explain what the #RRGGBB syntax is: just get her a color picker, or a list of the CSS color keywords (and yes, most non-geeks can perfectly see the difference between 'crimson' and 'red' or 'cyan' and 'turquoise').

    Have her make a simple page and show her how to put it online: as a geek you surely have webspace available.

    Mail it to friends and compliment her.

  392. Language by g0bshiTe · · Score: 1

    I started late, in learning to program. Actually I started learning over 5 years ago, but for some reason I just couldn't wrap my head around certain aspects. Then I happened upon HLA by Randall Hyde Pierce. You may try that Higher Level Assembly I found his white paper ( The art of assembly ) to be what turned me around, and flipped my eureka switch.

    Or you could try to teach her perl. Another good one is C++, though I am having some difficulty mastering it, the more I try the easier it gets. Try NeHe.GameDev.net for some excellent C++ graphic tutorial programming. Perhaps you could get her interested in writing screensavers.

    --
    I am Bennett Haselton! I am Bennett Haselton!
  393. No one mentioned 3D graphics? by Anonymous Coward · · Score: 0

    What about a 3D graphics language like POV-Ray or Alice?

  394. Feed her the BASIC by PaladinAlpha · · Score: 1

    I think BASIC would be a perfect choice, and not because it's an easy to learn language. Hear me out.

    I learned to program in BASIC in my early youth. A lot of people think BASIC ruins you for programming; I think it ruins people who don't want to program for programming. Personally, upon quickly learning BASIC, and just as quickly running up against the limitations it imposes on performance, structure, and flexibility, it forged and tempered my resolve to learn a real language. Now I'm a quite competent programmer.

    Let her give it a shot. Beginner's All-Purpose Symbolic Instruction Code isn't named what it's named for poetic reasons...

  395. Try teaching an application by cdsatl · · Score: 1

    The easisiest way to help your mother learn something is to ask her what she would like to be able to do. Then teach the application and use that to build on. Say she wants to learn what the e-mail program can do (calendars, scheduling) and help her understand how to do that. Then she may find other things to do that you can help her with. In my experience it's easier to teach somthing to adults based on their finding solutions to problems they want to solve themselves.

  396. Try a Basic Interpreter... by Lodragandraoidh · · Score: 1

    Get her an old Commodore or Atari computer with Basic built-in, and one of those old program listing books to go with it (or you can fire up an old basic interpreter on an existing machine for the same effect).

    This will do one of two things:

    1. After typing in 500 lines of code, she will decide to drop the whole silly idea.

    2. After finishing off the book and loving all the little noddy programs, she will want more.

    At which point you introduce her to Python. If she is really into it, you might suggest some computer programming courses at the local community college to expand her horizons.

    --

    Lodragan Draoidh
    The more you explain it, the more I don't understand it. - Mark Twain
  397. Scheme is awful by Anonymous Coward · · Score: 0

    Scheme/Lisp is absolutely miserable to learn when one has grown up with languages like C or Basic. The endless braces and obscure syntax (lambda!?) make it a struggle to use for even simple tasks. Even if you did become skillfull with it you'd have to unlearn your programming skills to pick up a normal language like C.

    Promoting scheme/lisp is the curse of college CS departments.

  398. You could try this. by Anonymous Coward · · Score: 0

    I know very little about it - just saw a link somewhere.

    http://leopardprogramming.com/

  399. $100K per year after a couple easy courses by peter303 · · Score: 1

    Reminds me of these tech-school on late night TV promises abundant jobs and high salaries after taking a couple easy programming courses.

    On the other hand, I've seen the exception. A secretary at my last company evolved into an engineering-tech after learning about the work around her. Better than many of the college guys, though the lack of a degree did hurt during downturns.

  400. 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.

  401. How about scripting? by Anonymous Coward · · Score: 0

    How about a scripting language like AutoIT as an intermediate step? The natural progression of my own computer knowledge was inside out, hardware, OS, applications, HTML, scripting, Javascript, Perl, python etc...

    This gets folks familiar with the concepts of programming and gives them the power to make the computer 'do' something but is fairly simple to learn. She could be cranking out automation scripts within an hour and it would boost her confidence for another language.

  402. Squeak? by LWATCDR · · Score: 1

    From what I have Squeak is a fine language for adults. I would not call it childish it is a version of small talk.
    Python is a good first language from what I hear. I would stay clear of perl. There is also javascript.

    --
    See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
  403. That's CGI, not HTML... by warrax_666 · · Score: 1

    as you probably already know. There is no way to access/manipulate form values within HTML.

    --
    HAND.
    1. Re:That's CGI, not HTML... by timothv · · Score: 1

      Javascript can, although that's a language too.

  404. Perl? by bluethundr · · Score: 1

    One word: Perl. Compared to C/C++ it is poetry. Introduce her to a friendly llama. If she gets stuck, introduce her to some monks who have shown willingness to help out a beginnger. What you'll find is that they are especially kind if you explain who you are, what you're up against and why you want to do what you want to do.

    --
    Quod scripsi, scripsi.
  405. See the difference? by Anonymous Coward · · Score: 0

    No.

  406. DOM by BorgCopyeditor · · Score: 1

    You sound upset. Maybe you need to make peace with your innerHTML.

    --
    Shop as usual. And avoid panic buying.
    1. Re:DOM by cloudmaster · · Score: 1

      I'm suprised my irritation shows. ;) I just keep telling myself "one day, the clients will all standardize on Mozilla, and the standards-compliance will come"...

  407. ms by Anonymous Coward · · Score: 0

    I hear Microsoft has lots of entry level programmers working on their products...maybe she can get a summer job there testing or something...after 6 weeks she could be an engineer