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. 🙂
Writing code is hard
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.
People got their value
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.
Doing it again? Totes.
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.
Learned something new? Want to improve your skills?
Join over 10,000 engineers just like you already improving their skills!
Here's how it works 👇
PS: You should also follow me on twitter 👉 here.
It's where I go to shoot the shit about programming.