Book review: Pragmatic Thinking and Learning

Book ReviewLearning

In the past six months, I've been trying hard to fall back in love with reading. Like many, I quit books after high school – forced to analyse and regurgitate what felt like bland, uninspired literature that teenage me had absolutely no connection to.

It's taken over a decade for me to slowly pick up novels regularly again. A great deal of this is thanks to my manager, who encourages me to read more, moreover who never shuts up about this strategy book or that psychology book every time we catch up. On his recommendation, I picked up Andy Hunt's Pragmatic Thinking and Learning: Refactor Your Wetware at the end of last year. Hunt is best known for co-authoring The Pragmatic Programmer and co-signing the Agile Manifesto.

In this post, I share my favourite key takeaways from the book.

Refactor your wet-what?

In the book, Hunt introduces the concepts of R-mode and L-mode which are what he describes as mental processes of the brain that oppose the "misleadingly simplistic right-left brain hemispheric duality". R-mode, or rich mode, is the part of the brain responsible for creativity and problem-solving. L-mode, or linear mode, is responsible for logical thinking and reasoning. We use L-mode at work, for task-oriented problems, and, overall, society inherently holds more value in L-mode.

But if you've ever had a brainwave in the shower, that's your R-mode a work. Activities like drawing and playing an instrument are R-mode processes. R-mode operates like a background process, pattern matching against information analysed with our L-mode brains.

Understanding the key differences between the two processes and how to harness them becomes incredibly powerful when we begin restructure our thinking and habits in order to dedicate more time to R-mode.

There's a reason we have /r/Showerthoughts, why it's healthy to step out of the office for a walk at lunch, and why we often think of creative solutions hours or days later to problems we weren't actively trying to solve. L-mode may help us execute the plan, but R-mode helps us connect the dots and discover new ideas.

The Dreyfus model of skill acquisition

With a better understanding of how our brains process information, Hunt describes the Dreyfus model of skill acquisition, a framework created in 1980 by Stuart and Hubert Dreyfus. The framework introduces five discrete stages of learning a skill: novice, advanced beginner, competent, proficient, and expert.

Novice: As a novice, a learner has no previous experience with the task at hand. This is why it's crucial that novices follow strict rules to complete a task. Novices are focused on accomplishing the immediate goal over any actual learning.

Advanced beginner: Progressing to advanced beginner, learners can't see the big picture yet – and it's not important that they do. They have better context about the problem but still have difficulty with troubleshooting unknowns.

Competent: At competent, learners can now "develop conceptual models of the problem domain and work with those models effectively". Competent learners can deliberately plan and seek out and solve problems.

Proficient: The big picture is important proficient learners; they want to understand the skill's larger conceptual framework. Through their experience, proficient learners are able to predict what will and will not happen. They are able to apply maxims – proverbial truths that can be applied to the task at hand.

Expert: Experts are the primary sources of information in their field. They push the boundaries, challenge the status quo, and introduce better ways of doing things. They work from intuition and can break the rules as they're meant to be broken. In software engineering, I think of Martin Fowler and Robert C. Martin.

So why is any of this important? When we're able to identify competency in a particular skill we're trying to develop, this helps us to deliberately practice and plan for learning. It also gives us a concrete way to substantiate improvement in a skill. For example, a novice in Java is going to find straight-forward tutorials and step-by-step guides on YouTube the most beneficial to learning. For a competent Java developer, however, learning is better propelled by working with a skilled teacher or mentor. For me, using the Dreyfus model at work has been a valuable tool discuss, plan, and track technical skill development in a structured way.

Managing focus with macOS Desktops

My favourite part of the book is its final chapter, Manage Focus. In it, Hunt describes practical techniques to avoid context switching, increase focus and attention, manage knowledge, and optimise context.

To combat context switching and maintain focus at work, Hunt uses virtual desktops. Each desktop is dedicated by task: coding, browsing, note-taking, communications, and music. One desktop is comprised solely of applications dedicated to achieving the goal of that task. Organising spaces in this way, we can optimise our personal workflows and maximise our current context. We avoid distractions as much as possible. We get more done. For the past few months, I've been using this with great success; I know where things are, cognitively, at all times.

To manage knowledge, Hunt suggests building a personal wiki. For modern-day versions of personal wikis, I think of Obsidian, Notion, and Foam. Obsidian and Foam support graph-view relationships between thoughts and information. In this domain, I'm still figuring out what works best for me. I'm learning to take better notes and I'm focusing on writing to learn.

In summary

In the technology field, it's easy to become overwhelmed by the sheer amount of information out there, especially given its rapid pace of change. Unfortunately, we can't know it all and we can't retain it all. Hunt answers this with a quote from Albert Einstein, who once said, "never memorise something that you can look up". That quote, I think, summarises the book really well. I used to feel daunted by how far I had to go being very early in my career as a software engineer. Now, with a better understanding of brain processes; skill acquisition; techniques to improve learning, retention and focus; and the acknowledgement that far more information is being created than what can be consumed, I feel that a weight has been lifted.

In summary, Pragmatic Thinking and Learning is a profoundly important book for anyone interested in hacking their learning and personal development. Hunt strikes the balance between demystifying the science of our brains and teaching readers how to use practical tools and techniques to optimise learning and productivity. And although the book is written with software engineers in mind, what it teaches can be useful to anyone.