Teach Your Kids to Code

Teach Your Kids to Code: A Parent-Friendly Guide to Python Programming is a unique and welcome addition to the recent trend of programming books with a focus on teaching children. Unlike books that are designed for self-study, Teach Your Kids to Code is intended to be used in a collaboration between an adult and a child. This could be a parent working with a daughter or son or a teacher working with one or more students. It certainly could be used for self-study, but I like how the intent and focus is to provide something to do together.

The book covers all the important topics from installing and setting up Python on your platform to creating a game. In between, we are treated to coverage of drawing graphics, first simply using Turtle in Python, and later with animated effects using Pygame. Concepts like math, numbers, and variables; loops; conditions; functions; and user interaction are covered clearly and in a logical order within an interesting and enjoyable context.

Each chapter ends with a set of programming challenges to give the readers a way to practice what was learned in the chapter. Sample answers are made available on the publisher’s website. These are interesting and valuable.

I really like this book. If you are an adult looking for a fun project to do with a child in your life, or a kid looking for a way to interest an adult in learning how to use Python, Teach Your Kids to Code is worth a close look.

Disclosure: I was given my copy of this book by the publisher as a review copy. See also: Are All Book Reviews Positive?

Battle Lines: A Graphic History of the Civil War

I confess that I have never been deeply interested in The American Civil War. After reading this book, I’m convinced that the only reason I wasn’t interested is because of how the topic was presented to me. I am now very interested.

Battle Lines: A Graphic History of the Civil War takes the history and scholarship surrounding the conflict which shaped the United States and which still has an impact on its internal politics and struggles and adds what was always missing for me: the human element. Each chapter takes an ordinary, everyday object from the era and uses that object to begin a vignette that demonstrates how the war affected real people. We are given solid history, but within a context that gives the facts meaning. As Jonathan Fetter-Vorm did with Trinity: A Graphic History of the First Atomic Bomb, a difficult and complex topic is deftly broken down into easily digestible portions along with a moving and real sense of why I as a reader should care.

The artwork in the book is powerful and evocative. The narrative is cinematic. It is not hyperbole to say that I was transported into the story while reading, to the extent that I often forgot I was reading; I was so moved with emotion that more than once I found myself in tears. Combine this with the solid presentation of historical facts and I am left with a hunger to know more. For this, I say this book belongs in every school library in the country and on the shelf of anyone interested in good art, excellent storytelling, and careful scholarship.

Disclosure: I was given my copy of this book by the publisher as a review copy. See also: Are All Book Reviews Positive?

The GNU Make Book

The GNU Make Book is intended for people who already have an understanding of GNU Make, what it is, and the basics of how and why someone would use it. The reader is assumed to know enough about programming and source code, about compiling and creating software executables to not need an introduction. The book begins by talking about setting environment variables in your makefile. If you know what this means, you will likely benefit from the book. If you don’t, you aren’t ready for this book.

The GNU Make Book has six clear chapters, arranged in a logical order:

  • The Basics Revisited covers topics like variables and version checking in your makefile.
  • Makefile Debugging helps you find problems with tips and tricks like variable tracing and dynamic breakpoints.
  • Building and Rebuilding uses example makefiles to demonstrate things like automatic dependency generation and rebuilding under specific circumstances.
  • Pitfalls and Problems clarifies many troublesome aspects of makefiles and helps you avoid common difficulties.
  • Pushing the Envelope takes you beyond the typical use of make with a few cool ideas.
  • The GNU Make Standard Library works as a reference for an open source project started by the book’s author, John Graham-Cumming, to collect and provide common functions that makefile authors “end up writing over and over again.”

I think this book is fantastic. It does have one weakness that, once addressed, would be likely to broaden its appeal. Many people who want or need to learn to use GNU make more effectively do not yet have the foundational knowledge necessary for reading or benefiting from this book. That could be remedied in a 15-20 page introductory chapter covering topics like “what is make?” and “how is make typically used?” The descriptions could be short, but would set the context for the rest of the book and ease the nervous reader in. Perhaps starting with something like, “GNU make is a tool that enables you to automate the generation of program executables from program source code” would be useful and could be followed by, “This is typically accomplished by writing a Makefile, which includes a list of instructions for make to use as it does its work.”

