In January 2008, I wrote my first web framework. It was called “resir”
It was rubbish. “Really exasperatingly stupid ill-conceived rubbish”
But that was kinda the point. I didn’t make my first web framework with the intention of having people actually use it. (…okay, well maybe I thought it was going to change the world, but still!)
I wanted to write a web framework to see how it works. And to see if I could do it.
I wanted to #learn through #imitation
I meet a lot of new coders fresh outta school or bootcamp. Most of them are suuuuuuper ambitious. They all have a vision — something that’s new and exciting and unique. Some disruptive idea that’s “a real game changer” which is gonna “bust the market wide open” through some kindof organic viral gamified crowd-sourced millenial traction pivot and will change the world as we know it. They’re lookin` for angels and they’re ready to entrepreneur the shit outta the world!
Y’all want my advice? Rip something off.
Before you go all badass superhero on the world, try just making a thing. Like one thing. Any thing. Better yet, try to reproduce somebody else’s thing and see how well you can do it.
Remember the first time you made an omellete? How’d that go for ya?
Start off by following other peoples’ recipes. #Learn to #imitate them perfectly. Then you should mess with the recipe. Play around. Take what you learned about making omelettes and apply them to making a frittata!
Most of what I’ve learned during my career has been from copying things.
- Don’t understand how a web framework works? Try implementing it from scratch!
- Like a library from another language? Try porting it to your language!
- Do you like a design pattern used in some project? Apply it to a different project!
- Try implementing your favorite library from scratch. Look at their source code as little as possible.
I really enjoy taking my favorite projects and trying to implement them myself. It’s like a fun puzzle! More often than not, it is a LOT simpler than you realize. You’ll discover the true nature of things that you previously thought were magic 🎩🤗
Since implementing my first web framework, I’ve continued to make a TON of rubbish. 8 additional years worth of additional “stupid, ill-conceived rubbish!” Multiple landfills worth… (Thank goodness code is compostable ♻)
- I’ve written frameworks for creating web, command-line, desktop, and mobile applications.
- I’ve written package management systems and testing frameworks.
- I’ve written tools for deploying web applications.
- I even wrote something that plays karaoke videos — you know, with the lyrics and the bouncing ball?
“Good artists copy” and that’s what I did.
I’ve learned from it, tho!
And now, if I need to implement a “disruptive organic viral gamified crowd-sourced millenial traction pivot”, I am confident that I have all of the necessary skills required to change the world.
🍳 Best of luck flipping omelettes 🍳