Author: Warren and Carter Sande

Publisher: Manning, 2013

Pages: 432

ISBN: 978-1617290923

Aimed at: Complete beginners, especially kids

Rating: 5

Reviewed by: Sue Gee A motivating and well thought out approach, using Python and other free resources. NOTE: This review relates to the first edition of this book (ISBN: 978-1933988498 from 2009). Computer programming is a skill that all children should have the opportunity to learn. Indeed a couple of decades back I assumed that by now it would be on an equivalent footing with reading and writing on the school curriculum. Sadly my prediction hasn't materialised so I'm very pleased to discover this new book written by a father and son team to help make up for a very real deficiency in the educational system. Learning to program is a mind expanding experience so while the book has been written to appeal to a young audience it has a lot to offer all beginners. It adopts a logical approach and presents clear explanations backed up by well chosen examples. So that you can proceed without having to buy any software, the book uses Python as its teaching language and provides it, together with the examples used throughout the book, on its own website in versions for Windows, Mac and Linux. You are encouraged to type in at least some of the examples but having them supplied is obviously a bonus. You might have reservations about using Python as a teaching language - but it's not a bad choice when you consider its characteristics. It's an interpreted language which means feedback is fast and problems can be corrected interactively - always good when you are learning. It is object oriented so its a modern language but you can write code without using objects so these more difficult ideas can be slotted in after the basics like flow of control and methods have been mastered. It's also named in honour of Monty Python and who can resist the temptation to remember, and reproduce the old jokes - any excuse is a good one! The book employs a child-friendly style and is suitable for any beginner aged from 9 to 99. The language is straightforward and there are plenty of graphics that aid communication. Certain characters appear at intervals. The most important one is Carter - the book's junior co-author. He appears with questions and comments that draw attention to key points and as you get deeper into programming it's Carter who notices when things don't work as they should. There's also a bespectacled girl who appears with hints in "Thinking like a programmer" boxouts in early chapters and a youth carrying a surf board whose messages under a "Don't Worry, Be Happy" banner offer reassurance. I particularly liked the oriental-looking granny who provides information about how things were different "in the good old days" of early personal computers. Word boxes for important jargon and technical boxouts that explain what's going on at the hardware level also contribute to a varied and highly informative presentation. Self test questions (with answers) appear at the end of every chapter together with practical problems for the reader to solve - again the solutions are at the end of the book. The book provides a well-structured course in programming. In the very first chapter, having taken you through installing Python and the IDLE editor, you get off to a flying start by running two programs. Chapter 2 is where we get down to basics starting with variables, numbers and strings; quickly proceeds to arithmetic operations; looks at types of data and then considers input. In Chapter 6 on GUIs the number guessing game from Chapter 1 is revisited and is transformed into something more sophisticated. I have some reservations about the degree of complexity encountered in the next chapter on tests for conditions and was relieved to discover that only the for loop is introduced at this stage in the following one. The idea of commenting code is introduced next and then Chapter 10 is devoted to a skiing game that uses the techniques introduced so far. I would have preferred to have the program listing interspersed with explanatory text - instead there are terse explanations annotating the listing - but, despite the encouragement to type the game in as useful exercise, I imagine many readers will use the supplied program as a shortcut that gives them more time for playing it! The game also serves as an introduction to Pygame, a Python module that crops up frequently throughout the rest of the book. The level ramps up quickly in the following chapters which having introduced nested and variable loops, lists and functions proceed to objects in a chapter that covers attributes, methods and classes along with polymorphism and inheritance. Modules and namespaces come next and are followed by the potentially troublesome but obviously appealing topic of graphics. This opens up lots of potential for games programming and is followed by a chapter on sprites and collision detection, complete with code for controlling bouncing balls. This leads logically on to considering events in a chapter that culminates with programming PyPong, a version of the classic bat and ball game. Sound effects and music are added to the game in the next chapter which covers sound. Chapter 20 shows how to create GUIs using PythonCard and introduces the components - buttons, text and so on - that make up a GUI. It presents a program for converting temperatures in Celsius to Fahrenheit as a example. Print formatting and strings is covered next and then comes file input and output, with a game of hangman as its example. This is followed by randomness with dice and card games and computer simulations with a lunar lander and a virtual pet to program. This brings us to the end of the book. I was amused to read in its "What's Next" chapter the recommendation of locating 1980's titles of books of games programs written in BASIC and a reminder that QBASIC still exists. Perhaps it's time to dust the cobwebs off the many such volumes currently neglected on shelves or relegated to attics. This book is a very good introduction to programming and can be recommended to anyone, young or old, who wants to start learning this vital and highly enjoyable skill. Learning React, 2nd Ed



Author: Kirupa Chinnathambi

Publisher: Addison Wesley

Date: June 2018

Pages: 304

ISBN: 978-0134843551

Print: 013484355X

Kindle: B07CQPL2BM

Audience: Would-be web developers

Rating: 4.5

Reviewer: Ian Elliot React - the new kid on the block, but this book is a 2nd edition. Not so young any more.

