Learning Creative Coding as a Software Engineer
The journey of learning creative coding using the Processing language
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.
Where the differences come in is in the art of making animations. I work as a full-stack developer in the Javascript ecosystem, which means I create and consume APIs, integrate them into large systems, and all sorts of stuff to provide business value.
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
Conclusion π
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: