Avid gamers can relate to the joy of leveling up. It means you have new powers. You can do incredible new things. Everything you’ve done in the past would be easy if you could do it over again.

Interestingly, this feels like it only happens in video games. But I don’t think it actually does. I leveled up last week.

As a programmer, I would consider myself decent at my craft. I can build just about anything you can describe and it will work. I can design the architecture, implement it, and get it working reliably.

I saw myself at somewhat of a standstill. I can build whatever you want, but I still don’t like how my code works necessarily, and I know there is tons more to learn.

Sometimes the biggest problem is that you know there is more to learn, but you have no idea where to start.

My main goal lately has been learning how to do code testing extremely well. But this is very hard when your code is ad hoc like mine was.

University courses explain classes in programming as objects. The first example is usually something like a VCR has these functionalities: play, pause, rewind. This helps you understand the concept of classes in programming, but in doing so, it limited my understanding of them considerably.

After watching Destroy All Software, I realized classes should be used to contain an idea. You can break up the internals of a VCR into logical pieces, and each of those could also be it’s own class. And if you do that, you can write tests for each individual piece, so when all put together, you know the VCR will work. You should trust that the internals will work first, before putting them together to make a larger product like a VCR.

This just simply clicked for me the other day watching these videos. I had a moment of clarity and truly understood things on another level.

Everything I’ve ever built before is now moot. I can shoot holes through all my existing work in seconds, but that’s a good thing.

I leveled up in real life.

Learning is a long journey, and we often hit these plateaus like I did. It’s hard to get through them. Sometimes you get frustrated and give up. Sometimes you keep on going and hit a gold mine.

If you find yourself in a plateau, start talking to people and listening to anyone you look up to. They did something cool? Absorb it like a sponge.

Even if you don’t completely understand their advice, try applying it anyways. It might just be that you simply need to change your mental frame of reference.

comments powered by Disqus