Slashdot Mirror


Learn How to Program Using Any Web Browser

honestpuck writes "Harold Davis has started with a marvelous idea, teaching programming using a language available on all platforms, JavaScript, and an interface familiar to everyone, the web browser. Learn How to Program Using Any Web Browser is written for absolute beginners to learn the basic principles of programming -- or at least that's what the cover would have you believe." Read on for honestpuck's evaluation of that claim. Learn How to Program Using Any Web Browser author Harold Davis pages 396 publisher Apress rating 5 reviewer Tony Williams ISBN 1590591135 summary Not much programming, but well written

The language is suitably light and simple, the book well-structured and broken down into easily digested chunks. The order in which concepts are introduced is fairly traditional for a language tutorial: first we get types, variables and statements, before moving on to conditionals, loops, and functions, followed by arrays and objects before finishing with event-driven programming. Davis' decision to leave string handling till last seems a little perverse and personally I would have introduced functions earlier.

My real complaints about this book centre on the abstract nature of the discussion. There are very few real world examples that could be useful to anyone. The best you get is a version of "Rock, Paper, Scissors" in Chapter 3, and an 'auction' application. The book would have been improved dramatically if the end result of your study was a few things you could actually point to.

I also have a complaint about the target audience for this book. The web page for the book at the publishers states that "The target reader is likely a twelve- or thirteen-year-old, who is just starting to get curious about what makes a computer work -- or an office worker who has been using computer applications for years, and would like to spend some time delving deeper into what makes them tick." Most adults and even teenagers don't want to 'learn how to program' as much as they want to learn how to use a tool to perform a task. If your tool is JavaScript, then it's almost certain your task is related to building web pages, but this gets little real attention from Davis. For even younger students, this book totally lacks anything to hold their attention -- the lack of real-world examples hurts here.

I also take issue with the title: this book doesn't really teach 'programming' much at all. It certainly teaches you to write JavaScript, but where are the sections about the real lessons of programming, such as top-down vs. bottom-up design, or breaking a task up into chunks? Even debugging has little coverage -- a single thirty-page chapter, half of which is specific to JavaScript or the throwing and handling of exceptions. Since the work of Papert and others at MIT twenty-five years ago, we've learned a great deal about how to teach programming concepts in a simple manner, but Davis appears to have ignored all this and given us a language tutorial. The publisher's web page for the book says "very emphatically, this is not a book about programming JavaScript." If that's so then I'd argue that it isn't a book about learning the principles of programming either.

It is obvious from this book that Davis is an excellent writer; if he had tried to write a book to teach JavaScript and had focused on the tasks for which it is often used this, volume may have been superb. As it is, he has shot for a higher goal and fallen far too short.

If you would like to check it out for yourself, you can go to the web page for the book where there is sample chapter, the Table of Contents (though they call it a "Detailed TOC" as distinct from the 'Table of Contents,' which is just a list of 11 chapter titles) and index, all in PDF format.

I went looking for a book that I could give to my 11-year-old daughter now that she has become interested in "what Daddy does." I'm still looking, I'm certain that this one isn't it.

You can purchase Learn How to Program Using Any Web Browser from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.

