Learning Creative Coding as a Software Engineer
The journey of learning creative coding using the Processing language
3 min read
About a month ago, I posted in a blog post that I have a goal in mind to Build a Generative Art NFT. I have listed that I am splitting my work into three phases, starting off with "learning". In this phase, I'm learning all about creating generative art.
I started with Creative Coding Essentials by Tim Rodenbröker, and right now, I'm practicing what I've learned by generating all sorts of generative art.
Look what I made 🎉:
How is it to learn it as a developer? 📖
Having previous experience writing code helps a lot!
I have over five years of experience writing code for various businesses, so I'm no stranger to IDE's and programming languages. I can blast through the basics of a new programming language (variables, conditional statements, functions, OOP, etc.) in a couple of hours since the concepts are usually quite similar.
What's worth noting is that I knew some Java before. Processing is based on Java, so basically, all the patterns and quirks from that language translate into Processing.
With creative coding, I think about how an object moves, scales, rotates, changes color, breaks down into multiple pieces, how it behaves relative to other objects, and often I even don't think at all. I just put some code in, run the program and see what happens. Most of the time, this results in a big woah.
What have I learned? 🤔
When you start learning a new skill, the amount you know develops in a logarithmic way. When you start, you're learning a ton. But then, every day, you reach a breakthrough.
As you progress through practicing that skill, at some point, you reach a plateau, and you start to go more into details. Breakthroughs tend to happen less often, but what happens is you perfect your skill.
I am no exception to this. Every day, it feels like I'm wowing myself with what I'm accomplishing. It's a great feeling to have since learning feels like a delight!
Here's a list of my learnings 📕:
- How to set up the Processing environment
- Basics of the Processing language (variables, conditions, loops, functions, OOP)
- How does the setup, draw, and settings work in Processing
- How to set a different frame rate
- How to export and create images and videos of sketches
- How to create shapes
- How to use my mouse and keyboards to interact with your sketch
- How to implement easing
- How to use translate, scale, rotate to animate objects
- How to create waves
- Using noise and random to generate unpredictable sketches
Going forward ⏭
The number of techniques to learn is endless, and there is still a ton of practice to be done to master what I learned.
In the future, I want to check out this:
- Learn how to make 3D sketches
- Learn how to manipulate images and videos using Processing
- Learn how to utilize typography in my sketches
- Read The Nature of Code by Daniel Shiffman
- Practice by creating sketches regularly
This has been an exciting start to my side project overall. I am very keen on learning more about creative coding.
If you have any thoughts or you're also starting with creative coding, let me know! I would love to check out your sketches! 📲
Thanks for reading, and now I'm heading back to create sketches! 👋
Reach to to me: