Book Review: "Think Like a Programmer" by V. Anton Spraul
“Rewire your Brain”. The quote from the back of this book couldn’t have said it any better. I acquired this book to add to my every growing list of programming and scripting books in hopes that I can work through some of the ‘humps’ in my troubleshooting skills. Before I get started in this quick review I’ll give you a little background.
I started out dabbling in programming with Basic, utilizing QuickBasic back in the early 90’s, from there I self-taught myself C and Java programming but quickly forgot everything I learned. Fast forward 10+ years to where I spend a majority of my time scripting in Bash, Perl, and Powershell, with minor dabbling in C (mainly patching Linux, reading other’s code, or AVR programming). So when I saw this book I figured ‘hey, the back of the book says I don’t necessarily need C++ programming, this just might be up my alley’.
Okay, let's get that one thing out of the way before I start my review. Just because the back of the book says, and I quote “Just because the books examples are written in C++, the creative problem-solving concepts they illustrate go beyond any particular languages....”, if you don't know any of the fundamentals of C++, be it classes, arrays, memory allocation, etc then in all honesty you either need to pull out your C++ fundamentals books (like I had to) and brush up on your C++ or read the book for some of the really good problem solving examples. I would say 90% of this book deals with C++ examples and problem solving that has to do with C++ coding examples
Will this book make you a better programmer? Will it teach you to write better code, better syntax? No. However, this book will teach you what you are doing wrong in your code, how to streamline your code, and how to step back, take a breather and re-evaluate it for better or worse. Though I haven’t touched a line of C++ code in over a decade I was able to read this book (and even take some of the examples, turning them into C) and learn some of the mistakes I have made over the years. There were many times where I had been frustrated writing a program or a script, and in my frustration I turned out convoluted, obscure code that made absolutely no sense yet it ran in some twisted, duct tape and twine way. Had I read this book previously, taken a step back and utilized the steps illustrated in the book to properly evaluate what my end goal was then my end results would be the same (code runs) yet with fewer problems along the way.
So onto a quick look at the book. The first few chapters go over problem solving skills outside of the programming environment, like puzzles and day-to-day problem solving- utilizing critical thinking and analytical thinking to solve real world problems before you jump into your programming environment. From there the author goes into the skills necessary to problem solve in a programming environment, and then immediately jumps into the C++ examples.
Each example is broken down by chapter with each chapter guiding the reader in the ‘best practice’ scenarios for effective problem solving. Concluding each chapter is a list of programming exercises that the reader can complete, of which I highly recommend.
At the end of the book is a concluding chapter on problem solving that wraps up everything the reader has read on the examples and exercises outlined in the book.
My thoughts? If you have no C++ background I would honestly look elsewhere unless you want to pick up the book for the 2 or so chapters on ‘non C++’ problem solving guides. However if you are a student learning C++ or a veteran C++ programmer, I highly recommend adding this book to your ever growing bookshelf. You just may change the way you re-evaluate writing your code. I know I did; after reading this book I started going through scripts and code I have written in the last 15+ years and shaking my head in disbelief. Time to pick up my notebook and problem solve old scripts.
Fast/Flexible Linux OS Recovery
On Demand Now
In this live one-hour webinar, learn how to enhance your existing backup strategies for complete disaster recovery preparedness using Storix System Backup Administrator (SBAdmin), a highly flexible full-system recovery solution for UNIX and Linux systems.
Join Linux Journal's Shawn Powers and David Huffman, President/CEO, Storix, Inc.
Free to Linux Journal readers.Register Now!
|Fancy Tricks for Changing Numeric Base||May 29, 2016|
|Working with Command Arguments||May 28, 2016|
|Secure Desktops with Qubes: Installation||May 28, 2016|
|CentOS 6.8 Released||May 27, 2016|
|Secure Desktops with Qubes: Introduction||May 27, 2016|
|Chris Birchall's Re-Engineering Legacy Software (Manning Publications)||May 26, 2016|
- Tips for Optimizing Linux Memory Usage
- Secure Desktops with Qubes: Introduction
- Working with Command Arguments
- Download "Linux Management with Red Hat Satellite: Measuring Business Impact and ROI"
- Secure Desktops with Qubes: Installation
- Fancy Tricks for Changing Numeric Base
- CentOS 6.8 Released
- Linux Mint 18
- The Italian Army Switches to LibreOffice
- Petros Koutoupis' RapidDisk
Until recently, IBM’s Power Platform was looked upon as being the system that hosted IBM’s flavor of UNIX and proprietary operating system called IBM i. These servers often are found in medium-size businesses running ERP, CRM and financials for on-premise customers. By enabling the Power platform to run the Linux OS, IBM now has positioned Power to be the platform of choice for those already running Linux that are facing scalability issues, especially customers looking at analytics, big data or cloud computing.
￼Running Linux on IBM’s Power hardware offers some obvious benefits, including improved processing speed and memory bandwidth, inherent security, and simpler deployment and management. But if you look beyond the impressive architecture, you’ll also find an open ecosystem that has given rise to a strong, innovative community, as well as an inventory of system and network management applications that really help leverage the benefits offered by running Linux on Power.Get the Guide