The Infinite Loop

Two things:

First…

About two months ago I committed to learn JavaScript as my first OOP language. Despite dozens of frustrating moments where I felt like this effort was futile (I have felt like this on numerous occasions), I am still on course and learning something new every day. Tangible progress and understanding have both been motivating. That, and an amazingly helpful JavaScript community (special shout out to @zumpiez for his continual availability on GChat when I have stupid questions).

Second…

I recently watched (and highly recommend) the documentary “Indie Game.” I felt I could relate with Phil Fish’s attention to detail (and perhaps his OCD). The part that really resonated with my recent programming hobby was when he started talking about pixel art. Fish discusses that when he started making his eternally-delayed yet masterfully designed game Fez, he really had not worked much with pixel art. About half way through the creation of the game, he realizes that his pixel art skills had improved and discovered a clear gradient between his first few levels and later progress.

So what does Fish do? He scrapes all the earlier art and starts over to ensure consistency across the board. If I’m understanding his personality at all, I think it is safe to assume that it’s likely this happened on numerous occasions.

With that in mind, I have noticed some things about my own progress while learning to program. Through the tutorials I am using (a good mix of Code Academy, Mozilla’s JavaScript resources, and Stack Overflow), I have several little projects running alongside each other. But because of the rapid and steep learning curve I find myself on, I am very rarely advancing forward on any of my projects, but rather spending countless hours perfecting the code at hand (I believe I will develop into a mix of the perfectionist programmer and the theoretical programmer from Steven Benner’s 5 Types of Programmers when this training period is over).

I’m not directly concerned with this yet; and in fact find it to be a great way to learn. Re-writing and cleaning up my own code seems to be the best way to improve my skill set, right? But if programming is all about efficiency, at what point is the most beautiful code worthless because it took so long to perfect?

I’m sure I have plenty of room for learning and growth before I need to worry about wasting time debating the X/Y graph of efficiency and perfection, but I am curious how others have dealt with this. I know for Phil Fish, it was a major problem that resulted in a handful of delays and a fan base that essentially turned rabid against him (ignoring for a moment his sometimes abrasive personality). Another example being Valve; that has become the butt of countless jokes for delayed releases due to their perfectionist mentality (but one that I still greatly appreciate).

Any suggestions or thoughts from seasoned code-perfectionists? Would love to get your input below in the comments or directly on Twitter — @stentontoledo

This entry was posted in Ramblings. Bookmark the permalink. Post a comment or leave a trackback: Trackback URL.

One Comment

  1. Posted January 30, 2013 at 1:16 am | Permalink

    Speaking of an X/Y graph of efficiency: http://xkcd.com/323/

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*

You may use these HTML tags and attributes <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>