It’s easy to both underestimate and overestimate your audience at the same time. Grasping the concepts isn’t hard, but using them in code ... oof.
16 people showed up this past Sunday morning to learn about React and d3.js in a hands-on manner from Freddy Rangel and me. We sold 18 tickets: most at the $400 early bird price, some with a small discount, and the two volunteers got theirs for free.
All of our attendees were amazing.
It was great to see everyone nodding in deep understanding to anything Freddy and I would say:
Freddy or me: ”This is how this thing works.”
Them,nodding: “Yes, it does.”
Freddy or me: "This is why you do a thing this way and not that other way.”
Them, nodding: “Of course, of course. There’s no other way.”
The whole time this was happening, I was shitting my pants and thinking, "Why the hell are these people here? Everyone’s going to ask for a refund. Whyyyyyy?????”.
Two people left early. They said they expected a more in-depth workshop and that the content was far too easy for them.
My heart sank. "Fuck. I knew it. This sucks. I suck. We completely misjudged the audience.”
There were no refunds after the workshop. Nobody asked.
At least, nobody asked after the workshop. There were many refunds before the workshop. They were a valuable lesson.
You see, $400 is a lot for a full day workshop. I didn’t think it was that much. Many workshops have a far higher price point.
$400 is at a price point where many people no longer pay for the workshop themselves. They might buy the ticket, but then they want their boss to sign off on the purchase or to reimburse them. They may need their boss to pay for it in the first place.
I learned that this means we have to adjust our marketing. Future workshops have to be sellable to you and your boss. You can’t just walk up to your boss with a random EventBrite page printed out and say, “Yo dude, I wanna go learn stuff. They want many money. Can I go?”
Of course your boss is gonna scoff and say, “Dude, who are these fools? I’ve never heard of them.”
You have to get the boss’s trust, not just the attendee’s.
How? … I don’t know yet. We’re going to have to figure that out. :)
As I was stood there shitting my pants about the imminent refunds and everyone walking out because my part of the workshop was crap, something magical happened.
Everyone understood the concepts, but they couldn’t do the code.
After I live-coded a rough guideline for The Next Step™ in our sample project, I gave people 20 minutes to implement it…
40 minutes later, nobody had it working.
Hold up there, you! We’re onto something! Even when people know what they have to write, even when they understand why they have to write it, how to write it – they still can’t. They write the code, and it doesn’t work.
It’s a few hundred lines of code, and it was mostly boilerplate. To be honest, it’s hard. You can grasp the concepts immediately, but the hard part about code is all the fiddly bits in between.
Stuff like getting your variable names just so, structuring your files just right, and putting the right bit in the right file. You know, things like that.
Typing is also very error prone.
This was a big revelation to me. I was both underestimating how quickly my audience would understand the concepts and overestimating how quickly they’d be able to apply it.
For future workshops, I have to do two things: cut down on the theory, and make the practical parts easier.
I haven’t quite figured out how to make the practical exercises easier. I’m thinking a combination of a linter, a test suite, and pre-written code that people fill out. I’m open to suggestions.
Ultimately, I think people got their money’s worth. Those who were not as advanced in the ways of React and d3 learned a lot about putting them together.
They may have gotten too much theory, but having Freddy and I to lend a helping hand when something went wrong with the code was great. We were able to unstuck people quicker than they could unstuck themselves.
After all, debugging is a game of educated guessing. The more code you’ve seen, and the more bugs you’ve been exposed to, the quicker it is to guess what’s wrong.
Which reminds me: The best part about our attendees? Everyone was there because they wanted to solve a real problem. Everyone had a why for learning React and d3. Nobody was there just to Learn Cool Tech™.
I like that. That’s the way to go!
As for the advanced people? The ones who use React and d3 every day at work and are building amazing things I couldn’t dream of understanding?
They got their value, too. For them, it was the 20-minute conversation in the hallway, or that one specific question they asked in front of the class. They had a sticky problem, and they needed a suggestion or two that was specific to them.
Sure, an email would’ve been fine. I’d love to help. But there is value in unstucking a team of engineers who have been banging their head at something for weeks.
I’m not completely sure it’s worth sitting through an entire workshop just for those 20 minutes though… I’m exploring ways to serve those people better.
So, am I doing it again? Yes, absolutely.
The workshop didn’t sell out, and it wasn’t perfect. But doing it was fun as hell. We had a blast preparing the material, and it was a mad dash to the finish line at times, but it was totally worth it. Sure, we only made half of what the same time investment would’ve made with freelancing or consulting, but hey, we had way more fun.
Besides, I already have the material now. I might as well tweak it and improve it and do it again some time.
We’re already scheduled to do it again at ForwardJS in July. You should come. It will be better and much improved.
Now all I have to do is figure out how to market to bosses and how to make it cheaper for individuals without affecting the overall payout.
I write articles with real insight into the career and skills of a modern software engineer. "Raw and honest from the heart!" as one reader described them. Fueled by lessons learned over 20 years of building production code for side-projects, small businesses, and hyper growth startups. Both successful and not.
Subscribe below 👇
Join Swizec's Newsletter and get insightful emails 💌 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. 👌"
Senior Mindset Book
Get promoted, earn a bigger salary, work for top companiesLearn more
Have a burning question that you think I can answer? Hit me up on twitter and I'll do my best.
Who am I and who do I help? I'm Swizec Teller and I turn coders into engineers with "Raw and honest from the heart!" writing. No bullshit. Real insights into the career and skills of a modern software engineer.
Want to become a true senior engineer? Take ownership, have autonomy, and be a force multiplier on your team. The Senior Engineer Mindset ebook can help 👉 swizec.com/senior-mindset. These are the shifts in mindset that unlocked my career.
Curious about Serverless and the modern backend? Check out Serverless Handbook, for frontend engineers 👉 ServerlessHandbook.dev
Want to Stop copy pasting D3 examples and create data visualizations of your own? Learn how to build scalable dataviz React components your whole team can understand with React for Data Visualization
Did someone amazing share this letter with you? Wonderful! You can sign up for my weekly letters for software engineers on their path to greatness, here: swizec.com/blog
By the way, just in case no one has told you it yet today: I love and appreciate you for who you are ❤️