DEV Community

Cover image for 10 Great Programming Projects to Improve Your Resume and Learn to Program
SeattleDataGuy
SeattleDataGuy

Posted on

10 Great Programming Projects to Improve Your Resume and Learn to Program

One of the common questions we get when it comes to learning how to program, is: “What are some good ideas for projects to build?”

Now, we hear the common cliche answers often, like “build a chess game” or “command line interface”. There is nothing wrong with these answers.

However, we think these examples don’t match modern programming needs. A big portion of modern software is SaaS and web apps. This means you need to know how to program online.

There are a lot more complexities that go into programming a website, or app, that has users, requires servers, authentication, and databases. This forces you to interact with technologies you’ll never need when developing a command line tic-tac-toe game.

Some of this can also be managed by AWS and other third parties that are commonly used by large corporations. Again, exposing you to technologies that are useful and heavily used in industry. This will be far more practical on a resume, as well as help you learn how to use new technologies.

Tip: If you pick a complex project, then focus on building one feature at a time. Building an entire website or app all at once is difficult. Start by building a login page, or maybe the main landing page after the user logs in. If you try to take on the whole project at once then you will likely fail.

Entertainment

1. A web scraper that posts top 10 blogs without human intervention

One of the issues we find with some project recommendation posts, is that they recommend projects that aren’t implemented in a way that excites the programmer to continue development. For instance, I see that a lot of people recommend building a web scraper.

Once you’ve built that web scraper and scraped the data, what are you going to do with it?

Instead of just scraping the data, why not build a website with that data. It doesn’t have to be fancy or get a lot of views. This scraper could pull the data into a database and then select the most popular posts. From there it could copy the title, along with a few sentences, and then create a post that it shares online. This would be an impressive and simple project that you can actually show off.

You’ve now shown that you can do more than just code a small segment of a system. Instead, you can think through an entire system. You need to consider how you are going to automate the process, manage the database, create the website and select the posts. This also allows you to actually have a tangible end product.

Without a tangible end product, it’s really easy to become unmotivated and simply stop at only a web scraper.

In addition, you never know, maybe your site will become popular!
Skills: Database, web scraper, automation, web development (for the blog), and general programming.

2. An event-alert system using Meetup and Eventbrite APIs

Have you ever wanted to go to a band or comedian show, but realized it was last week? Maybe there was a free conference in your area on data science or big data and you missed out because you forgot to check.
Why not make your own aggregator using the Meetup and Eventbrite APIs, that will warn you when keywords are in event descriptions or titles? Now, I assume both Meetup and Eventbrite have similar options. But it is always fun to try to build your own system.

You can customize the system to work the way you want, and maybe even allow other people to make their own alerts by making this a website. What we enjoy about this project is that you can practice working with two different APIs. This will allow you to compare and contract what you like and dislike about them. That way, if you’re ever in charge of building an API, you’ll have a better picture of what works and what doesn’t.

Skills: APIs, database, automation, web development, and general programming.

3. A 9GAG copy cat

You don’t always need to try to reinvent the wheel when creating your own projects. Simple projects like a site that lets you login, post photos, GIFs, and lets you scroll through a feed, provides an opportunity to create a solid base site first. Then you can add lots of interesting features like following, liking, and search. Search in particular would be a great chance to learn how recommendation systems and machine learning work!

It’s always fun to try and replicate popular sites. In fact, it is actually a great way to learn because you have to reverse-engineer each feature. Reverse engineering is a great skill, because as a software engineer you will constantly be maintaining other people’s code and you will need to get in their heads.

Skills: Machine learning (for recommendation system), database, automation, web development, and general programming.
Retail Type Sites

4. A gift recommendation app

Have you ever struggled to find the right gift for your friend? What if you could create a website that helps to predict what to buy a friend for a gift. It could allow the end user to either create an account or just get a gift recommendation.

Again, this allows for the opportunity to create an account which requires authentication, database development, etc.

Also, another great part about this project is you can use Amazon’s API for affiliate links. This will allow you to do a few things. One, learn about how to use APIs and get you comfortable with reading API documentation. Two, if you do it well, you can get a commission for each product someone buys.

This project also has an opportunity to try to create a basic machine learning model. You can create a quiz of sorts that tries to figure out what the best gift is and then, based on if people click the gift or not, can drive the model to learn based on the response rate.

Skills: APIs, database, general programming, and app development.

5. A site for bartering and trading

Think OfferUp, but instead of money, why not create a website that only allows trades. This concept will force you to develop several features that need some thought. You won’t be able to just attack this project without a plan.

How will people post, where will people find recently posted items and how will people search. All of these are separate features you can build. In addition, you need to think how users will interact, and maybe even how they actually make the trade.

