Attempting an Escape from Tutorial Hell

Attempting an Escape from Tutorial Hell
DALL-E

I've struggled to code on my own for a long time.

It's easy to have ideas, to take those ideas and yearn for success, and maybe, if more productive than most, carefully evaluate each step in the process in order to have that idea built. You write it out, you build wireframes, you talk to some friends and explain some general concepts. Of course, you're initially overwhelmed with positivity: "That's a great idea! You should do it!", they say– it's all very inspiring! However, it's just as easy to think that you'll never know enough to see it through, never be enough, never understand the right things, and more commonly– make the excuse that you'll never have the time to complete it.

So because of this negative feedback loop you've just created for yourself, you leap at the chance to perform a slight pivot in your approach. Perhaps now, the idea of continuing to learn more about a given topic becomes increasingly appealing, because then at least you can feel more productive, there's a direction, a path to where you want to go—albeit without engaging in the critical act of actually building something yourself.

This intoxicating detour often devolves into what is commonly referred to as tutorial hell: endless learning, without the doing. Recognizing this pattern in my own coding journey highlighted not just a personal struggle, but a common pitfall many of us face when learning new skills. If you've ever found yourself in this situation, you know all too well the familiar struggle to break out of the loop and move forward.

Overcoming the Hurdle of Perfectionism

If this sounds familiar to you, and if your story is similar to mine, the likely cause is that you're a bit of a perfectionist or simply an individual who prefers to have all of the cards lined up before committing. Although this isn't inherently negative, I've observed that this trait often extends into other elements of your life. In fact, it might just be your internal safeguard to prevent yourself from feeling like a failure. Coming to this realization myself has been a bit eye-opening.

I consider myself to be a highly detail oriented individual, but I've come to realize that the incessant focus that comes from being a perfectionist can and will significantly impede your level of enjoyment in your daily life, both personally and professionally– sometimes, you just have to let go a bit.

Ultimately, you're going to have to learn to adapt your strategy. I learnt instead to embrace a more productive approach that offered a more engaging experience.

Making Progress Tangible

It might just be my personality, but breaking down my day into easily digestible chunks can have a lasting impact. Since being laid off, I've tried to create some semblance of structure in order to feel that I've achieved something within a certain amount of time.

That feeling is important, but it's also important to distinguish between feeling productive, and being productive.

Consequently, I've adopted a (very rough) schedule to enable the latter rather than the former. It's more of a guideline then it is a mantra:

I understand that not everyone can afford the luxury of time, but the point is that you dedicate a small portion of your day into active learning. Realistically, I don't even hit the aforementioned 3 hours of active work most days, and that's okay as long as whatever time I did spend resulted in something tangible.

It's up to you to define what tangible means.

Additionally, if you're facing that initial blocker of being unable to start, consider redefining tangibility for that day, shrink your scope and commit to it.

Embracing Active Learning

For my own coding journey, I can tell you that I've poured over the "Where do I start?" reddit threads more times then I can count. I've begun, and stopped 100 Days of SwiftUI at least four times. I've enrolled and committed to one class of Stanford's CS193p course on three entirely separate occasions. Each attempt, I thought to myself that "this will be the time to see it through!", but inevitably life will find a way to get in the way.

In order to set yourself up for success, don't restrict yourself to passive learning. For me, the most fulfilling moments in life are when I can work through something and feel the end-result. I suspect that even if I were to complete any of the aforementioned tutorials, I'd probably feel just as lost as when I started for these reasons alone.

In my case, tangibility is typically defined as in an app with minimal functionality. If I can't get to that point, I'll commit to completing a function or a similar piece of code. For Swift specifically, I've been working through Sean Allen's recently made available series for SwiftUI, which does exactly that by developing multiple applications that are immediately useable.

For particularly challenging or otherwise complicated segments, I'll use Obsidian to outline topics of focus, and if need be, branch out to study the core concepts that make them up. In the end, they're still contributing to the tangible result. It's a much more involved and absorbing style of learning.

For whatever you're working on, consider the above, continue to define and redefine what tangibility means for you in order to make concrete steps away from the pit of tutorial hell.

trevware
Enjoy this Post?
Dive into the unlimited – upgrade to premium now!
✦  Sign up

You might also like

Discussion