Being a new developer can be challenging. Whether you recently finished a coding bootcamp, went through a Full Stack course online, or have just been learning on your own, there comes a time when you need to start coding real projects.
For some people, it can be intimidating, or even frightening. You might start questioning your abilities, have a lot of doubts, or wonder if you know enough to actually build something on your own.
If you’ve ever felt this way, know that you are not the only one! We all go through the phase where we need to take everything we’ve learned and apply it to something that feels tangible and useful - a real-world project.
In this article, I’ll share five projects you can build to master your skills, feel confident enough to contribute to open source, and do some freelance projects. All so you can get ready to start applying for jobs.
Yes, this is the very first project you should build once you have enough knowledge. It will not only showcase your abilities as a developer, but it will be visited many times when you start applying for jobs.
I built the first draft of my portfolio using Rails as I was so excited after learning that framework. However, this wasn’t a good idea in my case.
That’s because most portfolios are static websites where you don’t actually need a robust backend language to build them.
For your portfolio, I would suggest you use React. It’s a powerful framework that will allow you to personalize every bit of the website and, in case you need it later, it works well with a lot of backend languages (Rails included).
If you’re not a good designer, you can find a lot of templates here and here. I prefer to take a look at a couple of them and then make my own version so the final result is a unique design. If you do choose to clone one of the suggestions, I would recommend at least changing the color palette to make it look different.
If you are looking to build a project that provides value to people and that can be used in production from day one (or within a few days), then I recommend connecting to an API service.
For example, I’ve seen some amazing projects - like this and this - that are approaching the COVID-19 crisis in the best way possible. They’re doing this creating tools to help people stay informed of the development of the pandemic, by using this API.
You can find a very complete list of available APIs here to inspire you to build a website that can go from an encyclopedia of Chuck Norris’ facts, to uncovering the universe’s secrets with NASA.
Ruby on Rails is a wonderful framework with impressive built-in features, but if you need to, it will allow you to create an API-only app that receives requests from the frontend. When doing so, you strip the app from unnecessary functionality, for example, the assets and views.
I followed this tutorial to build one of my projects, and I think it is one of the best tutorials you can find online. It uses the TDD methodology, which is also a great way to practice your testing skills while building your own To-do List app (that you can easily convert into anything you want).
The tutorial uses JWT for the authentication part, a very useful way to allow users to log in when you don’t have the sessions available, using Rails as an API only app.
If you also want to try this other great tutorial, you will see that there are other ways to create a Rails API while taking advantage of all Rails’ features.
This is a challenging one. It can take a few weeks or months to build, but it will definitely be an impressive project to add to your portfolio.
When you create a complex project like this, you make use of a comprehensive set of skills that most employers are looking for:
Although you can surely find a tutorial for this, I suggest you create your own version of the app. You can use Ruby on Rails for the backend (as an API, of course) and choose your preferred stack for the frontend.
Do you have a hobby? What activity did you enjoy most growing up? Remember that idea you had in college but never made real?
We have thousands of thoughts every day and some are pretty creative! If you dig a little into your own history, you will find something. Maybe you’ve faced a recurring problem and now have a solution for it, or maybe you see an opportunity where others see an obstacle.
When we work actively to make our ideas tangible, or engage in a task related to our interests, the job is always easier, more enjoyable, and has more meaning.
Great projects, like these, are born this way.
I’d recommend you start making a list of all the daily issues you face as a programmer. Take a few moments each day to analyze them and choose ones you know others are facing, too. Can you think of a way to solve them?
Write your ideas down and keep those notes someplace safe. You never know when you will get the chance to work on them. Eventually, you will find one idea that intrigues you enough to start building it.
To circle back to my first statement: being a developer can be exciting. Now, do you see all the possibilities you have at the tip of your fingers?
Take a chance and start building something - anything. It doesn’t matter. Share it with your friends, or share it with me on Twitter. Feedback is an amazing way to grow as a developer.