DEV Community

Cover image for Project Ideas to Make You a Better Developer
Tamerlan Gudabayev
Tamerlan Gudabayev

Posted on • Originally published at softwareadventuring.com

Project Ideas to Make You a Better Developer

There's no secret method in becoming a better developer.

There's no substitute for hard work.

You gotta study, and simply grind it out.

But sometimes you can speed up the process.

One way is to create "good" projects

But what are good projects?

Let's dive in.

What makes a good project?

All projects are good.

But, some are better than others.

How do we judge projects?

Before I begin listing out the criteria by which I judge projects, I just wanna say that this is very subjective and at the end of the day it totally depends on you, if you think a project is great, then it is great, no arguments needed.

Now with that done, let's go over what I find important in a project:

  • Tech Stack — We can judge a project by the tech stack it's using. That also depends on you, if you wanna learn Java, then simply create projects using Java. I'm not advocating using the latest and greatest tech, but it's good to experiment with different tech stacks and see which ones you enjoy programming in.
  • Size — The bigger the project, the better it is? In most cases it is, big projects force you to think about architecture, file structure, and lots of other things that you might ignore. On the other hand, small projects are good if your focused on learning one specific tech. For example, if you wanna learn web sockets, you would create a super simple chat app, with the basic needs just to learn web sockets.
  • Challenge — An easy project is no fun, you won't learn much. That's why it's important to have a project which is slightly outside of your comfort zone. Make sure it's not too outside of your comfort zone for you to be overwhelmed.
  • Fun — In my opinion, a fun project is always a good project. It just motivates you to write code, and simply have fun.

Now that we know how to judge projects, let us answer a very common question that most beginner programmers have.

Should my projects be recruiter oriented?

This is another common question that junior developers have.

The simple answer is no.

Most companies don't look at your personal projects UNLESS they are super outstanding such as a popular open-source project or equivalent.

What I'm trying to say is that you should create projects because you genuinely want to do them, you might want to learn some new technology, or simply have fun.

Projects

That the theory is over with, let's move over to more practical advice.

Here are the projects I recommend every programmer to at least try doing.

PS. I probably have missed some other great project ideas, if I did make sure to leave them down in the comments.

Clones (Netflix, Google, Amazon, etc...)

You got no project ideas?

Clone apps?

What apps?

Any app., it can be Netflix, Google, Amazon, etc...

Cloning apps is a great way to learn how these giant apps were made.

You essentially reverse engineer these apps and learn their trade secrets.

Visualizers

Visualizers have become super popular lately.

Mainly because it teaches you core CS fundamentals.

It's also a nice project to put on your resume.

You can visualize lot's of things, sorting algorithms, shortest path algorithms, etc...

Bonus points making this much more beautiful

Video/Text Chat App

I don't like putting specific projects, but I couldn't skip this one.

I like this project, it's fun and it teaches you trending topics such as web sockets and WebRTC

It's also a very cool project to put on your resume.

CMS System

This is a classic.

CMS systems can be very simple or complex.

If by any chance your CRM system is useful, you can turn it into a full-fledged SaaS (Software as a Service) making you some side income.

Cloud Computing Project

Lot's of companies are moving to cloud providers for their infrastructure needs.

What better way to learn the cloud, than creating a cloud-based project.

You can create a small project that uses some sort of cloud service:

  • Storage: AWS S3
  • Database: AWS RDS
  • Functions: AWS Lambda

PS. You don't have to use AWS, it's simply the most popular one currently. You can check other cloud providers such as Google Cloud and Microsoft Azure.

Games

If you enjoy playing games, why not make one?

It might be tough but make sure to pick something that isn't too hard, you won't be making the next witcher.

You can make a 3D game that will teach you lots about physics, or even a multiplayer game that will teach you about networking.

You can start off by learning Unity, or my personal favourite Godot.

Distributed Systems Project

This one might be a bit hard to do, but it will immensely help you because most companies are moving to a distributed architecture.

You can create simple microservices that communicate with each other using HTTP or gRPC.

You can add a reverse proxy, as an API gateway, maybe even a load balancer, and you can host this on the cloud using some cloud provider.

Online Code Editor

This is another fun and challenging project.

Personally, I've never done this but would assume that it's no easy feat.

Your gonna have to be able to work with files, and syntax highlighting.

Don't forget about running the code, probably gonna use some sort of compiler underneath.

Regex Query Tool

This will probably be a frustrating project due to how annoying regex is.

Nevertheless, it's a great project, your gonna learn how regex works (finally!!)

You can add features like having test cases for regex, and even a history

File Manager

This is another fun project to do, it teaches you how the file system works.

It will also teach you basic data structures because your gonna have to use them to implement some features.

Machine Learning Project

Machine learning is hot.

People think it's too hard, but in fact, there are many ready-made libraries that abstract all the hard stuff for us.

You can create a mask detector app or handwriting detector app.

Your Own Framework

This is a great project because it will make you appreciate the frameworks your already using.

To start you can choose a framework to clone.

You can start off by cloning basic functionality and slowly start implementing more features.

Conclusion

That was long?

I sure hope you got an idea for your next project.

If so, tell me which one your gonna make down in the comments below!

Thanks for reading!

The Plug

If you want more content like this, follow me on dev.to or even check out my personal blog.

I also publish small snippets of content on Twitter, follow me @tamerlan_dev

Discussion (9)

Collapse
incrementis profile image
Akin C. • Edited

Hello Tamerlan Gudabayev,

thanks for your article.
For me it was very easy to read, actually it felt like "a hot knife cutting through butter", and understandable.
I like your suggestions very much!

By the way, I tweeted your article, but I see that your Dev profile doesn't include your Twitter account. That means you won't be tagged on Twitter. Maybe that's on purpose, but I definitely wanted to let you know :)!

Collapse
tamerlang profile image
Tamerlan Gudabayev Author

Hi, glad you enjoyed the article. I put twitter up on my profile, thanks for the heads up :)

Collapse
maalcalar profile image
Miguel Angel Alcalá Rios

Great ideas, thanks!

Collapse
derryyeh profile image
Derrr

This is very useful. Thanks a lot! 📚

Collapse
tamerlang profile image
Tamerlan Gudabayev Author

Glad you enjoyed it!

Collapse
tsadarsh profile image
Adarsh TS

Thanks for writing this article. I now realize that I should take up more projects and learn more stuff 😄.

Collapse
ukaypromise profile image
Engr. Promise

This is wonderful. Thanks for sharing such important info. Newbies in tech would benefit from this.

Collapse
tobiadiks profile image
tobiadiks

Thanks for this write, goes a long way in my career.

Collapse
hasnaindev profile image
Muhammad Hasnain

Thanks for writing this awesome article! :)