Monday, February 18, 2013

Layers of Priorities

One of the challenges that I have encountered while trying to "get serious" about learning programming is prioritizing tasks.

Currently, I am planning on implementing frame independent motion and re-sizable windows for Obnoxious Pong.  This particular decision isn't so difficult, as these two features largely won't effect each others implementation.  I just need to pick one, get it done, and then do the other one.

It gets tougher when I consider other features that I may or may not want to add to Pong.  For instance, the ability to adjust the winning conditions for each player independently, on the title screen, would allow players to set their own handicap much like certain fighting games.

I am torn, however, between wanting to 'finish' Pong before moving on to the next project and very much wanting to dive into the nitty gritty of The Leaf Game.  Currently I have already set up a multiple source file framework and implemented the basic functions that I am using to load files and draw to the screen, so TLG is ready to go on the fun, actual creation stuff. 

I also have to consider how hard I am pushing myself, since I am still in the early stages of learning.  Frame independent motion and re-sizable windows are things that will push my understanding further (even though I will be largely following Lazy Foo's tutorial for these two features).  I'm not sure that adding a winning condition adjust feature will push me nearly as much, as say, designing and implementing the logic for The Leaf Game.

Then, on top of this, I also have my personal and day to day life priorities, some of which I already discussed previously.  Lastly, I have to be careful that I am not spending too much time thinking about prioritizing instead of actually doing tasks!

Thursday, February 7, 2013

Balancing Act

I am writing this entry with about 20 minutes before I have to leave for work.  Coming up are two 10 hour days, with the remainder of my 40 per week divided up over Saturday through Monday.  It's not a terrible schedule, in fact I am even lucky enough that it is one of my choosing, but it just doesn't ever seem like I have enough time.

When I very first conceived of writing this blog, I thought I should put something here every day!  I immediately realized the fallacy of such an ambitious schedule, so I scaled it back to three times per week.  Then once per week.  This post, the second, is coming in a solid 2+ weeks after the first.

For me, this makes the dedication of certain people like Jeph from Questionable Content, who updates 5 times a week, even more striking.  Of course, the fact that Jeph has insomnia may have something to do with his level of productivity, though I don't envy that condition.  I very much like sleep!

I have to try and perform a balancing act, while at the same time maximizing productivity on all fronts.  I have to work full time, develop a new skill set, and somewhere in there still have enough rest and relaxation that the pattern is sustainable.

I'm not expecting to be writing my magnum opus this summer.  That would be cool!  However much I may want that though, it is extremely unlikely.  Developing the skills, and then actually developing a solid piece of software is going to take quite a lot of time.

I don't particularly hate my job, but I certainly don't like it either.  The heart of the issue is I feel what I do for 40 hours a week is incredibly unimportant.  Frankly, that is a soul crushing feeling.

(10 hours later)

 Yup, soul crushing.  Lots of mental constructs and emotional compensation mechanisms are needed to tolerate it.  I am assuming this is true for most people, even if they haven't labeled these things as such.

During the day, when I am on auto-pilot (I have worked this job for many years now, it takes almost no conscious thought), I spend a good deal of time day dreaming.  When I come home though, it can be incredibly difficult to focus and especially to be creative and logical.  This is very frustrating when I have spent all day dreaming about coding and creating, and then come home and feel too worn out to put in the effort.

But I must!  It is the situation that I am in.  I must develop my future now, while maintaining my present as well.

One thing I have noticed in life is that you often hear the following phrase, quoted ad nauseum:

"It's never too late to start."

But I feel that is missing half of the message, which is this:

", it's also never too early."

The point is, right now is the time to get shit done.  No bemoaning yesterday, no viewing tomorrow hopefully, get something done right here and right now.  Then do it again, and again, and etc.

That's the best answer I have come to regarding balancing all these priorities.  It's not perfect, it fails sometimes, but that's what I have to work with.