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.

 

______________________

www.jaysonbroughton.com

Comments

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Awesome review, many other's

lowongan kerja bank's picture

Awesome review, many other's people out there surely love to read book review think programmer
http://thespine-breakersclub.blogspot.com/2013/09/lowongan-mandiri-septe...

It looks awesome. This book

How to's picture

It looks awesome. This book teaches us how to think like a progammer.

reply

couponcode's picture

I was looking for more information related to this book. http://hg1centcodes.com

plus size store

plus size stores's picture

http://www.xxlplussize.com finding plus size stores

thanks vor information "Book

banklowongan's picture

thanks vor information "Book Review: "Think Like a Programmer" by V. Anton Spraul" i like this info

Rewire your Brain

try meladerm's picture

That is a great quote and it does point out that it is never to late to learn new tricks. I like the idea of changing the way you re-evaluate writing your code (if it indeed does work), I'll know more after actually reading the book. I am always interested in learning what I am doing wrong and how to streamline my code.

my mуspacе group? Thеrе's a

ryusha rereseller's picture

my mуspacе group? Thеrе's a lot of people that I think would really appreciate your content. Please let me know. Many thanks . ryushare reseller,

the state-of-the-industry

Anonymous's picture

I haven't read the book, but I want to mention my impression of the programming industry and the assumptions of the thinking required.

It used to be that figuring-out how to get from point A to B was the primary concern. The details of the journey weren't a big deal as long as you knew the basics you could just keep a "cheat sheet" of that language. Even if someone could write more efficient code they could lose even worse because of un-anticipated side-effects. For example; SQL data can be manipulated to act like a command to gather all credit card authentification data and make it available to others. But if someone knew how to check for odd actions on data going from point A to B you could at least write code to interupt a security problem BEFORE the details are worked out. Focusing on providing the proper details ASAP means filling the security hole AFTER-THE-FACT.

Trying to do things too fast, too "efficient", too agile, and not giving time to stop and "measure twice" (to use a phrase from the construction industry) is one of the main causes for the security flaws we've seen in recent years.

By moving from goal-oriented to object-oriented the industry has become less like a craft and more like an assembly line. If one thinks the savings in the HR department is worth it, fine. But profits are affected by much more than the staff costs- especially when e-commerce is involved.

But lets get back to the goal of the original post- the book. Does the book agree with me? Is there an ISBN number that would help me find it? My impressions of the publisher (no starch press) from years ago (about 10) was that it used cheap/thin/recycled paper that was easily torn and stained and didn't handle dry weather well. Plus the cheap ink smeared when it was stored in high humidity. Is that still true? If not is the content worth the risk taken in a low quality paper-back?

Does it tell about the Bjarne

buxle's picture

Does it tell about the Bjarne Stroustrup who is the developer of C++?

I think I will have to learn C++ for online game programming too.

Reply to comment | Linux Journal

Leanne's picture

“Reply to comment | Linux Journal” truly got me personally addicted on
your web-site! I personallywill wind up being back far
more regularly. Thanks a lot -Valerie

Hey guys, let me tell you

Kelly Anderson's picture

Hey guys, let me tell you something for an example. I got a Samsung mobile phone and I got all the essentials features in it so why should I go for iphone?

RED BOTTOM SHOES

red bottom shoes's picture

Now need this knowledge! You have to post helped me a lot! Thanks for sharing.

really thanks for your share

yulia.syukurista's picture

really thanks for your share

please really hope you visit my web
rental mobil surabaya and anekahosting.com web hosting murah terbaik di indonesia

Reply to comment | Linux Journal

Lavonda's picture

I personally blog too and I am posting a thing very similar
to this blog post, “Reply to comment | Linux Journal”.

Do you really mind in cases where Iutilise a lot of of your ideas?
Regards ,Ivey

Yeah, i hope your blog is

rollies's picture

Yeah, i hope your blog is good content :)
http://danytrilaksono.com/cipto-junaedy/

Hello, I just read it and

Tiya Jiah's picture

Hello, I just read it and think that, all you mentioned is perfect. I'm taking advantage through this. Thanks for shearing.

Reply to comment | Linux Journal

message in a bottle gift's picture

Remember, if you are trying to romance her, try and choose gifts ideas for her which
she's going to cherish forever. There you have it - a couple of ideas on how you can give thank you notes for your guests. If you are far from your valentine, send her heart shaped chocolates or a memorabilia with this occasion illustrating the amount you are missing your valentine.

Reply to comment | Linux Journal

website's picture

Hola! I've been reading your weblog for a while now and finally got the courage to go ahead and give you a shout out from Huffman Texas! Just wanted to mention keep up the great job!

Reply to comment | Linux Journal

Microsoft Excel 2010's picture

Hеllo there! Would you mind if I share уοur blog ωith
my mуspacе group? Thеrе's a lot of people that I think would really appreciate your content. Please let me know. Many thanks

Reply to comment | Linux Journal

Microsoft Word 2007's picture

We absοlutely love your blоg and fіnd almost
all of your post's to be precisely what I'm looking for.
can you offer guest wгiters tο ωгitе content for
уou personallу? ӏ wouldn't mind composing a post or elaborating on some of the subjects you write in relation to here. Again, awesome website!

Reply to comment | Linux Journal

Free access's picture

Very energetic article, I liked that bit. Will there be a part 2?

White Paper
Linux Management with Red Hat Satellite: Measuring Business Impact and ROI

Linux has become a key foundation for supporting today's rapidly growing IT environments. Linux is being used to deploy business applications and databases, trading on its reputation as a low-cost operating environment. For many IT organizations, Linux is a mainstay for deploying Web servers and has evolved from handling basic file, print, and utility workloads to running mission-critical applications and databases, physically, virtually, and in the cloud. As Linux grows in importance in terms of value to the business, managing Linux environments to high standards of service quality — availability, security, and performance — becomes an essential requirement for business success.

Learn More

Sponsored by Red Hat

White Paper
Private PaaS for the Agile Enterprise

If you already use virtualized infrastructure, you are well on your way to leveraging the power of the cloud. Virtualization offers the promise of limitless resources, but how do you manage that scalability when your DevOps team doesn’t scale? In today’s hypercompetitive markets, fast results can make a difference between leading the pack vs. obsolescence. Organizations need more benefits from cloud computing than just raw resources. They need agility, flexibility, convenience, ROI, and control.

Stackato private Platform-as-a-Service technology from ActiveState extends your private cloud infrastructure by creating a private PaaS to provide on-demand availability, flexibility, control, and ultimately, faster time-to-market for your enterprise.

Learn More

Sponsored by ActiveState