Disclosure: I was given my copy of this book by the publisher as a review copy. See also: Are All Book Reviews Positive?

Build an HTML5 Game

No Starch Press has published a number of programming books that impress me, both in their depth and in their accessibility.

Build an HTML5 Game is intended for people who already have a basic familiarity with HTML, CSS, and JavaScript. This book takes you beyond the typical “let’s introduce tags and build basic web pages” stuff you usually see and walks the reader through building an entire browser-based game, start to finish. The programming starts immediately in Chapter 1, which is cool. All the important facets are covered from sprite animation, transitions and transforms, game logic, levels and sound, and quite a bit more.

The reader who is most likely to benefit is the one who has at least a little programming experience, but wants to broaden their skills with an entry into game development. To that end, I suggest you already have a little experience making web sites and using JavaScript and jQuery. If you have previous experience developing Flash games and want to move to the present and future with HTML5, you will also find this book useful and an enjoyable way to get started.

I really enjoyed reading Build an HTML5 Game. The writing is clear and easy to follow, the examples are good, and the concepts provide a solid foundation on which you can build. This is not a comprehensive “everything you will ever need or want to know about game programming” sort of book, but rather a clean and enjoyable entry that helps you over the first hurdle of writing that first game. It then gives you ideas and tips to help you know what else is out there so you have a bit of a roadmap to continue learning as you figure out what sorts of games you want to create.

Disclosure: I was given my copy of this book by the publisher as a review copy. See also: Are All Book Reviews Positive?

The Cartoon Introduction to Philosophy

I like this sort of book, the type that combines complex ideas with approachable expression and style. It is even more enjoyable when I’m already interested in the topic.

The Cartoon Introduction to Philosophy provides a solid, basic foundation to the thoughtful contemplation and interesting ideas in philosophy. It is scheduled to be published in April 2015.

The book presents its information using an enjoyable graphic style that is well done and pleasant to the eyes. The topics are broken into six chapters, each of which builds on the previous. The order is logical, which is good for a book on philosophy, and is actually where we start after a short introduction. Logic is followed by a discussion of perception. This leads to a discussion of the mind, free will, God, and ethics.

The cartoon narrative that is the vehicle for these discussions uses a guide, Heraclitus, one of the early philosophers who predated Socrates. He takes the reader on a journey from the beginning to learn about philosophical thought from the earliest stage to later ideas that built upon, and often contradicted, them.

Most of the big names are mentioned along with a brief description of their main themes. This includes all your favorites across time, such as Plato, Descartes, and Mill. In total, I counted more than 20 different philosophers introduced. That is great in a comic-style book of 168 pages. The introductions are short and necessarily simplified, but this provides an excellent beginning to help the reader get the big picture.

I recommend the book for anyone from later elementary school through college who does not already have a basic understanding of philosophy and the main schools of thought.

Disclosure: I was given my copy of this book by the publisher as a review copy. See also: Are All Book Reviews Positive?

Fire in the Valley, Third Edition

This is the first edition of this book to be published by Pragmatic Bookshelf, which I believe is an excellent fit as a company for the book’s content. The second edition was published back in 2000 by a publisher who specializes these days in a different sort of content. Plus, I love The Pragmatic Programmers series by Pragmatic Bookshelf and this history contained here belongs in this series. Good move for both the authors and the publisher.

Fire in the Valley, Third Edition is subtitled The Birth and Death of the Personal Computer, and for good reason. The book is a history of the types of computers that people bring into their homes, starting at the very beginning when this was just a dream for a few stalwart hobbyists willing to build their own computers. It continues through the usual suspects like MITS and Apple all the way to the present day when computing power has been grafted in to so many different devices that the meaningfulness of having “my own computer” isn’t quite the same as it once was.

