Responsive Response

A few weeks ago when I was in an interview for my new job, I was asked whether I looked at myself as more of a designer or more of a programmer. When I was asked this the person brought up that they believed that design is a right brained work environment while programming is more left brained and logical. This question has been sitting with me for the past few weeks quietly percolating.

Today in a meeting (Yes, I got the job) there was a conversation about responsive website design, and somewhere in the back of my head I had a giant eureka. While I was sitting there in the interview trying to answer the question I had found myself almost confused by it. I realize now that I had a problem answering the above question because I see design and programming as very similar environments. They are both sitting right in the middle of logical and creative.

A good responsive design (and really any graphic design) is built from the ground up, often starting with no images or content, as a grid concept. These grids are the very mathematical basis of graphic design. Margins, padding, header sizes, font sizes, and grids for responsive or adaptive sites are all the logical pathway to a great layout. I understand that font choices and colour choices also play a role. But no matter how good your palette is, or how well your font choices fit the feel, without a basis it often becomes just a mess on the page.

Alternately, when programming there are the basic rules of programming to follow. I can't just decide that I want to call up variables that haven't been set. I also find, especially in writing code from scratch, that there is often a bit of creative problem solving involved in good programming. The key word in that sentence to me is creative. I find a lot of artistic license in deciding the best way to achieve a programming goal.

A teacher of mine in school once told me that it was easy to tell when students copied each other's programs or worked together on their work, because there are often so many ways to achieve the same result in programming that it almost never happens that two people pick the exact same coding setup. Paint a flower in ten different styles, they will all be a picture of a flower, but they will all have their own unique characteristics. The same goes for writing code.