Why write codeWhy do side projects

I’ve been working on my “real” HTML5 game.  By “real” I mean not text based.  Things moving around the screen, physics, tap/drag, etc.  On Friday I lost steam and had time to reflect on why over the weekend.

I do these little projects to explore new technologies.  An analogy is like learning to drive a motorcycle.  You can go to the CSM parking lot on Saturday morning and go in circles (take a class), or you can learn the basics then start riding (self directed learning).  Pick an arbitrary  destination then start moving.   This is what I’ve been doing for years.  I pick a target, but always knowing that the journey was the real goal.  Lacking a real definition of “done”, I’d stop the journey when I’d decided enough learning had been accomplished.

This is a common way to “keep up” with technology, but I’m missing something to be passionate about.  My wife once told me she was jealous because my job was my hobby.   I want to restore that passion via these projects (more on “physical” or “real world” engineering sucks compared to vs. “computer” engineering in a later post).

What I realized on Friday was that I was building a game without a design.  Literally.  I was putting things on the screen that looked interesting (to me), having them collide, playing sounds – but I lacked an actual plan for what the game would do.

I’m going to pause and design a real game before I continue.  As a parent, I have a reflex to mandate the game incorporate some form of learning.  Something that reinforces the multiplication tables for my boy or factoring for my girl.  However, this distracts from the goal of entertainment.   Am I a bad parent because I want to make a toy?   No.  We send them to school, work with them at home, read to them before bed.  We’re doing our job – everything doesn’t have to strive to push them closer to getting to college.   So my new goal for this project is changing from “explore technology and maybe produce something 1/2 finished” to “entertain my kids”.

2 thoughts on “Why write codeWhy do side projects

  1. Peter

    >Lacking a real definition of “done”, I’ll stop the journey when I’ve decided I’ve learned enough.

    Maybe you just need to define what it is you want to master with the project. Then if you learned it, you were done. I think you have an innate feeling that their are some graphical skills you will need to learn while you get the larger plan in order…so I am not sure pausing on the skill acquisition is wise.

    >I’m going to pause and design a real game before I continue.

    ….and how will you know when you are done with the design?

    >So my new goal for this project is changing from “explore technology and maybe produce something 1/2 finished” to “entertain my kids”.

    Is it possible that “entertain my kids” is even more vague then “learn HTML5”?

    I think you might try a different title, as this is less about writing code then it is figuring out what you want to achieve.

    Reply
    1. Bill Post author

      Thanks for the critique, Peter.

      To your point re: don’t pause “Skills Acquisition” I don’t want to continue to learn w/o passion. That’s called school ;). I want to be excited to learn something because I have a real goal. I’m sure there is some quote by some long-dead Englishman or Greek about “learning itself being a goal” but that ain’t me.

      How will I know I’m done the design? I’ll have some form of application-on-paper which I like, my customers approve (the kids), and it is actionable. And yes, it’ll be a minimalist design.

      I disagree “entertain my kids” is more vague than “learn HTML5”. Let’s define a “vague” goal as one which is hard to recognize when achieved. To measure “learning” is difficult. Politicians, teachers, parents, and students have been fighting about this since “Bam Bam” went to “Prinstone”. While I may agree it is hard for you to measure if my kids are entertained, as a parent you know when your kids are entertained.

      I agree the title of the post is wrong. I’ll see if I can do a strike-through on WordPress Post titles.

      Reply

Leave a Reply

Your email address will not be published. Required fields are marked *