The Imaginative Programmer

In the world of programming nothing is more irritating than the “artist”. Programmers who are all “front-end”, business guys who are all “ideas”, and designers who can’t draw. I say real programmers don’t need to be artists. Rather, a programmer needs to have the skills necessary to take their imagination (or other people’s) and translate it into working software.

This talk will contain many of my secrets for turning ideas I have in my mind into real things. I will lean heavily on the arts, music, and writing, but ultimately this talk will be about implementing software. There will be no fluffy spirituality or hand waving in this talk, just real tricks to help you make stuff.

Here we go

Talks a quick story about a hipster and an easel in San Francisco. He watched a guy pretend to paint in order to pick up girls.

Zed read tons of design books, but none of them make any sense. Believes that design education is fucking useless. He’s been told that since he’s “logical”, he can’t do art. However, he contends that art is logical (composition, form, etc).

Finds that guitarists are jerks about saying if you aren’t in a band then you aren’t a real musician. However if he says he builds guitars he gets respect. Until he says he’s a programmer.

Rant about writers: Because his best selling book isn’t non-technical, he’s not considered a real writer.

Rant about not submitting pull requests: He brings developers into Python and Django but isn’t considered to have contributed.

Note

I ranted yesterday about this but maybe Zed has a point.

Common Threads

  • Artists says he’s not an artist because he works on developing technical skills.
  • Writers say he’s not a writer because he writes tech books.
  • Guitarists say he’s not a musician
  • Programmers say he’s not a programmer because he doesn’t submit pull requests.

Proposal

We hack creativity and make it worthless.

Battle Plan

Learn an “imaginative programming process”

Four types of People who Don’t Really Exist

  • Technique, No Imagination: Stereotypical Programmer
  • Imagination, No Technique: Stereotypical Biz Dudes
  • ???
  • ???

Zed’s Imaginative Programming Process

  1. Perceiving the Imaginative Idea.
  2. Establish the Concept.
  3. Research techniques or tools. Programmers often skip this step.
  4. Refine the concept through composition.
  5. Explore through prototypes
  6. Make it real

Examples

Project Zorn

  1. Idea: Zed loves mixing colors
  2. Concept: Create site for teaching color similar to euler project.
  3. Research: Find tools to build this
  4. Composition: Make 52 exercises and put it online with interactive parts powered by Django.
  5. Prototype: Using Zurb he prototyped the first page: http://projectzorn.com
  6. Realize: Start writing exercises at Django Circus

Other ideas:

  1. Painting in Poland
  2. python-lost

Closing thoughts

  • Email yourself your ideas
  • Don’t worry about the fear aspect. Make sure you don’t care if people don’t like your stuff.
  • Great ideas work best in solitude
  • Great implementations work best in teams