45 comments

[ 4.8 ms ] story [ 101 ms ] thread
an upvote would probably be sufficient, but wanted to say thanks to the author for making a great list. i've been looking for this!
This is a very exciting trend, and I'm glad more designers are jumping into code. As an art school dropout who later finished a CS degree, the combination of skills is invaluable.

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.

> while a programmer who is not concerned with design is little more than a line cook following instructions.

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.

Sorry, I did not mean to offend. And I admit that in hindsight it is a weak analogy at best.

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.

>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.

You know, there is quite a bit of very interesting programming that does not culminate in a web-app or even a GUI. If anything, this is where the most interesting work lies: embedded systems, AI, machine learning, compilers, static analysis, distributed systems...

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.)

All programers are concerned with design, if nothing else the design of the implementation! All good coders realize that there will really be two groups of users, the consumers and those who wish to extend or maintain the application. A piece of code with a good UX (maybe DX instead?) makes my life so much easier and can save my company quite a bit of money if my salary is high.

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.

While condescending, this analogy isn't terrible for user-facing applications of the most trivial complexity.

But equating developers to line cooks in domains where actual engineering talent is required seems a bit ridiculous.

I agree with all of the sentiments in the article, but the one small thing that I do disagree with is the conflation of the word "creative" with what the author seems to indicate are artistic or graphical/visual disciplines.

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

I think in this context he's using "creative" in the sense that it's used in the advertising industry. A creative is someone who actually works on developing an advertisement, rather than, say, someone buying up airtime. The companies on the list are almost all advertising agencies. It's just the industry nomenclature and I don't think he meant to say that programmers in the non-advertising world aren't creative.
That may be true but I find the term denigrating towards programmers. This isn't the advertising industry and their nomenclature isn't appropriate here. It implies a "non-creative" type of programmer. It also implies most programmers are of a "non-creative" type. Furthermore, the implication is those programmers, since they are by definition non-creative, don't do their own thinking.

The term may not technically mean the above however the implication is there.

>It implies a "non-creative" type of programmer. It also implies most programmers are of a "non-creative" type.

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?

It has nothing to do with the job title and everything to do with the person.

And yes, I am saying that the label of creative can be applied to any job in the world. Watch the video.

> i don't think that's an unfair implication.

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.

I don't think 'creative' denigrates regular coders precisely because the term IS from the Advertising industry where there is a clear delineation between "creative", "sales" and "business". [1]

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

Respectfully most programmers don't work in advertising. It may be suitable in Advertising where the term is well understood. However, I don't think it should be a widely applied term outside of that field. The "plain sense" of the term is not the technical definition the "plain sense" is as I described it above.
I'd argue, though, that the word "creative" being used in this sense is directly related to how they go about solving their problem (producing effective advertising given the constraints) and not related to the fact that they are generating visuals or copy.

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 term "creative" is misleading though and its use should be discouraged. I worked at a consulting company that started doing agency work, hired designers, promoted creative directors, built a creative department, added a creative area with a creative room and so on and so forth. This was always a point of contention for the developers. It's especially silly when this article ostensibly promotes crossover coders who do both design and development. Why does it have to be the "creative" department and not the "design" department? And in an intelligent organization that encourages multi-talented people and "interdisciplinary" work, why are departments and labels like that even necessary?

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.

Re: "Boo, unfair! I am creative too!"

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.

The company I work at now doesn't make the distinction and has plenty of coders who "do both." I also do both.

"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.

Indeed, "creative" in this context refers to special attention paid to creating new concepts. A "creative programmer" is somebody who's occupation is to come up with new ideas in code. This contrasts with "non-creative" programmers, who typically apply sound techniques to known problems.

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.

Could be that it's just "creative" as design department vs "coder" as development department.

Having said that, I agree that there can be great creativity in programming.

this --> "I believe that all programming, whether or not it's graphical or "artistic" in nature, is creative. "
All programming? Hardly.

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.

This naming may come from fact that some libraries for easing creation of programmed graphics and audiovisual displays are called "creative coding" / "creative programming" libs. It's a phrase that has been around for few years.

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."

And I would level the same criticisms at the people who named these libraries.
Great comment! I did not watch that talk. But I did watch another talk by John Cleese on how to become more creative ( https://www.youtube.com/watch?v=kH8uYDJlwog - only 10 min). It's a very recommended watch as well. I especially like this quote:

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

It has unfortunate, unintended side-meaning sometimes, but groups tend to grab the flag they can. The cinder/processing/max-msp-jitter-pd/demo scene grabbed "creative coder" as their moniker a while back, and it's probably too late to change it - and it does make sense, if you view it from the vantage point that creative coding" is the core activity of making a specific type of audio/visual artifact (or just art, or even Fine Art) - which people usually group with art/Art, so it fits.

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)

I wonder if any places like hacker school, et. al. have creative coding projects? I would be inclined to think that hacker school is probably the one that would be closest, as the other places seem more focused on web development.
I'm happy to see this thread on front page. Some of those projects seem to be very challenging and interesting. I would be careful however with the creative coder concept. Most of the work done in interactive installations is highly unusual and takes from graphics programming, computer vision, physics programming and sometimes integration with social media. Solid programming background is a must - I don't really see how knowing processing or three.js suddenly makes you a creative coder. I would rather define it as a all-round developer with loads of ideas on how to make unconventional combinations of technology work together.
Thanks for this! I'm among the new batch of students that are the subject of this article and currently looking for jobs in NY. I've been maintaining a similar list, but yours contains a number of additions for which I'm grateful.

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

Please add Nuuton, though it is not an agency, but a startup.

Apply by sending me an email (on profile). Note: currently internships are available.

"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."

I've replied to this at the top.

I'd also mention Stamen: www.stamen.com
Cipher Prime (Auditorium, Fractal, Pulse:Volume One, Splice) in Philadelphia, PA belongs on the list, their apps all fit squarely in the "creative coding" category.

http://www.cipherprime.com

BBDO in New York actively collaborate with a lot of these great companies but also have in house "creative" coders.

We are hiring. Drop me a line - sermad at gmail

I find this interesting because as a former artist, the reason I love programming is that it scratches the same creative itch.

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.

I feel similarly. I studied art in school-my degree is in fine art, with an area of focus on design. I spent a lot of time after I graduated working as a frustrated designer. My clients were happy, but nothing was ever "good enough" in the feels really satisfying sense.

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.

I got a degree like this from the art institutes international minnesota. It was far more frontend-web centric but we did have the chance to dive deeper into things like processing, arduino, and openframeworks. However most of the students werent that bright, but the faculty was fantastic and curriculum was solid.

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.

(comment deleted)
In my experience, 'creative coding' work opportunities happen in the follow ways:

- 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.

...this is in response to an earlier comment: "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."
Another point:

- 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.