- Simple blog with comments
- Pastebin that has short urls (Google some short url algorithms)
- Go back and add authentication (I used devise) to #1 and #2
- Build a site to send text messages for you using Twilio
- Create a small site to upload files to using Amazon S3′s free account
- Go Back to #3 and Ajaxify it all. Add user accounts (with email reminders). I built Fluttrly.com somewhat like this.
- Build your own JSON and XML API onto #3 or any of the other sites
- Now take that API you just built and create a Ruby gem out of it using ActiveResource
- 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.