Sunday, August 9, 2015

Review of Chris Pine: Learn to Program

Today I did not do as much coding as in day past, but I did manage to get through Pine's book and figured I would write a review/wrap up featuring my perspectives.

Chris Pine, Learn to Program, Second Edition, Pragmatic Bookshelf, 2009.
List Price: 24.95
Realistically: $5-$15 on Amazon, mostly free online:
https://pine.fm/LearnToProgram/
*I purchased the hard copy from Amazon for $15.

First off, I am coming from only having completed the CodeAcademy Ruby course.  This means that I have very little background.  If you have more experience than me, this may not be the right review for you.  However, if you are a coder-in(self)training, at the start of your journey you may find this useful.

Points of Style
First off, the book is generally a pretty quick read, it has 14 Chapters of really dense programming knowledge as well as an epilogue of sorts featuring his solutions to the exercises in the book.  This amounts to around 120 pages of material which seems pretty slim until you get into it.  Stylistically, it is written conversationally and there are regular attempts at humor.  If you hate this type of jokey writing, you will not enjoy this book.  I personally liked it because it takes the edge off of a difficult and at times intense subject.  The example programs are also full of attempts at humor.

Best Features
Pine really has a gift for making the complex seem simple.  This is especially try in chapters 1-8 as he effortlessly guides you through some of the basics of Ruby.  Beyond that, I loved his example programs.  He features copious in program notes (using #) and really tells you what is happening here.  Even in some of the later chapters when much of it was flying over my head, the programs never lost me.  This is really fine work and helped me to understand what he was doing.

On a related note, the chapters are not too deep.  Each chapter has one goal and it goes about its business pretty quickly.  You will not find yourself having flashbacks to math class marooned in the middle of a never ending chapter.  I always felt energized when I completed a chapter even if some were only 8-10 pages.  Each chapter also features a number of clearly marked headings which are also listed at the beginning of the book.

Additionally, the book is practical and gets you started on your way with your own IDE.  This means that he helps you set up your computer so you can make your own programs without needing an artificial experience like CodeAcademy or other self-training sites.  It's not complicated or crazy he just helps you get set up in around 1-2 pages.  This was a delight for me after CodeAcademy left me confused.  Now, I have Ruby, a nice text editor, and a directory full of programs!  He also has guides here for Windows, Mac, and UNIX users.

Next, I really enjoyed Pine's answer key (which you will use a lot).  In the back he has a couple of different solutions to his devious exercises spread throughout the book.  I enjoyed that he gave the alternative solutions even if many of them were way over my head.  While I wish the programs would have been notated a little more heavily, these were still really useful.

Finally, the book challenges you.  In the era of "complete this line of code" or "add an equal sign", Pine is having none of it.  He regularly challenges you and the challenges are always write your own program.  Even if I was almost universally a failure at writing my own programs, just trying and thinking the process through make you much better much more quickly than if you stick to CodeAcademy.  Unsurprisingly, the other side of the coin is that these challenges can be brutal and bring you to the cusp of 'to hell with this'.

Room for Improvement
Some of this stuff is borderline impossible for a new person.  Many (most?) of the challenges will frustrate you to the point where you don't want to go any further.  I ended up just looking at some of the answers and continuing to read on.  If you are the type of person who will view yourself as a failure if you don't get all of the answers yourself perfectly than this is going to be a tough slog.  These challenges are hard, particularly if you are brand new,

Next, Chapters 9-14 are rough.  I read them and took notes and I did learn from them, but somewhere around chapter 10 I pondered putting the book away permanently.  Do not do this!  Continue to read, but be aware that you will probably fall off your intellectual cliff at some point in this book.  I say continue on and come back to it later.  That said, this is really, really, demoralizing and probably could have been worked out with a little more "debugging" featuring newbie Rubyists.

In Final Analysis
Would I recommend it to a new coder?
Yes, but I would caution them about the cliff that comes in the chapter 9 range.

Will I sell the book, or keep it?
The book is really nice for reference.  I have already used it and will continue to use it for many of the simple syntax forms I am always forgetting.

Score out of 10 (because we all love this!)
7.5/10


No comments:

Post a Comment