Writers, designers, artists, musicians all experience writing, designing, artistic, and musical blocks. Software developers can have blocks as well, and during that time it’s hard to imagine anything getting done. Recently I’ve felt as though any piece of code I can produce is overly simplistic. It means nothing and isn’t really anything special compared to any other piece of code. I’m a believer in the principle that if a product doesn’t do something better than a competitor or different version it should not exist. Furthermore, as a programmer I do not get satisfaction out of generic programming. One can only weave the same pattern so many times before getting bored. This is developer’s block for me.
Programming can be a lot like other creative mediums. I find it very similar to writing essays or prose since they both rely on language semantics and greater comprehension. I’ve said this before to many people wondering if computer science or a similar field is right for them, programming is just the method of expression. I’ve discovered that in order to energize myself I need to be working on something I have not done before or to be learning through the process. It’s the reason tasks such as wiring up a website to respond to simple table filling database queries is boring or maintaining existing backend code are extremely dull, at least to myself. The problem is that it’s not always going to be easy to find something new and interesting to work on.
This has lead me to ask a question recently, should I even be doing this? I know for certain that I do not want to spend the next 10 years just being a programmer. This has lead me to look into other areas including but not limited to finding a way of practicing pure computer science or perhaps branching into a more hybrid creative and analytical role, such as user interfaces. There are also times when I don’t want to see another piece of code for quite some time. But then, there are times such as last night where I completely disregard this question and enjoy myself hacking away at my own solution to a specific problem. It seems as though this has become a road in which there are bumps (developers block) which are followed by periods of smooth sailing. I’m unsure if this is a normal occurrence or just happens for myself since I don’t enjoy programming as I once did.
Previously I mentioned that there are ways that I can overcome this but it’s not feasible to do on a monthly basis. Last night’s programming endeavour was a user interface demonstration for something I’d had not worked with before, it was interesting. Another time period where I was full of ideas and creativity was while I was learning and dabbling with Objective-C for the first time. Other times that I have experienced this feeling was while I was challenging myself to write applications that were on a larger scale (RuneWire). Ultimately, in order to be effective for myself it’s clear that I need to challenge myself, learn, focus on pure computer science, or focus on design aspects (software or user interface).
Ultimately getting out of a period of developers block it comes down to observing the environment around oneself. Through observation it is possible to stimulate a creative process for programming by looking at visual stimuli. As an example, I had the idea for a new feature of a certain application by noticing the way a certain feature on one of the websites I frequent was implemented. This gave me a picture in my mind of how a different feature can work for a different application. This in turn lead me to begin programming a proof of concept. This process provided hours of enjoyment and produced an extra feature in the process. The upshot from this is that inspiration for programming can come from a piece of visual design. Perhaps this is the same for other mediums as well?
Overall I hope that I’ve been able to provide a brief glimpse into the day to day troubles that being a programmer can potentially bring. Granted some people are able to program anything and do that day in and day out but for some people like myself, programming on that order of magnitude is just too static. Programming is something that I’ll always do from time to time but it’s not something that I want to do everyday.
If you have any further questions about programming relating to its creative process feel free to post on the discussion topic. Also if you want to talk about creative block in general, post away!