The book covers not only historic events and figures, but also issues and philosophies that had an impact of the birth, growth, life, and death of many companies along the way. It also includes a ton of first-hand accounts from key players that make the story rich, interesting, and fun to read.

While this is being sold quite rightly as a history book, perhaps it should receive more fanfare as a chronology of a revolution, of a sweeping cultural shift. I lived through much of the era described in the book (I bought my first computer in 1981) and can easily remember a time when there were only three or four people in my school who had a computer at home, when there was no computer lab, or when the first computer labs were created and filled with Commodore PET computers that had no software other than an operating system, so there was nothing for students to do with or on them. Society is indeed different, and this book describes integral and foundational reasons why and how that change occurred. If this sounds interesting to you, this book is easily the best one I have encountered on the topic. That was true of the previous edition, and is even more true today with the third edition. Pick it up!

Disclosure: I was given my copy of this book by the publisher as a review copy. See also: Are All Book Reviews Positive?

Ubuntu Books I Wrote in 2014

Just in time for the end of the year holidays…

I have a new edition of Ubuntu Unleashed 2015 Edition (affiliate link), now available for preorder. This book is intended for intermediate to advanced users.

I also failed to mention on this blog the newest edition of The Official Ubuntu Book (another affiliate link), now in its eighth edition. The book continues to serve as a quality introduction for newcomers to Ubuntu, both the software and the community that surrounds it.

The LEGO Neighborhood Book

LEGO. There, now I have your attention.

The LEGO Neighborhood Book is another addition to the series of cool LEGO books published by No Starch Press. In it, you find a set of instructions for building anything from small features like furniture or traffic lights to large things like buildings to populate an entire neighborhood. Unlike the creations of my youth, these buildings are detailed structures. Gone are the standard, boxy things I used to make. Replacing them are fancy window frames, building mouldings, and seriously beautiful architectural touches. In fact, many of those features are discussed and described, giving a context for the builder to understand a little bit about them. Also included are instructions for creating different types of features to put in those buildings. Everything from art work to plants to kitchen appliances is in there.

I’ve said so much about the books in this series, and it all holds true here, too. Part of me feels bad for the short review here, but the other part of me hates to repeat myself. In this instance, the praise of the past still applies. If you are a LEGO enthusiast, this is worthy of your consideration. Pick it up and take a look.

Disclosure: I was given my copy of this book by the publisher as a review copy. See also: Are All Book Reviews Positive?

Every Page is Page One

Just about all of you reading this know that I am a technical writer. One of the things I do to keep up to date with the latest trends in the field is read. I read books, articles, blogs, whatever I can find that relates. I especially enjoy Mark Baker’s blog, Every Page is Page One. Baker consistently posts articles that make me think, and in good ways. When I heard he has a book out, I contacted the publisher immediately.

As a side note, Baker’s publisher, XML Press, consistently produces books that I find useful. Every one I have read is well-written, authoritative, and filled with real-world experience and practicality.

Every Page is Page One: Topic-based Writing for Technical Communication and the Web shares the first part of its title with the blog, but the content is not directly from the blog. Rather than a collection of posts on assorted topics assembled into book form, this is a well-thought-out and well-organized text. In it, Baker observes that documentation projects tend to think about technical writing from a very book-centered paradigm. This was once ideal, but in the age of communicating technical information electronically, it forces limits on the end product that hinder the true goal of technical writing, the goal of delivering the right information at the right moment to the person who is seeking it. As someone who is not only a technical writer, but who also has a degree in information resources and library science, I have multiple reasons for supporting this goal.

What Baker does is give tangible form to thoughts and ideas that he, other technical writers, and even I have had in the abstract. How do we provide needed information to people who seek it in an age where the web makes almost anything searchable? Do manuals still matter? What about other forms of documentation? Are there changes to our style of communication, to our style of writing and presenting information, that will make the information seeker’s task easier? Baker discusses serious and realistic ways we can improve our field. It is all organized around the idea that we can no longer control the order in which information seekers will consume or even find our information, that every page (in a documentation wiki, for example) should be created in a way that enables a user to immediately understand and acquire what they need when they need it. Since we know we do not have this control like we had in a printed book, we must modify how we write and present information to fit the expectations of the seeker.

