Pragmatic Thinking and Learning: Refactor Your Wetware

Pragmatic Thinking and Learning Book Cover

Programming is all about problem solving. It requires creativity, ingenuity, and invention.

It’s not that the teacher teaches; it’s that the student learns. The learning is always up to you.

Wetware – human brain cells or thought processes regarded as analogous to, or in contrast with, computer systems. That is, using the model of a computer as an analogy to human thought processes.

Everything is interconnected: the physical world, social systems, your innermost thoughts, the unrelenting logic of the computer— everything forms one immense, interconnected system of reality. Nothing exists in isolation; everything is part of the system and part of a larger context. For instance, you might consider a tree to be a single, discrete object sitting on the visible ground. But in fact, a tree is a connection of at least two major systems: the processing cycle of leaves and air and of roots and earth.

Debug your brain

Intuition is a fantastic skill, except when it’s wrong. There are a large number of “known bugs” in human thinking. You have built-in biases in your cognition, influences from when you’re born and from your cohort (those born about the same time as you), your innate personality, and even hardware wiring problems.

Dreyfus model of skill acquisition

The Dreyfus brothers looked at highly skilled practitioners, including commercial airline pilots and world-renowned chess masters.

Their research showed that quite a bit changes as you move from novice to expert. You don’t just “know more” or gain skill. Instead, you experience fundamental differences in how you perceive the world, how you approach problem-solving, and the mental models you form and use.

Stage 1: Novices

Novices don’t particularly want to learn; they just want to accomplish an immediate goal. They can be effective if they follow a rule book (e.g. recipe)

Stage 2: Advanced Beginners

Advanced beginners can start to break away from the fixed rule set a little bit. They can try tasks on their own, but they still have difficulty troubleshooting.

Stage 3: Competent

They can troubleshoot problems on their own and begin to figure out how to solve novel problems—ones they haven’t faced before.

Stage 4: Proficient

Proficient practitioners need the big picture. They will seek out and want to understand the larger conceptual framework around this skill. The proficient practitioner knows what can possibly break—or more correctly, what is likely to break.

Stage 5: Expert

Experts are the primary sources of knowledge and information in any field. They are the ones who continually look for better methods and better ways of doing things. These are the folks who write the books, write the articles, and do the lecture circuit. These are the modern wizards.

Statistically, there aren’t very many experts—probably something on the order of 1 to 5 percent of the population.

Journey from Novice to Expert according to the Dreyfus model

  • Moving away from reliance on rules to intuition
  • A change in perception, where a problem is no longer a collection of equally relevant bits but a complete and unique whole where only certain bits are relevant
  • Finally, a change from being a detached observer of the problem to an involved part of the system itself

Most people are in Stage 2: Advanced Beginners

Sadly, studies seem to indicate that most people, for most skills, for most of their lives, never get any higher than the second stage, advanced beginner, “performing the tasks they need and learning new tasks as the need arises but never acquiring a more broad-based, conceptual understanding of the task environment.

Anecdotal evidence for the phenomenon abounds, from the rise of copy-and-paste coding (now using Google as part of the IDE) to the widespread misapplication of software design patterns.

How to Learn Deliberately?

Learning isn’t done do you; it’s something you do.

Mastering knowledge alone, without experience, isn’t effective.

A random approach, without goals and feedback, tends to give random results.

  1. Create a goal
    • (SMART) – Specific, Measurable, Achievable, Relevant, Time-Boxed (with a deadline)
  2. Create a pragmatic investment plan
    • Consider your skills and talents as a knowledge portfolio
    • Model your knowledge portfolio with the same care as you would manage a financial investment portfolio
    • Add areas of knowlege or skills that you haven’t explored to help diversify your portfolio

Reading Techniques


  1. Survey: Scan the table of contents and chapter summaries for an overview.
  2. Question: Note any questions you have.
  3. Read: Read in its entirety.
  4. Recite: Summarize, take notes, and put in your own words.
  5. Review: Reread, expand notes, and discussion with colleagues