Thoughts on doing side-projects while short on time
Tags: sideprojects, hobby, gamedev, indie
Published: 2018-10-24 14:00:11

---
title: Thoughts on doing side-projects while short on time
published: true
description: My thoughts about keeping the side-project-flame going.
tags: side-projects, hobby, gamedev, indie
cover_image: https://thepracticaldev.s3.amazonaws.com/i/7fhio5mb2dz3e511801x.jpeg
---

As my personal free time shrinks to a minimum, I'm thinking about how I can keep doing some fun projects and learning on the side. Currently I can do around half an hour on evenings, and 1-2 hours on weekends. So there's no time to waste! My goal is to work on fun and useful stuff, and to find out early when something isn't worth continuing.

In General:

**The more precise the goal, the better.** 
Learning programming-languages and frameworks worked best for me when I had a clear use-case or goal for them. Learning a language for its own sake is a great experience, too, but I gets hard to keep the momentum going, esp. once I get to the harder parts.

**Only one new thing at a time.**
If I have an idea for an app or game etc., the worst thing to do would be to also learn a new language or engine at the same time. After inspiration hits, pragmatism is key. I'm using what I know, not what I want to know.

**The less mental load, the better.** 
If I need 15 Minutes to remember where I left off the day before, and to get in the zone, the project won't last very long. 

**The more simple and stable the dev-environment, the better.**
Fewer external libraries means less time spent setting up and upgrading. Do I really need Webpack from the start? I don't want to spend five sessions in a row with fixing an esoteric bug caused by a library.

**The quicker the results, the better.**
The momentum is easier to keep if there is regular positive feedback in the form of results on screen and/or from other people. That's why I like Construct2 and GameMaker.

For Online-courses: 

**The shorter the lessons, the better. The smaller the example-projects, the better.**
The Android-course on Udacity hits the nail on the head. The videos are a couple of minutes long, and every new video has the current code as downloadable project-file. It's quick to download the latest code, open it in Android-Studio, and start coding.

**Overcome the sunk-cost-fallacy.**
I paid 50$ for a course, just to find out that the pace is not right; the instructor is unsympathetic; the subject-matter isn't that interesting. Do I continue just because I already invested time and money? Just like with bad books: No!

## Negative* examples

- I had a vague idea for a game which was "Papers, please" but at a space-hangar for arriving ships. Plus I wanted to learn Unity and Playmaker. Have you seen the game on Steam? 
Me neither.
I picked up the idea at a later time, prototyping with React and Redux, where I was more at home and was able to reach the "point of no idea" much quicker.

- I started doing interpreterbook.com which is super-interesting, but it's something you need to spend some hours at a time on.

- Started learning Kotlin, Erlang, Haskell, Lisp, Rust, Qt, JavaFX, Swift, Express, Unity etc. I learned a lot from this, and it improved my daily work as frontend-developer too, but without a use-case the motivation and momentum stopped eventually.

*(Don't get me wrong. Almost all those were fun and I learned a lot. They just didn't go anywhere.)

## Positive examples

- https://DevLids.com was built pretty quickly with software I know well (Kirby CMS, plain CSS, no JS, shared host & FTP). I started right away after having the idea and rough design. It went live after a week or so. It's also pretty easy to maintain. It takes ~3 minutes for adding a new entry, including getting in touch and editing in Photoshop.

- The game I did for our wedding. I didn't code it from scratch but used Construct2, which is a HTML5-Game-Maker. I had some experience with it from smaller trials and got a working prototype pretty quickly. It was perfect for the scope and level of polish I went for (http://10-5.de/game/).