The idea doesn’t have to be 100% practical for real life — it needs to be practical in the sense of improving your skill set as a programmer.
Skills: Database, web development, general programming, and app development (if you choose to make it an app).

B2B

6. Invoice and contract management system

Contract and invoice management are very complex processes. Contracts can have a lot of nuanced clauses and stipulations that can be difficult to track.

This makes this a very good project, even if you simplify it to some of its core components. Having to translate a complex business process into software is not easy. But it is what makes this project a good challenge.
Again, we wouldn’t overcomplicate this. Take a basic feature, like inputting the terms of a contract, and develop this part first. Then you can add other features like invoice tracking, contract analytics and forecasting.

Skills: Process management, database, web development, and general programming.

7. Task management system

Task boards like KanbanFlow are built with several modular features that make it a great project to play around with. It will take a little work to get started, as you will need to set up a UI that is robust and dynamic as well. In fact, this project would be more of a two person job. One person to work on the front end and another person to work on the back end.

Don’t let that discourage you! This is actually a chance for you to work on your communication and team work skills. You will need to talk through designs to make sure you both fully understand it, and you know where your modules will be connecting.

This is always more challenging than it seems.

Skills: Communication, front end, database, web development, and general programming.

8. A job board

Any project that forces you to allow users to input as various types of users adds an interesting design aspect. How will you ensure that the way employers experience the site meets their needs vs. prospecting job searchers? Like most of the other projects, you don’t need to focus on all of it at once. Start out by trying to create the ability to create a job posting first. Then you can go and focus on the job searchers and how they respond.

Skills: Database, web development, and general programming.

9. A website that forecasts profits based on standardized data sets

There are a lot of data sets that are very standardized for most
companies. This includes accounting data which is usually based on cost centers, accounts, line descriptions, and finally the actual transaction cost.

What is great about the standardization of any data set, is that it makes it easy to create analytics on top of said data sets. Why not create a standardized dashboard that can help companies predict spend, see monthly outgoings, and possibly help them improve their spending.

For this project you will probably have to spend a lot of time learning about how to make sure you keep your data secure. Of course, we recommend first trying to build the modules that focus on uptaking and standardizing the data and displaying it, before you go too deep into security. That’s a rabbit hole you may never escape!

Skills: Forecasting, business logic, database, web development, and general programming

Game Ideas

10. Snake

If you had a cellphone in the early 2000s, you’ve probably played Snake. It’s a simple game but you can always try to make things more complex! First, start by just trying to make the game.

This will require you to figure out how to develop a game online. This neon Snake by Sebastian Opperman is a great place to start. But after that, maybe you can add some cool new features like special items or special powers.

This would be a chance to play around and have fun. This project won’t be as technical from the stand point of having lots of users that sign up and use your site. However, it is a good challenge to figure out how to make a game run online.

Skills: Web development, general programming, and UI

We do hope this list inspires you to create an awesome new project that you can add to your resume and talk about in interviews. Maybe we’ll see you as the next CEO of a billion dollar startup!

Are You Interested In Learning About Data Science Or Tech?

Learning Data Science: Our Favorite Data Science Books
Using Python To Scrape The MeetUp API
Our Favorite Machine Learning Courses On Coursera For Free
How Algorithms Can Become Unethical and Biased
How To Load Multiple Files With SQL
How To Develop Robust Algorithms
Dynamically Bulk Inserting CSV Data Into A SQL Server
4 Must Have Skills For Data Scientists
SQL Best Practices — Designing An ETL Video

Top comments (52)

Collapse
 
jeikabu profile image
jeikabu • Edited

I like to make something I "need" like my air quality monitor. Neil's cool "pirrigator" project is another good example.

Or an extension of work stuff. Something we don't need but I thought would be cool. Taking a school project to the next level is also something I've done in the past.

Just some more ideas.

Collapse
 
derickhess profile image
Derick Hess

Cool. I do projects like this as well. Have an aquaponics control and monitoring system I built for a friends system, based on raspberry pi.

Collapse
 
seattledataguy profile image
SeattleDataGuy

Woah! That sounds really cool. What are you growing?

Thread Thread
 
derickhess profile image
Derick Hess • Edited

It change every few months but has 4 growbeds, and a few strawberry towers. The fish tank has 60ish large tilapia, and total water volume of the system is 800 gallons.

The monitoring system, monitors the solar power, when it switches to AC back up, updates a graph dissolved oxygen, pH, water temp, outside temp, and greenhouse temp.

Once a day it also automatically tops off the sump take with any needed fresh water using a water level sensor and a solenoid valve.

the pi hosts a web server with grafana to display the data

Thread Thread
 
jeikabu profile image
jeikabu

