mithi

  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 Fluttrly.com 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.

2 comments:

  1. This is what I have been search for since, however why limiting it to web-based applications. I would like to see something one could use to deeply improve his understanding of say Python(without web thingy), C/C++, Perl/Ruby(without web thingy). I am pretty interested in such list, and I look forward to seeing your lists.

    ReplyDelete
    Replies
    1. Sure, I can put together something like that for you that isn't web related. That was my many years of tinkering through high school before I got into web development.

      Delete

 
Top
Mithilesh Joshi