Programming can be a creative craft, and craft is a skill that can be learned.
There is still a huge gap between coding and drawing. Despite the numerous tools available, writing code is just not as good as drawing on paper for visual ideas. Conversely, drawing diagrams can only get you so far before complexity overwhelms the cognitive processors in our brains.
Our brains are versatile. It can adapt in almost any situation, given enough time to learn new things. Learning to program is like learning to play the guitar - start with the basic tools, then you start composing your own song using music theory. Eventually, you end up with a working program, like this one with my penplotter:
I gave a conference talk titled, "Let's Make Functional Generative Art!" to illustrate this point. The intended audience is programmers familiar with functional programming, but you can also see a Javascript-focused version online.
In my talk, I showed how to construct a curtain using a technique called sherperding random numbers. I first came across it from inconvergent's work, and adopted it into my own shapes.
I also created several more that you can see online. It's open source, too.
Following my talk on generative art at YOW! Lambda Jam, I had a super fun conversation with Kevin Yank on my work process, design process, inspiration, and most importantly, technical insights using the programming language, Elm.
You can listen to the podcast.
The podcast episode is published at Elm Town, episode 34.