You should write a post about it. I can't be then only one that likes reading this kind of stuff. 😃

Thread Thread
 
seattledataguy profile image
SeattleDataGuy

Thats really cool! and quite practical. Like the other person said. Maybe you should write about it!

Collapse
 
basil74812902 profile image
Basil

this is really cool! and practical too!

Collapse
 
seattledataguy profile image
SeattleDataGuy

Love it! Always good to see what other people are doing!

Collapse
 
bakerchad79 profile image
bakerchad79

I feel like I have imposter syndrome because I graduated as a full stack developer yet I haven’t done an individual project yet because I don’t feel skilled enough and it’s stressing me out. Seems so hard sometimes. I know I can create something great though one day

Collapse
 
seattledataguy profile image
SeattleDataGuy

Take a deep breath!

I don't have any specific projects on github but I have done plenty at companies.

It all happens in time! If you want to do one for yourself, just start small. Start by scraping a website, or building a basic form and go from there.

You don't have to build it all in one day. I often look back after a year or two of coding and I am shocked at how much worked I have done. In the day by day it seems like nothing. But it all adds up!

Collapse
 
kabeer279 profile image
Kabeer279

That was motivating for me thank you..

Collapse
 
dilakv profile image
dilakv

You have to start. Really start with something, whatever. it's probably going to be wrong and buggy, accept it, that will be fine. But you need to start

Collapse
 
kabeer279 profile image
Kabeer279

That was motivating for me thank you.."That start with something part" .. was a good point ..

Collapse
 
seattledataguy profile image
SeattleDataGuy

Yup! just start and then don't stop!!!

Collapse
 
nokiz profile image
Nando AM

I plan to develop a football scores predictor based on data scraped from multiples sources on the internet.

I also want to dive into the cryptocurrency world to see if I can develop an autotrader. I want a hobby that can make me rich :)

Collapse
 
seattledataguy profile image
SeattleDataGuy

Haha! Good luck!

Collapse
 
seattledataguy profile image
SeattleDataGuy

Now this is some next level side-project. Most of us just sit here constantly starting new projects and never finishing them XP....

Collapse
 
sobolevn profile image
Nikita Sobolev

When doing these projects, don't forget about your coding style. I recommend to use wemake-python-styleguide to catch all possible errors one can accidentally make.

It is the strictest Python linter out there. And trust me, it will help you to learn a lot of things as a beginner. Why? Because it encourages you to write high-quality code. And even forces sometimes.

Combine it with nice docs and friendly community, and you are all set for the success!

GitHub logo wemake-services / wemake-python-styleguide

The strictest and most opinionated python linter ever!

wemake-python-styleguide

wemake.services Supporters Build Status Coverage Status Github Action Python Version wemake-python-styleguide


Welcome to the strictest and most opinionated python linter ever.

wemake-python-styleguide logo

wemake-python-styleguide is actually a flake8 plugin with some other plugins as dependencies.

Quickstart

pip install wemake-python-styleguide

You will also need to create a setup.cfg file with the configuration.

We highly recommend to also use:

  • flakehell for easy integration into a legacy codebase
  • nitpick for sharing and validating configuration across multiple projects

Running

flake8 your_module.py

This app is still just good old flake8 And it won't change your existing workflow.

invocation resuts

See "Usage" section in the docs for examples and integrations.

We also support Github Actions as first class-citizens Try it out!

What we are about

The ultimate goal of this project is to make all people write exactly the same python code.

black mypy pylint flake8 wemake-python-styleguide
Formats code?
Finds style issues?
Finds bugs?
Collapse
 
maymeow profile image
Meow

Nice post :)

I have some side projects too but only small pieces are production ready. My problem is during developing i get new idea and that is end ...

Now i woring on project which downloading informations from Mikrotik routers over API.

Collapse
 
shofol profile image
Anower Jahan Shofol

I got a list here too- github.com/florinpop17/app-ideas

Collapse
 
anduser96 profile image
Andrei Gatej

Great list! I did something similar to nr6 and I can tell that I’ve learnt a LOT!

I had such a great time building that app.

Collapse
 
seattledataguy profile image
SeattleDataGuy

What's your next project idea?

Collapse
 
anduser96 profile image
Andrei Gatej

Nowadays I prefer exploring and eventually contributing to projects rather than building my own.

I have no idea of what I could build, but I’d look for something complex.

Collapse
 
darkes profile image
Victor Darkes

These are definitely some solid ideas. If someone can go through all of these they have a great portfolio!

Collapse
 
ellen_dev profile image
Ellen Macpherson

These are so good! It's always such a struggle trying to find meaningful projects to add to my portfolio. Thanks for sharing!

Some comments may only be visible to logged-in visitors. Sign in to view all comments.