Sometimes the goal of a personal side-project is not to produce something meaningful, but just to learn and have fun while doing it.
If I take myself as an example: I have this git repository checked out as 'coding' on all my machines, which has about 15 different folders containing projects ranging from simple prototyping experiments to fully-finished projects. Only a single folder contains a project that was ever released publicly (an iOS port of a classic MS-DOS game). Everything else is half-way finished at best.
Does that mean writing all that unfinished code was merely 'a distraction'? I don't think so. All of this started out as just a way to learn about something I knew nothing about before, and most of the time I stopped working on things the moment I was satisfied with what I learned. There's an arithmetic coder in there, a marching squares implementation, an MPEG-2 decoder that fully works but is dog-slow and doesn't process the color channels, a framework for 2D pattern recognition, a component-based Python web framework, a web application that was intended as a tracker for poker scores, and some other things I can't remember.
If I had set out to complete all of these projects, I would probably have finished 1 or 2 and still know nothing about the theory that got me interested in the other 13 or so.
If I take myself as an example: I have this git repository checked out as 'coding' on all my machines, which has about 15 different folders containing projects ranging from simple prototyping experiments to fully-finished projects. Only a single folder contains a project that was ever released publicly (an iOS port of a classic MS-DOS game). Everything else is half-way finished at best.
Does that mean writing all that unfinished code was merely 'a distraction'? I don't think so. All of this started out as just a way to learn about something I knew nothing about before, and most of the time I stopped working on things the moment I was satisfied with what I learned. There's an arithmetic coder in there, a marching squares implementation, an MPEG-2 decoder that fully works but is dog-slow and doesn't process the color channels, a framework for 2D pattern recognition, a component-based Python web framework, a web application that was intended as a tracker for poker scores, and some other things I can't remember.
If I had set out to complete all of these projects, I would probably have finished 1 or 2 and still know nothing about the theory that got me interested in the other 13 or so.