Grzegorz Burzyński

📖 "Pragmatic Thinking and Learning" by A. Hunt

Notes from the “Pragmatic Thinking and Learning” book by Andy Hunt.

Context

Recently, I made myself a retrospective. The main theme that struck me was that in recent years (4 or so), I gradually started to “have less time” to spend on random tinkering. I no longer spend evenings bootstrapping a Kubernetes cluster on my bare metal server, I don’t build a side project app just for the sake of creating it and having pure fun. It was a major component of my learning experience, and I somehow lost it. Have I lost it forever? Have I lost the ability to learn new stuff and be excited about it? I couldn’t find answers alone, so I needed someone to talk with. Andy Hunt, with the “Pragmatic Thinking and Learning” book, seemed the right person to go to and ask my questions.

The book is packed with not only practical tips on how to make your learning more effective but also provides a theory layer, proving these are not just empty words. I found the ideas it presented mind-opening, so I decided to leave a trace of those here so they remain with me for longer.

The Dreyfus model

The Dreyfus model explains how any skill can be evaluated on a scale from 1-5. On the opposite sides of the scale, we have a novice and an expert. The higher the score, the more intuition and experience become relevant to make it. According to research, it takes, on average, 10 years of highly disciplined training to become an actual expert. Being one, though, can boost you up to mastering another related field quicker, which is nice. There’s also no lifetime guarantee, once you become an expert, you will remain so till grave. It takes continuous practice and conscious effort to stay on top. Tips that Andy provides are:

  • Learn the skill of learning to make your journey to becoming an expert in any field easier.
  • Learn by synthesis, i.e., practice, build stuff from the ground up, and don’t be afraid to get your hands dirty. Theory alone is not enough.
  • Avoid formal methods and trust your intuition, i.e., don’t block yourself from trying different approaches that might work. Just because someone said some method works virtually for the whole population, it doesn’t mean it’ll do for you (but likely it’s worth trying).
  • Know what you don’t know and fill the gaps intentionally.
  • … and the key one: always consider the context.

Brain modes

We have all heard about the left and right brain hemispheres. The left one is responsible for logical thinking, while the right one for creativity. Although these definitions are not precisely true, they’re close enough to be useful if we do not take them literally. Instead of left and right, Andy uses L-mode and R-mode terms and describes them with a loose CS metaphor.

  • L (linear) mode is CPU-like. It’s serial, logical, analytical. It’s basically the mode that makes us, humans, different from the rest of animals, and enables us to build civilizations. The chattering voice or consciousness in your head is generated by the L-mode.

  • R (rich) mode is more DSP-like. It provides intuition and creativity. It’s non-verbal, non-rational synthetic, spatial, concrete, intuitive, holistic, and non-linear. It’s responsible for your “Aha!” moments.

Most inputs that our brains process are stored in some sense. Not all of them are properly indexed for the L-mode to be consciously reached (e.g., you can’t remember the name of the song, but you can hum it). R-mode is the one that can access those unindexed regions and provide you with the answer. It just needs to be given enough space and time to do so.

The more R-mode is engaged, the more intuition is developed and the higher the chances are to become an expert in some domain. Despite that, the L-mode is promoted more in our system, especially in education and academia. It’s easier to assess its results. The R-mode is more subtle, and it cannot be verified with a multiple-choice test. The book suggests that today’s world needs more R-mode thinking as, although we consider ourselves rational beings, we’re not only rational. It’s proven that from the perspective of product users (e.g. software), the more appealing to the eyes the interface is, the more likely it is to be perceived as working better (even if it’s not).

Engaging the rich mode

As we do not have full control over when R-mode takes over, the book provides techniques that may help with giving it more chances to do so.

Catch ideas

We need to be prepared for R-mode to kick in unexpectedly (e.g. when waiting for a train). Andy suggests carrying an item that will allow us to note down random thoughts and ideas. It can be a phone, a notepad, or whatever works for us as a medium for making volatile revelations permanent. It all boils down to a simple process:

  1. Have good ideas (everyone has them).
  2. Catch them in flight. Note them down (preferably, keep some kind of ideas repository).
  3. Act on them (having them noted down is still not much of influence on the world).

After getting used to the process, we’ll likely get more and more ideas flowing as those already noted down, won’t “block” the ones still struggling to get out.

Add sensory experience

