Science of Expertise, perceptual learning, deliberate practice

The Science of Expertise (Part II): A Better Way to Practice Ruby with Deliberate Practice

hexdevs The Science of Expertise Series image cover

The Science of Expertise

What does it mean to be an expert? How do humans develop experts skills? What is the difference between being an experienced developer and an expert developer? To answer these questions, let's learn from the latest research on the science of expertise and perceptual learning, and PL techniques to help you become a Ruby expert.

This article is the second part of the Science of Expertise series. Before reading along, read The Science of Expertise: introduction to Perceptual Learning. the resources mentioned in this series is also found at the end.

A Better Way to Practice Ruby: Deliberate Practice

Perceptual Learning results are promising.

Unfortunately, no research has been made for programming yet. In this article, you’ll learn what we apply from what’s been published regarding Perceptual Learning in several domains.

  1. We get started by asking: “What is the topic to be mastered? What is my goal with this exercise?”.
  2. Once you identify what skill are you working on, measure your performance by doing sets of deliberate practice.
  3. To help your brain picks up what matters, get exposure to a wide range of good examples, from simple to more complex scenarios.

To measure your performance, aim to achieve 95% reliability within one to three 45-90 minute practice sessions.

If you can’t get to that performance level, try breaking the task/skill into smaller sub-tasks/sub-skills until you get to something you can master within that time.

Let’s see this example of Deliberate Practice from Badass - Making Users Awesome, by Kathy Sierra.

The goal is to master command-line interaction with Ruby.

  1. Create and run programs that calculate and print values based on command-line args
  2. Modify one code example to use command-line args. Run.
  3. Run sample programs using command-line args.

Here’s another example.

The goal is to practice the map function with Ruby.

  1. Build a list of even numbers from 1 to 100 and filtering out multiples of 3 using the map function.
  2. Build a list of even numbers from 1 to 100 using the map function.

Perceptual Techniques for Ruby developers

That felt like a class, right? Here’s what you can apply from PL research to become a Ruby expert:

  • Focus on deliberate practice: and not just practice, practice and practice! Remember: a critical component of accelerating pattern recognition and fluency is to get exposure to a wide range of good examples that embody the relevant structures that you are learning (not just one or two examples).

  • Master the basics: it’s better to know the basics well than have surface knowledge about a couple of things. The better you master the topics, the more you are freeing your cognitive capacity to focus on higher-level problems. If it still takes you lots of time and effort to complete a task or you are just following tutorials without understanding the goal, you won’t advance to the next level as much as you expect.

  • Go easy on your brain: it’s cognitively costly to master a topic. To be kind to your brain, take a break after each deliberate practice session.

  • Embrace getting stuck: when you reach the point of “I am super stuck, I suck!” there’s a lot of information for you to take action. You are probably trying to rush something, or missing a crucial step. Learning what you don’t know yet is not bad, it’s information! Ask yourself: what I am missing here? Asking open-ended questions that gets your brain picking up on clues is more actionable than announcing your defeat.

  • Always be sharpening your knife: experts are always identifying what skills they are not fluent in yet. It doesn’t matter how many years of experience you have, there’s always room for improvement.

Finding the right blend of introducing facts, concepts, and procedures, along with accelerating pattern recognition and fluency through PL technology, is likely to be of maximal benefit to learning in mathematics and many other domains – Kellman et al. (2008)


  • Expertise is available for everyone.

  • How you can accelerate expertise in any domain, including programming.

  • Examples of how to adapt to deliberate practice.

Questions without answers - future discussions

  • As PL technology mostly relies on visual representations, it’s not clear how it can be adapted to people with visual impairment issues.

  • There is no published research using PL technology with programming. That’s our focus at hexdevs!

  • How much of the trials design and procedures have to be followed for PL to be effective in a non-experimental environment.

My friend, congratulate yourself for getting to the end of this! That was a lot and it’s normal if you feel overwhelmed.

Take a break, revisit this a few days later. Take your time.

By now, you know best how to work with your brain and leverage on the signs it gives you regarding your cognitive resources management 🧠.

Let me know what surprised you, what are you looking forward to try!


Books 📚

Papers 📑

  • Perceptual Learning Modules in Flight Training - Philip J. Kellman and Mary K. Kaiser (1994).

  • Perceptual Learning, Cognition, and Expertise - Philip J. Kellman and Christine M. Massey (2013).

  • Adaptive response-time-based category sequencing in perceptual learning - Mettler & Kellman (2014).

  • Perceptual Learning Modules in Mathematics: Enhancing Students’ Pattern Recognition, Structure Extraction, and Fluency - Philip J. Kellman, Christine M. Massey, Ji Y. Sona (2009).

  • Perceptual learning and the technology of expertise: Studies in fraction learning and algebra - Kellman et al. (2008)

  • The Psychophysics of Algebra Expertise: Mathematics Perceptual Learning Interventions Produce Durable Encoding Changes - Bufford et al. (2014)

Videos 📺

More guides and exercises will be published soon. Sign up for the hexdevs newsletter to get updates in your inbox: