Codementor Events

Projects for New Programmers

Published Jun 13, 2018Last updated Dec 10, 2018

One common question I hear from people learning to code is that ater they finish a tutorial, class, or a bootcamp on coding they have no idea what to work on next. It can be a bit of a challenge to find a project because some projects are much bigger than initially expected, and so you end up with a partially-started piece of code that doesn't really do anything and you don't really want to show to anyone. Further, there is a gap between knowing your way around a basic programming language, and building software at a professional level. Having projects to work on helps to bridge that gap because it forces you to take the tools and skills you have learned and use them to produce something that people can see.

This post is here to help me document a list of good beginner projects, so that when people ask me what they should work on next I have something curated to send them. Hopefully this helps you too!

Here's a list of projects broken down by category, so you can pick something based both on your interest and your past experience.

Video Games

This one is my favourite, and is why I got into coding in the first place. Some video games are pretty easy to build, although it's very easy to fall into a trap of trying to build a huge video game all by yourself. When I was studying at university I tried to remake Starcraft on my own, which didn't end up working too well as the game is more complex than you'd think at first glance. So here's a list of some games that would be a lot easier to build by yourself:

  • Space Invaders, Pac-Man, Tetris, or other arcade style games
  • An old-style RPG, see Jeff Vogel's blog for all sorts of info about that
  • An electronic version of a board game, like Monopoly or Risk

You'll typically want to lean towards older games since they tended to be simpler and easier to build for a single person, but many of the modern indie games will work too.

A thing to keep in mind with games is that a lot of things are trademarked or copyrighted, so you'll want to avoid using the same names as commercial games.

Some tools to get you going:

  • pygame - a nice and simple library for building 2D games in Python.
  • löve - a simple framework to build 2D games in Lua.
  • Unity - you can make professional quality games with this, but it has a much steeper learning curve.

Web Apps

The nice thing about web apps is there are a lot of tools out there available for them, lots of examples to clone, and plenty of jobs for people with these skills.

  • Craigslist - a very simple classifieds site. Doesn't even need a username/password to build.
  • Twitter - start with the simplest version which was Twitter circa 2007, just posting tweets and following people. Add extra features later on if you want.
  • Flickr or Instagram - very similar to Twitter, except that instead of posting tweets you post photos. Same advice, just stick to the basics.
  • Blogger or Medium - Provide a simple way for people to post blog articles online. Keep it simple at first, but you can add comments and follow features later on.

You can also write these as mobile apps. Mobile is a bit more tricky because publishing your work is more restricted, but feel free to go ahead if you want.

Some frameworks that might help you here depending on your favourite language are Ruby on Rails, Django, Play, or Symfony. There are plenty of others, so this list is by no means exhaustive.

Other

There are many more things that fit into the "other" category than any of the previous ones, but I'll just post a few down here to get you started.

  • A stock trading system - a simple script that will pull stock data from some source, and provide a suggestion on what trades the user should make. Quantopian is a good source for getting started on this.
  • Hardware tinkering - there are plenty of projects with Arduino or Raspberry Pi that do some fun things with blinking LEDs, sensors, etc. The technology section at Instructables has lots of sample projects.
  • Models - When I got started coding I had fun building some things like a solar system model, an ecosystem model, or an economic model. You can start with a basic text input/output, and then add in some graphics later on.
  • Fractal art - I had lots of fun doing fractal art a while back. It's pretty simple to do, although getting it to perform well takes some thinking.

This should be more than enough to get you started, so feel free to pick any of these and dive in. Make sure to upload your projects to Github so that people can see your portfolio and your coding skills.

If you would like some advice you are more than welcome to reach out to me and ask questions, I'm happy to answer them and to provide code review. In the future I will be writing some tutorials on how to do some of these projects.

If you come up with your own idea and want to share it with people, feel free to add it in the comments and I'll put it on the list.

Discover and read more posts from Rob Britton
get started
post commentsBe the first to share your opinion
barlow jenkins
2 months ago

@basket random I’m particularly interested in the “see” section – being able to build something tangible and show it off is a great motivator. Looking forward to seeing the list of projects you come up with!

Greg Rogers
6 years ago

You ever written code for a light cube using ardruino?

Show more replies