It’s helpful to expose ourselves to a wide variety of stimuli when solving a problem. Examples of how it can be done:

  • Go for a walk (preferably to a non-disrupting place, we’re talking a forest, a park, or similar).
  • Present the problem/idea in a different way than usual (instead of code, make a drawing of it; or even role-play system components with your folks).
  • Keep squashing a fluffy ball in your hand.

Make shitty drafts

Don’t expect everything you work on to be perfect from the first iteration. Let the R-mode drive the first shitty draft and the L-mode to improve and “productize” it later. Having anything, in most cases, is better than nothing. It allows exploration of the problem space.

Pair program

Pair programming leverages the driver’s L-mode (they focus on the problem that’s right at hand) and the observer’s R-mode (they have a chance to keep wider context and see patterns the narrowly looking driver cannot).

Make art

Try to draw, paint, or sculpt, but do not focus on symbols the L-mode typically craves for. Look at things as they are (typically, they are way more complex than just a sticky man representing a person) and try to replicate them in a medium of your choice.

The book suggests an exercise of redrawing a provided sketch, but only by looking at it upside-down. It’s nearly impossible to see any obvious symbols from such a perspective, so you cannot oversimplify your replica. The result of the exercise was surprising for me, as the drawing I made was way more accurate than I expected. I had no idea what I was drawing during the process, but after flipping the paper, I clearly saw it was a cowboy sitting on a foldable chair.

Play with metaphors

Creating metaphors is an opportunity for the R- and L-modes to meet in one place. “Metaphor” comes from Greek, meaning “to transfer”. You simply transfer the meaning of one object to another, typically in some ridiculous way that makes the metaphor itself attractive. You combine two, one could say, totally incompatible things into one that somehow makes total sense to everyone once presented. It’s a powerful tool to explain complex concepts simply and is widely used in system programming.

Harvest what the R-mode produced

There’s a concept that you may already know a solution to a problem you’re trying to fix. It may be there, in your head, but you’re not aware of it. The information just isn’t indexed yet for the L-mode to see it.

The book describes an interesting example of such a situation. Elias Howe, the inventor of the sewing machine, once had a nightmare in which he was captured by a tribe of cannibals. He noticed that the spears they were holding were a bit off. They had a hole in their tips. It turned out to be a tip he needed to make his sewing machine work: a hole in the needle has to be at the bottom, not at the top (opposite to the regular handheld needle).

It’s normal that we have lots of ideas that we cannot yet transfer into words easily. The book suggests some techniques to harvest those ideas:

  • Free-form journaling - write down whatever comes to your mind, without forcing a rigid structure. It’s a way to externalize your thoughts and make them more accessible to the L-mode.
  • Morning pages technique - just after waking up, write down three pages of whatever comes to your mind. It’s important to do it before doing anything else as that’s the moment when the R-mode is still active after sleeping.
  • Walk and meditate - walk trying to turn the chattering voice in your head off. It invites the R-mode to take over.
  • Turn problems upside down - audio engineers do it by making each instrument in a studio to sound as bad as possible at the beginning, later iterating on making them sound good together.

Debugging your mind

We all have biases. Being aware of that is what is needed to not be fully driven by them. There are various flavors of biases:

  • Cognitive (e.g., anchoring, fundamental attribution error, self-serving bias, need for closure).
  • Generational affinity - we share some attitude patterns with our peers (e.g., baby boomers, millennials, etc.) due to the environment we grew up in.
  • Personality tendencies - our personality traits affect our thoughts.
  • Hardware bugs - how older portions of our brain can win over the newer smarter ones.

The book suggests some techniques to debug your mind:

  • Be comfortable with uncertainty - do not seek closure at any cost.
  • Have notes to refer to. Note as much as you can and have ways to get back to your notes. Memory is faulty. What you note will remain.
  • Know your personality type and be aware of your tendencies.
  • You can’t change people. Allow to them have bugs, just as you do.
  • Neocortex is not the only part of your brain. Give yourself time to calm the lizard brain and process events in peace. Take deep breaths, meditate, walk, etc.
  • Trust your intuition, but always verify it (as it may fail you miserably). Ask questions like “How do you know?”, “Says who?”, “How specifically?”, etc. to see if you’re not falling into a trap of a cognitive bias.

Deliberate learning

