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.

14 of 456 comments (clear)

  1. I sure don't want to see code written by Anonymous Coward · · Score: 5, Funny

    by someone who learned to code from JS :(

  2. This is wrong on so many levels by Anonymous Coward · · Score: 5, Funny

    Having a programmer's first effort be a JavaScript pop-up with: "Hello YOUR COMPUTER IS BROADCASTING YOUR IP ADDRESS TO THE WORLD!" is just wrong

  3. Strongly disagree by Anonymous Coward · · Score: 5, Interesting

    I think the reviewer's premise that 12-13 year old wants to learn programming for a specific task is bull. I think what the book is trying to speak to is how I learned to program: BASIC. I wasn't trying to DO anything specific it was just a good way to start playing around because it came free w/ the computer and you could make it beep or say hi or whatever. I think that posing javascript as a replacement (now that basic does not come packaged with the OS) is a GREAT idea. It's free, there is a developing environment built right in (well with mozilla at least) and it's actually fairly powerful while still beaing easy to learn.

    1. 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
  4. Re:javascript is horrible by Anonymous Coward · · Score: 5, Funny
    not only does it's syntax suck

    Ironic.

  5. Re:Best way to learn by tuffy · · Score: 5, Insightful
    The best way to learn how to program is to sit down in front of a computer with a reference handy and dive in!

    IME, it's best to have a problem to solve, too. Back in my carefree days, that usually involved trying to program a neat game I didn't have. Nowdays, it seems most of my toy programs involve organizing all the data I've accumulated on my hard drives.

    --

    Ita erat quando hic adveni.

  6. Re:Best way to learn by RetroGeek · · Score: 5, Insightful

    The best way to learn how to program is to sit down in front of a computer with a reference handy and dive in!

    Yup.

    And after many years of doing things which make your applications buggy, hard to maintain, full of "cute" tricks, no security, no comments, you finally start doing things properly.

    Yup, dive right in.

    The thing about courses is that you learn the importance of doing things in a particular fashion. So you end up with applications which CAN be maintained, ARE secure, and so on.

    And this comes from experience. I have been doing application development for more years than I care to remember using over 10 different languages, three of which I am actively using right now. I did just dive in. And when I look at what I wrote many years ago, well, I am glad I am the only one that can see that code.

    --

    - - - - - - - - - - -
    I am a programmer. I am paid to produce syntax not grammar. Deal with it.
  7. Re:Java? by Dutch_Cap · · Score: 5, Insightful

    Java may be available on every platform, but most computers don't have a java compiler installed. A computer without a browser that can handle javascript is unthinkable, though.

  8. Challenge of finding a first language by Tassach · · Score: 5, Insightful
    Chosing the first language to teach a fledgling programmer is pretty difficult. The ideal language has lots of different qualities:
    1. It has to be easy to learn and use. In order to build the novice's confidence, it should encourage early successes. It should be easy to debug.
    2. The tools have to be accessable to the student. Ideally, you want to use a language which is already installed on their computer, or at worse be a free download which will run on all major platforms.
    3. It has to be practical. If the student can't use it to do something which is useful TO THEM fairly early on in the learning process, they probably won't stick with it.
    4. It has to provide a good foundation for future learning. This means that it should support all the standard code constructs and have a syntax similar to other more advanced languages. It also means that it shouldn't teach them any bad habits they'll have to unlearn later.
    I'm sure there are other qualities, but this is a pretty good starting list. On the basis of this simple list we can eliminate a lot of potential candidates as first language.
    --
    Why is it that the proponents of "one nation under God" are so eager to get rid of "liberty and justice for all"?
  9. It's a TOOL by mabu · · Score: 5, Insightful

    The reviewer makes an excellent point. Programming is a *means to an end*. People don't learn how to program just so they can say they program. To not put the art of learning programming into the context of real-world applications is counterproductive.

    Then again, pardon me for being cynical, but this seems reflective of the new type of motivation we have these days behind people choosing vocations. People go to law school, not because they have any interest in law, but because they're under the impression they can make money if they're a lawyer. The bottom line is that if you get into any vocation without having any passion or interest, you'll never be any good at it.

    This reminds me of the arguments over which programming language is best. It's moot. The application and environment should dictate which tools be used. Likewise, if you want to learn to program, and don't know for what platform or application you're interested, you're on the wrong track... figure that out before you buy any books.

  10. Re:Best way to learn by Quay42 · · Score: 5, Interesting

    As a sort of corrolary to this...you need to have something that you're trying to *do*. You really can't open up a reference book and just start to code, you really need a reason to do it. It's sort of like asking someone you know who can speak another language to "say something in German" or whatnot: they're left floundering. If, on the other hand, you ask them to "count to 10 in German" then it's a different story.

    Any new language or software engineering concept I've learned that has been from a book has only been because I had to learn the language for the task at hand or it's been brought to my attention that a particular design pattern (or what have you) may be appropriate. I personally can't just pick up a book on programming with a cup of coffee if I don't have a real reason to.

    Just some thoughts.

    --
    "Has anything you've done made your life better?" - American History X
  11. just what we need by CAIMLAS · · Score: 5, Insightful

    Yes, that's just what we need - every Joe, Shmoe, and Harry that surfs the web to start thinking he's hot shit on Sunday because he's a "programmer", and now he can go out and grab one of those elite tech jobs!

    Of course, knowing the stupidity of HR, they'll likely get hired.

    --
    ~/ssh slashdot.org ssh: connect to host slashdot.org port 22: too many beers
  12. Re:Java? by Frymaster · · Score: 5, Insightful
    Harold Davis has started with a marvelous idea, teaching programming using a language available on all platforms, Java

    er... ansi c is available for all platforms too.

    i think h.d.'s angle was write an intro to programming book that uses an interpreter that comes default with every os install... hence the javascript.

    of course it's an incredibly lame angle since it breaks frymaster 14th rule of programming:

    "if you can't install the interpreter/compiler you probably can't code in the language"

  13. Re:Java? by wwest4 · · Score: 5, Insightful

    How does the desire or willingness to learn assembly translate into entitlement to program?