Pragmatic Thinking and Learning

In order to stay up to speed in an industry that changes by the day developers must constantly be learning and acquiring new skills. As technology fads come and go it is important for developers to isolate and keep pace with the technologies that are in high demand. Because technologies change so rapidly it is important that we are able to learn as quickly and efficiently as possible. While there is certainly no shortage of information available on the latest technologies, making sense of this information, figuring out what is important, and putting this information to use can be a very challenging task. Therefore it is important that developers learn how to learn.

I recently finished the book Pragmatic Thinking and Learning: Refactor Your Wetware by Andy Hunt, co-author of the seminal book The Pragmatic Programmer. In this book Hunt discusses how people (specifically software developers) learn and offers tips on how we can set out to learn more effectively. Here are some useful tips I stumbled upon while reading Pragmatic Thinking and Learning:


It is unfortunate that the most common way that many people attempt to teach themselves new skills is by reading. A lot of people tend to learn better through experimentation and observation, but in many cases these are not practical first steps to take when starting out with a given subject. On the other hand, reading is an important skill and reading material is abundant so it’s important that we are able to get the most out of the things we read.

The main reason reading is not a great way to learn is because it is often viewed as a passive activity. As Hunt describes in his book however humans don’t do a great job of simply ingesting material. Instead, Hunt suggests that we turn reading into a more active endeavor and describes using a technique called SQ3R. SQ3R is a simple strategy that can be used to actively engage yourself in whatever it is you are reading. The SQ3R process is as follows:

Survey – Scan the chapter headings and summaries for an overview.
Question – Note any questions you have.
Read – Read in its entirety.
Recite – Summarize, take notes, and put in your own words.
Review – Reread, expand notes, and discuss with colleagues.

There is plenty of information available on SQ3R on the web and of course there are many other techniques that can be used as well. What is important however is that instead of passively trying to absorb what we read we are deliberate in the way we go about consuming information.

Mind Maps

Generating ideas, especially on structured topics can oftentimes be a challenge. Traditional brainstorming techniques such as creating outlines are a great start, but are often limited by their structure and by the restriction of simply using words to express ideas. An alternative approach which Hunt presents in this book is to create a Mind Map.

A Mind Map is a free form diagram that focuses on a central idea and illustrates the relationships among topics associated with that idea. The advantage of using a Mind Map is that you are not limited to simply using words. You can sketch pictures, draw lines between ideas, and use color to group similar thoughts.

As an example, I decided to create a Mind Map for a presentation I will be giving in a few weeks on VirtualBox. To be fair this might not have been the greatest example of the power of using a Mind Map because I have already done quite a bit of research on the topic, but it was a good place for me to get started with Mind Maps and definitely helped me solidify some ideas for my presentation. Here’s what I came up with (click to enlarge):

VirtualBox Mind Map

One thing I found interesting while creating this Mind Map was that I actually needed to create multiple drafts. My first draft of this very same image was pretty scatter-brained. But that is the point of creating a Mind Map. It helps you take the ideas from your head and organize them into a tangible format that can then be translated into actual work (i.e. a presentation, an essay, code, etc.).

Harvesting Techniques

Have you ever struggled with a tough coding problem? Do you think as hard as you can about the problem, but are still unable come up with the answer? Then has the solution ever popped in your head upon waking the next day? Did the answer you were looking for suddenly appear during your daily commute when you were least expecting it? This happens all the time and the reason it occurs is because in many case we already know the answers to our problems.

Our brains have an amazing capacity for storing and retrieving all sorts of relevant (and irrelevant) information. As an oversimplification we can think of our brains as being split into two distinct hemispheres. The left hemisphere (L-mode) is analytic, logical, temporal, linear, and rational. It is responsible for processing words and symbols. The right hemisphere (R-mode) is more spatial and is good at processing patterns and relationships. The right side of our brain is intuitive and makes decisions based on hunches, feelings, and images.

As developers we tend to heavily favor using the left side of our brain to solve problems in our daily work, but in order to learn and work as efficiently as possible we must use both sides of our brain. It is very difficult to force R-mode thinking, but you can help coax R-mode ideas out of your brain by using what Hunt calls harvesting techniques. Harvesting techniques are ways to relax your brain’s L-mode processing in order to allow your R-mode thoughts to surface. Here are a few examples of harvesting techniques:

Free Form Journaling – Writing is a great way to relax your mind and allow your R-mode thoughts and ideas to escape your brain and present themselves onto paper. When ideas pop into your head, write them down, and then elaborate on those ideas. Simple brainstorming on paper can give you the opportunity to clarify your thoughts.

Walking – Sometimes the best way to come up with ideas is to simply step away from your desk, relax your mind, and go for a walk. While you’re walking though, try not to think about anything, especially the problem you are trying to solve. The goal is to silence your L-mode and give your R-mode the chance to do some work.

Image Streaming – This is the process of deliberately observing images in your mind and paying close attention to them. First, pose a problem to yourself or ask yourself a question. Then shut your eyes and relax. As images start to cross your mind describe them out loud. Try to describe as many details as you can using all five senses. This type of thinking can help you discover fresh insights to the problem or question you presented yourself.

At first some of these ideas may seem a bit silly, but keep and open mind and give them a chance. You may be pleasantly surprised with the results.


Pragmatic Thinking and Learning is very accessible and easy to read. Hunt writes the book using simple terms and concepts and illustrates his points with many examples. I’ve really only begun to scratch the surface of the material covered with this blog entry. Hunt goes into much further detail in his book and offers many additional techniques to help developers discover how they can best approach learning a new subject.

The book describes many different aspects of human physiology and psychology to explain why certain techniques work and others do not. While Hunt does not claim to be an expert in either of these fields he cites a multitude of references and clearly shows that he has put in the thorough research required to write such a book. Overall this book was a pleasure to read and I would certainly recommend it to anyone interested in improving their ability to learn.

Share and Enjoy:
  • Print
  • Digg
  • del.icio.us
  • Facebook
  • DZone
  • FSDaily
  • Reddit
  • Slashdot
  • StumbleUpon
  • Technorati
  • Twitter
  1. 4 Responses to “Helpful Tips from Pragmatic Thinking and Learning”

  2. Please email me, I would like to talk to you about your articles.


    By SV on Feb 3, 2009

  3. Active learning is what it’s all about. An update on SQ3R (with a better research base) is the easy-to-use PQRAR read-study method. Find this at PQRAR.

    By Mark Pennington on Aug 11, 2009

  4. @Mark
    Thanks for the comment. Your site is great. As I’m sure you know there are lots of active reading techniques out there. I would advise readers/learners to use the technique that works best for them. PQRAR seems like a pretty compelling option.

    By Justin Spradlin on Aug 12, 2009

  1. 1 Trackback(s)

  2. Feb 4, 2009: Arjan`s World » LINKBLOG for February 4, 2009

Post a Comment