10 Ideas for Beginner Web Developers

My friend Chris Domurad once asked me:

I’ve been looking online for a list of apps to create when learning a new programming language. I can’t find a definitive list though.

I thought I’d share what I did when I got started with web development.

A lot of people are moving towards the web. I landed a job doing Ruby on Rails development without knowing anything about it. 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:

  1. Simple blog with comments
  2. Pastebin that has short urls (something like http://gist.github.com combined with http://bit.ly and you can use Google to find 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 using Amazon S3′s free account
  7. Go back to #3 and AJAX-ify it all. Add user accounts (with email reminders).
  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
  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.

Some extra useful things

11. Use git on each of these projects and put them on your Github.com profile

12. Write tests for your code to make sure that it works and doesn’t break. You don’t have to start with them, just add them in later.

13. Run performance tests and find the slow parts of your code. Learn how to improve them.

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 and turn these projects into something you use every day.

If you have other 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. Within about 8 months of doing web development with Rails I had already submitted and gotten my first patch accepted into Ruby Rails core.

Originally published at excid3.com on July 11, 2011.