6 of 456 comments (clear)

  1. Re:javascript is horrible by AKAImBatman · · Score: 4, Informative

    I *wish* JavaScript had Java like syntax. I can't count how many times I've typed this:


    for(int i=0; i<length; i++);

    when I meant to type this:

    for(var i=0; i<length; i++);

    or even worse:

    function func1()
    {
    for(i=0; i<length; i++) func2(i);
    }

    function func2(item)
    {
    for(i=0; i<length2; i++) //do something with item
    }

    when I meant to type:

    function func1()
    {
    for(var i=0; i<length; i++) func2(i);
    }

    function func2(item)
    {
    for(var i=0; i<length2; i++) //do something with item
    }

    (For those of you who don't know JavaScript, "i" will be global without that "var" definition.)

  2. "Program"? by oneiros27 · · Score: 4, Informative

    Most people haven't even figured out how to make a page look good in more than one browser.

    See the Any Browser Campaign.

    [And I don't mean 'detect what browser they're using, and serve them a page that's specially tailored to their browser', I mean making a single page that is written to the standards, and doesn't look like crap when some new unknown browser renders it]

    We know JavaScript isn't good for 'Any Browser', as there are browsers that don't support it -- and it's even frowned upon by the WAI

    --
    Build it, and they will come^Hplain.
  3. Re:Why teach programmers, period by kfg · · Score: 4, Informative

    I know how to program. It is not my trade. It never has been, and, God and the economy willing, it never will be (although I'm not averse to churning out some code for recompense now and again as part of a diversified professional portfolio and just for the change of pace).

    I do, however, find it a useful skill that allows me to use my computer to conduct business, perform scientific and engineering tasks and yes, on occasion, save a lot of money on programs and programers. Saved me from all that Quicken/Quick Books lockout nonsense too.

    KFG

  4. Re:Strongly disagree by haystor · · Score: 5, Informative

    Getting help learning Lisp is difficult for someone learning on their own. With no Lisp knowledge, it's hard to pick the right platform.

    For just learning Lisp, the path I took was:
    1. customizing a .emacs file
    2. customizing emacs packages
    3. writing my own emacs packages

    Most of my learning involved looking at someone else's code and trying to figure out how they did something. It's one thing to learn how a java feature like try/catch works by example, but trying to learn Lisp's defmacro by example is a path to madness. For that, Paul Graham's books are essential.

    The one major benefit to learning Lisp is that it can be bent to your will. This may require a change in mindset from C/Java where your spend the majority of your time conforming your will to fit the language.

    Only in learning Lisp have I again relived the "aha!" that came with the learning of a first programming language.

    --
    t
  5. Logo by Hollins · · Score: 4, Informative

    I still think the best language to learn to program for kids (starting around 7) is Logo. Instant gratification, cool animation, you can make impressive patterns quickly and it teaches the basic control structures.

    Then, they can graduate to StarLogo, an object-oriented version of logo which is easy to learn, but very powerful. A number of labs are using it for research simulation. Go with the turtle.

  6. Re:HUH? by Kphrak · · Score: 4, Informative

    Yes, VBA is available on most computers, IF the computer is running Microsoft Windows with Microsoft Office.

    Yes, VB teaches beginners. It teaches them that the only system worth coding on is a PC running Windows, because otherwise they won't be able to click and drop their components. The first thing a beginner learns is that they can write programs that look just like the Windows programs (i.e. Internet Explorer, Access, Excel), without first hearing that the reason that they can is that they are, in fact, starting the Windows programs, and that little Access app they wrote using New Application.thisMethod and New Application.thatMethod just called two separate copies of an Office application. And guess what? If you forget to "garbage-collect" (well, really Application.Close), which 99% of beginners do, you won't get a warning of any kind. Rather, the applications will just stay in your system memory, waiting for a close command that will never appear. I've seen programs that could use 200K of memory (large in itself, but livable considering the VB interpreter environment) using almost 128 megs.

    That's just Visual Basic, which is pretty awful unless you're making a demo for your local suit. VBA is much worse; in fact, I think it's the spawn of Satan himself. At least you know when the application appears, because you have to open it to start your program, but since VBA is just macros within the main window, you cannot create menus, and the first thing you get to choose is the color of your window. This has spawned horrors of beginning GUI design such as magenta-colored windows, script fonts, and labels that respond to clicks to bring up more windows, just because programming is a last resort for VB and VBA; the star of the show is the decision of whether to make your font Script or Wingdings.

    This rant should be taken in view of my recent experiences; I have rewritten several programs built by budding VB6.0 programmers in the past few months, each one more horrendous than the last. VB should only be shown to programmers after they have used a programming language, not a set of GUI design macros. Make no mistake, VB is like the cardboard televisions at the local furniture store: for display purposes only.

    --

    There's no sig like this sig anywhere near this sig, so this must be the sig.