I enjoyed reading this book. I have benefited personally from reading this book. I am taking this book in to my workplace and sharing it with the other tech writers there and I believe our workplace and our employer and our customers will benefit from this book. If you work in the field, I’m convinced you will, too. The whole book is good, but my favorite parts are Section I, which lays the foundation in five chapters, and Chapter 22, which gives very practical and useful advice for making your case to others when you begin to try to make the changes the book describes.

Disclosure: I was given my copy of this book by the publisher as a review copy. See also: Are All Book Reviews Positive?

American Nations

I don’t review everything I read. Not by a long shot. I generally have 3 or 4 books being read at the same time stashed in different places in my house. Today’s book is one that I bought and that I think deserves a wider audience. It begins by separating the idea of nations from states. Nations are essentially groups of people who share a common culture, ethnic language, or historical experience. States can be made up of nations, as in the nation-states of historic France or Turkey, but nations can exist outside of states, such as the Kurdish or Palestinian nations today.

American Nations: A History of the Eleven Rival Regional Cultures of North America postulates that North America, including Canada, the United States, and Mexico (at least the northern part), is made up of eleven nations, each with its own unique historical roots, norms, mores, and cultures and that it is the differences between these nations that create the political and occasionally violent turmoil in the region, especially within the United States.

The author uses a historical narrative to describe the beginnings of each nation, and specifically the reasons its founders felt it necessary to leave their established homes elsewhere and settle in a new land. Some wanted to create religious utopias. Others wanted to escape the control of tyrants. Still others wanted to find a land that they themselves could control as new tyrants, feudal masters of their own hierarchical kingdoms. Native Americans are not forgotten, but just as in history, they are primarily relegated here to the role of conquered indigenous and their histories and interactions are mostly, but not completely, ignored except to factually and clearly describe the dastardly ways with which native peoples were usually treated.

Maps from the book have been published in articles like this one from Tufts Magazine from Tufts University and are worth a look at this point in the description. The linked article also gives a listing and short description of each nation, long enough to give a sense of the idea, but not enough to give the full argument.

The book has left me with several takeaways, and these are why I think it is worth reading for anyone with an interest in North American, and especially USA history, politics, and culture.

  • Talking about red states vs blue states or Republicans vs Democrats or even The North vs The South forces extreme simplification of more complex issues, beliefs, and trends.
  • Thinking that “everyone in the Midwest” USA thinks or believes the same is naive–this is actually one of the more diverse sections of the country, which is why it always seems to be the power broker or swing voting area. In fact, it has historically been the buffer between the Yankee north and the Deep South extremes of the spectrum on almost every debate.
  • American history is presented very differently to children in each of these national areas. The obvious example is that what people who grew up in Yankeedom call “The Civil War” is called “The War Between the States” in the Deep South and often also in Tidewater and Greater Appalachia. However, this is only an obvious example and are there many less-obvious examples that I didn’t realize exist.
  • The men who made the decisions while creating the United States of America as a state sharply disagreed on many issues and for its first hundred years it was not certain the state would persist.

American Nations gives a clear description of each group, its stated motives, and its actions and uses these to dispassionately explain thought and voting trends and more across the areas. It follows these across time as historical events unfold that cause power to rise and fall, especially as the nations expand geographically and how each chose to do so–note, each nation did so very differently from the others. The intent is to help the reader grasp the layers of meaning, communication, alternate understandings and perceptions of events that make up the continent and especially the United States. Knowing this helps both the insider and the outsider grasp the difficulty inherent in trying to unite people across the nations toward any common goal.

As a supplement to a typical (lacking) education in North American and especially American history, I consider this book a quality companion to Howard Zinn’s A People’s History of the United States; this book is less political, but I don’t think it will be less transforming for the reader.

Disclosure: I was NOT given my copy of this book by the publisher as a review copy. See also: Are All Book Reviews Positive?