Who Works With ‘Creative Coders?’
timstutts.com
timstutts.com
I believe that all programming, whether or not it's graphical or "artistic" in nature, is creative. Development is just as much a craft as it is a logical discipline. Learning algorithms, data structures, and software engineering techniques is only half the battle. As "coders", we are knowledge workers. Our job is to solve a problem; the discipline of computer programming is nothing more than a tool that we use to solve our problems. And creative thinking can be utilized any time someone needs to solve a problem.
Most truly great programmers and/or computer scientists, at least in my opinion, held on to some level of creativity. Dijkstra never developed a single GUI in his life, but saying that the work he did wasn't "creative" would be insulting. You could say similar things about people such as von Neumann, or even more concrete computer scientists like Kay, Stroustrup, etc.
The idea that creativity is inherently tied to "emotional" pursuits like art, design, music, etc. is a little reductionist. Creativity, like programming, is a tool. It's the ability to enter a creative mindset and use creative thought processes to approach a problem, and it is also a refinable skill and not a trait. Creative thinking is just as approachable and general as critical thinking, but so often people who aren't "artistic" reduce themselves to also being not "creative", and I don't think that's very correct.
One of the best descriptions of creativity I've ever heard was in a talk delivered by John Cleese. If you have 30 minutes, I highly recommend watching it: https://www.youtube.com/watch?v=VShmtsLhkQg
The term may not technically mean the above however the implication is there.
i don't think that's an unfair implication. There is plenty of programming that has no creative aspect, and i'd say the majority of programmers are not creatives. It's a term with a well-accepted industry definition, and if you start defining it as broadly as you want to you could probably apply it to just about any job, anywhere in the world. The guy wiring up power poles outside my office does his own thinking, does that make his job creative?
And yes, I am saying that the label of creative can be applied to any job in the world. Watch the video.
we will have to disagree there. which is fine.
> if you start defining it as broadly as you want to you could probably apply it to just about any job, anywhere in the world. The guy wiring up power poles outside my office does his own thinking, does that make his job creative?
Which is my point. I am not saying all programmers to should be called "creative." However, calling a portion of them creative is inaccurate. It also doesn't really get at what OP wanted to get at which is: A programmer with visual arts training/skills.
Ad Agencies/VFX Companies/Design Firms tend to have a "Creative Director" [2] where a Creative Coder would report to and up until recently, their roles would not exist in traditional consumer/enterprise web companies.
Put another way, it's still blurry if someone in such a role would report to an Engineering Director or a Creative Director at a company that had both groups.
[1] https://www.google.com/search?q=ad+agency+org+structure [2] http://en.wikipedia.org/wiki/Creative_director
And these thinking techniques can very easily be applied to programming. If you haven't watched the John Cleese lecture I linked to, then I would highly recommend it.
The pedigree of the term creative makes sense in the advertising world. At first creatives did visual and textual work and there were no engineers. Then developers became a part of advertising agencies and became a different department from "creative." Now the walls are being broken down and we're evangelizing "creative coders" Instead of perpetuating this silly distinction, let's do away with it and stop implying that just because someone isn't A "creative" that they aren't creative.
Bad naming is bad naming.
Fine, probably you are. But creative coders in the context of this article do slightly different tasks and their job requires a different mindset, than conventional software engineering. I know, I do both.
I also find it funny when people start arguing on the meanings of the word "hacker". Obviously it has to mean what I do, (otherwise I would loose my cool).
Except when a potential investor is comparing a "Software Architect" to "just a hacker", in which case I am obviously the first one.
Stop being jealous, and define yourself with acts, instead of words. No one will argue with that.
"Creative" is still a bad name. When your application evolves and the names of your services no longer match their business purposes, it's a good practice to update the naming to increase clarity. The same should be true of your departments and job descriptions.
Keeping a name even though it doesn't make sense just because it's traditional and an industry standard is pretty lame. I doubt you'd find much support for that kind of thinking here.
When programming websites, for instance, the scope of the problem is well defined and the programmer's task is to select from an array of known solutions and integrate them into a system that is robust, secure, responsive, scalable, elegant, etc. This is an inherently "creative" task – every programmer solves the problem in a new way – but the emphasis is on robustness, elegance, etc. and not on the idea.
On the flip side, creative programmers are not expected to create especially robust software. They often write software for a single event (often just a demo) on a single platform and poor software quality is regularly tolerated.
All that said, I think the term "experimental" is infinitely more appropriate. Unfortunately "creative" has become an industry term and we'll have to wait a generation for it to go way.
Having said that, I agree that there can be great creativity in programming.
In pretty much every ecosystem I've seen, there are standard patterns for doing things because they've been proven. Even just taking your own experience, you probably have patterns you use to solve problems. Sometimes you can apply these patterns in different ways and that's where "creativity" comes in, but a lot of the time, there's a "best" way to do something to maximize source comprehension, maintainability, performance, etc.
There's often nothing creative about adding a jQuery plugin to a page, or setting up a table in a database, or adding a new route to an instance of an MVC framework.
EDIT:
From the top of my head,
- http://libcinder.org/ - "Cinder is a community-developed, free and open source library for professional-quality creative coding in C++."
- http://www.openframeworks.cc/ - "openFrameworks is an open source C++ toolkit for creative coding."
If you're racing around all day, ticking things off on lists, looking at your watch, making phone calls, and generally just keeping all the balls in the air, you are not going to have any creative ideas. - John Cleese
A year or two ago I also did a presentation on how to become a more creative programmer where this quote is also included, the slides can be seen here http://amix.dk/blog/post/19599
You can always get bent out of shape about what people end up calling things... I mostly got over it back in the "web master" days.
Sites to peruse about "creative" coding &/|| that support for the contention that cc is an established term:
http://www.creativeapplications.net
http://creativecodingpodcast.com
http://cplus.about.com/b/2010/12/09/what-is-creative-coding....
http://createdigitalmotion.com
But I'll also agree with you, remember & underscore that much programing is inherently creative:
http://lifedev.net/2008/07/programmer-creativity-boost/
I'm using Fine Art/Art as shorthand for "arts existing within the historical institutional context of galleries, academies, collectors and museums" (which is what most people mean when they capitalize art, I think, even if they wouldn't necessarily say it that way)
Some advice: I've applied to a lot of these places and haven't gotten replies – it's my understanding that it's much better to approach through personal connections.
A few companies not on your list that that focus on creative coding:
– Moment Factory
– ESKI Inc.
– GSM Project
– United Visual Artists
– Light Surgeons
– Tangible Interaction
– Drawing and Manual
– Kimchi and Chips
– Jonpasang
– Hybe
– DinahMoe
A few more traditional agencies that appear to hire "creative coders":
– Sid Lee
– Rockwell Group
– Invisible Light Network
– Obscura Digital
– Razorfish
– Wieden + Kennedy
– Big Spaceship
Apply by sending me an email (on profile). Note: currently internships are available.
I've replied to this at the top.
We are hiring. Drop me a line - sermad at gmail
I honestly believe that the most difficult work in creating something new/innovative is skewed to the design side, so I hope we see a corresponding trend as well: programmers becoming more interested in design.
I like to think of 'creative coders' as great chefs - not only can they dream up a great tasting dish, they can also roll up their sleeves and turn it into an actual meal. A (web/app) designer who shies away from code is like the visionary chef who needs to rely on others to do the cooking, while a programmer who is not concerned with design is little more than a line cook following instructions.
Edit: spelling.
I disagree with this and am inclined to take offence. Programming is not at all like following a simple recipe. Perhaps if the chef specifies that the line cooks must raise special chickens to be slaughtered for the main dish, keeps a herb garden that the line cooks have to maintain, puts the line cooks in charge of estimating and purchasing ingredients, and gets them to experiment with genetically engineering food to taste good in the dish, maybe then there is hope for a comparison.
When I wrote that, I was thinking of consumer software specifically, and by a "programmer who is not concerned with design" I had in mind those that just care about implementation details, while not valuing the importance of end user experience. And I've met quite a few programmers like this, mostly in larger companies. You know you've found one when their sentences start with "Why doesn't the user just..."
In your expanded example, the fact that the line cook is concerned with the taste of the dish (e.g. after genetic modification) already implies that they care about the "design" of the dish. If, however, there is much more concern around how the cookware is organized in the kitchen, or which brand of vegetable oil should be bought, that has almost no tangible benefits to the person eating the meal.
I think you are only looking at one side of the multiplier effect. Yes, organizing cookware does not prepare food, but have you ever tried to cook when all your tools are in a drawer, piled together? Design leads implementation and implementation gives substance to design. Valuing one over the other is like saying a car's engine is more important than it's gas pedal.
So, why not have specialized workers? It makes sense to me that the people who don't understand the needs of the average user would be the perfect people to have slog through the mess of poorly designed APIs that pretty much every project ever will have to deal with at some point.
The problems in these spaces require a significant amount of ingenuity and creativity but no design. (I'm assuming you mean visual design rather than something more general.)
For small groups, having developers who can make good end user interfaces is pretty much a requirement, but this is noting special. If you were developing oilfield software, you would need to know about drilling. If you are developing software whose purpose is to augment some already-existing element of humanity (like communication), then it is not a surprise that you would want developers that know about how humans like to do things.
As members of a community focused almost entirely on a specific subset of everything there is to know about in the world, we must not forget that while a furniture maker should know woodworking well, he should also know about how people sit.
But equating developers to line cooks in domains where actual engineering talent is required seems a bit ridiculous.
I think the bigest difference between 'creative programmers' and programmers from a traditional computer science background is the perspective in which they look at code, and engineering problems. 'Creative programmers' approach things with an emphasis on the discovery process which, I think, allows them to understand the things they are working on in more of an organic context. Whereas people from a traditional computer science background tend to approach things with a systematic view of the things they are working on.
The difference can look sublte, but it is real. I think having an organic understanding of a product enables 'creative programmers' to build an end to end product (from user interaction to the inner workings), whereas traditional computer science programmers will specialize on a single aspect.
I'm not sure if I fit in the 'Creative Coders' category, since though I was an aspiring artist prior to getting into development, I was never commercially successful at it, and I'm really not a good designer since I find commercial art pretty tedious.
Programming, however, is another thing altogether; within about a year of beginning from scratch, I got a job at one of the companies in this list (Mirada) leading development on an interactive storytelling app. One thing that I think gave me a good edge was some development experience in the entertainment realm -- I had made an iPhone app to help screenwriters organize their thoughts, and got a chance to make an app for a comic book trying to get off the ground.
I also know that we're currently looking for more iOS developers (especially with OpenGL experience) so the development side is only growing.
Then I shifted my focus to development and I get a lot more satisfaction out of it. I find that it suits my particular brand of creativity and attention to technical details. I love the problem solving, and conjuring up working software out of nothing.
I still do some design work, and I still enjoy it, but I do it on my own terms, or I do things like interfaces - again, more technical in nature.
I quite like doing the occasional pencil or marker drawing, because it's good stress relief.
But it's programming that really satisfies my need to create.
- Personal connections are huge. Agencies, especially those connected with advertising, are likely not tech-savvy enough to understand the specific contribution that you can bring to a project. They will often rely on someone who already has rapport and knowledge of creative coding within their organization to recruit more talent. Its to your advantage to know those people.
- Have presence in the community of your creative coding platform(s) of choice as an expert. Answer question on the forums. Teach workshops. Write tutorials. Or simply just share work. To that end, you might be able to build rapport with the people mentioned in the first point.
- Create compelling projects using creative coding platforms, whether its a useful data visualization or just a thing of beauty. It doesn't have to be a paid project. Then promote the heck out of it. Invite people to blog about it, critique it. Absorb the critique. Share the code on github. A lot of work gets created in these communities that goes unnoticed because it doesn't get to the right channels.
- Build a compelling portfolio that non-tech/creative types can appreciate, but at the same time doesn't remove you of your hacker cred--it should be obvious that you coded this stuff in the written language that you use and the images that your present. In grad school, you might have been able to present each project as fun or research, but now you need to shift the presentation in a way that offers value to the outside world. Consider the practical applications of what you've created (even if practical had originally been the last thing on your mind) and list those (e.g. "this kind of dynamic 3D data visualization could be used to visualize data x more effectively because..." ). The other option is to have a portfolio that only the creative coding community will appreciate. But than it will be up to someone else to convince business-minded folks to work with you.
- It may be to your benefit to take a standard gig as an Engineer or Interaction Designer before attempting to do something like this professionally. A creative coder who has engineering, graphic design, or interaction design professional experience can be a huge asset to a project. It may also be an entry point for discussion with the people that you are working with, who may not really get what you are doing otherwise. Also, you may choose to (or financially need to) do other work between these special projects, so doing something complimentary could be a good use of your time.
- It's important to keep coding. Don't wait for paid projects to fall into your lap. The people who do this well live and breath this stuff, and sometimes after a full days work on a commercial gig, go home and work on an art project project or even putting together their own library or framework.
- Firms both large and small may not seem interested in your skill-set until the moment that they are in need of it, so when reaching out, you may want to choose your phraseology from "i'm looking for a job" to "when you have a project, i'd be interested" If you get in touch with an actual person, it may also be advantageous to ask them when do these kinds of projects come up within their organization and for which clients. If their organization has many offices around the world, find out if there's a specific office that deals with that kind of work.