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!
- Devuan Beta Release
- May 2016 Issue of Linux Journal
- EnterpriseDB's EDB Postgres Advanced Server and EDB Postgres Enterprise Manager
- The US Government and Open-Source Software
- The Humble Hacker?
- The Death of RoboVM
- BitTorrent Inc.'s Sync
- Open-Source Project Secretly Funded by CIA
- New Container Image Standard Promises More Portable Apps
- AdaCore's SPARK Pro
In modern computer systems, privacy and security are mandatory. However, connections from the outside over public networks automatically imply risks. One easily available solution to avoid eavesdroppers’ attempts is SSH. But, its wide adoption during the past 21 years has made it a target for attackers, so hardening your system properly is a must.
Additionally, in highly regulated markets, you must comply with specific operational requirements, proving that you conform to standards and even that you have included new mandatory authentication methods, such as two-factor authentication. In this ebook, I discuss SSH and how to configure and manage it to guarantee that your network is safe, your data is secure and that you comply with relevant regulations.Get the Guide