Head First JavaScript 76
stoolpigeon writes "Head First JavaScript is one of the latest entries in O'Reillys Head First series. Like the other Head First books, it takes a somewhat unique approach in conveying information. The stated intent of the series is to help readers learn and retain material by formatting it in a manner that assists in meeting those goals. This means that the book is full of graphics, exercises and humor. There is also a refreshing note on who will benefit from the book. I've pretty much always thought of these sections in books as entertaining, in that I get to see what new way a publisher has found to say, "Everyone should buy this book!". Head First Javascript actually does a decent job of describing who this book will help, and who it will not help. That alone had me intrigued right from the start." Read on for the rest of JR's review.
Who is this book for? It is for someone looking to learn JavaScript, with access to a computer and a desire to learn the material through writing code and working through a variety of written exercises. The book begins with the very basics of scripting and as it states, is probably not going to be enjoyed by an experienced programmer who is looking for a JavaScript reference guide. There is a lot of white space, drawings, pictures and opportunities to do the exercises I mentioned as well as the answers to those exercises. For the experienced coder just looking for an api or methods and properties, this will probably feel like a bloated waste of time. Head First JavaScript | |
author | Michael Morrison |
pages | 615 |
publisher | O'Reilly Media Inc. |
rating | 9/10 |
reviewer | JR Peck |
ISBN | 0-596-52774-8 |
summary | A Brain-Friendly Guide |
Someone like me on the other hand, who would like to take a JavaScript class but just doesn't have the time, this book was just what I needed. I have done some programming, so I did breeze through some portions of the book, but in others I didn't mind the review. I like having new information and ideas soak in over time. This book is paced just for that kind of learning. It is possible though for someone to be too new to the topic. Some understanding of html and css would really be helpful. Someone who doesn't have at least an idea of how those technologies work may struggle a bit. Though I would think a little time with google would provide everything necessary to be up to speed.
There is an 8 page introduction that explains the reasoning and methods behind the books approach. The "Read Me" portion gives some great insight into just what this book is like. It begins, "This is a learning experience, not a reference book." and follows that up with seven main points. To summarize them, the book teaches what someone needs to know to get up and running. It is not exhaustive, it does not go over the history of the language. There are many finer points not addressed. Using multiple browsers would be helpful to the reader working through the book. Skipping activities will greatly reduce the value of the experience. There is quite a bit of redundancy, it is on purpose and beneficial. The examples are as slim as possible to focus on what matters and finally, not all exercises have definitive answers. If any of that turns your stomach, this really may not be for you.
The format does pretty much make reading straight through the book without working the exercises a waste of time. This was my biggest challenge with the book. If I wanted to read it I needed a pencil, my laptop, free time and somewhere I could work through at least a whole exercise at a time. This wasn't something I could fit in 20 minutes a night before bed. The authors recommend making it the last thing read before bed, but the end of my days are too busy to fit an exercise in. I found that a lunch hour, or a quiet week-end afternoon were my best opportunities for learning.
When I found those times, the book was thoroughly enjoyable. The humor was corny at times but almost always funny. I even chuckled out loud more than once. The exercises are widely varied as are the interspersed scenarios and stories that accompany the examples. I downloaded the necessary images for examples from the books web site though I avoided using downloaded code. It caused more errors due to typos, but I felt like I did better typing in the examples myself. I enjoyed working the cross-word puzzles and reading the 'interviews' with various pieces of technology. The time invested was much greater than for any other tech book covering similar ground, but I felt like the return justified the added time.
The style and humor reminded me quite a bit of the Dietel and Dietel How to Program books. I think that the scope is similar as well, as far as beginning from the very basics and building with each chapter. Head First starts with a basic description of just what JavaScript is and what it adds in the form of interactivity and finishes with a chapter that gives a good introduction to Ajax. In between the reader learns about all the basics like variables, looping, user input, validation, control flow, functions, code reuse, objects, etc.
As a hobbyist I felt like this was a great introduction to JavaScript. I think it gave me a foundation to build on and the ability to use more of the materials freely available on the web. Sometimes there is just so much of that out there, that it is difficult to know where to start. One of my primary goals in reading this book was to put together a couple simple web apps for myself as well as to get a better understanding of using the DOM for some Firefox plugins I would like to write. This book met those needs.
I think it is good to mention though, one last time, this is not a no-nonsense reference manual. In fact there is lots of non-sense and it is actually quite a bit of fun. But if the idea of 2 or 3 pages of big pictures to get across a couple simple ideas about data types bothers you, don't spend the money on this book. It will just annoy you and you will probably feel ripped off. On the other hand, if you've picked up hefty programming manuals and found that you didn't make it a quarter of the way through, and didn't remember much of the quarter you did finish, this approach may be much more friendly and give you a taste of success. And what good is a more information dense book if you don't read it or learn from it?
The table of contents gives a short summary of each chapter and a breakdown by section. The section titles are good for finding a place you read or stopped but wont always help find a topic. They are often named with the name of the exercise, not the subject they address. The index is good though and will help quickly track down topics. Like many new O'Reilly books, this one comes with 45 days free access to the electronic version of the book on Safari. The books site, linked above, has the table of contents, index, code examples and the complete second chapter available for viewing and/or download.
You can purchase Head First JavaScript from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
Re:ANyone who needs... (Score:5, Insightful)
Re:ANyone who needs... (Score:5, Funny)
I agree though, sometimes there's a new trick that you never though of in a book and it's always nice to have a reference library that doesn't rely on Google.
Re: (Score:2)
Re:ANyone who needs... (Score:5, Insightful)
Re: (Score:2)
But hey, it sounds like a better soundbite when you talk about shitting a quarter.
Re: (Score:1, Informative)
I think that its a lack of underst
Re: (Score:1)
That sample chapter reminds me of second grade.
There's a lot of cool (and powerful) things, but I wonder if there's a book that delves into it.
When it comes to programming... (Score:2)
Google is a great tool for finding that one way if you know how to use it. Reference docs provide no shortcuts, and can often mislead learners into an abyss of trial and error, often ending in hacks that just barely get the job done.
Re: (Score:1)
Head First! Apply Directly to the Javascript! (Score:5, Funny)
Re: (Score:2)
Still Much Peferable... (Score:5, Funny)
Supply your own bag and hose...
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Re: (Score:2, Funny)
Not a fan (Score:2, Interesting)
Re:Not a fan (Score:4, Insightful)
Seeing how every O'Reilly book has a free chapter for download at the website, I don't think there's any excuse to feel ripped off, even when buying from a digital store, where it is harder to check the book (not that I imply this is your case).
Re:Not a fan (Score:4, Insightful)
This is why I always advise people looking for a book on a computer topic to pick up two or three from different publishers and read a little bit of each one. That way they get a feel for the tone of the book and can choose the one that fits best with them.
Re: (Score:3, Informative)
Re: (Score:2)
How do the "Head First
Re: (Score:1)
Head First books tend to be technically accurate.
Re: (Score:2)
Head First tries to make things interesting by using funnier images, plays on words, puns, and pop culture references (mainstream stuff, not obscure) to get your attention. Every few pages they also include a creative quiz or simple programming exercise to test your knowledge. The examples ar
Re: (Score:2)
Re: (Score:1)
The exception is when the language is outside of the "normal" programming paradigms, or really syntactically different, in which case I probably want a more gentle introduction.
Re: (Score:1)
Can't get on with cartoons (Score:1)
Instead I went straight for the G.O.F. book (the canonical book for design patterns) 'and never looked back'. I don't think I could have got that kind of understanding with cartoons and colour.
I would really like to know who reads these?
Re: (Score:2)
Re: (Score:2)
Re:Can't get on with cartoons (Score:5, Insightful)
I have the Gang of Four book also as a reference manual, but it is just that. I would say that trying to read it straight through, to me, is like trying to read a dictionary, except I honestly consider a good dictionary to be much more approachable. It's a book I have handy because it's the definitive work, not because it's easy to read or the best way to learn the concepts.
don't buy it (Score:3, Insightful)
Re: (Score:1)
Re:Can't get on with cartoons (Score:4, Insightful)
I used the HFDP book to teach a class on design patterns and it was a great resource. I'd recommend it over a dry text book any day. My take is that most people who dismiss the HF books are intellectual snobs who think if learning isn't painful it means you're not learning. The HF books are based on solid learning principles and, IMHO, they work.
Re: (Score:1)
As an educator you know about 'learning styles' (or whatever they're calling it this week). I wouldn't hand in a piece of work with pictures of dolphins swimming through the paragraphs, every fourth word in blue, and with the first line of every paragraph highlighted except for vowels. Partly because it would be tricky in LaTeX but mainly because it would be impossible to read and detract from the content (at least, to my e
Re:Can't get on with cartoons (Score:4, Informative)
Re: (Score:1)
That may be true for some, but I'd suspect that most of the people that dismiss the HF books are people who are already fairly familiar with the software engineering / computer science / programming domain.
Personally, I haven't read any of them, but I suspect that I would get a lot less out of them than a reference material at this point. 5 years ago, this would b
Maybe I'm wierd (Score:4, Insightful)
Re: (Score:2, Informative)
Re: (Score:1)
Kaufman's _A Fortran Coloring Book_ (Score:1)
They start out good, then get tiresome (Score:2)
However, once you "get it", the style becomes increasingly tiresome. After a while you just want the damn information, not some cartoony scenario that dances around the issue before *finally* getting to the
beware the index (Score:1)
Not a good fit for me (Score:2)
I really applaud the effort and like to see new modes of learning experimented with, however.
Work of the Devil(tm) (Score:4, Funny)
Satan would be proud.
Damned Safari. (Score:3, Interesting)
What I don't like is this 45 days free access to some HTML/Javascript monstrosity intended to allow you to read the book (in a standard web browser, no less) without downloading it. And then they have the gall to offer you PDF downloads of a few chapters every month you're subscribed -- yeah, I'll finish the book in less than a month, so that's way too slow, and the single gigantic PDF I pirated was easier to manage and search through.
I'll take the Pragmatic Programmer approach over this any day...
Here's how it works instead, now: The company buys the book, often a hardcopy if there's no decent electronic version. Then we go out and find a PDF version to pirate and share on the local network. It's a small company; it's not as if all of us are going to be trying to read the book at once, but it's much better to simply search through a PDF than to have to go read the index...
Re: (Score:2)
My company got me a safari subscription, and I must say I've been really
Re: (Score:1)
Re: (Score:2)
And while searching through all books might be nice, I generally know which book I want to be looking in, if Google isn't helping. And within one PDF, KPDF's search, at least, is far better than Safari's.
I found it helpful (Score:4, Informative)
I have also read (most of) Head First Javascript, and at the beginning of it, I fit the description of their ideal reader: knowledge of HTML and CSS, no programming experience.
I bought Headfirst JS at the same time as O'Reilly's "JavaScript: The Definitive Guide," which I've hardly cracked due to its dull style and assumption that the reader is already familiar with other languages. The difference between the two for a beginner is night and day - although of course they serve different purposes.
The way they explain things may seem childish at first, but it makes things memorable, and the times when I did the "busy work" of filling out crosswords of terms and penciling in missing code in examples were the times I learned the most.
For example, in explaining data types, they have you circle items in a drawing of a city street and tell what kind of data type would represent them: boolean for a car's blinker, string for the title of a shop, number for a 3-way traffic light. The concept of data types had not been clear to me in The Definitive Guide, so I appreciated HFJS's approach of representing real-life information as data types.
A few concepts seemed unclear at first - like the difference between writing a function and actually calling it - but overall this is a very helpful introduction to Javascript, and fairly painless to read. Once you get the basics, other books would be better for reference.
Re: (Score:2)
I bought Headfirst JS at the same time as O'Reilly's "JavaScript: The Definitive Guide," which I've hardly cracked due to its dull style and assumption that the reader is already familiar with other languages. ...snip... Once you get the basics, other books [than Head First Javascript] would be better for reference.
You're going to be really glad you bought that Definitive Guide in a year or two. It's (IMHO) the best reference for javascript out there.
I recommend reading up on the work of Douglas Crockford [crockford.com] and John Resig [ejohn.org] when you want to get into more advanced javascript.
Re: (Score:1)
Re: (Score:2)
Re: (Score:1)
It's pretty cool to be able to render graphics from javascript so you can keep the amount of requests loading a website to the minimum. I guess it's awesome for game programming in Javascript also
Re: (Score:1)
Kids, if you know a few programming languages already, don't learn javascript from the web unless it's from Resig or Crockford. Buy the definitive guide (or pirate it if you can't afford it). Most of the web tutorials for javascript are really really bad.
Fond of the Head First books (Score:2, Interesting)
Javascript vs LISP? (Score:1, Interesting)
-ec
Re: (Score:1)
Re: (Score:1)
Firefox/Mozilla/SpiderMonkey have been adding functional Array functions (as have opera and safari).
eg:
[1,2,3,4].map(function(x){ return x * x; }); --> [1,4,9,16]
[1,2,3,4].filter(function(x){return x & 0x01 == 1 }); --> [1,3]
(Of course, implementing themself for ie or older browsers can be done in ~4 lines of code).
Re: (Score:1)
This review didn't specify w
WTF Good Grammar in a SL Review!? (Score:2)
Bonus points for not summarizing each chapter and/or being redundant.
Re: (Score:2)
Wrong term (Score:2)
It's extensions, dammit! Or add-ons. I'm tired of seeing people use the wrong term.
Re: (Score:1)
Now, for mis-spelling damnit, I'll have to take your eyes. You understand.
Re: (Score:2)
JS does not make me chuckle!! (Score:1, Troll)
For the web I would avoid javascript wherever possible. If you want to do anything serious on the client use FLASH. If you want to pickup AJAX tricks then buy a book on the topic, not on JavaScript.
If you feel the need to buy a book like this then you
Re: (Score:1)
> compatibility and object management.
That's not Javascript's complexity, that's the DOM.
{Java|ECMA}script is an elegant language that can implement just
about any programming paradigm that you desire ( functional,
OO, AO, procedural... ).
``Cross-browser compatibility'' has nothing whatsoever to do with
the ECMAScript spec. Here I am, executing some commands in the
see-shell interpreter. I see no complexity.
Re: (Score:2)
To most people and most authors of books such as this, javascript equals client-side web programming. Just look at the cover of the book [amazon.com]. "Slicing and dicing HTML" is easier, simpler, and faster if done on the server. Those things usually matter