Lemme tell you a story about careers, the web, and spotting trends.
It's 2001 and young Swizec over here writes his first HTML in a high school computer class. Font tags and tables and all the rest.
That's the oldest photo I could find, 2008. Growing up before Facebook is weird like that.
So here I was in this basic computer class and HTML is blowing my mind. You mean I can just write <b>bold text</b> and it shows up on the screen!? 🤯
All I'd built before were DOS apps in Turbo Pascal and Windows apps in Delphi. Took a lot of code for anything to show up.
I'm not sure I even knew how to make something bold 😅
And here was this teacher telling me I don't need any of that. Not really. I can write some HTML, put a text file on a server, and the whole world can see what I made.
She called it not-real-programming, nothing to spend too much time worrying about, we were going to learn the real stuff. Not these silly little "scripting" and "markup" languages. She was just showing us so we'd know it exists.
But I knew it was the future.
That year I built countless websites. I'd run home from school and build stuff. Explore what's possible. Play around.
At school I'd chat with 2 or 3 other guys who were also into websites. They told me about CSS, introduced me to internet forums, and told me there's this thing called PHP that lets you make dynamic websites.
You mean I can write real actual code with loops and variables and stuff and change my HTML on the fly!?
My world changed forever.
No longer restricted to building static sites with HTML and CSS, I could build entire systems. Real stuff that people could use.
I started learning the LAMP stack, turned my home computer into a server, configured my first Apache server, and discovered MySQL.
LAMP – Linux Apache MySQL PHP – really was the future. Mid 2000's onwards everything was LAMP. Everything.
Wordpress was LAMP, Facebook was LAMP, MySpace was LAMP, everything was LAMP. Even my favorite open source social software phpBB was LAMP.
I got into open source. I wrote and released mods for phpBB. I learned about getting people to use your code. I learned about managing releases.
And all the while I kept learning tech.
Whenever something new showed up in my adjacent possible, I jumped on the chance to dig deeper.
HTML opened the gates to CSS. CSS opened the gates to ... more CSS.
But HTML also opened the gates to PHP. And that opened the gates to running a server. Which taught me about Apache and later Nginx.
To use those I had to learn about iptables, network config, NAT, routers, domain servers, and how the web works on the network layer. I even had to learn about TCP/IP and how HTTP is built on top.
As my projects grew in complexity, I learned about system design, about architecture. The MVC architecture – Model View Controller – was the new big thing.
In Silicon Valley, Rails was becoming popular. But I didn't know that. Nobody told me.
Instead I learned second hand. From people in the PHP universe learning from Rails and rewriting their apps to this new approach.
Around 2008, Ajax flashes onto the scene.
No longer do you have to reload the whole web page to update some small part.
At first I build small widgets. Little things for websites. A gallery here, a preview there. My Ajax morphs from loading HTML fragments to returning JSON data.
And so I discover the SPA – single page app.
A world of single page webapps.
No more page reloads. No more HTML stitched together on the server. Just a glorified database serving JSON data to REST requests and an entire UI built right in the browser.
The third paradigm shift in my web development career. The web moves fast 😛
That's where we're at right now.
Our users live in the browser. Our browsers are more powerful than ever. Our desktop apps are often just browsers running a webapp.
Our tools are better than they were in 2010, we've got React and build systems and CDNs and CSS-in-JS and Npm and so many other tools.
But we're still following the SPA paradigm.
You build a server with MVC and expose a RESTful API. Make requests from your clients both web and mobile, read the JSON data, and create your UI on the fly. React (or Vue) on the web, native stuff on the phone and tablet.
Your biggest problem is managing complexity, orchestrating multiple requests for a single page, dealing with spotty connections, and scaling it all so it works for everyone and doesn't break the bank. It's hard.
We're at an inflection point. A paradigm shift is brewing.
You can never know for sure, but I've been pretty lucky so far. Here's what I think the future looks like 👇
It's a glorious beautiful future my friend and I'm excited. Paradigm shifts are fun 🏄♀️
What do you think is coming next? tweet me.
Here's how it works 👇
And get thoughtful letters 💌 on mindsets, tactics, and technical skills for your career. Real lessons from building production software. No bullshit.
"Man, love your simple writing! Yours is the only newsletter I open and only blog that I give a fuck to read & scroll till the end. And wow always take away lessons with me. Inspiring! And very relatable. 👌"
Ready to Stop copy pasting D3 examples and create data visualizations of your own? Learn how to build scalable dataviz components your whole team can understand with React for Data Visualization
Curious about Serverless and the modern backend? Check out Serverless Handbook, modern backend for the frontend engineer.
Ready to learn how it all fits together and build a modern webapp from scratch? Learn how to launch a webapp and make your first 💰 on the side with ServerlessReact.Dev
By the way, just in case no one has told you it yet today: I love and appreciate you for who you are ❤️