Pragmatic Learning and Thinking: Book Review
Date: 2008-10-06 02:20:04

== The Book

http://pragprog.com/titles/ahptl[Pragmatic Learning and Thinking] by http://blog.toolshed.com/[Andy Hunt]

== The Review

I came across this book when reading a post http://dannorth.net/2008/06/learning-to-lean[linking lean to the Dreyfus Model] on Dan North's blog.

I have a keen interest in theories of learning and have completed an http://www.ablworld.com/[NLP Practitioner's course] so the ideas described in the book summary immediately appealed to me.

After coming across the concept of Reading Deliberately in Chapter 6 of the book I decided I should give the http://www.studygs.net/texred2.htm[SQ3Q] approach to reading books its first run out.

I think I did some of the ideas it suggests implicitly but I thought it'd be good to purposely use it. The approach is briefly summarised further down.

I originally intended to buy this book but it wasn't available before I came to Australia so I got a Beta version from http://www.pragprog.com/titles/ahptl/pragmatic-thinking-and-learning[The Pragmatic Programmers website] - an idea my http://markthomas.info/blog/?p=108[colleague recently posted about].

== What I wanted to learn

* _Journey from Novice to Expert_ - How can I use the http://pragmaticstudio.com/dreyfus[Dreyfus Model] more effectively when learning new skills? Will I learn how to become expert quicker? How can I make use of the Dreyfus model on a day to day basis? Why do some people pick up skills more quickly than others?
* _This Is Your Brain_ - What things are critical for learning success? How can we best utilise the brain's design to maximise learning? Is there a difference between how we learn language APIs and http://martinfowler.com/bliki/PreferDesignSkills.html[design skills]?
* _Get In Your Right Mind_ - What are the L & R modes of the brain?
* _Debug Your Mind_ - Can you change the way you think? How does the way in which we are taught to think in school limit us?
* _Learn Deliberately_ - How will the ideas here overlap with http://www.scotthyoung.com/blog/2007/03/25/how-to-ace-your-finals-without-studying/[Scott Young's ideas around Holistic Learning]? How will http://www.new-oceans.co.uk/new/learn.htm[NLP theories of learning] link to the ideas laid out here? What can I do to master skills more effectively?
* _Gain Experience_ - How do we keep learning as a key focus in situations where it may not be considered that important? How do we achieve short feedback loops when learning?
* _Manage Focus_ - Is gathering contextual information around a topic still valuable for learning? I lose focus fairly easily - will I learn how to improve that?
* _Beyond Expertise_ - What does it mean to be beyond expert in any field?

== What I learnt

* I had heard of the *http://pragmaticstudio.com/dreyfus[Dreyfus Model]* before reading this book, but the explanations of it and examples of its application in developing software development skills was especially useful. It has helped me to become *more aware* of the level I am currently at with skills I use day to day as well as providing pragmatic suggestions on how to improve my level. The ideas around creating continuous improvement by undertaking tasks that are challenging but doable in an environment which provides quick feedback was an idea I have heard of previously but it was good to have it reinforced.
* *Capturing your ideas* is one of the early recommendations - I have got in the habit of always carrying around a http://www.moleskine.com/index_eng.php[Moleskine] notebook with me since the start of this year. I use it to write down things that I want to learn or read more about at a later stage. When I get the time I go through everything I've written down and tick it off. I find this works well because often when pair programming it isn't productive to go off reading about side topics but equally I don't want to forget to go and look it up.
* The idea of the *system metaphor* for software systems is one which is closely linked to some of the ideas in http://domaindrivendesign.org/[Domain Driven Design] with regards to using clear real life metaphors to represent the way that our system works. I don't think this is something that has caught on completely just yet but it seems to be covered by such ideas as intention revealing interfaces and by taking an intuitive approach when naming classes and methods.
* I have long thought that the teaching approach used at universities is completely suboptimal for learning - it is too focused on providing knowledge rather than the ability to solve problems. This is pointed out by the author who does so by questioning the purpose of technology certification programs. He suggests taking a *SMART* approach to learning - learn something **S**pecific, with **M**easureable success criteria, make it **A**chievable, something that is actually **R**elevant to you or something that you care about, and do all this within a **T**ime box.
* The author also talks of getting *experience in new skills first before http://www.markhneedham.com/blog/2008/02/09/learning-theory-first/[learning the theory]*. I have been trying to take this approach to learning Ruby - we dived straight into the code but often take steps back to ensure that we are using the language properly and not just writing Javaesque Ruby code. When we eventually read about the theory we have a much better context to apply this learning to rather than just reading all the information up front.
* The *SQ3R* approach to reading material is something which I have been trying out. To summarise, the approach includes the following steps:
 ** Survey - scan the table of contents and chapter summaries
 ** Question - note any questions you have
 ** Read - read in entirety
 ** Recite - Summarise and take notes in your own words
 ** Review - Re-read, expand notes, discuss with colleagues

