I’ve always thought that software design and programming is a very creative process. Developers create something from nothing using their mind, hands, hardware, and development tools. I love that we can create software anywhere. I can be sitting at my notebook computer on the beach, in a coffee shop, at home, at work, in an airport, on an airplane. One of these days it would be cool to work on programs while riding a bike, skydiving, surfing, and scuba diving (talk your about extreme programming).
Yesterday, I blogged about wanting more inspiration. Once a programmer gets inspired, I’ve seen their creative juices get going and the code just comes out. I have a coffee mug that says "A programmer turns coffee into code". So, maybe there are also some other tools that we use to encourage our creativity and productivity.
When I am travelling to visit with developers, I sometimes have the luxury to be able to visit the top museums in the world. Looking at the art and sculptures, I am awestruck that artists could be so creative. When I visit many of the great cities in the world, I enjoy walking around in the evenings after product launches and meetings. I love looking at all of the architecture, monuments, parks, avenues, and neighborhoods. Again, I am amazed at the creativity of the architects and designers and their ability to match up the layout, location, and spirit of the city.
In software development we can also let our creativity genes loose to "think different", to explore new user interaction methods, new visualizations, and new architectures. With all of the new hardware and technology that developers get to play with, we can extend our creativity in new ways. We now have multi-touch and gesture interfaces in low priced desktop PCs (I have a Dell Inspirion One at home) and an HP TouchSmart Notebook at work. We have new SmartPhones and Tablets that let our creative ideas loose in creating new desktops with highly interactive UIs. Today’s accelerated pace of technology innovation will keep developers on their creative toes for years to come.
To help enhance your programming creativity, here are a few of the many great articles, books, courses, and blog posts that might juice up your craft:
- Creativity and computers in math: Q&A with Conrad Wolfram - TED blog
- How Pixar fosters collective creativity
- Nine lessons learned about creativity at Google - Stanford audio podcast
- Going along for the ride with Disney Imagineer Tony Baxter
- 14 ways to learn from creative programmers
- 6 books to inspire Creativity in Programmers
- Computer Language and Human Creativity
- The Psychology of Computer Programming by Gerald M. Weinberg (Silver Anniversary Edition)
- Disney’s Approach to Inspiring Creativity by the Disney Institute
- Inspiring Creativity: 9 tips to be more creative
- Programmer as Carpenter
To get ready for the next generation creativity, think about how your designs and programs will embrace high definition graphics, stylized user interfaces, animation, 3D, voice, no-touch user interfaces, and data visualization.
The "programming is common labor" decade of the 1990’s is long gone. Since the early 2000’s we continue to enjoy the era of "programming as hyper-creative fun". I hope it never ends.