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

5 of 909 comments (clear)

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

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