+
With this book in particular I found the 'Survey' step especially useful - I initially skipped reading 3 of the chapters as they seemed too scientific for me. After reading about this technique I went back to these chapters and became more curious about what I was interested in learning.
* The idea of linking new information you read about with knowledge you already have using *mind maps* is something that I first started doing around a year ago. I haven't done it for a while though and since restarting it a couple of weeks ago I'm noticing more links between things than I did previously and finding learning new information more enjoyable. One interesting point which was made is that it is much more effective when you are drawing the mind map by hand rather than using a software package to draw it. I have never put colours or pictures in my mind maps but this is suggested as another addition to the technique.
* *Test Driven Learning* - I really liked the ideas outlined here. One suggestion was that we should try and recall material learnt after 2 minutes, after 2 days, after 2 weeks, after 6 months to ensure we know it well. Other ideas to strengthen the learning process included teaching the concept to a colleague and drawing & re-drawing mind maps. I think writing about something on a blog or similar also helps to clarify understanding.
* The idea that learning can be *fun* is one that I found interesting - I have started to come around to this point of view more over the last couple of years having previously only considered learning to be what was done at school. The following quote from the book captures the essence of what is being suggested:
+
____
Working with new material or solving a problem in a playful manner makes it more enjoyable, but it also makes it easier to learn. Don't be afraid of fun.
____

* The author speaks about *creating awareness* when learning a new skill rather than focusing on what you are doing wrong:
+
____
You want to try to cultivate nonjudgmental awareness: don't try to get it right, but notice when it is wrong. Then act to correct it.
____
+
He also speaks of imagining yourself as being better than you are - i.e. playing the expert. I have read many times that the human mind can't tell the difference between a real experience and an imagined one so that's where the logic for this idea comes from. It was actually while reading a book called http://www.amazon.co.uk/Mind-Games-Inspirational-Lessons-Worlds/dp/1841127396/ref=sr_1_2?ie=UTF8&s=books&qid=1223064436&sr=8-2[Mind Games] that I first became interested in NLP and then eventually came across this book.
* In the chapter on managing focus the author speaks of the benefits of *meditation* - I have never done this as I couldn't see the benefits of doing so but having read some of the ways that it may be helpful it is something I am going to try out. A type of meditation called Vipassana meditation is detailed.
* The idea of using *TextMate as a Wiki* was one which I am now trying out using the http://interconnected.org/home/more/2007/05/textmate-wiki/[Plan Text Wiki] TextMate bundle. I currently only keep track of my ideas using http://www.red-sweater.com/marsedit/[MarsEdit], my notepad and Moleskine but this has provided me with a new idea for organising information effectively on my computer</a>
* The book cites numerous sources for the more scientific information presented. Some of the ones which I have put on my reading list are:
 ** http://www.amazon.co.uk/Hare-Brain-Tortoise-Mind-Intelligence/dp/0060955414/ref=sr_1_1?ie=UTF8&s=books&qid=1223171896&sr=8-1[Hare Brain, Tortoise Mind: How Intelligence Increases When You Think Less]
 ** http://www.amazon.co.uk/Fifth-Discipline-Peter-M-Senge/dp/1905211201/ref=sr_1_1?ie=UTF8&s=books&qid=1223211471&sr=1-1[The Fifth Discipline]
 ** http://www.amazon.co.uk/Weinberg-Writing-Fieldstone-Gerald-M/dp/093263365X/ref=sr_1_1?ie=UTF8&s=books&qid=1223211691&sr=1-1[Weinberg on Writing: The Fieldstone Method]
 ** http://www.amazon.co.uk/Predictably-Irrational-Hidden-Forces-Decisions/dp/0007256523/ref=sr_1_1?ie=UTF8&s=books&qid=1223212134&sr=8-1[Predictably Irrational: The Hidden Forces That Shape Our Decisions]
 ** http://www.amazon.co.uk/How-Solve-Mathematical-Princeton-Science/dp/069111966X/ref=sr_1_1?ie=UTF8&s=books&qid=1223216391&sr=1-1[How to solve It: A New Aspect of Mathematical Method] </ul></ul>
+
== In Summary
+
I really enjoyed reading this book - there were so many suggestions that really made me think - I've tried to cover some of my favourites in my review but there is way more useful information and ideas in this book than what I can do justice to here. It is a bit scientific in places and I read some of the chapters at the end before some of the more theoretical ones which appear early one. Going back to them afterwards I did realise that there was value in the in this information but that it had worked out better reading the chapters in this order.