Mark Needham

Thoughts on Software Development

Archive for the ‘pragmatic-thinking-and-learning’ tag

Pragmatic Learning and Thinking: Book Review

with 14 comments

The Book

Pragmatic Learning and Thinking by Andy Hunt

The Review

I came across this book when reading a post linking lean to the Dreyfus Model on Dan North’s blog.

I have a keen interest in theories of learning and have completed an 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 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 The Pragmatic Programmers website – an idea my colleague recently posted about.

What I wanted to learn

  • Journey from Novice to Expert – How can I use the 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 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 Scott Young’s ideas around Holistic Learning? How will 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 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 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 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 Specific, with Measureable success criteria, make it Achievable, something that is actually Relevant to you or something that you care about, and do all this within a Time box.
  • The author also talks of getting experience in new skills first before 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 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 Plan Text Wiki TextMate bundle. I currently only keep track of my ideas using MarsEdit, my notepad and Moleskine but this has provided me with a new idea for organising information effectively on my computer
  • The book cites numerous sources for the more scientific information presented. Some of the ones which I have put on my reading list are:

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.

Written by Mark Needham

October 6th, 2008 at 2:20 am