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!
- Sony Settles in Linux Battle
- Download "Linux Management with Red Hat Satellite: Measuring Business Impact and ROI"
- Profiles and RC Files
- Maru OS Brings Debian to Your Phone
- Understanding Ceph and Its Place in the Market
- Snappy Moves to New Platforms
- What's Our Next Fight?
- Git 2.9 Released
- The Giant Zero, Part 0.x
- Susan Lauber's Linux Command Line Complete Video Course (Prentice Hall)
With all the industry talk about the benefits of Linux on Power and all the performance advantages offered by its open architecture, you may be considering a move in that direction. If you are thinking about analytics, big data and cloud computing, you would be right to evaluate Power. The idea of using commodity x86 hardware and replacing it every three years is an outdated cost model. It doesn’t consider the total cost of ownership, and it doesn’t consider the advantage of real processing power, high-availability and multithreading like a demon.
This ebook takes a look at some of the practical applications of the Linux on Power platform and ways you might bring all the performance power of this open architecture to bear for your organization. There are no smoke and mirrors here—just hard, cold, empirical evidence provided by independent sources. I also consider some innovative ways Linux on Power will be used in the future.Get the Guide