In Andrew Hunt and David Tomas’ classic The Pragmatic Programmer: From Journeyman to Master, they write about a phenomenon known as “start-up fatigue.” It’s the idea that nobody wants to start a new project. New projects are full of unknowns. They are daunting. For whatever rewards and they promise at the end, the road to those rewards has the potential to drag on towards infinity, sapping you of all your time and energy; potentially becoming an inescapable black hole that is forever dragging you down and offering no respite. Everyone fears that first step into the unknown, yet many people are much more willing to join a project that is already an ongoing success.
In a recent thread on /r/learnprogramming, the OP wrote of pitfalls made by beginner programmers. To my disdain, I found that his caricature of what I dub “the poser programmer” hit awfully close to home. In his words:
The first is something I call the “infinite tutorial loop.” The aspiring programmer goes from tutorial to tutorial, never breaking out and building something independently. I’ve seen cases where someone has been coding for less than a year and they are, frankly, more skilled and more knowledgeable than someone who has been doing it for five. This isn’t because they’re more intelligent or putting in more time — it’s because they’ve been pushing themselves out of their comfort zone, stretching themselves, and building applications and picking up necessary skills along the way. Meanwhile, the other person has been spending their time going through 75 introductory react courses on Udemy. One has an upward trajectory; the other is stuck in a loop.
/u/KovyM
The second is simple: the individual does everything related to coding that doesn’t involve writing code. They attend every meetup. They share relevant content on LI daily. They’re subscribed to every subreddit. But they’re never actually creating anything. Zero green squares on GitHub.
As sad as it is to say it, I feel this describes me lately. I have been inert; constantly telling myself “after I finish this tutorial I will be able to build something!” But either the tutorial is never finished, or I decide that I actually need one more tutorial in order to start a project. Repeat ad nauseam.
Finally, I find that my inability to create literally anything stems from a multitude of factors:
- Start-up fatigue. I’m afraid to begin anything for fear of it never being finished, being a waste of my time, or both.
- Stuck in an infinite-tutorial loop. I’m never good enough. I need the validation of having finished some guide in order for me to begin anything. Otherwise, I’m not qualified enough to do whatever hacking-around I am attempting.
- Project paralysis. I feel like I need to work on something significant. I constantly tell myself that building a to-do app is somehow beneath me. I can’t just start on any old project idea, it has to be a good idea. Not only that, but I need to write it in the correct language, and using the proper framework. In essence, I am setting my standards too high.
Where does this leave me? Through some rigorous self-analysis, I can make the following conclusions. For starters, I am conscious of my faults. This is a good thing. I know what my personal pitfalls are and I can work to avoid them. Not only that, but I can prepare a plan to get around them and to make myself more productive. I have been kicking around some ideas lately, but haven’t settle one one yet. I guess I am using this blog post to help me layout a plan forward.
I have been considering starting 100DaysOfCode. I feel that my skills are slipping because these days I spend so much time reading about code and so little time actually writing it. If you want to become a better runner, you don’t read about running, you go out and run. If I do start 100DaysOfCode, I feel that this blog might prove to be the best outlet for my progress. I even ran across a journal in a bookstore the other day with a great layout that I might attempt to emulate.
I think above all, the biggest change I could make to myself is to start living out a little personal mantra I came up with recently. It’s not complicated, but I think If I could live this mantra a little bit more in my day-to-day life, I would be a lot better off. Here it is:
Think less; do more!