Programming is such a key skill for the modern world that it's now taught in every UK school. However, plenty of adults have never even written an HTML tag, let alone a full program. Confident Coding is a beginner's guide by the author of a popular online coding course that alternates sections explaining why you'd want to learn to code with the absolute basics of web development, Python and mobile app creation.
The encouragement will likely be useful for readers who aren't confident that they can learn to program, as a reminder of why it's such a useful skill, although the suggestions of what you can achieve as a beginner are somewhat uneven. You're unlikely to create a breakout blog or a truly useful app for your company, and you'll need another book to really master Apple Script or PowerShell automation if the short sections on using these tools to rename files or search text files for strings whet your appetite. Mentioning tools like If This Then That (IFTTT) is more helpful for the average reader.
Things get off to a slightly rocky start though. Sending a reader with no programming experience to the online IDE at repl.it to type in some very simple Python means they'll get the thrill of seeing their code run, but with no screenshot or explanation of the site's interface until the (much later) chapter on Python there's a danger they may get confused. And there's a typo in the very first coding challenge.
The explanation of why there are different programming languages handily groups them into app development, web development and code on web servers, but ends up listing different languages rather than really explaining why they take different approaches, or what their different strengths are. And the instructions for how to find the online PDF with the supplementary exercises could be highlighted more clearly, as this is a key part of the book.
Covering the basics
The Python chapter also starts simply, building on the concepts of variables and loops, then going on to lists, regular expressions, string processing and modules, finishing up with scraping information from a table on a simple web page.
The rather basic chapter on getting your own website sits rather oddly here, and it skips past a lot of questions to jump into advanced page layout using the Bootstrap library, although you're actually just copying a template from the author's website. That certainly simplifies the process, but you'll have to look elsewhere for details of what more you can do.
The sections on building apps for iOS and Android are also beginner's guides that don't take you all the way to real coding. If you don't know how to download, install and get started in XCode or Android Studio, the handholding will be useful and the clear, simple instructions will get you into drag-and-drop layouts and adding the code for simple, interactive forms. They breeze through the more advanced concepts like floating point and integer numbers, libraries, classes and methods at speed, telling you just as much as you need to know to work through the exercises. The book doesn't mention the alternatives to XCode that would let you code for iOS on Windows instead of a Mac, but they're not appropriate at this level anyway. Again, this is about helping people with no experience to have the confidence to take these very first steps, rather than trying to give the reader a comprehensive grounding in coding.
The chapter on debugging is a useful addition for frustrated beginners. The techniques suggested are basic, but include how to think through code flow, how to comment out code and put in tests that the programming is even reaching the right section of the code, as well as how to search for help and sample code on sites like Stack Overflow.
Primer, not encyclopedia
The real problem with Confident Coding is that its reach exceeds its grasp. Percival's online coding courses at Udemy have been very successful and he refers to a slew of other breakout successes, from John Gruber's Daring Fireball to the fact that the 'save it to read later' Pocket app was written by someone who'd only recently learned to code. But even the examples of what readers could go on to do are often so far beyond the scope of the book that they're clearly meant as inspiration rather than a feasible next step. There's more space devoted to how you could be a freelance developer than any of the coding techniques you'd need to master to actually do that.
If your new year's resolution is to learn how to program, or you just want to get digitally literate and understanding what coding is all about, this is a simple -- but also rather simplistic -- book that will let you dip your toes in the water without getting out of your depth. But you'll need to look elsewhere for your next steps.