You've seen them everywhere. 'Build a Todo App in X' is a popular bit of clickbait to those interested in Web Development. The internet is full of these tutorials, in just about any technology you can imagine. Why is this? Well, the Todo App tutorial is the natural evolution of the Hello World application. While a hello world introduces you (the developer) to the language's, or framework's, basic syntax, and file structure, maybe even a boilerplate-generating cli, the Todo app is the implementation of actual logic.
Hello World is a great place to begin, but a Todo app shows that you know how to implement the technology, or atleast it should. More often than not, you'll come across a junior developer's github and find dozens of repos titled 'x-todo-app'. Github is not only a great resource for managing your project's version controlled code, its also a powerful tool for demonstrating what you're capable of. This usually results in junior's githubs full of these apps. I know this because I did this for a very long time.
Early on, I thought it was important to know everything. It wasn't until I actually attempted to learn everything that I realized I wasn't learning at all. I would complete the todo app phase and be done and on to the next technology. This is no way to learn. It wasn't until I finished working through the 'Django-React-Redux' todo app that I realized it had gone too far. I honestly cannot think of a more prominent example of 'overkill'.
I always thought that it was important to jam the skills section of my resume full with as many languages and frameworks as would fit on the page. But in actuality, its much better to have a handful of technologies that you are strong in. That might sound like common sense but I've seen many people make this mistake.
Alright, I'll get to the point. First, I'll admit that the title of this post is a bit clickbait-y. That was intentional. I don't really mean to boycott todo app tutorials or the content creators who work tirelessly to bring them to fruition. What I would really suggest, is do not start with a todo app. Let's break down the steps toward a better learning experience:
- The Hello World
This part hasn't changed. The Hello World app is still the best way to get started with something new. Also, you usually won't have to resort to a youtube tutorial, most good documentation will have a written Hello World tutorial.
- Actually Read the Docs
I, admittedly, usually skip this step. Do as I say not as I do! I'm trying to get better at this myself. Maybe putting it on the internet is my way of peer-pressuring myself into better practices.
- Try to build the Todo App without a tutorial
This is going to be the toughest part, but it is also the most beneficial part. Stumbling your way through technologies you don't know forces you to read the docs, ask questions on stack overflow, and most importantly, think programmatically. Building the todo app is a great way to learn, but it isn't as helpful if you're just frantically copying code from a blog post or youtube tutorial.
- Watch/Read the Todo App Tutorial
Now is the time. Go give those wonderful content creators their due. Whether or not you were able to complete your todo app attempt, you put the work in to flex those brain muscles. Now that you've given it a shot, the tutorial will be easier to understand. You'll be able to indicate where you might've gone wrong before and you'll complete the experience with a better understanding of the technology overall.