@adlrocha - My learning system

i.e. stop consuming, start producing, and find a "learning buddy"

I was chatting the other day with my colleague Aarsh. We were immersed in an exciting org-wide Hack Week and we were discussing the value of hackathons and how they are a perfect way to explore new ideas, and give yourself a break from your daily responsibilities to learn something new. At one point in the conversation he asked me:

— “hey man! And what do you do to deeply learn something new out of work? I am able to allocate the time to learn new things, but I don’t feel I am getting the most out of that time. I either shallowly go through the topic, or get distracted with the next ‘shiny thing’ that’d be really cool to learn. Does that happen to you too?”

— “Hell yeah!”

From there on we started sharing how our learning systems were like and I realized, “like Aarsh and me, many people may have come up with this same question in our field —where there are new shiny things everyday—. Writing an article about what works for me could definitely be of use for someone out there.”

Quick disclaimer before I get into it: what works for me does not necessarily have to work for you. Take this publication as a compilation of idas that “may work for you”.

Stop consuming, start producing

You all know it by now that I love reading. I don’t care if they are books or papers, I love reading. There are people like me whose preferred learning format is the written one, and others that get the most out of audiovisual material in the form of talks and lectures. I think reading and watching talks/lectures about the subject you are trying to learn is key. It builds the foundation you need to become an expert. Unfortunately, this is just the beginning. If you want to deeply learn and understand a subject, it is not enough to read and watch videos, you must put things into practice.

How much do you remember from that book or paper you read two months ago? Not much. And about the lecture you watched two weeks ago? Even less. And how much do you remember about that project where you were trying to build a federated learning system over a decentralized network? Almost every concept you used, and design decisions you made.

It seems like common sense, but this wasn’t something that came easy for me to realize. I was one of those that read a ton of books in a subject, and felt really knowledgeable in it. Unfortunately, a few months after that sprint I had forgotten all that I’ve learned. It was really frustrating. That’s when I decided to learn things by doing, and it worked!

Instead of reading every book in the subject, I read just one in order to get a grasp of the field. For me, books (or at least the right ones) are the perfect way to approach a subject in a structured way. After this first book, I choose a project around the subject I want to work on. And what if you are learning a theoretical subject? It doesn’t matter. Target a proof you want to replicate, a problem you want to solve, or simply write about it or explain it to someone else (the Feynman way of learning). This “target project” will force you to think about the concepts you’ve learned in that first book, validate your assumption, realize that you misunderstood certain concepts, and force you to explore deeply the subject and its related fields.

Of course, the same way you had to choose wisely your first book, you need to target the right project. But don’t overthink it. If you don't choose the right project, you will realize it soon enough because you'll see that you're not learning anything.

Project-based learning has another delightful consequence, it has a shield against “other shiny things” that is more robust than that of “learning by reading books”. Producing gives an extra motivation that consuming does not have. When you learn by producing, you can see the tangible results of your learning process (and you have something to show off with your colleagues), while when consuming the benefits are more abstract.

In short, for me the perfect learning system looks something like this:

  1. Find a good book on the foundations of the subject.

  2. Read the book (and maybe take some notes).

  3. Read about open problems or the applicability of the subject at hand.

  4. Design a “target project”.

  5. Build, read, learn, iterate on the goals of the project --and repeat--.

  6. Project/ learning retrospective. I’ve achieved my learning goals?: 

    1. If “no”, find another project or read another book to broaden my understanding. 

    2. If “yes”, find the next “shiny thing” to learn.

Let’s put a recent personal example. I wanted to learn about Quantum Computing and Quantum Information:

  1.  I knew nothing about quantum mechanics, so the first thing I did was to read this outstanding “Introduction to Quantum Mechanics: The Theoretical Minimal” from Leonard Susskind. This book was a joy to read, and it gave me the bare minimum I needed to start understanding the basic concepts behind quantum computing.

  2. Now I knew something about quantum mechanics, but nothing about quantum computing, so I jumped into “Quantum Computing Since Democritus”. If you like theoretical computer science, and you want to learn about theoretical quantum, computing, this is certainly your book.

  3. Enough with the theory. It was time to get practical and choose a project to develop my quantum computing skills. At that time I had been reading a lot about blockchain platforms that claimed they used post-quantum cryptography. So I said, “what if I try to build a model of a quantum-based blockchain?” (before you judge me, it is not such a dumb ideas, others have tried and succeeded on this already).

  4. I didn’t have a quantum computer around. Fortunately I came across Qiskit, and learned the basics about the framework to start building my “quantum-based blockchain”, developing and reinforcing in the process all the knowledge acquired in previous stages of my learning journey. Luckily, at that time IBM was hosting a Qiskit Quantum Hackathon in Madrid (remember the times when it was possible to attend in-person hackathons? The good ol’ days!), so I also went to this hackathon to further polish my practical quantum skills, and learn from the experts in the field (that place was full of great software engineers and physicists).

  5. I iterated a few times on this “quantum computing” learning process, leaning more towards the field of quantum information. In the next few rounds of steps 1-5 of my system, I focused on learning about quantum information and quantum cryptography. My next target project was to leverage quantum information to solve a research problem I had in my daily job at that moment. I’ve moved on now to other “shiny things”, but as I write these words while remembering all that I’ve learned about this field, I am starting to get the itch again to continue my “quantum education”.

Level it up with a “learning buddy”

So there you go! I’ve completely stripped my learning systems. There is still one more thing that has worked like a charm for me (and that may also work for you), which is to add to this process a “learning buddy”. Your learning buddy can be anyone. Of course it is better if your buddy is also an expert in the field as he will be able to advise you, and help you find the right resources and the right projects, but it can be anyone. 

The only job of your learning buddy is to make you accountable. This will give you that extra motivation you need to overcome your “procrastination monster”. This buddy can be your best friend, a colleague from work, your girlfriend, or your mum. The only thing you have to tell them is “hey, I want to learn X topic in the next Y months. Every N weeks (or whatever other time period that is convenient for you), I am going to share with you my N-week learning plan, and in N weeks we’ll check-in to evaluate my progress”. According to how close you are to your buddy, you can add some bets into the process to make things even more interesting. If at a checkpoint you don’t meet your target you owe him a beer, if you do he owes you one.

The best setup would be to have a learning buddy which is also immersed in this learning system, as you would both be giving each other an extra boost of motivation (you don’t need to be learning the same things). 

I got this “learning buddies” idea from something I read a while ago that said that to increase your probability of fulfilling your new year resolutions, you should share them with someone to make you accountable. I don’t know if this is true for new year resolution, but for my learning process it definitely worked.

Do you have your own learning system?

Again, this is what works for me, but it doesn't necessarily have to work for you. I’d love to learn more about your own learning process and how it is like (see if I can get some good ideas to improve mine). Drop me a line, and see you next week!