Before I talk about Head First SQL, let me tell you about other database books I have used in the classroom. I teach an enterprise databases sequence (DBs I and II) at a tribal college in Montana. On the course evaluations for this sequence, students have a common complaint: "Liked the class. Hated the book.", "The book was painful to read.", "Please get a different book!"
Each year my colleagues and I are on the watch for a better, more engaging database book. We have tried three books over the past five years, but the difference between those books is like the difference between shades of grey. In the classroom, most of my time is spent mediating the daunting abstractness of those books or breaking down huge lumps of difficult technical material written in plodding and pedantic prose. This year a spot of color showed up: Head First SQL!
I discovered Head First SQL too late to use it as the primary text for my Fall quarter DBs class, but I liked it so much, I added it as an optional textbook for the quarter and told my students it would be the main textbook for the Winter quarter. I did so because the energy of the class was waning rapidly, and the book I had originally chosen was not helping. I needed to add some excitement to homework and lectures. Within two days of using Head First SQL, the classroom became a far more engaging environment.
I compiled this list for anyone interested in learning databases and SQL, especially anyone who teaches it.
Eleven Things I like about Head First SQL:
1. The book starts where my students start. The first questions my students have are questions of relevance: Why do I want to know this? What have I done before that's like this? What will this material add to my career and my life? Head First SQL starts by ushering the student through those questions: What is a database? Who cares about databases? What will a database do for me?
2. My students are able to read SQL, think SQL, and write SQL after the first chapter. Head First SQL starts students on the command-line, the same command-line professional database administrators use during 80-95% of their workday. My students start out with good command-line habits like using a DESCRIBE statement to view database structure and columns before writing a SELECT statement that references those columns.
3. The book invites my students to make mistakes and anticipates the most common mistakes I see students make. On quizzes, students who've dug into the book don't make those mistakes again.
4. The book's sequence of topics fits the way I teach and the way my students learn: queries come before design and theory. Head First SQL does not set out to be a comprehensive database design book, but it does an excellent job of immersing the learner in the critical thinking that goes into database design and table design strategy. I applaud Lynn Beighley and the Head First Team. They have laid an excellent foundation for the learner to smoothly transition into abstract database design concepts such as normalization, primary and foreign keys, entity-relationship diagrams (ERDs), and E.F. Codd's 12 principles of relational design.
5. Students don't read the book. They work the book. They play the book. They do the book.
6. Like Socrates, Head First SQL pushes my class and I to ask deeper questions about data, information, table design, normalization. Three different times during fall quarter, we had substantive arguments about which data types to use for certain columns. To hear my students using critical thinking and applying it to table design strategy is rewarding.
7. Like a guide, an outfitter, a trusted companion, HF SQL walks beside the student. The books I have used before talk down to students, talk over their heads, or just plain pontificate.
8. Theater in a database classroom? Yes. My students and I act out things like "Confessions of a NULL" -- fun, mysterious, memorable -- a great way to turn an abstract concept into a concrete and palpable one.
9. At conferences, committee meetings, training seminars, my colleagues and I talk about student engagement and the new "three Rs": rigor, relationships, and relevance. Using Head First SQL in my classroom changed my class noticeably, and I attribute that change to Head First's focus on those three Rs. My students started showing up early for class, spent more time in the lab outside of class, and performed far better on quizzes.
10. My quizzes and tests consist of sample tables and data. The open-ended questions on those tests ask students to write SQL to solve problems--a daunting task but the best way to assess whether students really "get" the concepts. In the past, students scores have ranged from 10% to 87%. A score of 92% was rare. A score of 95% almost unattainable. With Head First SQL, that range increased to between 70% and 98%. If that's not proof of Head First SQL's effectiveness, I don't know what is.
11. You will laugh your [body part here] off! And be warned: no matter what body part you substitute into the brackets, you will laugh several other body parts off as well.
I highly recommend this book to anyone teaching or learning SQL, relational database design, or MySQL.