How to find time to Program

time

photo by Robbert van der Steeg

Someone emailed me a little while back and said that they don’t have much time to program due to having a full-time job and asked what can they do to get into the programming state of mind so that they can be productive with their precious time. Well, I’ll try and answer that in this post.

Give up your job

Sure being more productive with your spare time is a good goal, and more on that in a minute, but another way of looking at the issue is how can you get MORE time to do programming.

The most obvious way to get more programming time is to give up your job and go full-time Indie! Of course, this path is not for the weak-hearted, and for goodness sake, make sure you have a runway.

Let’s say you really can’t give up your job right now, well…

What else can you do to make more time?

1) Start young when you have parents paying the bills and not many obligations, and get lots of practice in.

2) Try going part-time with your job. Some employers will allow this and it will give you the much needed time to do programming.

3) If you go part-time or give up your job, consider reducing your outgoings as much as possible by things like:

– Move back in with your parents, share a house, or marry someone rich ;-)
– Downsize so you have a PC/Mac in a caravan (knew someone who did this and he managed to get away with very little work).
– Get rid of your TV to save money AND create more programming time.
– Ditch frivolous expenses and stay in more. However, don’t ditch exercise, healthy eating or spending time with your kids or loved ones, if you have any.
– Get rid of your car.
– There are tons of way to save money if you put your mind to it and are dedicated in the pursuit of your dreams.

How can you be more productive with your time?

1) Make it a habit. Write down a schedule of weekly programming hours and stick to it no matter what. Even if you don’t feel like it, just start and force yourself to work on your game for 10 minutes and before long you’ll be into it and making progress.

2) Try telling everyone that you are going to make a game by a certain date, and ask them to badger you about it. Public failure = embarrassment.

3) Put on some inspiring music that makes you work super fast. Trance music and 8-bit music does this for me. Nothing with lyrics though or I can’t concentrate on typing code.

4) Keep a proper up-to-date To Do list so that whenever you get a chance to program, you know exactly what to do next. Floundering and not knowing what to do is a massive waste of time. Try keeping a list of some low hanging fruit (easy coding tasks) that you can do on days when you don’t feel like tackling something hard.

5) If you really can’t face programming then get inspired: play some games, read blogs/forums, listen to music, talk to friends, go out for a walk. But, warning, you may never start! Or you may go the other way and get so inspired that you stay up crazy late and get no sleep and eventually get ill – I did this and it wasn’t pleasant (worked all day on business software then stayed up until 4am every night programming for months until I felt really awful).

6) Make sure you have a definite end goal, and make sure it’s realistic. Keeping the goal in mind will work as motivation on those days when you most need it.

Realise it’s a pipe dream and forget it.

If you can’t motivate yourself to program for an hour or more a day and more at the weekend then you really won’t make any decent progress. It’s the same as learning an instrument, or getting good at a sport or martial art. You need dedication and determination and a burning desire to achieve your dreams. If you don’t have that yet, then go and develop it. Or just give in for now, stop punishing yourself, and come back to it later when you are ready.

Good luck in whatever you choose!

What ways have you found to make more time for programming, and what techniques do you use to get into “the zone”?

