Beginning Programming All-in-One For Dummies

Author: Wallace Wang
Publisher: For Dummies
Pages: 800
ISBN: 978-1119884408
Print: 1119884403
Kindle: B0B1BLY87B
Audience: Novice programmers
Rating: 3
Reviewer: Kay Ewbank

This is a collection of seven shorter books introducing key aspects of programming, but it fails through trying to cover too many topics in too shallow a fashion.

The author says the ideal reader has no or limited experience of computer programming, but is eager to learn, and the first book in the series within the larger book starts from the very basics.


In fact, the book on Getting Started kicks off with a chapter of anecdotes designed to show how accessible computer programming is, a bit of programming history, and an explanation of the steps of writing a program from picking a computer to combining a compiler and interpreter to create p-code.

Chapter 2 discusses the basic options for writing programs - spaghetti code, structured programming, event-driven programming and object oriented programming. The different types of language - entry-level languages such as Basic and Scratch; curly-bracket languages including C, C++, C# and Java; Artificial intelligence languages (by which the author means Prolog and Lisp); Scripting languages (VBA); and database programming languages. One problem with a book like this is that the author is attempting to provide an accessible overview, and while you might look at these first two chapters and disagree with various aspects, how would you introduce such a massive topic without over-simplifications?

The second 'book' covers programming basics, beginning with how programs work, then introducing variables, data types and constants. A chapter on manipulating data - assignment, math functions, string manipulation etc.. There are chapters on branching, looping and subprograms. Wang then introduces object-oriented programming, encapsulation, inheritance and polymorphism. I found it difficult to imagine someone who has just met the assignment operator coping with polymorphism, but when do you introduce object-oriented methods?

Other chapters look at working with data in files, documenting your program, principles of user interface design, and debugging and testing. 

Book Three is titled Data Structures, and starts with a chapter on structures and arrays. This is followed by a chapters on sets and linked lists; collections and dictionaries; stacks, queues and deques; and graphs and trees. Each chapter and topic is reasonably well explained, but as with the rest of the book, the difficulty is that a reader who needs the concept of a variable or an array explained in simple terms will struggle with the idea of sets and linked lists, while a reader who needs to find out about linked lists will find much of the rest of the book too simple. 

Book Four considers algorithms, working through standard algorithms for sorting, searching, string searching, data compression and encryption. Wang doesn't give the full methods, just a short description of the overall way they work, so the quick sort description is more or less 'pick a pivot point, put values less than into one list, greater than into the second list, then repeat.' 

Book five looks at web programming, with chapters on HTML, CSS, JavaScript, PHP, and Ruby. Each chapter starts with a description of the structure of a program, how to declare variables, operators, branches, loops, functions, arrays and objects.

Book Six is about programming language syntax, with chapters on C and C++, Java and C#, Perl and Python, Kotlin, Swift and SwiftUI, Flutter and Dart.  The chapters are structured in a similar way to those in book five, and are around  twenty pages each, so roughly ten pages a language.

The final book is titled Applications, and has chapters on database management, bioinformatics, computer security, artificial intelligence, mobile and wearable computing, game engines, and the future of computer programming.

This isn't a book I would particularly recommend, or at least not the whole book. I can imagine an audience for the initial two books - getting started and programming basics - and a complete novice would probably find those useful if taken alongside books covering a specific programming language in more detail. That same novice might also find some of the later material interesting as 'this is what you might want to go on and learn about in more detail', but I don't see how they could really progress their programming in any useful way based on the book's contents. Really, the goal of the book is just too wide and too shallow.



To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin.


TinyML: Machine Learning with TensorFlow Lite

Authors: Pete Warden and Daniel Situnayake
Publisher: O'Reilly
Date: December 2019
Pages: 504
ISBN: 978-1492052043
Print: 1492052043
Kindle: B082TY3SX7
Audience: Developers interested in machine learning
Rating: 5, but see reservations
Reviewer: Harry Fairhead
Can such small machines really do ML?

Professional Scrum Development with Azure DevOps

Author: Richard Hundhausen
Publisher: Microsoft Press
Pages: 432
ISBN: 978-0136789239
Print: 0136789234
Kindle: B08F5HCNJ7
Audience: Developers interested in Scrum
Rating: 5
Reviewer: Kay Ewbank

This is a book designed for teams using Scrum and Azure DevOps together for developing complex product [ ... ]

More Reviews