While researching my article about Python Turtle Graphics for Opensource.com, I came across Bryson Payne's new book, Teach Your Kids to Code. It's extremely well written, and I believe it's one of those rare volumes that's great for anyone wanting to learn to code. The title belies the fact that this book can be used by children, parents, teachers, and even college students.
The fact that the book contained supporting materials and documentation that helped me to use my Linux laptop is what really caught my eye. Most Linux distributions come with Python 2.7 as part of the default software packages. This includes Ubuntu, Fedora, and Raspbian to name but a few. However, Teach Your Kids to Code uses Python 3. A separate appendix beginning on page 276 contains all the necessary instructions for downloading and installing the Integrated Development Environment (IDLE) editor, which is necessary to complete the coding lessons contained in the book. IDLE includes both the Python shell and a text editor. In addition to these directions, Payne includes a download link to the code examples used in the book, making it easier to learn and debug your own coding problems.
The book of nearly 300 pages contains 10 chapters and three appendices. It also includes a glossary of terms which help the learner to become familiar with programming terminology.
The first chapter begins with a simple program to print your name. Over the course of the book teaches the student to produce complex graphics from a simple program like this:
for x in range(100):
t.circle(x + 50)
Using a series of simple programs, each building upon the other, Payne has crafted a book that invites everyone who sincerely wants to learn to code. The book and accompanying exercises really made learning Python and its Turtle graphics module much easier.
I have read a number of introductory texts about Python that were intended to make it seem easy to master, but this book simplifies that process while at the same time providing everyone with wonderful designs that invite the learner to experiment with iterations of the code snippets. At the end of each chapter, there are programming challenges that encourage the student to apply the skills learned in that chapter. Having working examples of the code helped me to spot typographical errors in my coding that otherwise would have taken countless minutes and hours to figure out.
In addition to that, the coding examples invite the student to experiment with code. Later this year, I plan to teach a coding class in our local library, and this book has given me the tools and the confidence to move forward with those plans.
This article is part of the Back to School series focused on open source projects and tools for students of all levels.