My question is for teachers who teach coding to artists / non-coders at a university level.
I am very curious about what arguments you make to encourage students who are new to coding, to choose to code over other options with lesser learning curves, that produce faster and more immediate results for them.
How do you convince a student to choose make images, animations etc with code over say, Adobe Photoshop, After Effects, etc.
The argument that coding will maybe make you more employable is not the argument I want to fall back on.
My own personal reasons will be less accessible and may have limited relevance to first year students, since they are mostly based on personal / political positions.
This will will be my class teaching coding (p5). I’m teaching at a school that has not yet adopted much in the way of digital methods, let alone algorithmic/computational media art, so students with limited exposure.
Custom code can give you more immediate control and flexibility with the result, and do things that pre-existing applications cannot. This by itself can lead to much more interesting and engaging results.
Wrangling the logic domain (as you must to code) makes you a better problem solver in general (boosts that kind of intelligence), which makes a better artist. Advanced intelligence of one kind can improve intelligence of other kinds.
It is so darn satisfying to code solutions that do custom, artful things.
I plan to talk to the students about the origins and philosophy of Processing in general. I’ll probably bring in a discussion about the difference between a tool vs. a machine. Both are valuable, but a tool does not describe the outcome in the way that a machine does.
A hammer (tool) can be used for a lot of things and it would literally be impossible to list them all. An airplane (machine) can fly from point a to b.
I teach design, so we do teach a lot of Adobe products and I would not consider substituting coding for things like image manipulation or page layout. I’m going to label Adobe products more like a machine, where you learn to use them like a pilot flies a plane. I don’t particularly like Adobe, but I understand that there are jobs that require knowing how to use their products. Their products tend to incorporate features that are useful in industry, and therefore are biased in that way.
Code is more like a tool, it can be used to build almost anything and Processing (being open source) is less biased in terms of catering to an industry base. I still think there is bias in Processing, it’s very easy to create circles and lines, so we tend to see sketches using circles and lines compared to other primitive shapes.
I think people can be creative in both Adobe software and in coding, so it’s probably good for them to learn both and make their own decisions. In terms of a specific argument, I think students find it very rewarding to make things that are interactive and/or constantly change, versus the comparitively static output of Photoshop or After Effects.
Both methods accomplish different tasks though. Classic art an animation are usually aimed at conveying a message or an emotion, whereas coding is supposed to help simplify menial tasks.
Regarding conveying a message or emotion vs. accomplishing a menial task: a well-designed generative work (coded) can accomplish variations of the former far more rapidly than manually doing it.
One example is finding all combinations or permutations of possible color sets choosing 2, 3, 4 or more from a given larger set, where different combinations of colors subjectively produce different affects to viewers.* Creative coding a solution to this problem can render all the possibilities in orders of magnitude less time than painting all of them by hand in traditional media.
Which is a point that recurred to me which I came here to make: creative coding can also help you find all the possibilities, or an astonishingly broad set of them, in much less time–as algorithmic art pioneer Vera Molnár so well says in the video in this tweet, which I think would be really persuasive to students
Or it can set up a work such that you will never see the same variation twice!–it will never show all the possible variations in all time, but it will show some of them!
*I would consider permutations or order of sets, in color, where I want to see a field of blue on green vs. green on blue: blue,green or green,blue
this is very helpful. i love how you explain your analogy. funny though—I’ve always thought of a similar analogy this way: tool vs medium. Adobe is the tool (like your hammer, it can do many things in theory, but typically, is only used to do one thing) and Code is a medium (which like your tool, can be used in innumerable ways and is not created with a single purpose in mind–ie layout)… i also teach design, am a designer, and get the importance of both modes, so def not trying to imply one is better than another. thank you!
earthbound, that is a great video reference–thanks! I agree, perfect for students!
also, re conveying emotion vs menial tasks, my understanding of creative coding, is that code/coding can be / can produce emotive content, it is not only exclusively a practical endeavor aimed at functional solutions.
ok so here are some images to clarify, I’m not going to try and sway you one way or an other, and this is clearly a very limited example of the art which humans are able to produce, but at least it should enable us to make somewhat of a comparison.
this is deep dream, which uses neural networks to replicate the aesthetic and feel of traditional painting, this one has been cranked up a bit, as we can clearly see.
For me it was an eye-opener when my former graphic design teacher told me that Adobe programs (such as InDesign, Photoshop, and Illustrator) are production tools rather than design tools. It made me realise that the ‘creative exploring & experimenting’ throughout design processes mostly take place outside of these programs. I’m not implying it’s impossible to stumble upon new ideas through the use of production tools, but for me it’s less likely to happen. Especially when comparing it to the versatility of coding.
A noticeable difference between the two, from a personal perspective at least, lies with the work approach that it entails. Overall I tend to make use of Adobe when I have a (somewhat) clear idea of what I need to do, thus ‘producing’ my ideas. Whenever I code however I rarely go in with a clear intention. I simply start a Processing sketch with a vague idea of what I could do, and most of the time I end up with something completely different than I thought I would.
Another way to look at it is that I’m using coding as an extension of my ‘creative exploring & experimenting’. I broadly decide in which direction I’m moving, but I never know what I’ll end up with. This is partly due to my lack in coding experience, but also because there are always moments during coding sessions where it’s impossible to imagine what the code might lead to (or I made a mistake and something entirely different than I expected happens).
I often I find myself pleasantly surprised by the visual output, which is something I’ve never thought of before, thus expending my awareness of what else is possible.
The example of the hammer vs. airplane was what I heard when I first heard this idea of a tool versus a machine. It’s probably not the best analogy of code vs. Adobe, but there is a kernel of truth in there.
How I typically use the comparison is when critiquing work. There is some, undefined point where the tool you are using starts to determine the outcome. That is the point where things switch from a creative tool to a machine. Photoshop itself is largely tool-like when using brushes, layers, etc., again because the outcome is almost limitless. Use the Mosaic filter and the machine starts to take over.
In terms of Processing, my understanding of it’s history is that Casey or Frye became frustrated trying to use Flash creatively. Through that frustration, they determined artists should really learn to code or the tools available would always be limiting and artists would be left out of the loop. Rather than go with a node-based approach, they felt learning the actual language of coding would be more freeing to artists.
There are many nice answers here, I’ll add my favorite references too:
Reas quotes Alan Kay’s views about software illiteracy: ’
The ability to ‘read’ a medium means you can access the materials and tool created by others. The ability to ‘write’ in a medium means you can generate materials and tools for others. You must have both to be literate … In computer writing, the tools you generate are processes; they simulate and decide.’ Eye Magazine | Blog | Historical digital #2
paulgoux, do you mean to write that code is usually supposed to help simplify menial tasks? Because your edit now reads categorically to imply that is the only purpose of coding, which is simply false.
Code is supposed to accomplish whatever people intend it to accomplish, and it’s a fact that people intend and accomplish purposes other than only speeding up menial tasks with creative coding.
But to even argue the point accedes to I think I sniff an implication that speeding up menial work isn’t that much of a thing to accomplish. It’s a huge thing to accomplish. Even so, it’s absolutely not the only thing that creative coding accomplishes.
Tiemen, yes, this is totally true. Packaged software gives us the ability to make things we know we can make. It takes special effort to try to avoid making things that we’ve not made before. There is a fairly safe, predictable outcome when we use adobe software, or assume that this should be the starting point—not that anyone starts off thinking, “oh, i think i should make something safe and predictable, like i always do”, but I think—now that I’m learning to code—that this is the outcome, generally and broadly speaking, whether intended or not.
Thanks for your thoughts, they’re very helpful!
All im saying is that software is a tool which allows you to handle pipelines and frameworks which otherwise could not be done by hand or which would be extremely tedious by hand. I showed the examples of art to highlight what is possible by hand and what is possible with software. Animation studios nowadays absolutely use software because it greatly speeds up lighting and animation. The program is able to accurately calculate a huge range of points all at once.
Outside of 3d sure you can make animation using code, but and i may be wrong here for the most part 2d art still has to be made ie sprites or 2d art.
Now its true i probably havent covered all uses of programming in the field of art, but until neural networks become advanced enough to be able to draw a classic piece of art without the use of other art as a base i would still say that coding has many areas which cannot replace traditional art.
I understand this may just be my opinion though.
Also i guess if were talking about vector graphics though and the like then coding could be a viable alternative, as im not sure the learning curve for adobe vs coding shapes is vastly superior.
bryanrtboy, yes, this is such a good point. I totally agree with it. I am trying to express a similar thought in my reply to Tiemen, above. As a graphic design instructor, the way i try to mitigate this, is by placing a focus, both in a project description and in the evaluation, on development of deep, sustained, engaged process. Nonetheless, translating ideas from an experimental process through illustrator or what-have-you, often fails to live up to the magical potential in that idea.
Another reason that I haven’t seen mentioned is that code can interface with the material world though things like Arduino and electronics and opens up many possibilities along the line of interactive installation art and so on. For example, I’ve used Processing to interface with a motion sensor and generate visuals that were responsive to actors’ movements as part of a theatre production.
Coding generative systems is another way to explain how different possibilities become available at different levels of abstraction and scale. To give two illustrative analogies:
One scenario is modeling and posing. If you paint a picture of Pinocchio, you have one pose. If you build one Pinocchio doll, then you can photograph as many different poses as you want. If you build a machine that makes different dolls…
Another scenario is growth. If you make a sculpture of a flowering tree, it is flowering in exactly one way. If you plant one live flowering tree, its flowers can change day by day, and it flowers each year in ways that are similar yet different. If you build a machine that plants different flowering trees…