Learning is not done to you, but by you. It’s a common misconception - corporations tend to send their employees to trainings in a form of a “sheep dip learning”. They’re put into an isolated environment, filled with knowledge, and are expected to absorb it. It’s not how it works though. Without practice and will, learning cannot happen.

To learn, you first need to know what you want to learn. Make your goals SMART and maintain kind of a portfolio of your skills and knowledge, similarly to how financial portfolios are managed.

  • Consider the wide context of your life (not only work) when setting goals.
  • Manage your goals divided by 3 different time horizons (e.g., close future, next year, 5 years out). Goals are your investment plan.
  • Diversify, regularly check on the relevance of your holdings, and invest regularly (1h a week is 52h a year).
  • Difference from financial portfolio - all knowledge pieces have some potential value, and you never know when you’ll use them.
  • Know what type of learner you are (auditory, visual, etc.). There are multiple intelligences, not just one. Pick what works best for you. Try different approaches to see what sticks.
  • Join/form study groups. Share knowledge. Study together as that’s proven to be efficient. You can read a book and discuss it together, e.g. one person per chapter.
  • Use the SQ3R technique for reading.
    • Survey - see what the book has to offer. Skim over it and grasp the main ideas it may be talking about.
    • Question - note down questions you expected the book to answer.
    • Read - read the book.
    • Recite - take notes during the reading, put the ideas into your own words, summarize.
    • Review - reread your notes and book, expand notes, discuss with people, try to explain the ideas to others.
  • Use mind maps to synthesize knowledge. Hand-drawn ones are better than digital ones. You can create a mind map as the “Recite” step of the SQ3R technique. You can also use them for problem exploration. It may help you understand what you don’t know yet and bring structure to the problem.
  • Documenting is more important than the documentation itself. Sometimes documents you create may not have an audience at all and that’s fine. The value comes from you spending time on actually noting something down and structuring it so you end up understanding it better. It’s like creating cheat sheets for exams - typically you end up not using them.
  • If you get stuck, just talk to the duck. Explain the problem you’re facing to someone else. Teach others (local meetups, conferences; if not feeling it, write a blog post). All that can help with clarifying your own understanding and may reveal some of the assumptions you were making unconsciously.

Getting experience

Experience is what can make you an expert. Here are some tips on how to get more valuable experience:

  • Don’t be afraid to have fun. It’s more effective to learn when you feel that you’re engaged, and you feel joy from what you’re doing.
  • Don’t be afraid of failing. Create a safe environment for yourself to do so.
  • Be aware of the inner game that’s constantly happening in your head.
  • Don’t let pressure kill your cognition. It’s proven people are more creative without pressure. Deadlines may make you fail. Under pressure, the L-mode takes steers as it’s time that matters then. The R-mode has no space therefore creativity is killed.
  • Groove yourself for success. Imagine experiences and learn from them as effectively as you went through them in reality. The brain doesn’t know the difference.
  • Surround yourself with people who are better than you.

Staying focused

Your attention is in short supply. Manage it carefully. Competition for attention not only comes from the outside world but also from the inner voice. It can make you focus on something not important at all. The idle mode can make really weird thoughts pop up in your head (from the past, planning for the far future, etc.) that are not relevant in reality.

You don’t have time, you can only allocate it. It’s you who decides what you’re going to do in a time that’s given to you. Plan your activities in the calendar.

Practicing focus (like yoga or meditation) improves our capabilities even during a normal day. Meditate using the Vipasana meditation technique (focus on breathing, let thoughts come and go without engaging with them). Try meditating regularly for ~20 minutes a day. It teaches you how to stay focused and control your inner voice. You can try breathing in “segments” (lower belly, chest, upper chest).

You need to force yourself to stop thinking of a problem with your conscious mind. Let it sit in the marinade of your thoughts for a while. Give this time to yourself and don’t see it as a wasted time. It’s needed for ideas, different approaches to percolate, mix, and create a solid result. Examples of activity for this time are walking, meditating, mowing the lawn, etc.

Be aware of the price of context switching. Aim for as few context switches during the day as possible to stay most efficient. It takes ~20 minutes to “reload” a context after a switch. Constantly interrupting a task with emails, chats, notifications, etc. makes you effectively less intelligent. Turn off notifications, set specific times for checking emails, etc. Come up with a way to tell others you’re in your focus time (a Slack status, a calendar event, etc.). When interrupted, dump the state of what you were doing into a short note and get back to it later.