Why should you learn to write shaders?
Shaders are amazing, mysterious, difficult, and so rewarding when you get it right. This is a dive into why I think you should learn to write shaders, and how it can unlock a whole new world of creativity and expression.
What is so interesting about shaders?
Shaders are in so many things you see every day - games
, art
, websites
, apps
; but what makes them interesting is the power
and the control
they give you.
You're not limited to a component library, or a design system - you're working directly with the GPU, creating visuals from scratch. Every pixel is yours to command
.
That level of control is a super power, and honestly, kind of addictive once you get the hang of it.
My own journey
I've been a professional developer for over 20 years. It's been the passion of my life, but there came a point where I just didn't find what I was doing interesting anymore. Something was missing. That's when I found creative coding
. I'd always been fascinated with shaders
, so it seemed like the perfect pairing.
Shaders are just straight up hard to write. Shifting from HTML, CSS and Javascript to GLSL and WGSL was honestly a trip. Even now, after years of learning, I still struggle with the concept.
But I just really loved it. I had to learn how this stuff worked.
I researched, experimented, practiced. So much wasn't great - I hit a million dead ends - but the more I made, the more I learned and the better things became.
The things you can create are genuinely incredible
.
What can learning shaders unlock for you?
It's probably no secret that technology and design is starting to get increasingly homogeneous. Almost everywhere you look, you'll see similar designs
, similar components
, similar patterns
.
Learning to write shaders can unlock a whole new world of creativity and expression
, and give you some vital skills that can really set you apart
as a developer, an artist, or both.
Here's who I think benefits most from learning shaders:
Design Engineers
This is what I do! Shaders aren't a core part of the job, but they're a powerful tool to have in your toolbox. They let you create visuals and experiences that genuinely stand out. Here's what you can build:
- 3D experiences for product showcases, landing pages, or interactive portfolios that feel magical and premium
- Interactive effects that respond to user input, scroll, or hover - stuff that goes way beyond CSS
- GPU-powered animations that run at 60fps with millions of data points without breaking a sweat
You'll be able to create things that most developers can't, and that makes you valuable
.
Creative coders
If you're already into creative coding, shaders are where things get really interesting. They open up possibilities that just aren't achievable with 2D canvas, or DOM manipulation:
- Generative art with complex
patterns
,fractals
, andmathematical beauty
that evolves in real-time - Particle systems with millions of particles running smoothly at 60fps
- Complex simulations like
fluid dynamics
,reaction-diffusion
, orflocking
behaviors
Shaders let you explore ideas and techniques that push the boundaries
of what's possible on screen.
Artists
For artists, shaders are a completely different medium for expression. They're like painting with math and code - which sounds weird, but opens up creative possibilities that traditional tools can't touch:
- Create one-of-a-kind visuals that can't be replicated with Photoshop or After Effects
- Build generative systems that create infinite variations of your work
- Own your tools - develop your own effects instead of being limited by software
The barrier to entry is high, but so is the reward. You'll have a skillset that sets you apart
.
What I've learned along the way
Shaders are hard to learn. But through years of stumbling, experimenting, and eventually finding my rhythm, I've learned some things that have made the journey not just easier, but genuinely rewarding
.
You don't need to be an expert
In a world where there are so many amazing artists and creators, it's easy to feel like you're not good enough when you compare yourself to your idols. I feel it all the time. So I needed to shift my thinking - not try to achieve perfection, but to be true to myself
.
Instead of striving to become an expert, I strive to have just enough knowledge to be functional
with the technology. Even a small bit of knowledge can compound into creating something unique. The amazing things often come from the interplay between techniques, or the unexpected
results of a simple change.
The joy of discovery
Experimentation is the joy of discovery
in a modern age. Stumbling across something you've never seen before, fumbling into a happy accident
- that feeling is what I chase. Embrace the chaos and just try stuff
.
Small, consistent practice the key
A secret that took me 20 years to realise: The key to getting better is intentional practice
and consistency
.
I have a young kid, a full-time job, a mortgage - all the things. It's hard to find time. But even 5 or 10 minutes a day focusing
on something with intention is enough to dramatically improve. You'll look back in a month and be shocked how far you've come.
Human creativity matters more than ever
In a world where AI can generate almost anything, creative coding
is about human expression
and discovery
- a distillation of the artist. Just because it's written in code doesn't make it less human.
In a world where everything feels discovered, monetised, commoditised - there's still something special in stumbling across something you've never seen before.
AI is an amazing tool, but it's not a replacement for human creativity
.
Where Fragments fits in
All of the struggle, the joy, and the experimentation led me to build Fragments
.
I wanted to bridge that gap between beginner courses and actually making things. It's not just another tutorial - it's a deep dive into techniques
, strategies
, and most importantly, experimentation
.
You get access to all of the source code of over 120 Sketches that I've made, breakdowns of how they work, and most importantly: learn about the Techniques I've used to make them, along with the Utilities I've created to help streamline my own process.
Most importantly, you'll learn the strategies
for how to experiment and create your own variations
. That last part is what's usually missing - knowing what to try, how to push techniques in different directions, how to make something your own.
It's the resource I wish I had when I started
. I hope you find it as valuable as I do.