Pragmatic Thinking and Learning - book review

How to think consciously about thinking and learning

I recently finished reading one of the best non-IT books I’ve ever held in my hands: “Pragmatic Thinking and Learning” by Andy Hunt. Since there are already many reviews online, I will focus on the concepts I found most interesting and worth remembering.

I believe every programmer should read this book. In fact, anyone whose career requires constant learning, effective thinking, and problem-solving skills should read it as well. Why? Because the author has carefully gathered available scientific knowledge about how our brains work, how they process information, and how they store new knowledge. More importantly, he describes how we can change our behavior to make the process of learning and problem-solving as effective as possible. I don’t think I need to convince anyone that effective thinking is useful—if not essential—to our work.

The book covers various areas of cognitive function. Below is a list of the most interesting and useful topics included in this title.

The Dreyfus Skill Model

According to Dreyfus, skill levels are divided into five stages:

  • Novice: You need step-by-step instructions to get things done (like that “Hello World” application you built in a new language recently). You struggle with troubleshooting or doing anything not described in a “recipe.”
  • Advanced Beginner: You can do some things on your own, such as adding a component not described in a tutorial, but solving complex problems is still difficult.
  • Competent: You can troubleshoot and work independently without detailed instructions. Your actions are based on past experience.
  • Proficient: You understand the big picture and the concepts behind a framework or library. You can also apply your knowledge to similar contexts.
  • Expert: You intuitively know the answer and—surprisingly—sometimes cannot explain why you chose one path over another.

Most people remain at one of the first three levels in most areas. Reaching proficiency or becoming an expert requires significant learning, experimentation, failure, and drawing from the experience of others. Only about 1% to 5% of people are true experts in their field.

L-Mode and R-Mode

Our minds work in two modes: Linear Mode (L-mode) and Rich Mode (R-mode). Most of the time we use the former, but when we are stuck on a problem, it is helpful to give the Rich Mode space to work. You can do this by going for a walk, taking a shower, or mowing the lawn. Any tedious task that doesn’t require full concentration will work. When the mind isn’t busy with conscious thought, it can switch to R-mode and unexpectedly deliver an answer. This is likely why I enjoyed a previous job where my desk was far from the restroom; it forced me to take a short walk several times a day!

Write Drunk, Revise Sober

Don’t strive for perfection immediately; instead, try to unleash your creativity. Avoid aiming for 100% accuracy when creating first drafts, sketching prototypes, or researching new areas. Just relax and allow yourself to be creative. Don’t worry about minor errors; they can be corrected later. Now is the time to create.

Target SMART Objectives

It is vital to choose the right objectives. We have all heard of New Year’s resolutions that are abandoned by the end of January. The problem is often that they are not well-thought-out. To make goals easier to achieve, follow these five rules:

  • Specific: The more detailed, the better. Instead of “I will lose weight,” say “I will lose 10kg.”
  • Measurable: If an objective is specific, it is usually easy to measure. Ten kilos is a clear metric.
  • Achievable: It isn’t a good idea to say “I will learn Scala in one week” because that is nearly impossible. Instead, say “I will learn how to create a console calculator in Scala in one week.” That is doable.
  • Relevant: You should care about your objective. If you dislike Microsoft products, picking C# as a new language won’t work well. You will find it impossible to motivate yourself if you dislike what you are trying to achieve. Choose a language you have positive associations with—perhaps Scala or Kotlin.
  • Time-Boxed: Always include a deadline. “I will pass this certification” is vague. “I will pass this certification in three months” creates the necessary urgency.

Read Deliberately – SQ3R

When reading a book to learn a subject, try the SQ3R method:

  • Survey: Scan the table of contents and chapter summaries to get a rough idea of what the book contains.
  • Question: Write down questions that come to mind after scanning.
  • Read: Read the material in its entirety.
  • Recite: Summarize and take notes using your own words and your understanding of the subject.
  • Review: Reread, update your notes, and discuss what you’ve learned with others.

Manage Your Knowledge

You should have a dedicated place to gather knowledge and ideas. This could be a personal wiki or an app like Evernote. Additionally, whenever you have an idea, you should be able to write it down immediately using a paper notepad or a mobile app. Choose a tool that you can take with you everywhere.

Valuable Quotes

To conclude, here are some quotes from the book that I found particularly intriguing:

– “You’ve got to be careful if you don’t know where you’re going, because you might not get there.”

– “Time can’t be created or destroyed, only allocated.”

– “Give yourself permission to fail; it’s the path to success.”

– “Inaction is the enemy, not error.”

– “Remember, the danger doesn’t lie in doing something wrong; it lies in doing nothing at all. Don’t be afraid to make mistakes.”

Summary

As I mentioned at the beginning, this book is well worth reading if you want to get more out of your brain. It will help you optimize your learning and thinking processes so you can be more effective in your daily work without spending a fortune on hardware or furniture.

What about you? Do you have your own tricks for learning faster or solving problems more easily? If so, please share them in the comments!

Written by

Tomasz Dziurko

I’m a Vice President of Engineering, dedicated to helping engineers to grow and develop their skills, leveraging my 17 years of technical experience blended with pretty good interpersonal skills :)