Learning without continuously doing makes mistakes hit harder.

We always think that learning is a good thing. For the last three years, I’ve definitely thought this way, and tried to learn as much as I could in my time at Penn and outside of it.

But I’m starting to realize that some of my learning has actually set me back a few steps, and has not only taken away from time I could’ve spent with my friends and family, but has actually made it harder for me to get better at new things. Now that I’m finally starting to understand what this bad learning is, I definitely don’t want others to fall down the same path as me. So today, we’ll talk about what this bad learning is, why I think I did it, and how to overcome it.

The best way to illustrate this is through an example from my life. I’ve read the React.js tutorial at least 5 times in the last 3 years. React.js is a programming tool people use to make websites and UI elements.

And until recently, even after 5 reads of the tutorial, I still couldn’t write good React code to save my life.

What gives? Is React really that hard? Or am I just trash at programming? No and maybe.

Each time I went through the react tutorial, I did just that. I went through and binged the entire tutorial before writing a single line of code for myself. At a high level, I would understand the concepts and theories they talked about as well as their examples. And when concepts became more complicated and built on top of others, sure I understood it, but I mainly took their word for vs. seeing it for myself.

Finally, after seeing the tutorial do all of these advanced things, I would jump straight to the hard stuff in the code, and completely struggle on the really simple things. Bugs that should be simple are super hard to debug since I’ve never seen them before, and the whole thing is incredibly demotivating. Moreover, the feeling of going all the way back to hello world just feels like a slap in the face since I did “understand” the tutorial, so I would feel really unwilling to not start with the hard stuff. So, by learning too much at one time, I put myself in a place where where I “knew” a lot but didn’t know enough to do anything. And finally, since I never actually used react extensively outside of trying to learn, I would consistently forget it, and thus be forced to learn it again from scratch.

Maybe this story was super forced, but my overall point is that experience matters a ton relative to the speed in which you learn things. When you learn too much without actually connecting this knowledge to things you’ve actually experienced before, you’re tricking yourself into believing you understand something without really experiencing the gray areas around it. In the previous example, the gray areas would be catching simple bugs since you’ve probably only seen good examples vs experiencing the bad ones.

The reason this is dangerous is because to fix it, you have to challenge your own ego about what you know and don’t know and admit to not understanding the simple things completely yet. Additionally, in the long term, not making time for solid experience is even worse since all that learning has no real place in your memories and you’re making more work for yourself to relearn things you’ve already learned.

This goes beyond just computer science. I’ve run into so many instances where I invested a ton in trying to get better at something, but fell completely short because I focused too much on learning while skipping the doing aspects along the way. For example, I know many people — including me — have been reading a lot over quarantine, but it isn’t enough to just understand the lessons in those books. You have to go out and prove yourself right. Only then will you understand the gray areas around the perfectly orchestrated tutorials or lessons meant to guide to the right answer. Only then can you believe that overcoming your fears is good for you, etc. And only then will those lessons stick for the long term.

But the better question is why we do this in the first place? Why waste time reading a book and not finish what you started? I think it’s because learning feels healthy and staying in the white lines is easy. It’s fun to be right a lot and not care about when you’re wrong. Especially in public settings, it’s hard to be public about when you’re wrong so staying in the box is much easier. But ultimately, all of this is artificial; you are wrong about some things, you just don’t know it yet.

If you’ve already found yourself in this learning rut, I feel like you should start fresh from an execution perspective. Realize you have no experience and be okay with starting simple, but know that the complex stuff will be easier to understand later.

And if you aren’t in this situation, don’t try to learn things if you aren’t going to make time to practice execution. Be super careful with how you strike the balance between learning and doing (usually 50-50 in my opinion but always err on the side of doing in my opinion), and always ask yourself if you could do it on your own with class (i.e. with flying colors). Most importantly, try not to waste time learning something you can’t immediately start executing on. Picking up a language means nothing if you’re just going to forget it in a week. Learning how to make an app is a waste of mental stress if you don’t see yourself making apps in the near future.

Letting your doing self be in line with your learning self can make you an incredibly efficient learner if you aren’t already.