In my case, I didn't make my latest side-project (http://laughlitm.us) because I wanted to learn Rails and the Twitter API, I wanted to make something for my friends and I to share funny tweets. From there, questions weren't "what should I learn?", they were more "what framework can I use to get this up and running the fastest?" and "what DB or cache should I use to store this specific data type?". I learned a lot doing it and it never once felt like work. I also had a lot more to show for it than doing a bunch of examples from a "learning rails" book.