+ Full Review Pro SQL Server On Linux



Author: Bob Ward

Publisher: Apress

Pages: 636

ISBN: 978-1484241271

Print: 1484241274

Kindle: B07JYBS6QX

Audience: SQL Server developers on Linux

Rating: 5

Reviewer: Kay Ewbank Given the history of SQL Server as a Windows product, getting it up and running well on Linux is almost certain to inv [ ... ]

+ Full Review SQL Server 2016 High Availability

Real World Haskell: Code You Can Believe In

SQL Server 2017 Query Performance Tuning, 5th Ed

Python: An Introduction to Programming

Murach's HTML5 and CSS3 (4e)

Introduction to Programming in Python

Beginning Arduino 2nd Ed

JavaScript Cookbook (2nd Ed) <ASIN:1617290920> <ASIN:1598631128> <ASIN:1871962404> <ASIN:1590599829> Hello World Author: Warren and Carter Sande Publisher: Manning, 2009? Pages: 432 ISBN: 978-1933988498 Aimed at: Complete beginners, especially kids Rating: 5 Pros: A motivating and well thought out approach, using free resources Cons: Minimal explanation of complete listings Reviewed by: Sue Gee Computer programming is a skill that all children should have the opportunity to learn. Indeed a couple of decades back I assumed that by now it would be on an equivalent footing with reading and writing on the school curriculum. Sadly my prediction hasn't materialised so I'm very pleased to discover this new book written by a father and son team to help make up for a very real deficiency in the educational system. Learning to program is a mind expanding experience so while the book has been written to appeal to a young audience it has a lot to offer all beginners. It adopts a logical approach and presents clear explanations backed up by well chosen examples. So that you can proceed without having to buy any software, the book uses Python as its teaching language and provides it, together with the examples used throughout the book, on its own website in versions for Windows, Mac and Linux. You are encouraged to type in at least some of the examples but having them supplied is obviously a bonus. The book employs a child-friendly style and is suitable for any beginner aged from 9 to 99. The language is straightforward and there are plenty of graphics that aid communication. Certain characters appear at intervals. The most important one is Carter - the book's junior co-author. He appears with questions and comments that draw attention to key points and as you get deeper into programming it's Carter who notices when things don't work as they should. There's also a bespectacled girl who appears with hints in "Thinking like a programmer" boxouts in early chapters and a youth carrying a surf board whose messages under a "Don't Worry, Be Happy" banner offer reassurance. I particularly liked the oriental-looking granny who provides information about how things were different "in the good old days" of early personal computers. Word boxes for important jargon and technical boxouts that explain what's going on at the hardware level also contribute to a varied and highly informative presentation. Self test questions (with answers) appear at the end of every chapter together with practical problems for the reader to solve - again the solutions are at the end of the book. The book provides a well-structured course in programming. In the very first chapter, having taken you through installing Python and the IDLE editor, you get off to a flying start by running two programs. Chapter 2 is where we get down to basics starting with variables, numbers and strings; quickly proceeds to arithmetic operations; looks at types of data and then considers input. In Chapter 6 on GUIs the number guessing game from Chapter 1 is revisited and is transformed into something more sophisticated. I have some reservations about the degree of complexity encountered in the next chapter on tests for conditions and was relieved to discover that only the for loop is introduced at this stage in the following one. The idea of commenting code is introduced next and then Chapter 10 is devoted to a skiing game that uses the techniques introduced so far. I would have preferred to have the program listing interspersed with explanatory text - instead there are terse explanations annotating the listing - but, despite the encouragement to type the game in as useful exercise, I imagine many readers will use the supplied program as a shortcut that gives them more time for playing it! The game also serves as an introduction to Pygame, a Python module that crops up frequently throughout the rest of the book. The level ramps up quickly in the following chapters which having introduced nested and variable loops, lists and functions proceed to objects in a chapter that covers attributes, methods and classes along with polymorphism and inheritance. Modules and namespaces come next and are followed by the potentially troublesome but obviously appealing topic of graphics. This opens up lots of potential for games programming and is followed by a chapter on sprites and collision detection, complete with code for controlling bouncing balls. This leads logically on to considering events in a chapter that culminates with programming PyPong, a version of the classic bat and ball game. Sound effects and music are added to the game in the next chapter which covers sound. Chapter 20 shows how to create GUIs using PythonCard and introduces the components - buttons, text and so on - that make up a GUI. It presents a program for converting temperatures in Celsius to Fahrenheit as a example. Print formatting and strings is covered next and then comes file input and output, with a game of hangman as its example. This is followed by randomness with dice and card games and computer simulations with a lunar lander and a virtual pet to program. This brings us to the end of the book. I was amused to read in its "What's Next" chapter the recommendation of locating 1980's titles of books of games programs written in BASIC and a reminder that QBASIC still exists. Perhaps it's time to dust the cobwebs off the many such volumes currently neglected on shelves or relegated to attics. This book is a very good introduction to programming and can be recommended to anyone, young or old, who wants to start learning this vital skill.