Escaping the Vicious Tutorial Cycle
A guide to making good use of tutorials
I want to write a little bit about escaping the tutorial cycle. A tutorial cycle is basically a situation where one becomes overly dependent on video courses when learning to code. They can be from YouTube or sites like Udemy, Udacity, Freecodecamp, etc. It is a cycle because, if not handled, people end up being stuck or lost or not even knowing where to start unless they go back to a video or course.
I have been through this, and believe me when I say it is a vicious cycle indeed.
One of the biggest problems that arise from being dependent on tutorials is the projects. Most students usually end up using the same tutorial projects as part of their portfolio projects. Truthfully, it is not going to benefit you to do tutorial projects, put them in your portfolio, and then send them off to employers as your own.
Technically, you are free to do what you want, but I would strongly advise against it. Here is why: They are laughably easy for employers to recognize. There is a high chance that you are not the only student enrolled for the course or the first individual to open that YouTube video.
I believe the most important reason for using a tutorial is to gain hands-on experience in building projects on your own. Following a tutorial is only half the battle. The other half comes from your initiative. Researching topics you have not fully grasped, looking for different ways of approaching the same project, testing things out, debugging. You only get to learn these from building projects of your own.
I am not saying that tutorials are bad. Use them, buy the different courses that you think you need to make your learning process faster. I simply have some tips on how to make better use of them.
Break It Down
Deconstruct it. Do not follow blindly for the sake of finishing the course. Deconstruct the concepts of the example project. Suppose you are watching a tutorial on how to make a to-do list with whatever technology. It is never just about building the app. It is about what you learn while you are building it. Write down the concepts that you will be covering through the lessons. You are going to learn how to structure the application. You are going to learn how to create the UI and how to connect it to the back end. You can learn a lot of valuable things from a to-do list app. If you look at it from the perspective of doing it exactly as is, it will not benefit you that much.
The biggest mistake beginners do when learning in such a way is the rush of finishing one project for the sole purpose of moving on to another. I would suggest watching it, really understanding it, going through the whole thing, and then taking those concepts that you learned for use in building something else. Build something different.
Say you have been learning about using Node.js trying to build a full-stack project, and maybe you have just finished doing a refresher on React. Combine the knowledge acquired from both and create something new. Try a simple clone or redo your portfolio using the skills you’ve learned. It does not have to be something huge. It just needs to be original and without a tutorial. Doing this has helped many developers out there.
Again, I am not saying that you should cut tutorials out of your life. I am suggesting that you make them part of a more efficient learning process.
Look at Code From Other People
So, tutorials are one thing because they hold your hand and show you what everything is and where everything goes. If you look at someone else’s code on GitHub, no one is going to help you. It is going to be up to you to go through it and try to understand the lines of code.
Remember that other half? It starts here. Google methods that you do not understand and figure out how they work. This is going to help you in real-life situations when you get a job. You are going to get a code base thrown at you, and you will be required to comb through it and add a feature or debug.
Contribute to an Open Source Project
The best part about this tip is that you do not need to be a guru to contribute to an open source project. It will help you break out of the cycle by having you do something productive on your own. In the code that you have been looking at and trying to understand, maybe you see somewhere where you could add a feature, find some issue to fix, and make a pull request even if your pull request gets denied. At least you have the experience of actually diving in and trying to do something of your own and submitting it.
Stick to One Technology or Stack
There are certain things that you will have to learn like Git, but when you choose a language or a framework, stick with it. Do not bounce around unless you are just starting. If you are trying to figure out if you want to work with React, Angular, or Vue, it is OK to watch some beginner crash courses.
However, once you figure out what you want to do, stick with it.
Practice Algorithms and Coding Challenges
For freelance developers, time is usually one luxury we cannot afford. Working on algorithms and coding challenges at first can seem unproductive. I had the same issues in the beginning, but I realized that if I allocate time for it, it helps me solve problems faster. It helps you learn the syntax and learn different methods that you might not have known before. It makes you a better programmer.
Join a Community
You do not have to be an extrovert to join a community. There are a lot of online communities out there too. I know a lot of programmers are very active. If you are an extrovert, it might be a good idea to go to a meetup to discuss programming and technology with like-minded people. If you prefer the comfort of your home office or room, join Discord groups, Slack, and the like. These groups are like a family. There is no question you will ever post that does not have a solution. You will always have help should you need it.
Use Other Resources
For this, I prefer the original documentation. Courses go out of date very quickly. Any technology’s documentation is always going to be your most accurate source because it is going to have the most up-to-date information.
First of all, this is easier said than done because you are going to have to do a lot more before you start working. When you start working, you are going to be pulled out of the cycle whether you like it or not because there is no tutorial to follow anymore. You are going to get your requirements and you are going to have to figure it out.
Everything up until this point is to prepare you for that real-world experience. As a programmer, you are going to be doing a lot of research. You are going to be dealing with a team. This is why joining a community might help. I hope this helps to prepare for that job and not being overwhelmed by impostor syndrome.
Tutorials are crucial and are the best resources for self-taught developers. Use them judiciously, for they may also be a barrier to your progress. Use them well.