Skip Navigation
Search the atLarge Blog

Is Programming a Creative Discipline?

Because the history of computing has been so closely interwoven with science and engineering, it’s tempting to assume the answer is no. Everyone knows programmers are analytical, logical, mathematical, systematic, and all the other adjectives that describe left-brain thinking. While there is some truth to that, it’s still possible to be highly creative using code as a medium.

Many artists are using computers to make generative art and others are using web programming to create network-based art on the Internet. An entire programming language has been developed with artists in mind. Some artists have even presented code itself as works of art. Check out Pall Thayer’s Microcodes.

openprocessing org Is Programming a Creative Discipline?

It’s not easy to think of computer programming languages as expressive. They are admittedly strict, rigid, and inflexible, with a limited number of syntactic constructs and very specific rules that must followed. One variable name misspelled or one semicolon in the wrong place, and the whole script will fail. While this is obviously more uncompromising than a natural language and its vocabulary and rules of grammar, it’s only a difference of degree.

Creatives tend to think of themselves as rule rebels, but the truth is every creative endeavor involves making something out of basic building blocks and frameworks. Visual artists use colors, shapes and lines. Composers use musical notes. There is always a fundamental set of rules involved. If nothing else, there are limitations dictated by the materials used or the instruments being played.

Restrictions don’t impede creativity… they encourage it?

When I was in art school, it was common for instructors to assign exercises with clearly defined constraints: Make a painting using a limited color palette; Create a composition using only one kind of shape; Work in a medium that is completely new to you.

It may seem counterintuitive to create restrictions in order to teach creativity, but these exercises were designed to force us out of our comfort zone and try new things. Limitations fuel creativity, because they keep us from falling back on our habits and push us to discover fresh new ways of solving a problem.

Habit is the enemy of creativity.

The creative spark itself has to be enjoyed in small doses. A new idea, a more efficient solution to a common problem might percolate for days but reveal itself in an instant. Those flashes of inspiration are usually islands in a sea of more mundane execution. Much of my day as a programmer is spent implementing a solution, as opposed to discovering one.

The challenge is to avoid assuming a particular solution is the best one simply out of habit. Programmers love to make code that is reusable, and with good reason. Reusable libraries, classes, and functions allow us to build on what we’ve already accomplished without having to constantly revisit problems we’ve already solved.

At what point does this become a habit, doing things a certain way because that’s how it’s always been done? Finding that balance between efficiency and innovation is a challenge we face every day as web developers. For that matter, it’s a challenge we face regardless of our positions and our talents. Building your creative process and changing it often by injecting new inspirations and ideas can help structure your creativity without confining it. As author and speaker Sir Ken Robinson says, “Creativity applies to any and everything.” Read our Manufacturing Creativity blog post.

Social:
  • services sprite Is Programming a Creative Discipline?
  • services sprite Is Programming a Creative Discipline?
  • services sprite Is Programming a Creative Discipline?
  • services sprite Is Programming a Creative Discipline?
  • services sprite Is Programming a Creative Discipline?

Related posts:

  1. Manufacturing Creativity – Lessons from Sir Ken Robinson

Leave a Comment

Comments are moderated – and rel="nofollow" is in use. Please no link dropping, no keywords or domains as names; do not spam, and do not advertise!

Spam Protection by WP-SpamFree