Tutorials are at the same time the greatest source of inspiration and stagnation among aspiring developers. This is because of something called Tutorial Hell, which is when someone learning to code becomes reliant on tutorials to build applications for their confidence as a programmer. When someone stuck in Tutorial Hell tries to build their own application without a tutorial, they have no idea what to do and jump right back into another tutorial to find the confidence they lack in that subject area, which only serves to continue the cycle.
In response--or I’d argue, “reaction”--to this trouble trend, some experienced developers advocate for the opposite approach. Instead of looping on tutorials and never building an original project from scratch, some suggest that beginners should barely ever use tutorials unless they need them to fill in some knowledge gap while focused on a project they’re building. Otherwise, they should begin learning by building projects, getting most of their information from ad-hoc sources like documentation and Stack Overflow.
This “fly by the seat of your pants” approach is fine for intermediate to advanced developers, but I’d argue that even for that skill level, nothing can replace quality content delivered in an easily digestible fashion. That leads me to my middle approach, which I think supplies a valid alternative to either extreme. I call it Tutorial Minimalism.
The 5 Laws of Tutorial Minimalism:
- Tutorials are not your enemy.
- Tutorials are not your friend, either.
- The instructor is only a signpost.
- The only real project in a tutorial is yourself.
- Always Be Curious
#1 → Tutorials are not your enemy
Tutorials get a bad rap. They contain a wealth of information packaged conveniently into a finished product. Through a tutorial, it is possible to gain familiarity with numerous technologies and witness how they can work together. Tutorials cannot make you sit passively and watch them. It is your choice to consume a tutorial like some Netflix special, and it is also your choice to not open an IDE to code along. The tutorial cannot be blamed for your unwillingness to participate in the learning process. It is simply a vehicle of information, and it has a lot to offer.
#2 → Tutorials are not your friend, either
As already stated, tutorials are Switzerland in the debate over tutorials vs. projects. They do not care if you fail, nor do they care if you succeed. Therefore we cannot trust them to guide us to victory on our learning quest. We must take responsibility for our own learning, and that is fine. We don’t need the tutorial to guide us. In fact, relying exclusively on tutorials for competence is what leads to Tutorial Hell. We can therefore be grateful that tutorials do not have an opinion about themselves and how we should use them.
#3 → The instructor is only a signpost
The instructor, on the other hand, does have an opinion about the tutorial and how it should be used. We can confidently ignore the instructor’s viewpoint, however, because we have already decided on our approach. The instructor is useful for discussing the technologies, tools, concepts, tips & tricks, and other topics that merit further research. We are not concerned with building their project, but with dissecting it as they build it.
Every single tiny detail the instructor mentions, models, or explains is a keyword in a Google search that you could do to further your understanding of that thing. In this sense, you could write a book 1000 pages long with a discussion of the topics mentioned in a comprehensive 30-minute tutorial. The instructor’s content is not meant to be passively absorbed, but to be critically analyzed for further research.
#4 → The only real project in a tutorial is yourself
Just as with a college degree, the piece of paper does not matter. It is what that piece of paper represents that makes the college graduate valuable. The same degree from the same institution from the same graduation year will represent vastly different amounts of knowledge between any 2 people. It is the same with informal education like tutorials. We must not chase the finished product just to show it off on a portfolio. We instead must scrape and claw for every bit of transferable knowledge the tutorial has to provide, and then discard the project once we are done.
If we see ourselves as the project and the tutorial as the tool, rather than ourselves as the tool building the tutorial’s project, we will cease to value the tutorial’s project except as it pertains to our personal growth.
#5 → Always Be Curious
Always Be Coding as a philosophy is useless without curiosity. It is easy to consume tutorial after tutorial without ever growing as a developer. Even if we code along and build 100’s of projects with the instructor, we won’t have what it takes to succeed when a tutorial is not available for the project we need to build.
Always Be Curious means to question everything you are taught, and always seize opportunities to expand on knowledge presented to you. Everything in a tutorial can be taken at face value or questioned, and to be effective at practicing Tutorial Minimalism, you must question everything and find opportunities to grow, even from subjects you feel fairly confident in.
Tutorials are great resources because often people don’t know where to start when learning to code. Tutorials can point you to points of inquiry that you can take it upon yourself to research further. Do this outside research enough, and you will find connections between seemingly disparate information, as everything in programming is indeed somehow connected at a base level. Finding these connections aids understanding of new information. Curiosity is therefore the key that unlocks the true power of tutorials.
Tutorial Minimalism in a Nutshell
Minimalism is about taking only what we need, and leaving the rest. Tutorial Minimalism seeks to use tutorials as seas to be fished for their knowledge and wisdom. The fisherman does not live at sea for its own sake, but rather to collect the day’s catch and return home to enjoy it and give it to others. It is our responsibility to eventually give back using the knowledge we gain, so we can create value for others. By using tutorials in this fashion, we can exit the cycle of Tutorial Hell. We can augment our confidence as developers and build our own projects, while still getting to enjoy tutorials as learning resources.