My friend Chris Domurad tweeted this to me earlier today:

@excid3 I’ve been looking online for a list of app to create when learning a new language, can’t find a definitive list though

— Christopher Domurad (@ChrisDomurad) July 1, 2011

A lot of people are moving towards the web. Things like Rails, Django, NodeJS and other frameworks are very attractive to new developers. It’s a relatively easy way for them to become noticed in the community but many times they don’t know where to start.

I landed a job doing Rails development without knowing Rails beforehand. I felt like a bad hire for the longest time because I could not write good code. The way I learn best is by doing. No matter how many books or tutorials I read, it just doesn’t click until I try to develop something. So here are a few web applications I wrote to learn Rails as a beginner just under a year ago.


  1. Simple blog with comments
  2. Pastebin that has short urls (Google some short url algorithms)
  3. Make a todo list website (without Javascript)
  4. Go back and add authentication (I used devise) to #1 and #2
  5. Build a site to send text messages for you using Twilio
  6. Create a small site to upload files to using Amazon S3′s free account
  7. Go Back to #3 and Ajaxify it all. Add user accounts (with email reminders). I built somewhat like this.
  8. Build your own JSON and XML API onto #3 or any of the other sites
  9. Now take that API you just built and create a Ruby gem out of it using ActiveResource
  10. Certainly by now you should have come up with some ideas of your own that you’d like to build. If not, go build an expense tracker with pretty graphs and export to CSV or Freshbooks functionality.


Don’t spend much time building any of these projects. Get the to minimum list of requirements you’d like each site to have and move onto the next one. Do them over the weekend and don’t let them stagnate for too long.

Build it, complete it, tackle the next project. You can always come back later and revise it because guess what? 90% of software development is maintenance or integrating with existing systems.

These are sites you want to build upon as you grow as a developer. Build the blog one weekend, revisit it 8 weeks later and refactor it. You will be amazed by how poor of code you wrote just a few weeks ago.

Bonus points if you open source them, get your friends interested, and start applying their patches.

If you have other (better?) ideas, leave them in the comments. This is just how I learned, so it may not be for everyone, but it sure brought me up to speed and within about 8 months of doing web development with Rails I had already submitted and gotten my first patch accepted into Rails core.

Read this in Serbo-Croatian language by Jovana Milutinovich from Web Geeks Resources

Read this in Russian language by Ivanka from

Read this in Romanian language.

comments powered by Disqus