Before getting into how to make a good workshop, let’s start with a more basic question: why run workshops in the first place?
In summer 2015, we ran a series of beginner coding camps, the theory being that if we knew how to run a good summer program, we could take the lessons learned and apply them to running Hack Clubs. At Hack Club, we want to take the hackathon culture of learning how to build your own things, and bring that culture back into schools. So at first we took a hands-off approach, explaining about the growth mindset and encouraging people to do Google searches when they didn’t know how to do something.
But that didn’t work very well. People basically commented, why were they paying money to learn how to code, only to be told to Google it? Clearly we needed something better. In later summer camp cohorts, we took a more structured approach to teaching, and this worked much better. Then we took the lessons we ran in the summer camp and wrote them down as workshops, so that clubs could run these workshops worldwide!
So now you might be asking: why do we need to make our own workshops? Why not just point club members to an existing learn-to-code website (which there are many of)?
The answer to that is that we’re not just trying to teach people how to code. We’re trying to teach people how to become self-learning hackers. It is common for people to finish an online learn-to-code curriculum (or get a full-blown computer science college degree, for that matter), and still not understand why hacking together a project is so fun! We want to encourage the kind of mentality where you just randomly decide to code up a project over the weekend (for fun!) and brag about it to friends.
For example, when you’re making your own project over the weekend, you don’t have a workshop page in front of you telling you how to solve your problem step-by-step. So in our workshops, we try to teach people step-by-step how to Google things when they’re stuck. (Yeah I know, most of the workshops still don’t do this. If you want to help improve them, submit a pull request!) Likewise, if there’s a bug in your code, you have to know how to debug it by yourself. In other words, we want people to reach the point where they won’t need workshops to continue the learning process, and this needs a different kind of approach than your typical learn-how-to-code website.
Another issue unique to Hack Club is that many school computers are in a locked-down configuration that prevents students from installing software, such as Chromebooks. We’ve found that the only solution that works consistently across schools is one where everything can be done through a web browser. This is why we use Cloud9 in all of our workshops.
By the way, if you do know about an existing website that meets both of these needs, please tell us on Slack. Making new workshops is a serious bottleneck right now, and it would be so awesome if we didn’t have to expend all this effort!
To be honest, none of us are experienced workshop writers, so we shouldn’t try to pretend to know more than we actually do.
The best way to write an awesome workshop is to just write a workshop, then test it on friends to find how it can be improved! You will learn much more from doing this than you would ever learn from reading detailed guidelines.
A few more things:
When you’re done, submit a pull request and we’ll take a look at it.