Domain: headfirstlabs.com
Stories and comments across the archive that link to headfirstlabs.com.
Stories · 6
-
Book Review: Head First Python
Michael J. Ross writes "Veteran computer programmers — adept with languages such as PHP, Perl, and JavaScript — typically have no trouble learning an additional language, often just by reading online tutorials and stepping through sample code. But for those new to programming, that approach can prove difficult and frustrating. Yet nowadays there appears to be growing interest among such people for learning how to write programs in Python, especially as it is seeing increasing use by Google and other organizations, and is often chosen as the primary teaching language in schools. For such budding programmers, one possible starting point is the book Head First Python." Read on for the rest of Michael's review. Head First Python author Paul Barry pages 494 pages publisher O'Reilly Media rating 6/10 reviewer Michael J. Ross ISBN 978-1449382674 summary A gentle introduction to the Python programming language. The book's author Paul Barry, is an experienced programmer and lecturer in computing science. The book was published by O'Reilly Media, on 7 December 2010, under the ISBN 978-1449382674. On the publisher's page, visitors can learn more about the book and its author, see feedback from readers, peruse the discussion forum, and read the errata identified so far (many of which appear to be fixed in the most recent printing). The book's example code is available from Head First Labs. It is packaged into a large Zip archive file, containing directories for all the chapters. Additional resources — such as test data — can be downloaded from a page on the website of the school where the author teaches, The Institute of Technology, Carlow in Ireland. (But don't bother trying to use the site's search functionality to find more information about him, because no search results are returned, as of this writing. Hmm, what is the Goidelic word for "fail?")
The book's material, spanning 494 pages, is organized into 11 chapters, plus a supplementary section for more advanced topics. In the first chapter, "Everyone loves lists," the author briefly explains how to find and install on one's computer Python and its IDLE development environment, if necessary. Oddly, he assumes that if it is already present on a Windows machine, then it will be found in the directory c:\Python31; this is repeated in the second chapter as well. More importantly, he mentions the (command-line) command to start the Python shell, but then immediately begins describing IDLE, without mentioning how to get it running. Most of the chapter explains how Python supports lists and functions, although the coverage of the latter topic is much too brief, considering how critical functions are in any programming language, including Python.
The second chapter shows how to bundle up functions into modules, and make them available to other developers through distribution utilities. This may be an important topic, yet it is inconceivable to me as to why, so early in the book, the author dives into the rather involved details of registering with PyPI and distributing a Python module to the rest of the world, before even introducing such language basics as input/output, files, and objects. (More on that later.)
If the reader perseveres through all the flaws in the first two chapters, then she will likely find that the quality of the narrative gradually improves throughout the rest of the book. An example of this is the third chapter, which addresses basic file access and exception handling. The following chapter, which focuses on data persistence, extends the discussion of how to save in-memory data in files, including the use of the standard library "pickle" for dumping and later loading any type of data. The next few chapters introduce the reader to increasingly complex ways of representing data, in the form of lists (again), dictionaries, and (object-oriented) classes. The discussion is fairly clear, except readers familiar with other object-oriented languages may be confused on page 194, where class attributes are being defined in the constructor only. In fact, the author does not fully explain where attributes can be defined, and what their resultant scope would be.
The seventh chapter roughly marks the halfway point in the book, and also is where the focus shifts from developing Python programs to releasing them to the public. The author begins by incorporating techniques presented earlier in the book, to build a Python-based web app, using the popular Model-View-Controller (MVC) paradigm. The next chapter shows how to port those web apps to mobile devices. Chapter 9 extends these topics, by demonstrating how to query for and accept user data in HTML forms on web pages, and in similar dialogs on Android phones — as well as how to store that data in an SQLite database. The next logical step is to learn how to make Python apps scalable, as well as cloud-based, in this case using the Google App Engine (GAE). Readers are also introduced to Django, for form validation. The final chapter, and the appendix, cover a number of miscellaneous topics, such as how to spreadsheet-type data storage, development IDEs, variable scope, unit testing, and regular expressions.
Most readers should find that the relaxed writing style makes this book approachable, though fairly lengthy. Like most if not all of the other books in the Head First lineup, this one is made more palatable with a sense of humor that is not silly — a welcome improvement to any programming book. The best parts are in the "fireside chats," which are fictional and sometimes pointed conversations, oftentimes between two similar components of Python.
Yet the narrative is far from perfect. Some of the phrasing is ponderous, e.g., "Perform the edits to your code" (page 113); why not just "Edit your code?" A few concepts are used without explanation, e.g., the Python value of "None" (page 80). Some technical slang terms are used quite early in the book, yet with no definitions or explanations for the neophyte — e.g. "app" and "webapp" (both on page xvi). Admittedly, most readers of this book will be programmers or other techies, who feel comfortable with those terms. But the Head First series is intended for people just getting started, and thus all such terms should be explained up front, if only briefly.
There are numerous errata not found in the aforesaid list (on the O'Reilly Media website): "tools to for accepting" (page xviii), "design user-friendly websites" (xxvii; should be "learn Python"), "try and" (14, 84 twice, and 188; should be "try to"), "As your plan to" (37; "you plan" was likely intended), "utilities" (49), "users that" (50; should be "users who"), "argument" (52), "a iterable" (53 and 54), "the the list on screen" (64), "the your latest version" (65), "a argument" (71), "gives you with a chance" (88), "file's contents" (123; incorrect plural possessive), "the facilities pickle" (134; probably should be "the pickle facilities"), "your were" (170), "it's new mode" (185; no apostrophe in "its"), and at this point I ceased recording errata. These flaws, plus the 119 already reported, suggest that the author and O'Reilly copy editors did not perform enough quality control when working on the manuscript.
One glaring problem with the material is the dramatic unevenness in the depths of coverage, from one topic to the next. For instance, even though the book is aimed at readers who already know another programming language (page xxiv), an entire section is devoted to establishing the (obvious) non-scalability of having to use an individual print() statement for every item in a list, and the superiority of instead iterating through the list (page 15). Yet in the same chapter, only a couple pages (29-30) are provided to explain functions, with no discussion of topics important to any programmer, such as whether one can set parameters to default values, or how to pass arguments by reference, if it's even possible. Some of this unevenness is due to the book's goal of presenting technical information in an easily-digestible form; for instance, in Chapter 7, the reader is told how a web server returns a web page, but later faces the minefield of invoking Python's built-in web server on a CGI server.
A second significant problem is the often-illogical ordering of material — both high level and low. Chapter 2 illustrates both cases: The author recommends that the reader release her code to the public (in the form of modules) after presumably having learned only one chapter's worth of material, when such code would undoubtedly be unready for public consumption. At a much lower level, the first "There Are No Dumb Questions" entry in the chapter briefly discusses various editors that could be used for writing Python code. This information should have been presented at the beginning of the first chapter, or even in the introduction — not after the reader has already chosen whatever editor seemed most convenient at the moment, and probably saved at least one file of code. A third variation of this problem, is when the reader is tested on concepts not previously presented — such as the "Who Does What?" section on page 53, which quizzes the reader on half a dozen functions, none of which the reader has presumably even seen before, and some of which are never mentioned again in the book!
In terms of the typography of the print version of the book, I found the font face and size to be problematic, especially on those pages where the text appears to have been printed a bit too lightly — at least in the review copy of the book kindly provided to me by the publisher. For instance, all of the code on page 227 is practically unreadable. Throughout the book, in the snippets of code, the comments are a light gray making them quite difficult to read — probably because these are screenshots of IDLE sessions, in which comments are by default displayed in green, which apparently does not translate well to grayscale illustrations.
Overall, this book appears to have received less oversight and editing than is typical in the Head First series. If you are a veteran programmer searching for a concise treatment of Python, then this book is not optimal for you. Yet if you seek an engaging and highly visual introduction to an elegant programming language, then Head First Python can be a worthwhile place to start your journey.
Michael J. Ross is a freelance web developer and writer.
You can purchase Head First Python from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Head First Rails
Anita Kuno writes "I suggested Head First Rails to a friend before I even finished it. He was asking me questions that I didn't have time to answer, and I knew the book could explain better than I. My friend is impatient, and I was uncertain what his experience would be. At first he was frustrated, but I assured him the answers were in the book. The incremental style of Head First Rails includes some exercises that are designed to fail to reinforce the learning process. I was confident that his answer would be found in the pages and he trusted me enough to go back and continue the exercises. He later told me he is very happy with the book and grateful that I suggested it." Read on for the rest of Anita's review. Head First Rails author David Griffiths pages 429 publisher O'Reilly rating 8/10 reviewer Anita Kuno ISBN 978-0-596-51577-5 summary An Introduction to Ruby on Rails
Rails is a framework for creating web applications. It is written in Ruby. It uses a structure called MVC which stands for model view controller. Rails separates tasks so that operations are modularized. Once a development team understands Rails, its use can increase the speed of creating web applications. Head First Rails explains the beginning steps needed to create Ruby on Rails applications. It introduces vocabulary; teaches the basic relationships that comprise Rails: the model, the view, and the controller; and demonstrates code creation that controls the MVC interaction. The title 'Head First Rails: A Learner's Companion to Ruby on Rails' describes the approach of the book. The author acknowledges that this book is one of many that will assist the active learner to begin Ruby on Rails. Proficiency in the Rails framework requires accumulating information from a number of sources and the book mentions quite a few and encourages consultation of those resources.
While previous Rails experience is not required (nor is previous Ruby experience) it is expected that the reader have a working understanding of HTML & CSS as well as a basic understanding of a scripting language. Java, C# or PHP are mentioned as scripting examples. I had tried several beginning Rails books previously and Head First Rails was the first I could complete. I feel it is a reflection of the speed of development of the framework and the fact that most of the people that I know involved with Rails are so busy creating apps, they don't have time to teach the n00bs.
Head First Rails assumes that you already have Rails installed on your system. The home page for Head First Rails provides a link to the download page at rubyonrails.org by way of providing installation instructions. I didn't see a reference in the book's index to Rails installation, which I find rather odd. It would be a simple matter to include a short paragraph explaining why detailed instructions aren't included with the book (as is explained on the home page for the book) with a URL to the book's homepage. Ruby and Rails are both opensource software so they are freely available for all systems.
Head First Rails has images, illustrations and graphics that are used to introduce and underscore one concept at at time. The book is designed so that each page and its facing page comprise an experience of one concept. As you turn each page you are introduced to a concept, given details and challenged in some form. When you turn the page you are on to the next piece of information which builds upon what you have already learned. The format of the book is designed to promote information retention and some of the exercises may prove frustrating at certain points. The frustration promotes original thinking and information retention. I feel it is a valuable part of learning. Since I rarely have the time to focus on a book exclusive to the rest of my life, I find the format helpful. I can attend to other things and pick up the book after two weeks and continue from where I left off. It is helpful to have access to information that I can pick up and put down and still accumulate knowledge.
Head First Rails is conversational and encourages original thought. The exercises, which are the foundation of the book, are accompanied by code samples for download to encourage comparison. The first time we dive into an app and edit the specific files, I felt that the identification of which file we were editing and how to locate the file in the Rails application directory tree needed to be clarified a little better. Soon the examples fell into a rhythm and I knew where to find the information I needed.
One thing that did get my attention was the use of whitespace or lack thereof in code. I have been taught to use 2 spaces to indent Ruby code (which affects Rails code as well) and while the code samples did use the convention, I didn't see the indent by 2 spaces rule explicitly stated. I'm not confident that a n00b would just pick that up. They would probably have to be informed. My other whitespace comment concerns hashes. I have been taught to have one space between the key and hash delimiter and another single space between the hash delimiter and the value. I did not see this in the code samples. I frequently saw no space whatsoever separating the key, delimiter and value. I have come to understand that developers rate another developer's worth based upon code samples, and lack of whitespace when it is expected is viewed as a bad habit. The composer of said code might be either chastised or dismissed due to poor technique. Perhaps my understanding of the situation is extreme but again in a book for n00bs, the reader will copy exactly what they see. So if there isn't whitespace on either side of the hash delimiter in the book, how will the reader know to compose code using that convention?
A few of the author's terms were confusing. He uses the term 'scriptlets' to refer to ERB output tags, and 'expressions' to refer to ERB expression tags. The Rails developers I questioned about this were able to figure out what he meant by 'expressions' but none of them had ever heard of ERB output tags being called 'scriptlets'. Also, the author uses 'finder' to refer to dynamic finders and I think it would have been useful to use the term 'dynamic finder'. It is more specific and the keyword 'dynamic' is useful when employing a search engine to research the functionality of dynamic finders. A search for 'finders' doesn't return one Rails related hit on the first page, while a search for 'dynamic finders' gives me a Rails related hit as the first return.
These are small points and perhaps this is more reflective of the culture of Rails developers that informs me, but in a n00b book it is important to provide clear vocabulary and conventions. These small points may be the techniques that have the longest shelf life to the reader.
I have been waiting for this book to be written and available for at least a year and a half. This was the first beginning Rails book that I found that didn't assume I was transitioning from a background in PHP. I have been spending time with the Ruby and the Rails community for close to 2 years now and am grateful that I finally have an explanation of the topic that is accessible for me.
Rails is changing very quickly and even now is about to merge with Merb to create Rails 3.0. It is tough to say how long the information in Head First Rails will be relevant. If you are interested in this book because you think Rails is fashionable, you might be distracted by a new trend before you finish the book. If you are interested in Rails because you have seen what it can do, you recognize its power and you want to learn how to get that for yourself, you will recognize the value in these pages.
You can purchase Head First Rails from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Head First JavaScript
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. 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 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.
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. -
Head First SQL
Anita Kuno writes "On a Sunday, a fellow user-group member suggested I learn SQL. The next day, an opportunity to review Head First SQL arrived in my email. Who was I to question? Prior to opening the couriered package, I had no knowledge of SQL, I knew databases were important, and I had seen the Head First website once or twice. Now, I can design and create databases, use mySQL databases, and understand questions and accompanying code posted to forums. The credit goes to Head First SQL's style, which introduces small bits of information, supported through multiple channels (such as photos with humorous dialogue, stick-men and stick-women, and input from critical personalities whose photos and input pop up throughout the book) regular tests and exercises so the new bit of data can find a home and settle into your memory. The regularly tested pieces of information are now in my brain so I don't have to look up the basic stuff." Read below for the rest of Anita's review. Head First SQL: A Brain-Friendly Guide author Lynn Beighley pages xxxv & 571 publisher O'Reilly Media, Inc. rating 9 reviewer Anita Kuno ISBN 0-596-52684-9 summary A beginners foundation for SQL
Head First SQL is about RDBMS (databases) specifically mySQL (version 5.0 or newer) and includes features of other databases. The book defines a database, demonstrates how to navigate an existing database, and teaches how to create simple and complex databases, as well as how to let a database grow from simple to complex.
Foundational understanding of database construction and navigation is the focus. The target audience is those brand-new to the topic as well as those with an acquaintance with the subject and the need for a greater conceptual understanding of databases.
It focuses on the basics of databases, so the main information should remain pertinent until RMDBS get re-conceived. I think revisions, such as the reprint due out in December, will add to the strength of the book as typos and coding errors will be addressed.
The title accurately describes the contents and the subtitle "A Brain-Friendly Guide" describes the goal of the approach. The only requirements for working with the material are: a computer or access to one, the ability to identify your operating system, familiarity with downloading from the internet (links and instructions are provided in the book and the program mySQL community release is free (download instructions are given for Mac and Windows users, I believe that instructions for Linux are not included with the assumption Linux users can access the mySQL community release page and download the program without a play-by-play)), and the courage to learn a command line window user interface if you don't already know this.
Head First SQL is most useful to those who, like myself, have heard passing references to databases and other than knowing they are important have no grasp of what it is, means, or can do. Also, this will be a helpful tool for those who have some of the verbiage, enough to pass at a cocktail party, but who would feel the cold chill of horror if expected to design, construct, and implement a database in conjunction with any of their paid responsibilities.
This is the first book that I have read on the subject of databases and the first computer book that I have been able to finish. So much of the educational information about program x, language y, or application z, depends on a working knowledge of the other two variables. This is a great book for beginners. It talks about data types, it explains null, and then has null explain himself. It tells me the importance of the semicolon at the end. All basic stuff. All stuff that other books take for granted. Many times when I believed I wasn't absorbing anything, along came questions I could answer, a crossword I could complete and match-column-A-with-column-B exercises that demonstrated that I was actually learning much more than than I was giving myself credit for.
It includes illustrations, photos, clean layout, and bite sized pieces of information. All this comes from the goal of allowing both sides of the brain access to the information. It's exactly the kind of approach that I need to reinforce the terms and concepts as well as provide encouraging feedback to keep me progressing through the material. I'm also grateful that it entertains me and keeps me going back to finish the whole thing long after the first blush of excitement has worn away.
Links, to the mySQL program necessary to work with the material, are included in the book as well as a few other links in the appendices. The Head First website is a must in order to link to the forums, newsletter, blog and downloadable files to create various tables used in the book. Head First came out with a web app called Hands On SQL which I would encourage you to try. It won't work with all of the book's material but it is a good-looking tool.
You are welcome to read my submissions on the Head First SQL forum. My user name is anita. Also, the reprint that I mentioned above is due to be in stock as of December 3rd. I'm told by O'Reilly that it includes corrections for errata submitted thus far. Take a look at the Head First SQL homepage to download a sample chapter.
You can purchase Head First SQL from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Head First SQL
Anita Kuno writes "On a Sunday, a fellow user-group member suggested I learn SQL. The next day, an opportunity to review Head First SQL arrived in my email. Who was I to question? Prior to opening the couriered package, I had no knowledge of SQL, I knew databases were important, and I had seen the Head First website once or twice. Now, I can design and create databases, use mySQL databases, and understand questions and accompanying code posted to forums. The credit goes to Head First SQL's style, which introduces small bits of information, supported through multiple channels (such as photos with humorous dialogue, stick-men and stick-women, and input from critical personalities whose photos and input pop up throughout the book) regular tests and exercises so the new bit of data can find a home and settle into your memory. The regularly tested pieces of information are now in my brain so I don't have to look up the basic stuff." Read below for the rest of Anita's review. Head First SQL: A Brain-Friendly Guide author Lynn Beighley pages xxxv & 571 publisher O'Reilly Media, Inc. rating 9 reviewer Anita Kuno ISBN 0-596-52684-9 summary A beginners foundation for SQL
Head First SQL is about RDBMS (databases) specifically mySQL (version 5.0 or newer) and includes features of other databases. The book defines a database, demonstrates how to navigate an existing database, and teaches how to create simple and complex databases, as well as how to let a database grow from simple to complex.
Foundational understanding of database construction and navigation is the focus. The target audience is those brand-new to the topic as well as those with an acquaintance with the subject and the need for a greater conceptual understanding of databases.
It focuses on the basics of databases, so the main information should remain pertinent until RMDBS get re-conceived. I think revisions, such as the reprint due out in December, will add to the strength of the book as typos and coding errors will be addressed.
The title accurately describes the contents and the subtitle "A Brain-Friendly Guide" describes the goal of the approach. The only requirements for working with the material are: a computer or access to one, the ability to identify your operating system, familiarity with downloading from the internet (links and instructions are provided in the book and the program mySQL community release is free (download instructions are given for Mac and Windows users, I believe that instructions for Linux are not included with the assumption Linux users can access the mySQL community release page and download the program without a play-by-play)), and the courage to learn a command line window user interface if you don't already know this.
Head First SQL is most useful to those who, like myself, have heard passing references to databases and other than knowing they are important have no grasp of what it is, means, or can do. Also, this will be a helpful tool for those who have some of the verbiage, enough to pass at a cocktail party, but who would feel the cold chill of horror if expected to design, construct, and implement a database in conjunction with any of their paid responsibilities.
This is the first book that I have read on the subject of databases and the first computer book that I have been able to finish. So much of the educational information about program x, language y, or application z, depends on a working knowledge of the other two variables. This is a great book for beginners. It talks about data types, it explains null, and then has null explain himself. It tells me the importance of the semicolon at the end. All basic stuff. All stuff that other books take for granted. Many times when I believed I wasn't absorbing anything, along came questions I could answer, a crossword I could complete and match-column-A-with-column-B exercises that demonstrated that I was actually learning much more than than I was giving myself credit for.
It includes illustrations, photos, clean layout, and bite sized pieces of information. All this comes from the goal of allowing both sides of the brain access to the information. It's exactly the kind of approach that I need to reinforce the terms and concepts as well as provide encouraging feedback to keep me progressing through the material. I'm also grateful that it entertains me and keeps me going back to finish the whole thing long after the first blush of excitement has worn away.
Links, to the mySQL program necessary to work with the material, are included in the book as well as a few other links in the appendices. The Head First website is a must in order to link to the forums, newsletter, blog and downloadable files to create various tables used in the book. Head First came out with a web app called Hands On SQL which I would encourage you to try. It won't work with all of the book's material but it is a good-looking tool.
You are welcome to read my submissions on the Head First SQL forum. My user name is anita. Also, the reprint that I mentioned above is due to be in stock as of December 3rd. I'm told by O'Reilly that it includes corrections for errata submitted thus far. Take a look at the Head First SQL homepage to download a sample chapter.
You can purchase Head First SQL from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Head First HTML with CSS & XHTML
Graeme Williams writes "In the past, I've written the sort of poorly-structured non-compliant web pages that can only be produced by a combination of laziness and confusion, so I'm an ideal test subject for Head First HTML with CSS & XHTML, an introduction to building web pages which focuses on compliance with the most recent HTML 4.01 standard and XHTML 1.0 standard. The book starts with the simplest of web pages, and builds from there to a solid foundation for writing simple well-structured web sites. It's clear and thorough, and will be effective both for the complete beginner and in bringing stale skills up to date." Read on for the rest of Graeme's review. Head First HTML with CSS & XHTML author Elisabeth Freeman & Eric Freeman pages xxxv + 658 publisher O'Reilly Media rating 10 reviewer Graeme Williams ISBN 0-596-10197-X summary A clear, effective and readable explanation of standards-compliant HTML, XHTML and CSS
This is one of those cases where you can judge a book by its cover. In addition to the title and author, the cover of Head First HTML with CSS & HTML has seven tag lines, four photos and two drawings. One of the nuggets is, "A learner's guide to creating standards-based Web pages", which is a pretty good summary of the book and its intended audience.
Head First HTML is full of the sort of distractions that would normally make my skin crawl: people talking at me from the margins, mock conversations between inanimate objects (or in this case HTML tags), crosswords, quizzes and enough cute graphics to supply the kindergartens of a fair-sized city. It's clear that the authors realize that there might be some resistance to this style because they devote five pages of the introduction to explaining why they wrote the book this way – the summary of the summary is that novelty helps your brain learn. The example chapter you can download from the web site for the book is more than 50 pages, which might be enough for you to make up your own mind whether this works for you. My experience was that the method is so effective and the material so clearly presented that the issue disappeared for me after a chapter or two.
In the introduction, the authors also mention another goal: "a clean separation between the structure of your pages and the presentation of your pages". HTML or XHTML is used to provide the structure and content of a web page, and CSS (Cascading Style Sheets) are used to provide the style and layout. This means that the book doesn't include many HTML elements which are now discouraged or "deprecated", such as <B> for bold, <CENTER> for centered text, or <FONT> for specifying fonts within the web page. I guess the choice between frames and CSS might be classified as a religious one. In any case, this book is about CSS and doesn't mention frames except to note their omission in the appendix.
Most of the examples are based on a fictional coffee company called Starbuzz, and their trendy competitor, the Head First Lounge. It's a great framework for building up a web site from a few linked pages to a complete CSS layout. If you've never written a web page before, the book starts at the beginning, with the simplest web page followed by links from one page to another. If, like me, you've written a handful of web pages, reviewing the material will help focus on the essentials for a clean, compliant web page. All of the example HTML, CSS and accompanying images can be downloaded from the web site for the book, which also has the completed examples online, so you can quickly review them in your browser. If you're considering buying Head First HTML, the online examples are also a great way to see the scope of the book, from the simplest example to the most sophisticated.
There are a few prerequisites for getting the most out of Head First HTML. Adobe Photoshop Elements is used to show you how to prepare images for the web. As the book says, if you don't have it, you can download a free trial from Adobe, with the small quibble that this won't work if you've already run through your free trial before starting the book.
Understandably, Head First HTML doesn't tell you everything you might ever need to know about CSS. On the other hand, you learn a whole lot about using CSS both for appearance (such as colors and borders) and layout (positioning different parts of the page such as headers and sidebars). The book is particularly good at explaining at least some of the limitations of CSS, such as the different compromises of liquid, jello and frozen layouts. It's easily enough for you to be able to continue learning or experimentation on your own. With forgivable cuteness, the book also frequently mentions the availability of other O'Reilly publications with more information, such as HTML Pocket Reference and CSS Pocket Reference.
Similarly, the book gives a clear presentation of the different ways of setting text size, but doesn't provide the last word. If you're looking for Javascript to automatically size text based on screen resolution and browser width, you'll have to look elsewhere. In fact, Javascript is one of the ten things mentioned in the appendix, "The Top Ten Topics We Didn't Cover", leaving room for Head First Javascript to be published in 2006.
The last chapter provides a brief introduction to forms, including example designs both with and without tables. The goal of the chapter is to show you how to use CSS to style and layout forms, but you can't try out a form without something on a web server to process it, so the book's web site includes a simple-back end which will "process" (really just echo) the forms which are submitted to it.
Head First HTML deserves its score of 10, but that doesn't mean every word is perfect. I wasn't comfortable with the description of CSS borders, margin and padding until I'd gone back and re-read it. And it wasn't obvious to me that the background of a margin (such as a dashed margin) is the same as that of the content area it surrounds until I'd worked through some examples on my own. But that just underlines the fact that the book is so readable that I could tell when my understanding was slipping.
While Head First HTML never claims to be a reference, information is presented very clearly. If you forget the differences between HTML and XHTML, the book's excellent summary is easy to find, and includes a discussion of the W3C HTML and XHTML validator. That said, the index is short and idiosyncratic: there is a list of page references for the Q&A sections (under T for "There are no dumb questions") but transitional HTML is indexed only under "HTML, transitional", and jello, the layout, is found under "Design" but not "J" or "Layout".
I've said that I was initially very skeptical about the graphics-heavy Head First Labs house style. I'm pretty sure I've been thinking in prose all my life, but apparently verbal and graphical perception can be safely intermingled. I can't explain why, but this garden salad of words, pictures and diagrams of all kinds provides a easy-to-read and very effective introduction to a large amount of material."
You can purchase Head First HTML with CSS & XHTML from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.