.. if you are studying, you are studying wrong

Professor Enio used to say that in our Calculus classes during my Computer Science degree. A great professor. He was right.

In my previous essay, I talked about traits common to careers in knowledge professions.

It made two main points:

  • practice is important for a breakthrough;
  • in knowledge professions, such as programming, there is no formal practice routine.

In this post, I want to share a few practice heuristics that may be useful to you.

Studying Wrong

During school, we have a defined routine. You start at a set time and follow a schedule. All of it with the goal of passing the exam (maybe?).

From elementary through high school, I had no idea there was a right way to study. I always thought that if I put in a certain amount of time, I would reach my goals. That worked until I got to university.

After an exam where a good part of the class did poorly, the professor suggested that the problem was not a lack of studying. Maybe we were studying the wrong way.

That was a shock to me. I didn’t know how yet, but I understood that time spent, on its own, was not what determined learning.

It seems obvious that time alone doesn’t make you good at something. However, it is hard to see that when you are inside the process.

When I was studying limits of functions, what I did most was repeat only the concepts I was comfortable with. That did nothing for my skills.

Think of a pianist who only rehearses the same sheet of music. Always the same notes, the same techniques, the same hand position on the keys. Keeping at it will do nothing for their overall ability as a musician. At best, they will be a one-song specialist.

How to Study Right?

What you need is deliberate practice:

Deliberate practice is a systematic and intentional approach to learning and skill development.

It differs from regular practice because it involves a conscious effort to improve specific areas, with feedback and error correction along the way.

It is a kind of practice that aims to take the individual beyond their comfort zone, constantly seeking to improve performance in challenging activities.

I got this definition from Google. It has everything you need to know about deliberate practice.

In short, you practice, but in challenging scenarios. That will stir up some feelings. Frustration is one of them.

Learning means suffering a little, especially at the beginning. But it is not a suffering that brings more pain. On the contrary, it makes you grow.

In fact, sometimes even after gaining some mastery you may feel you forgot something or “lost” what you had learned. That is normal. Rewiring the brain takes time.

Be patient, keep going and break through the frustration barrier. You will be in a zone most people never reach, and you will have mastered a new skill.

The Practice Guide

I first came across the term deliberate practice while reading Learning How To Learn by Barbara Oakley and Terrence Sejnowski. I understood what it meant and was able to apply the concepts consciously.

I did repetitions, varied the challenges and got feedback. That is how I became an official Node.js contributor, for example. I started by fixing documentation, then challenged myself to contribute JavaScript and finally C++, and got my nomination within a few months.

Knowing the fundamentals of deliberate practice helped me, and it will certainly help you. However, I want to go one step further and discuss a minimal checklist for serious study that is actually serious.

Here is a scenario: say you are taking your first steps in programming and just learned about arrays/lists.

You know the basic features of arrays, such as indexing, adding and removing items. Now it is time to practice.

The list below is a reference, not a rigid process you have to follow to the letter.

  1. WORK ON THE PROBLEM

    (Pick challenges whose solutions you can check.) Practice what you learned by solving problems on your own.

    Solve it from start to finish. Don’t look at the answer and don’t skip steps. Don’t look at the solution unless you really need to.

  2. DO ONE MORE REP

    Solve the problem once more. This time, pay close attention to the vital details of the solution.

    I know it seems odd to solve the same problem more than once. But think about it: a chess player doesn’t learn a specific opening after playing it a single time.

    Remember, this is practice!

    When you finish, get feedback. Either by checking against the solution you have or with the help of a mentor.

  3. TAKE A BREAK

    This is an important part, especially if you are struggling to make progress. Give your brain time to enter diffuse mode.

    You surely know the meme about the fix for a bug showing up while we shower or sleep. Yes, the brain works in the background.

    During this break, do something else. Work on another problem, study something different or just go for a walk.

  4. SLEEP

    Work on the problem before going to bed. When you sleep, you enter diffuse mode and learn while you sleep.

  5. DO ONE MORE REP

    On another day, solve the problem again. You should move through it more fluently. Pay attention to the parts you find hardest.

    This is serious study: the hard part, the one you have little command of, is where you have to focus.

  6. ADD A NEW PROBLEM

    Once you have mastered the concepts, pick another problem. Of course, one that demands real effort from you.

    Repeat the cycle until you are comfortable, then move on to the next one.

In the meantime, actively revisit the concepts involved, even if only in your head. Reflect on what you learned.

Lady Luck

Like any training, this happens outside working hours. A musician performs at the concert what they practiced in rehearsals.

This has nothing to do with loving your work or having a prior love for your profession. It has to do with seizing opportunities and doing what most people don’t.

The Law of Serendipity: Luck favors those who try

The more you master what you do, the more likely you are to start enjoying it.

Things get better when you realize it is not such a heavy burden. You don’t need to learn every detail of what you are studying, just the main points. Let serendipity happen.

Mentorship

Having a mentor is vital for building a practice routine. Especially in two situations: at the beginning and when you hit the plateau. A mentor can help you build a roadmap and be your source of fast feedback.

The mentorship I consider ideal comes from a person, preferably someone more experienced. However, you may not have that privilege.

When I started, for deliberate practice (even if unconscious) of advanced PHP, my mentors were the authors of Head First PHP & MySQL.

The book gave me everything: a defined roadmap and feedback, since the answers were right there. And, guided by the book, I repeated the same concepts many times.

This is because the book is prepared by co-authors who add that touch that comes from learning theory, present in every book in the series.

What I mean is: book authors can be your mentors, just like course instructors (or whatever other learning resource you have). The key point is feedback.