Learn How to Program Using Any Web Browser
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.
Like this will help anyone learn to actually program. Wow, I can make a webpage that has dancing bunnies, I'm l337! Anywho, I don't see how this could be useful to anyone, except maybe to help a Joe SixPack user learn a bit about how things work. If anyone is starting programming maybe try: normal java, python, C++, etc. and try to learn what a data structure is before learning about event driven programming.
No, Visual Basic for Applications. Nothing like Excel macros to learn computer science!
sulli
RTFJ.
Many languages have failed honorably -- Eiffel, Dylan, Oberon, Icon, Prolog, CLP(R), C+@, Oak, PL/1, Bliss, Algol-68, Pascal -- some more honorably, some less, but far too many to list, or indeed to count. Others struggle vainly along, confined forever to subsidized niches -- Erlang, Common LISP, REXX, Objective-C, Delphi, Ada. Only a handful retain a vigorous population of programmers using them, industrially, for their original purpose; we need not list them.
Java survived teething only by dint of billions of dollars of promotion. Every promise made in its infancy has proved a lie. Designed and implemented in such frantic haste that a semblance of quality was the first criterion jettisoned, it could not but grow into such a monstrosity as we face today. Today its use in applications where it was, supposedly, intended -- cellphones, browsers, rings -- amounts to little more than nasty, brutish parodies.
It is no crime for a language to fail. What is a crime is for its failure to blight the careers of the myriad* young, impressionable, and naive who fell for its blandishments. What is a crime is the forests felled, pulped, and printed upon, only to be discarded unread and obsolete. What is a crime is the thousands of good ideas, and the companies started to develop them, stabbed in the back by an inadequate implementation language. What is a crime is the gigawatt-hours of energy dissipated operating wasteful JVMs on huge servers performing jobs that a hamster could do on its bathroom break.
Java is far more than a failure, far more than an annoyance, far more than the laughingstock of many industries, far more even than the evil sire of C#. It is a bona fide crime against humanity. Capital punishment would be too good for it; that is to say, it does not deserve execution.
Only one fate can be ignominious enough to expiate Java's wrongs. Java must be consigned to use as an undergraduate teaching language.
* [lit.: numerous as the stars in the sky]
God, could you be more of a pretentious dick? I think so, yes. The answer is yes.