How to Code for Fun Outside of Work
spin.atomicobject.comI, too, was doing Project Euler problems for a while, but eventually I realized that with the same amount of work I could be making things I actually want to use. My Project Euler solutions were conceptually on a shelf, sitting unused. It didn't feel too good.
On the other hand, on Sunday I wrote a simple mode to upload code to an Arduino from inside Emacs (https://bitbucket.org/zck/zarduino.el). Now that's fun.
I do agree that projects are the most fun when you're building something useful that you want to use. I sometimes fall into the trap of convincing myself that what I'm building isn't very good though, or that is already exists.
I have had similar experiences with my personal projects. I fall into thinking that if they aren't on par with the "state-of-the-art" way of doing things then they aren't worth deep effort/thought.. but I've come to realize that even sub-optimal approaches to a problem can lead to major shifts in perspective and ultimate change the way one considers their approach to a solution.
This also applies to problems which: "already exists" and/or are considered "very hard or near impossible"
P.S. If nothing more, (re-)implementing a solution will always provide a better understanding of the problem at hand.
I really enjoy constructing projects spun off Python Playground from No Starch. Unfortunately that book contains "the answers" as part of the book, but sometimes the author gives interesting directions for further exploration (or I simply use his ideas as a starting point for my own projects).
My problem with personal projects is returning to them after a few weeks have passed. I typically end up re-coding the entire thing from scratch (by scratch I mean starting from a blank editor and copying/pasting blocks from the old file until I can grasp the mindset I was in when I first wrote it -- this is a very counter-productive process [although sometimes I come across fundamental flaws in my former thought/problem-solving]).