|Beginning Programming All-in-One For Dummies|
Author: Wallace Wang
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 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.