Here’s What I Learned From 30 Days of Creative Coding (a Codevember Retrospective)
By: Benjamin Cooley
Tags: Data Visualization, JavaScript, Development, Programming, Creative Coding

Lessons Learned in Codevember

We all stand on the shoulders of code giants

I watched more code tutorials in one month than I have in three years. I browsed countless GitHub repositories of open source Javascript packages. I trawled through Twitter and Instagram, searching for other creative coders to draw inspiration from.

Here’s the thing: The internet would not be what it is today without open source creators.

Time and time again, I was blown away by people building creative open source packages and giving them away for free. At first, I felt guilty for taking other code and tweaking it to start my sketches. But then I learned that this is how we build things now: We find projects that inspire us, learn from what others built, and then build our own new thing.

I learned from so many people and package maintainers, but I feel the need to give shout-outs for a few specifically:

If you want to learn something new, start a work-adjacent project

I really struggle with the pervasive side-hustle culture in tech and programming. It feels like everyone is building an app on the side or, in my field, creating tons of cool data visualizations when they get home from work or on the weekends. But I spend six or more hours every day doing data visualization. Most of the time I love it, but it feels exhausting to come home and do the same thing. I want to be more than the work that I do at my job.

Day 3: Deep Waves. I used a Perlin noise generator to create pseudo-random line paths. (The site has an animated version!).

So for me, it was really important to do something that was not specifically data visualization. This is why I like the term work-adjacent — learning how to draw with code required a few skills I use in my day job (JavaScript, design, debugging, etc.) but with a whole new level of freedom to let my mind wander. There were no data sets to tie down my designs. I could explore abstract things like randomness and generating pseudo-random algorithms. I could create things just for the fun of it.

I am 90% sure that if I did data viz for every day of November, I wouldn’t have finished. I would have burnt out too soon. So if you have a project in mind, maybe ask a few questions first: Will this feel too much like work? If the answer is yes, take a deep breath and take off some of the pressure you put on yourself. Maybe it’s time to do something for the fun of it, or the creativity, rather than to further your career with a side hustle.

Doing something every day that is terrible and cathartic

When you try to come up with a new idea every day, something strange happens. At first, you obsess over details, trying to make every sketch better than the last. Then you fall a few days behind because you have resisted publishing the last sketch because it “still needed something.” And then you’re days behind, wondering how you’ll catch up, feeling like a failure.

But eventually, you give yourself a break. You stop caring so much. You put work out there before it’s perfect. And the new ideas start flowing through you more quickly now, escaping from your hands to breathe life before you have the chance to squash them.

Day 30: Devided Bliss. Not the most elegant of sketches, but I liked the end result. Random polygons are generated based on a function and then placed on the page with a masking effect.

You do good work even if it’s not perfect. You do more, and you learn more.

Programming should be fun, especially creative programming. So be easy on yourself. Make mistakes. Put something out into the world and then go back and fix it once you’ve given the thing a chance to breathe. You’ll feel better after doing it a few times.

It’s OK to feel like a fraud. Everybody does

Most days, I felt like a fraud for adapting someone else’s code. But then I would open Twitter and see loads of other devs expressing how they feel, like they never know enough about JavaScript, or Python, or whatever they are using.

Day 10: Old Pyramids. Nothing complicated on the code side. Just a nice picture composed purely of polygons

If you’re creating anything with code, you will probably have to continue learning new skills. It never stops. Technology evolves, packages change, new tools emerge. Even the most experienced developers and artists have to spend time learning. And they use the same resources as everybody else.

Math is beautiful. Math is for everybody

Sometimes you need to visualize something to understand it. I never considered myself a math person. Historically, I have leaned more to the art / design side of creativity. Math was for data scientists, engineers, astronomers, etc. I just helped bring their work to life with pictures.

Day 16: Math Meditations. This sketch visualizes the concept of recursion. Each function calls itself until a predefined value is reached.

False. If #Codevember did anything for me, it turned me into a huge math nerd. Even though I don’t understand large swaths of the field still, visualizing equations and algorithms in p5.js revealed the intricacy and beauty behind numbers. I’m used to creating images with static data sets, but connecting shapes and colors to evolving, random data opened up a whole new world for me.

Don’t be intimidated by a field you don’t understand. Math is not just for the mathematicians. Art is not just for the artists.

Have a look around, dabble in what excites you, and go make something beautiful.