Professional Documents
Culture Documents
Todo Tutorials Can Be Fun - But Here's How To Build Your Own Projects From Scratch
Todo Tutorials Can Be Fun - But Here's How To Build Your Own Projects From Scratch
There are many great tutorials that walk you through creating apps, from simple todo
lists to fully working web apps. But how do you start your own projects from scratch?
Without the safety net of a tutorial, you might feel a bit lost on what to build, or even
how to get started.
These are the steps I followed that helped me create my own projects when I was a
junior developer — and also set me up with the skills I needed to become a software
team lead. But first…
• How do I start?
• What will it look like?
And other stuff like that (we’ll talk about how to get started in a minute). This is exactly
what your job as a developer will entail — designing a solution and seeing it through to
the finish. Creating your own projects allows you to practice these skills, and will set you
up for the start of your career.
“OK we’re building a thing, here’s the steps to get the thing working, it works! Hurray!
The End”
Unfortunately, the lives of web developer’s are not as straightforward as this. When
you’re writing code, you will hit issues at some point. Plain and simple.
By creating your own projects, you’ll encounter problems naturally and it gives you a
chance to practice overcoming them. This what developers do every day and practicing
will make this a lot easier.
It’s fun to build your own projects. Something you can use, show off to friends and
family, or learn from. And it’s a pretty safe hobby. It might work, it might not. You might
like it, you might f*** the whole thing up. But it’s not a big deal, just throw the project
files in the virtual trashcan and start again. Easy!
So, if you have completed a todo app tutorial (if you haven’t, where have you been?!),
you could build upon it in whatever way you want. For example, you could:
• Allow saving the todo list (to a database, localStorage, etc) so the user can come
back it later
• Give the user some customization options (change the color of todo items)
You get the idea — basically, use your imagination! The possibilities are endless, so
throw caution to the wind and build whatever you feel like!
By creating an app that you’ll use, it’ll keep you interested enough to see the project
through to completion. Also, by using the app once it’s finished, you’ll naturally find
ways to make it better, which gives you another project to complete— and the circle of
(coding) life repeats!
Another similar approach, is to replicate a popular app that you use. You don’t have to
go into the same level of detail as the app you are replicating, but see if you can get the
basic functionality working. For example:
• Use the Twitter API and make your own Twitter feed
Start small
A sure fire way to get overwhelmed when starting your own projects is to go all out and
try to create massive projects. While the ambition is good, you might find yourself
getting stuck and frustrated at your progress.
Start small for your first few projects. Instead of making a fully fledged scientific
calculator, create a basic one that does simple additions and subtractions, for example.
Then as you become more comfortable, add new features. Before you know it, your
small project will have turned into a fully fledged app.
This also gives you the added benefit of practicing how software is built in the real
world. Small features will often be developed, tested, and deployed in increments. This
is typically called Agile Development (have a nosey at freeCodeCamp.org for more info
about this).
So what do I mean by a goal? A goal in this sense is basically what you want to
achieve with your project. Instead of simply aiming to build a GitHub dashboard you
could say:
“I am going to build a dashboard that shows how many commits I’ve made to my own
repositories last month.”
This gives you a clear direction in which to work. Once you have reached that goal, you
could add more features, or move onto another project. A goal can be anything you
want:
BONUS TIP — remember to put everything onto your own GitHub repository, and state
the goal in the description (you should put projects on your CV/Resume as well!). This
will show employers that you are passionate about learning, and will also be good
motivation for yourself when you look back on old projects!
(Quick note: I will be creating these projects myself, along with articles on how I did
each one, how/why I made the decisions I made, and my general thought process. As
well as completed code, of course. Make sure to subscribe to my blog to get updated
when these articles are available!)
• Create “undo” functionality (HINT: the react tutorial has a good example of this)
GitHub dashboard
Use the GitHub API to create your own dashboard. This dashboard can be anything you
want. A possible starting point would be to display information about your own GitHub
account.
• Total commits over the past month
HINT: Even though this is a client-side project, you will have to interact with an API. Use
Postman or similar to get a feel for how the API works, how to authenticate requests
and things like that.
A Quiz app
Create a quiz app that randomly displays a question with a multiple choice of answers
to the user. If the user gets the answer correct, display a “hurray!” message, update
their score, you get the idea. I like this app as the possibilities are endless when it
comes to expanding on it:
• Add categories
• Add a countdown
• Allow multiple players (HINT: You could go really advanced and use Socket.io to
allow online play!)
HINT: Remember not to go overboard at the beginning! Set your goal for the initial
project, and get to that point first. Then, see if you want to add more stuff or move onto
something else.
HINT: Try not to be put off by the term real-time. At its simplest level, this could be
writing some logic that calls the api every 5 seconds and displays the data.
We all know how shopping carts work, but can you build one? Display a list of products
to the user, and let them add it to their cart. As a starting point, you could create
functionality that:
• Let’s the user add an item from the product page to their cart
HINT — You can simply hardcode the products that appear on the product’s page as a
first step to get going.
More projects!
If you’re looking to get your hands on more projects, check out this GitHub repo . There
are projects for different levels that will keep you busy for a while!
To get the latest guides, tips, and courses for junior developers straight to your inbox
(as well as some exclusive stuff!), make sure to join the mailing list at
www.chrisblakely.dev!
2K
5
claps
freeCodeCamp.org Follow
Stories worth reading about programming and technology from our open
source community.