Even the best software programmers and successful tech entrepreneurs started out with basic projects. Sure, a calculator that consists of a few buttons and a small display doesn’t look as sexy or as interesting as a multiplayer video game or a social media platform, but it is through these projects that you learn the fundamental software principles that you’ll need to create and design more advanced projects later on. If you’re an aspiring software engineer, here are seven projects you can start today:

Personal Website

A personal website or blog is a staple on any tech professional’s portfolio. In fact, you’ll need one to hold all the links and thumbnails for your other projects. A personal website will help you learn HTML and CSS. Later on, you can add a bit of functionality with JavaScript. Starting a personal website also teaches you wireframing, as it forces you to plan and draw out how many web pages you’ll need and where buttons and content should be located.

Weight Conversion Tool

A simple project you can do to exercise your JavaScript muscles is a weight converter application wherein you input a number and it displays the converted value in grams, kilograms, pounds, ounces, and so forth. You can go one step further and include conversions for liquids and volumes. Finish it up with some Bootstrap to give it more aesthetic appeal.

Website Scraper

Before starting this project, make sure the website you choose to scrape data from allows it. Although scraping isn’t a new concept in the world of web development, a lot of companies do not allow third-party scraping. Once you find one, start building a website scraper with the programming language of your choice. Some common languages novices and even experts use to write a scraping program are Python and NodeJS. Learning how to create a web scraping tool will teach you how to interact with other website’s APIs.

To-Do List

A to-do list is another useful software program that instills basic programming principles including CRUD, which is short for CREATE, READ, UPDATE, DELETE. A to-do list app can also be written in different JavaScript frameworks and libraries including jQuery, ReactJS, and Angular.

Instagram Clone

You probably use Instagram or a similar social media platform on a daily basis, so wouldn’t it be cool to actually make one yourself? It sounds like an overwhelming project to take for a newbie, but the basic functionality of social media sites, like Instagram, are actually fairly easy to replicate. By creating an Instagram clone project, you’ll learn how to use databases, like postgreSQL and MongoDB, since you’ll need them to store photos and comments and likes for each photo.

Sign-up/Login Form

Every eCommerce platform needs a reliable way to manage who gets access to what data. User authentication is a critical piece of any website. Creating a fully-functioning sign-up and log-in form teaches you how to intelligently design databases that hold user credentials as well as work with tools that hash these passwords for better security.

Snake Game

With the myriad of video games out there today, 2D Snake sounds like an unexciting choice for a project. However, for newbies, it can introduce you to the Canvas API and serve as an opportunity to work with JavaScript objects and prototypes. If Snake sounds too complex of a project to take, you can start with much simpler games, like Tic Tac Toe, that have more straightforward parameters and guidelines. If you’re looking for something more complex, try doing a Chess game.

Final Thoughts

All these projects are meaningless if people can’t see or use it. The next step is to launch the project online. Host your personal website or to-do-list app through Amazon Web Services or Heroku or at least create and maintain a Github repository or similar version control system for it. For a list of other programming project ideas, check this repository out.