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.

Banner

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.

Banner


Assembly x64 Programming

Author: Mike McGrath
Publisher: Easy Steps
Date: November 2021
Pages: 192
ISBN: 978-1840789522
Print: 1840789522
Kindle: ‎B09FTNN4P5
Audience: Developers wanting to learn assembler
Rating: 5
Reviewer: Harry Fairhead
Assembler, why would you want to learn that!



SQL Server 2022 Query Performance Tuning (Apress)

Author: Grant Fritchey
Publisher: Apress
Pages: 745
ISBN:978-1484288900
Print:1484288904
Kindle:B0BLYD98SQ
Audience: DBAs & SQL Devs
Rating: 4.7
Reviewer: Ian Stirk 

A popular performance tuning book gets updated for SQL Server 2022, how does it fare?


More Reviews