13 Responses to “How to find time to Program”

  1. Joe Hocking Says:

    I think number 4 is the most useful tip, in that it’s the least obvious. I keep an ongoing todo list for every game I program (in fact, I coincidentally have the todo list for my current project open right now.)

    I would add a bit piggybacking on your line: “Try keeping a list of some low hanging fruit (easy coding tasks) that you can do on days when you don’t feel like tackling something hard.”

    “Low hanging fruit” is a great way of putting it, and yeah those tasks are very useful for keeping your motivation up when programming a game. I would suggest that you should always end a day of programming by identifying some low-hanging fruit to start with next time. By always highlighting an easy task to work on next time, that makes it really easy to start programming and establish flow next time. To get in the zone you need to program something, anything, and then once you’re in the zone you can knock off harder tasks too. Years ago someone (I forget who, sorry) gave me that great tip.

    Ultimately what I do with my todo list is not only list all the tasks I need to do for the entire project, but I also have two tiers of highlights for the tasks. I mark many tasks either “done” or “todo next,” with everything else simply not marked to imply “todo eventually but not immediately.” This system works pretty well for me.

  2. Robert Says:

    Simple, I’m desparate and not getting younger.

    You either pull the finger out and do it or you don’t. There is no magic formula. Sacrifices need to be made. Things you enjoy doing like playing games and watching TV can’t happen. Understand what crunch time is, and respect that the last 10% of the game will take as long as all the time you have spent on it so far.

    One good tip I have for you is, dump the idea of “good code”, screw that. Just hack it in till it works. That is how you get stuff done.

  3. charlie Says:

    Well, quite. You either do it or you don’t. If you want to do something, you make time, not find it.

    Cheers
    Charlie

  4. Grey Alien Games Says:

    Sounds like a good system Joe, and yeah pre-preparing a list of low hanging fruit is a winner.

    @Robert: I’m on the fence with “good code”. I’ve found that in the latter stages of bigger projects “bad code” can mean it’s really hard to add new features and fixing bugs can be awful (especially in code written by a team). But yes, sometimes you just have to chuck the code in there and get the game out. Some people over OOP their code and add in loads of stuff that they’ll never use. So clearly finding a balance between good/bad is what is needed :-) One handy rule, if you find yourself copy/pasting code, maybe the second time allow it, but a third time means you should refactor.

    @charlie: Agreed. In the end it’s up to you to control your own life and make room for your dreams.

  5. Skn3 Says:

    I think an important issue with “finding time” to program is also down to your partner. Having a significant other is time sapping, you need to make sure you balance your programming and social life well otherwise you will have one angry situation. A good way to get her interested and on your team is to quite literally get her involved and on your team. Get her to test things; get her to give feedback; let her play a role in the development; just explain to her what it is you have been doing on a particular day…

    For me the most difficult point as raised above is that I find it hard to “start”. I always seem to find something else interesting to do, but I would say I am averaging an hour a day (when including weekends in the equation).

  6. BLaBZ Says:

    This is a great post!

    2 other things that I’ve found have been really helpful are…

    1.) Find a place to program either at the library or an office where all you really do there is program.

    2.) Go to this place to program on a consistent routine basis forming a habit.

    This way you don’t really think about “motivating” yourself and struggle to whip out that project, you just do it.

  7. Robert Says:

    Jake,

    I find that I’m adding more structure to my games as they are made. The first game was a complete hack-job. The second is an improved hack job with more clarity and oop. Revising code is best when you know what you’ll be reusing time and time again.

    I totally agree with the sentiment that people over-oop and make the perfect game engine, by that time those people will have nothing but a perfect game engine and no commercial games to show for it.

    It’s like learning to drive, you can theorise as much as you want but you still need to go and do it. The best thing for a framework is working code thats done the job.

  8. Greg Says:

    Great points! Working full time I certainly find that making time for game programming is a real challenge.

    One of the things that has helped me a great deal is to look at my “paying job” as an asset rather than a liability. (After all, it does pay the bills)

    Being “short of time” has forced me to be more directed, goal oriented, and realistic about what I need to achieve. I have found great value in being forced to stop working on something (for whatever reason) and take a step back. It gives me pause to see if the direction I’m going in is worth-while.

    As Robert above said, you are forced to make certain choices and I think those ‘forced choices’ really bring to light what is important to your life. If it’s your game, then it just gets better!

    (Oh and the “ongoing to do/design doc” has been absolutely critical to being able to jumping into and out of the zone easier).

  9. Grey Alien Games Says:

    Great points all!

    @Skn3: Yep keeping a balance between work and family is vital otherwise you might end up with much more programming time that you bargained for due to being alone! However, I heard a funny story from an Indie once: he said that now his wife allows him to take his laptop to family events and do work because his games make so much money. He said: “that’s what I call ‘arriving’!” :-D

    @BLaBZ: That’s a really good point. It’s like going to the gym or some other sport regularly. Also I used to do lots of meditation as a teenager and a tip was always meditate in the same place at the same time so you can get straight into that mode.

    @Robert: yep, my original framework took 3 months and then I began to sell it! As I made new games I just improved the framework as I went along. Now it’s a bit convoluted in places and I could make a better one if I started from scratch, but it might take a while.

    @Greg: Cool, so you find you are able to focus on the important stuff due to being short of time. That’s a vital skill in many situations, one I’m still mastering!

  10. Mash ‘Em Marbles – To Do list « Audio and Software – Damien Sturdy Says:

    [...] Well, Jake Birkett (of http://www.greyaliengames.com/) posted a wonderful blog called “How to find time to Program”. You can read that here. [...]

  11. Alex Vostrov Says:

    Jake,

    One good thing to try is time logging. Track your time use down to the minute, noting down even the most trivial interruptions. It’s surprising how hard it is to put down even 5 hours of solid development time.

    As with all things, measure it and it will improve.

    Also, I’ve really streamlined my life. Everything that I do in some way relates to my game dev work. For example, I take art classes, go to Toasmasters meetings and run each morning. These help me stay sane, but they all benefit my indie plan for world domination in some way.

  12. Grey Alien Games Says:

    Yep, agree with logging. We talked about it on the Indie panel you missed yesterday ;-p I used to use a spreadsheet to track all my hours and thus for all of my 6 casual games I can see which made the most money per hour and also how long I spent on design, programming, communicating with artists etc. I used to have a target amount of hours per week I would do solid work and keeping a log allowed me to meet that target and not waste time on other non-work stuff.

    Glad to hear that all those other things you are doing are adding to you physical and mental health and skills.

  13. How to find time to Program? | iOpixels Says:

    [...] Find out the solution here {link} [...]