Go Time – Episode #178

What makes wonderful workshops?

Angelica and the panel discuss

All Episodes

Perspectives from both the workshop leaders perspective, as well as the workshop participants. What are some top tips, things to watch out for, and ways to innovate and keep your participants engaged, especially in the remote world we are now living in.



Teleport – Quickly access any resource anywhere using a Unified Access Plane that consolidates access controls and auditing across all environments - infrastructure, applications, and data. Try Teleport today in the cloud, self-hosted, or open source at goteleport.com

Sourcegraph – Sourcegraph is universal code search for every developer and team. Easily search across all the code that matters to you and your organization: find example code, explore and read code, debug issues, and more. Head to info.sourcegraph.com/changelog and click the button “Try Sourcegraph now” to get started.

LinodeGet $100 in free credit to get started on Linode – Linode is our cloud of choice and the home of Changelog.com. Head to linode.com/changelog OR text CHANGELOG to 474747 to get instant access to that $100 in free credit.

Notes & Links

📝 Edit Notes


📝 Edit Transcript


Play the audio to listen along while you enjoy the transcript. 🎧

Welcome to our workshop edition of Go Time. I am Angelica Hill, I will be your host today. We are joined by three wonderful women and the incredible Johnny. First of all, we have Natalie, who wears several hats; among them, she is a developer advocate and organizer at GopherCon Europe, and an instructor at various different workshops, including About ML at GopherCon in the U.S, and also loves attending workshops and learning… So hello, and welcome, Natalie. How are you?

Hey, Angelica. It’s great to be here with you as a host. It’s always great to have British people in this position. I love the accent. Thank you for doing that.

Yeah, me and Mat - we just swap out, because most people probably won’t tell the difference. We’ll see. Secondly, we have one of our guests on this show, Jonas, who is an engineering manager at the New York Times. She formally organized Women Who Go New York City. She’s also coordinated and led many workshops over the years, including Interactive Go, Go Modules, and Domain-Driven Design. So happy to have you, Jonas.

Thanks, Angelica. Can’t wait to dive in.

[03:56] I’m very excited. Next up we have Anna, who’s actually currently building a workshop herself from scratch for GopherCon Europe about security in Go. She organizes the Frankfurt chapter of the Go user group, and in this role she coordinates and has led various different workshops over the last few years. So happy to have you, Anna. Very excited to hear more about your workshop.

Thank you. I’m glad to be here, and I’m looking forward.

And then last, but certainly not least, you may know him as a regular guest on this show, but other than that, he is involved honestly in every single part of the Go community, it seems. He has been teaching Go workshops for a number of years, he has run the Boston Go User Group, the Baltimore Go User Group, he’s taught at GopherCon many years in a row… He’s chairing this CFP process for GopherCon as well… And he’s just generally an incredibly helpful mentor in the Go community. I myself went to one of his workshops; it was my first Go workshop ever, so he is certainly a Go guru in the field.

He’s also currently doing some of the O’Reilly teaching online, so do check him out… And honestly, any conferences, meetups - google his name, you’ll probably see him at a million and two different meetups. So yeah, very invested in the Go community, so I’m very excited to hear your input here, Johnny.

Thanks for having me.

Awesome. So we’re gonna dive right in, and I’d love to hear first what do you find the most useful about workshops when you’re looking to learn or teach, as opposed to books, giving talks, presentations…? I might turn over to you, Jonas, first.

I think the biggest thing for me with a workshop is really the more hands-on part of it, and that you have an instructor or a TA or even your fellow learners right there with you as you’re learning… So that’s the biggest part, is this collaborative learning, where you’re really getting into it. it’s the most unique part. I think you can’t really do that in a book.

And then Anna, when you’re thinking about going into GopherCon Europe and wanting to maybe distribute your wonderful knowledge about security in Go, why did you think a workshop might be the best way to do that, as opposed to maybe doing a talk?

Yeah, I think a workshop, as Jonas mentioned, gives you more hands-on than just a talk. If I tell you something, you’ll probably say “I know it”, or good to know, but if you don’t do it by yourself, if you don’t experience what it means to do things wrong or do things correctly, or how easy it is… And I think that’s something only workshops can offer so easily. Because even if I do live coding, you won’t do anything as a listener there.

And then in terms of when you’re trying to begin thinking about what content you’re gonna include in a workshop, when you’re thinking “Okay, I wanna distribute my knowledge. I feel like I have enough experience in a certain topic and I feel ready to kind of teach”, where do you start in terms of thinking about “Okay, how do I structure this? How much information should I put into my workshop?” I might turn over to you, Johnny, for this one… Because I think that really is the highest roadblock. Certainly, I have only run maybe one or two workshops ever, and that was the roadblock for me not doing it more; I feel like “Okay, I wanna help people learn, I wanna distribute knowledge, but where do I even start?”

Well, the good news is at this point, with the lifespan of the Go community, there’s a lot of content out there. When I started doing these workshops, it was a bit harder. There was basically a handful of blogs to rely on, and a handful of learning material, maybe one or two books that folks kept recommending… So it’s gotten a lot easier as folks pick up Go and they’re documenting their own journey with learning certain aspects of Go. It’s certainly gotten easier to have a baseline, have a starting point for how you put together a curriculum/material.

[07:56] And to even think about putting together a workshop and thinking about putting together a curriculum - that tends to be a very intimidating concept to wrap your head around. The first time you do it, your impostor syndrome just kicks in hard. You’re like “Who am I to think I can teach other people?” You’re in just completely fear and panic, and somehow you push through it, and if you have a support system and people that encourage you to move forward, you kind of take advantage of that… But the thing for me was that I was on my own journey of learning Go. It’s not like I was already an expert in Go when I decided to teach my first workshop. I was really no better than the person who spent maybe 2-3 months just playing around on the Go Playground, or something. I was no better.

I knew a little bit more, and that’s all you really need as a Go – or really any language, anything you’re trying to teach; if you spend just a couple weeks learning something, you are gonna be that much better than somebody who spent zero weeks learning something… Especially if you’re targeting beginners for a piece of technology, you are gonna know it just a little bit more, just enough to be able to say “Hey, you who are just starting out and kind of confused, just like I was a couple weeks ago - let me show you what I’ve learned.” So it’s gotten easier, and it’s supposed to get easier the more you do it, as with all things in life… But you don’t just wake up one day and you’re like “You know what - I’m an expert now. Now I can teach.” There’s no such threshold.

Yeah, I absolutely agree. For me, most of the workshops were I found something that I’m curious about, I dive right in, I did all sorts of things with it, I made way more mistakes than many other people… And I just got really familiar with that specific niche. Then I started feeling more comfortable answering questions about this, and then putting into words the code behind what I build, and then explaining the different parts of it… And this is really kind of a good foundation for what a workshop is. And I think the confidence of making all sorts of mistakes and just knowing that at least some of the questions that people will be asking you, you have experienced yourself and you dealt with that while trying to figure out how to go about this is also helpful in feeling somewhat confident in going and saying “Yeah, I can teach this.”

And in terms of actually practically how do you start structuring it, is it that you get a Google Doc up, you start writing notes, you get a slide deck up? I’d love to hear maybe from Anna… You’re literally doing this right now, putting your talk together. How did you start that?

Yeah, I started with the idea, and then I thought “Okay, security in Go is a lot.” Then I collected some ideas, and Natalie organized - and also Roberto, as a mentor on the idea for me, and I had a roughly 30-minute call with them where we talked about the ideas… And that was actually really great, because he was like “Yeah, I think this idea is too techy to deep-dive into it.” And that’s my experience from doing it. Then we discussed about it, and came up with kind of (I think) a good idea.

So I think that’s important, that you have a vision in mind, that you know how your process is going. Now I’m in the state of researching a bit on what’s there already, so which resources are there… Because I can’t cover all; I have to focus on some aspects. I’m currently doing my research on this to write up my slide deck.

Awesome. I would love to hear – I know you talked about Natalie pairing you up with a mentor. Maybe we can just take a step back - Natalie, I’d love to hear a little bit more about the great program you’ve been putting in place for people putting together workshops for GopherCon Europe this year.

Yeah. So it’s always hard to come up with workshops for conferences as the conference organizer; there’s a person who gives a workshop… And different conferences go about different ways in building their workshop offerings. I would say that most talks go about on the same path, in the sense that there’s a call for papers, people submit talks, there’s a review committee, you have a rating, and then based on that you pick and invite speakers.

[12:17] But for workshops, there’s such a big variability of how to do this. I see some conferences just send out invites, other conferences have call for workshops, and some have something hybrid in between.

This year I wanted to do something I have not done so far as an organizer of a conference, so as a person who’s behind the scenes, not as a person who’s giving a workshop… And I asked Johnny and I asked Bill if they would agree to have [unintelligible 00:12:44.12] who is a developer, but have not necessarily taught a workshop just yet, and give a workshop together.

It was a pretty open-end request. You can teach an existing workshop, you can build a workshop from scratch, whatever you find right. And Anna and her technical advisor, Roberto Clapis - thank you very much for doing this; here’s a shout-out to you, Roberto… Anna is a Ph.D. researcher in security; I guess you get the support behind the stage, and not as a two people teaching the workshop… But this is definitely a new format in GopherCon Europe, and it’s pretty exciting. In about 1,5 months we’ll see how the feedback is, and I’m sure it’s gonna be anywhere between “This is awesome” to “This is amazing.” [laughter]

Johnny, you’re one of the mentors… What happens if you get paired with someone who comes to you bluntly with an idea that isn’t fully formed, that is kind of handwavy? If it isn’t feeling like a viable workshop, how do you coach them, how do you help them form that idea if they’re not coming to the table with all of the materials, all of the ideas that you may have liked?

One of my thoughts is that my problem would be I’d come just wanting to teach everything to everyone, and just getting over-excited, like “I wanna teach everything about Go in an hour, and I can do that, for sure.” [laughter] But I’m sure there’s the other side of the spectrum, where you have people who really wanna push themselves, they wanna give a workshop, they wanna grow, but maybe they’re like “Oh, I only feel comfortable perhaps talking about a small number of concepts.” How do you keep them in that comfort level but also encourage them to stretch?

I should take a step back and say thank you to Natalie for coming up with this idea. I think it’s an excellent way of creating more bandwidth within the community for people who can teach. I don’t think it’s gonna be a surprise if you go online and start searching around for who teaches Go around the community and you see the same people coming up over and over again… For better or for worse, I might be one of them. The thing is, we can’t rely on just a handful of people to do all the teaching. That’s not gonna scale. And frankly, we need a diverse representation of teachers.

One of the things – just a small tangent and then I’ll come back to your question… One of the things that has always bothered me – my day job is as an SRE, but I do do professional training on the side… So one of the things that has always bothered me within that training industry - and the technology training industry in particular - is that there are so few people who look like me. That bothers me every time I go on Packt, or O’Reilly, or wherever, and I see that the portfolio of trainings happening - it’s like there’s maybe one or two out of 50, 100 trainers, professionals who have been doing this for a while and happen to be teaching; there’s just one or two faces/people who look like me.

So even when I get tired, I’m like, “Man, should I retire from training? I’ve taught the same material over and over again…” Part of the joy of teaching a material was because I was learning it at the same time. So now I’ve moved [unintelligible 00:15:48.22] I’d like to pursue other things… And every time I do that and I go and look at those pages, I’m like “I can’t… We need more people.” We need the next generation to start coming in. And the best way to do that is to help grow these people. They’re not gonna just show up one day; we have to take an active role in developing and growing these people. So Natalie, thank you. Big shout-out to you. I think it’s an excellent idea, and I really hope it succeeds beyond the GopherCon EU conference.

[16:23] Now, to answer your question more specifically, when someone comes to you and says “Well, I really wanna teach this particular subject”, and as you inferred, the idea may need a bit more developing, it may need a bit more padding, if you will, adding some missing pieces, the biggest thing you can do as a mentor is to take the idea and develop it, provide the [unintelligible 00:16:44.05] “Well, have you thought about if you’re sitting down for the first time and doing this, or maybe if you’ve been doing this for a little while, how might we make this more interesting for somebody who’s not a complete newbie, but wants to – maybe you get them to think about a particular problem in a different way.”

If you are a complete newbie, how am I approaching this? When I sit down, how am I gonna think through this? Because if you yourself happen to be a newbie, you’re gonna have a very different perspective than somebody who’s on the other side and has been maybe playing around with the language for a while. So it’s about giving enough context to that individual to say “Hey, you know what - in your workshops very rarely are you gonna have everybody who’s at the same exact level.” I’ve done this many, many times; no workshop has the same level of competence for people coming in for a given piece of technology. You might have some people who know a little bit more, you might have people who know a lot, and they just showed up just because that’s the only block of time they could carve out to come do some practicing, but they already know some of the material… You might have people who are complete newbies… You tell them “Open up your shell” and they look at you with a blank stare, “What’s a shell?” Things like that.

So you have to be able to somehow make the material accessible enough, make it interesting enough that if you are a newbie, it’s not overwhelming; when you leave that workshop, you’re not gonna just forget about it, because it confirms your suspicions that it was way too complicated and it’s not for you. You wanna avoid that. But at the same time, you make it somewhat interesting enough for somebody who’s not a complete beginner to find joy in the workshop… And a lot of times, you end up making these people impromptu TAs in your workshops as well.

What I usually tell a new trainer is to basically say “Hey, have multiple levels to your material”, for example. What I really enjoy doing in my material is to basically start out with one idea, and I keep layering on some sophistication to the idea as we go. So it’s the same idea, the same thread you’re pulling on throughout the entire workshop, and then we just keep adding some complexity to it, some necessary complexity to it, in some ways to actually solve those more complex problems as we go through the workshop. That way it’s the same idea that you’re sticking to, you’re not explaining a new domain every time you go to a different exercise… But that increase in complexity allows somebody who’s brand new to be able to spend time in the sort of lower tiers as they wrap their heads around things… And for those who are a bit more experienced, they can go ahead and keep climbing the ladder to get to the more complicated, the more interesting stuff.

Providing that context of basically “Hey, there’s gonna be a lot of different folks at a lot of different skillsets in your workshops. You’ve gotta try and give each of them a little something” is one of the core things that I try to teach.

Off the back of that, I’d love to hear from you, Jonas. I know you’ve taught a lot of different workshops to a lot of different levels, from (as I mentioned) intro to Go, the absolute “people are walking into this room have no idea what Go is”, all the way up to more intermediate etc. I’d love to hear two things. One, how do you think about what to include per level, and secondly, how do you make sure that even though you might say “Okay, this is an intermediate” or “This is a beginner”, kind of to what Johnny said, you give everyone enough of a challenge, but also not pushing them too far that they then disengage and go “Oh no, this is too difficult. I can’t do this.”

[20:03] It’s a good question, because it’s something I’m always fine-tuning… So the first thing I do really think about is my audience. I try to be really mindful… You know, it will depend on “Am I doing this workshop through a business, or through a Golang meetup?” You’ll have different perspectives coming from that audience, so usually I might try to then cater what I focus on or what I emphasize based on that audience a little bit.

For example, when I do intros that are more focused on people who are learning programming generally, I focus maybe less on why you should use Go and Go is so cool, and more about using Go to help you understand programming… And then I’ll kind of note some of the cool things about Go. But I want you to understand programming first, before I convince you that Go is the best language.

I also try to really focus on - whatever level, I wanna make sure people are leaving feeling like they’ve spent time in that workshop, getting enough hands-on experience that they can then take it forward. So I think kind of to what Johnny was saying, build on with each exercise. You’re always gonna start a little simple, and even if a few are more advanced, they’ll keep going… But I always wanna make sure everything should build and feel cohesive. That’s the main thing I find, is like I want everything to kind of connect in the exercises. They shouldn’t feel just kind of like “Here’s one exercise, and here’s a totally unrelated one”, because I think that helps create the flow for – even if you’re at different levels, you kind of see how it all comes together at the end. That’s the goal. It should be a nice little package at the end.

And then even just with the various exercises and hands-on things, I do try to provide different options to pursue. So you’ll emphasize it’s a beginner workshop, and you’re gonna get someone there who’s like “Oh yeah, I’ve got this Go server running.” So I try to provide a mix of “Oh, if you finish this quickly, try this”, just so there’s also different way people can engage… Because it’s hard to get just one skill or expectation in your group.

And then turning to how workshops have changed since we went into this weird, remote world… I know we’ve always had virtual workshops, but I would love to hear from both those who are stepping into it, doing workshops in the more recent times, versus those like Johnny and Jonas, who have been doing them for many years… Have you seen a change in the way that you would approach remote workshops? Both in terms of live versus remote, but also remote workshops in normal times, versus remote workshops now, when people are staring at their screens most of the time. Is there an adjustment? Kind of an acknowledgment that maybe they need more breaks, or kind of you need to change it up even more? Maybe Natalie or Anna, as you’re thinking through your workshop? Anna maybe?

[unintelligible 00:22:40.02] from an attendee perspective I realized that workshops can be much better digital if you have a good speaker… You can really use the digital material, in the sense that you can make stuff interactive and give breaks… But that’s really challenging.

Having said that, I think that’s also one of the biggest challenges. You have to take into account that you split up your material and make it interactive, because you can’t go easily to the people. You have to really know how to interact with them, where to ask…

I agree with Anna very much. My experience as a person who gave more in-person workshops and several workshops too, I would say that you need to be more engaging. There’s something about the energy in the room, which is not the same when it’s virtual… And it’s very hard to reproduce. It’s a lot more on you as the instructor; it’s also a lot more on the attendee, in the sense of when you are in the room, when you’re in the physical workshop as an attendee, I as an instructor can see how many roughly – is roughly half the room understanding what I’m doing and half thinking this is too fast or too boring? Is it a different split? Is everybody bored? Is everybody like “Oh my god, how did she reach this point?” and so on. When it’s virtual and everybody has the camera off, and maybe like two people have a picture, which is static anyway, you have no means of reading the room, so it’s on you to ask more questions, to give more pauses…

[24:21] Also more breaks, in the sense that in a physical workshop it would always be, let’s say, 3, 4, 5 hours, and maybe 1-2 breaks in between, and in virtual workshops every round hour you would give 10-15 minutes, because it’s impossible otherwise. Because that energy is not there, you have to compensate in this means.

And also, having a teaching assistant becomes a completely different type of help that you need. In a physical workshop it would be you explain something, then say “Now we exercise this”, you leave the thing running on the screen, and then you and the teaching assistant go within the crowd and answer all the different questions. And you have the option to approach each person one by one, look at their screen together and understand what’s going on.

In a virtual one you have teaching assistants, and people usually for some reason are shy to ask for help, and then there’s always the 2-3 people who are very active and very understanding and give you a good feedback, but they don’t represent the crowd, and it’s very easy to engage with them and forget that.

And then there’s other 2-3 people who are very good in giving feedback, but they don’t keep up with you, but they also don’t represent the crowd, and they can easily take up your resources.

Finding a way to balance all that is another extra work for you as an instructor. Then between all that also try to make sure you meet the time and also keep your cat quiet… This is becoming like a whole challenge show.

Let me tell you, I miss face-to-face workshops. I really, really do… Because I can’t tell you how many times I will introduce a concept, and then know how fast to move on, how to pace myself; how to know when everybody is ready to move on, when nobody is ready to move on. As a teacher, you can look at people’s faces in the crowd and see who’s getting it and who’s not. You can get those physical nonverbal cues… Man, they are gold to a teacher, because they help you with pacing, they help you with knowing that “This metaphor I just used - did that make sense at all, or do I need to stick to something simpler?” So a lot of those cues - you just lose those in an online context.

And let me tell you - like Natalie is saying, when you do it online and folks a lot of times have their videos off, especially if you have a multi-hour, 4, 5, 6, God forbid an 8-hour long/full-day thing, you should expect people to tune in and out… Because yes, they might be in your class for that amount of time, but life’s still going on; they’re still getting pinged, and buzzed, and emailed, and maybe there’s a boss asking for something and they can’t wait till later, or whatever the case may be. Maybe you have children pulling on your leg, or whatever… I mean, things happen in the real world, and as a trainer, you wanna be aware of these things, and also be willing to change your style a little bit as you go. So again, having more questions, keeping people engaged…

Sitting at your desk for eight hours straight, with some breaks in between - that gets tiring very quickly, so you have to find a way to keep them engaged, whether it’s through questions, and whether it’s actually letting them do some of the work…

One of the things that really bothers me in terms of training is that if you have somebody talking at you for eight hours straight, minus breaks or whatever it is, I need to be able to actually hear what you’re saying, see you show me some examples, and then for me to actually try something using the knowledge you just gave me. Because otherwise, this might as well be a recording that I can play/pause whenever I want, and do it in my own time, in my own pace, and I can find my own exercises if there’s not gonna be any time for exercising during the workshop.

[28:17] One of the major benefits of actually having a live instructor, be it online or face to face, one of the key advantages is that you can ask them questions in real time when you don’t understand something. If it’s an idea, you can pause it, and then you have to go on your own, and your specifics – it might take you a long time to find answers for your specifics, but in a live training, you get to ask your specific question, and the instructor then tells you “Well, maybe you’re being too specific. Think about it this way instead.” Or “Yes, there’s an answer to your specific problem.”

So you should take advantage of those things if you happen to be a student… But yeah, to bring it back around the whole pandemic - I can’t wait for that to be over, man… I need to get back into the classroom, looking at people in the face so I can actually enjoy this again.

Aside from needing to juggle a million and two things, as Natalie said, I’d love to hear whether those of you who have done workshops pre-pandemic/post-pandemic now fully remote, when you’re planning out your workshop, is there a kind of thought put into – so putting social aspects to it? Do you do maybe - if it’s a smaller workshop - an icebreaker at the beginning, “Hey, everyone introduce themselves.” Because certainly, as someone who loved going to workshops in person, one of the cool benefits was I just met so many awesome, amazing people that I could form connections with, learn from after the workshop, honestly just make friends… And I’m interested if that’s a consideration when you’re planning out a remote workshop. Is that important? Do you feel like you can’t really do that in a remote setting? Or if you can, how do you do that?

If I was planning a workshop, I would just probably get everyone chatting the whole time and not end up getting to the materials… [laughs] Jonas, is this something you’ve put thought into?

[32:14] Yeah… And I’m trying to think back on some remote things. Certainly, leveraging the breakout functionalities in these tools… It’s a nice tool; honestly, it’s maybe one of the benefits of having remote is you can use those… And I’ve found sometimes too if you have a cohesive breakout group that you’re with throughout the whole training, so you’re kind of going back and checking in with the same people - that can be kind of nice. And trying to keep up where I’ve set up like a Slack channel too, so that we’re – a bit to Johnny’s point, you can share updates and the resources as you go, so if people are jumping in and out, they can kind of catch up… But then also it’s a space where everyone can just be to chat after, or catch up, or connect through that means as well…

So I guess just trying to use all the different tools available. In some ways, I just try to think of what’s every technical option I can leverage, and let’s throw it out there, and then see what sticks.

I think you can also use nice icebreakers in the beginning. I have seen that also already, with putting a needle from where you are; there’s a map, and a tool, and you should simply draw a circle or something and put your name next to it, or something like this. That’s something funny.

Or simple questions like “Who is a cat lover?” - Yes, no or something, such that you have a state… You have something to laugh, and you break the ice a bit. I think that’s also something you can do digital, as well as in-person. I think that’s valuable. Having said that, it also depends highly on the attendees. At one lecture I tried things and I struggled so much, because I found it much more difficult to make stuff interactive digital than doing it in-person. So I’ve had like “Yeah, what should I throw all at you? I want to have some interaction…” That’s also something really cool, but as I mentioned before, people have to engage with that… And I think it’s much easier to be someone anonymous digital now, especially as a lot of people will turn their cameras off, which I think is not the coolest thing to do, especially in a workshop like this… Because in person you would also see each other, and a face tells so much, but you can’t get only by seeing. And if I don’t have the camera on, I could also look at the recording, or something like this, if I don’t engage. So what’s the benefit of attending a live workshop? But that’s only my opinion.

For sure. I would love to hear, how do you keep your – it goes to two parts; from the veterans who have done a lot of workshops, how do you keep your material fresh, and fun, and engaging? And for those who are kind of more new to this space, how do you think about keeping them entertained? Is it like trying to do call-outs, is it telling jokes, is it having interesting analogies?

I’ve done a few workshops where I’ve tried to crack a joke or do like a clever analogy, and it’s fallen so flat… Everyone’s faces were blanks. I don’t know whether they just couldn’t understand what I was saying, or it was a really bad analogy…

They were laughing on the inside. [laughter]

I know, Johnny, you use a lot of analogies… Is there a time that it fell flat?

Oh, absolutely. It’s one of those things where over time you sort of find out what works, and what works for you. So I’ve tried picking up random jokes here and there, but because they didn’t come from my life, or they didn’t come from my experiences, when I’d tell them, even though I’d find them amusing, people – you know, because the delivery ended up somehow… The authenticity of it, because it wasn’t my story that I was telling, it was missed… And I learned very quickly people can always tell when you’re being authentic. At least they can tell when you’re being fake and not completely honest. These things - you learn them the hard way, and for the next one you try to do better.

[36:30] One of the things that I really had to stop doing in my teaching career, if you will, is to basically beat myself up for the last training. I’m like, “Ugh, I didn’t get to teach that thing…” or “Ugh, I hated the way I explained this particular thing.” Like everything else, you get better with it over time. I love analogies, especially cooking analogies… I used to use that, how programming is like cooking, and you have recipes, and you can call methods, and pass in ingredients to bake a cake, or whatever… I used these things because during that time I was learning how to cook, so I found a way to incorporate my real-life experience into what I was teaching. So those deliveries were authentic, and people laughed, they could relate…

These things - you have to somehow tie real things that happen to you, to your material, in some way, to liven it up, to bring it alive. And you may not realize how much of an impact that has. Trying to tell somebody else’s story, tell somebody else’s joke - a lot of times it’s gonna fall flat. So you’ve gotta own it; you’ve gotta own your stuff. Own you, really. You’re giving so much of yourself as a teacher.

The other thing - and I hope we get to this - teaching other people, especially if you are somewhat of an introvert, and you may not be able to tell, but I really love being by myself. Right now I’m being all open and chatting and it’s very easy to think that folks need to be an extrovert to be able to put yourself out there to teach, and even to talk at conferences, or at meetups, whatever it is… It can be very hard to step out of yourself to do that, because of that fear; you always fear that “Oh man, I’m gonna stand [unintelligible 00:38:12.26] in front of all these people… Again, it’s very hard to do that. But you don’t have to be an extrovert to be a teacher. That’s something that you can train yourself out of. Anyways, I’m starting to ramble now, so let’s move on…

No, for sure. I’d love to hear - Natalie, when you’re thinking about how to keep your participants engaged, are you cracking jokes, are you working out the analogies? How do you keep your participants engaged and excited?

My ultimate goal, when all else fails, I say “Please ask me a question so I can move on.” And then somebody feels brave enough to ask something, then finally the secret comes that “Oh, I also didn’t understand that.” So this is always a good question to keep in the toolkit, but probably also good enough to use it too much.

I try to ask people to keep the camera on as much as possible, and I also ask people to keep the audio on, and I encourage people not to just type their questions, but also to unmute themselves and to ask them. If I have a teaching assistant, I would also say “If you would like, I can read your question, or the teaching assistant can read your question, but maybe the person who posted this question, you would like to unmute yourself” and then kind of develop a bit of a conversation.

I think there is – it’s hard to reproduce this peer pressure that is there, that is present in an in-person workshop. In an in-person workshop if I tell a joke, somebody laughs because they’re polite, and then everybody else laughs because, well, people are laughing. But when everybody’s silenced, then it’s like I told a joke and maybe one person laughed, but nobody gives you this feedback and this acknowledgment, also reminding yourself that “Well, statistically, at least one person laughed, so that joke was okay.” This is kind of a few things from the toolkit.

[40:08] Kind of touching on that, I’d love to – because we haven’t chatted about it yet, the value of TAs, and how you can use your TAs to really add to that workshop experience for the participants. Johnny - or really anyone wants to jump in on how you think about TAs?

I can jump in, and I really wanna hear some other perspectives as well. The reason I wanna jump in is because I think, or at least I’m hoping in my head, that all of you have had the same experience. I was a TA before I was a teacher, because I was too afraid to actually be the one doing the teaching… So I’ve found – at the time I was in Boston and we had lots of Rails Bridge workshops going on, and I was doing a ton of Ruby on Rails at the time… And I was like, “Okay, I know I don’t know enough…” Well, I knew about the technology, but I didn’t know about teaching. The two are very different things. Just because you know a technical subject doesn’t mean you can teach it. These are very different skillsets.

So I was self-aware enough to realize “Okay, I’m not in a place where I can actually do the delivery of the material. There are others who can do that job way better than I can. But I can help in other ways. I can be in the room, help somebody figure it out while hopefully not touching their keyboards; that’s a sidenote to TAs - don’t touch other people’s keyboards. That’s even more so now in pandemic times, after we’re done with this… But even before then, you didn’t touch people’s keyboards for a different reason; because if you take that power from them, they’re not gonna learn as much. So don’t touch people’s keyboards. Anyways… [laughter]

So as a TA, I was like, “Okay, that’s the way for me to sort of immerse myself, expose myself.” And really, when you’re that up close and personal with somebody who’s learning something for the first time, you get to see their struggles, you get to see how they struggle. And now, when it’s your turn to teach, because you’ve been a TA half a dozen times, you know exactly where the common pain points are. You know exactly where they get stuck; when somebody up there at the lectern says something that they think makes sense to them, because maybe they’re a little bit more advanced, so they mention a word, and they think everybody knows what that word is… I’ve had students turn around and look at me and say “What did he just say?” So now we sit down and I start decomposing what that means, sort of unpacking all that prerequisite knowledge that whoever is up there teaching the subject didn’t realize that they needed to convey… So now I’m sitting down as a TA, sort of explaining some of these things. So that experience was invaluable in helping me understand what it is like to actually be a good conveyor of information.

Yeah, and I’ll just add to that point - your TAs are your eyes and ears. They’re so helpful. As an instructor, you have so much – I mean, it’s stressful, you’re trying to balance your slides and your talking and your exercises, and your TAs are really gonna help you get that real read on the room. You’re trying to read the room, but your TAs are right there and they’re letting you know where are people getting stuck, slow down… They can help be a bit of an advocate too for that, and give you that check… So they’re a huge resource, and I think especially if maybe you’re newer and you’re nervous about doing it, get TAs and get that help, because they’re just gonna make everything a little less stressful when you’re trying to teach. And they’re good sources of feedback. I always try to get feedback from TAs at the end as well. They can usually give you some good insight. And I always encourage them to jump in as needed, too. They might notice that I’m saying something that no one is getting, and maybe I don’t notice it… So I encourage them, “Please step up and add more illustrations or something if I fail.”

And I think to points before, I’ve definitely adopted things from TAs, who I’ve been like “Oh, they explained that so well. I’m gonna use that moving forward.” So it’s an invaluable resource for someone who’s leading a workshop.

[43:56] As a person who’s not native in English - as you might know this by my accent - a teaching assistant is a term that I first learned in university. This was somebody who was giving classes about whatever the professor was teaching; so the teaching assistant was teaching the hands-on or even kind of workshop equivalent to what the professor was theoretically teaching. But then when I started teaching workshops, I learned the teaching assistant in this context means something pretty different; this is somebody who has some technical knowledge, like “My Docker will not run. I don’t know what this error means.” But it’s not necessarily somebody who’s as experienced as you are in the content. It’s not somebody who’s able to answer all the questions; maybe some of them yes, but many times it could be a person who has more housekeeping duties, let’s say, than I in the beginning expected from a teaching assistant to have… In the sense of this is a person who would tell you “Hey, this is time to pause. Many people are asking you questions. You are on mute.” So this level also.

And it’s just worth pointing out I guess that “teaching assistant” is such a context-rich word, for me at least, and definitely valuable, because - we talked about this, but reading the room when you’re in virtual versus in-person is very different, and you definitely need a second pair of virtual eyes in your virtual crowd, and that’s like an extra duty for the teaching assistant… Which is also different for a teaching assistant from in-person versus to a virtual workshop.

So is there a perfect equation of teaching assistant to participant? Because personally, as an attendee, I would love my own one-on-one TA… But I wonder if too many TAs is too many cooks in the kitchen, as it were…

You’re asking what would be an ideal ratio?

Yeah, what is an ideal ratio. Is there ever like too many TAs? If you have, say, a workshop of 20 people, one TA is not enough. I’m just interested, just because from a participant’s point of view, I - which maybe I shouldn’t say, but every workshop I go to, I try and find a TA who I can be friends with, who will kind of just sit near me the whole time… I’m just like, “Hey…”

“Explain everything the instructor said. But a little bit clearer.”

Personal tutor. [laughter]

Honestly, having been in workshops with Jonas and Johnny, now that I’ve said that, they might be able to remember that I kind of recruited one TA to be like my person…

I remember… [laughter]

And then they’d start walking away, and I’d be like “I’ve got a question, actually…”

“Why don’t you pull up a chair? Sit right there, you’re not going anywhere.” [laughter] To your question, I’ve found that the closer the material is to the beginner level, especially how you market the training, or the workshop, whatever it is, if you’re attracting beginners, you’re gonna need more TAs. So for those workshops, I try to have a 2 to 1 ratio; two students per TA. And it makes it fun when you have a 40-student workshop, and now you have a lot of people who are mostly seemingly just standing around, going from table to table… But it usually ends up working out quite well.

Now, if the material is in a more advanced side of the equation, then the fewer TAs – because your TAs are no longer helping with somewhat computing basics… For example, like earlier, somebody not knowing what the terminal is; they’re no longer having to teach some of these things on the way to actually get into the point where they actually can execute on the material, the exercise.

So these people are self-sufficient, and when the material is advanced and the people you are attracting in that workshop are more advanced, they don’t need that kind of handholding. So you can get away with having basically 5, 6, 7 students per TA. It depends really on who you’re targeting with your material.

[47:45] I have to say, I’ve had a way worse ratio… [laughs] Most of the workshops that I’ve done had a few tens of attendees, and I had one, at most two TAs. I remember one workshop that I gave that was particularly bad. It was a beginner’s workshop, and I had no teaching assistants. It was in a university building and I was standing in a huge room; they probably teach calculus or something there… There was like hundreds of seats, and I was also with a few tens of students, teaching basics of Elasticsearch or something not Go-related… And that was particularly not successful. So definitely, I agree, Johnny, with what you say, that the more beginner the crowd is, the more you need a ratio that is closer to one on one.

And then I’d love to hear a little bit about, from your experiences, what makes a good TA.

They feel comfortable interrupting you. [laughter]

Yeah, and I think Johnny touched on this a bit, but I think someone that just recognizes they’re there to kind of guide someone, not to solve the problems for them. You’re almost more of a rubber duck; you’re really just trying to help them understand, you never wanna just come in and fix it for them. So understanding that your role is more to help them, guide them along… That’s the main thing. And just empathying, understanding that – don’t make any assumptions on where the person’s coming from, or where they might be caught. Just try to be really open to where they’re struggling, and just try to understand where they’re getting stuck, and help them, and don’t be like “Oh, we’ll jump through this. It’s easy.” Avoid that kind of stuff; just really be open and take them step by step.

What I’ll add to that - you touched on it, Jonas - you have to realize that it’s not about you. People are there to learn. I have vivid recollections of workshops I’ve taught that I basically targeted at under-represented folks in tech… And I have vivid recollections of folks sitting there, struggling, a lot of them, to cover some of the basics. The thing is, here I was, showing up to teach Go, and I’ve prepared my material, I’m feeling myself, I’m like “This is good, this is good stuff. This is gonna be a great workshop. There’s gonna be so much information being relayed, and by the end of it they’re gonna walk out of there being Go newbies, and ready to start internships, and careers, and everything.” My aspirations were so high for the results of the workshops that it became about me and not about the people doing the learning.

Truth be told, I didn’t get like halfway through the content, because I didn’t realize that my target audience - they had so much learning to do to even get to the point where this stuff I was talking about made sense. Same thing for my TAs - we’d huddle up afterwards and they’d tell me “Man, a lot of these folks are struggling with basics of computing.” They have a laptop, whatever it is, and they bring it in, and you tell them to go to the command line, or you tell them to install a program or to run a program, whatever it is, and they’re kind of like “Well, where is the icon on the desktop? I need to double-click that thing and launch it?” Again, that’s part of how you market your training, how you attract your target audience, and all of that… But if you are targeting beginners, especially if you’re targeting folks who are really under-represented in tech, you should expect to have an uneven distribution of some of that basic knowledge that you might expect with folks that are sort of represented or over-represented in tech, depending on how you wanna look at it.

So it’s not about you, the teacher or the trainer. It’s about the people you are gonna teach, and sometimes you have to adjust on the fly, which I’ve had to do many times… Realizing that, okay, once you get into a workshop and you realize “Okay, this is how fast I can go.” Sometimes you can’t go fast at all; sometimes you have to realize “Okay, I accept that I’m not going to get through half of this material.” Now, once you accept that, slow the f down… [laughter] Making sure that when people walk out of there, they have enough baseline knowledge and enough zeal for continuing to learn on their own… Which is the key thing that I really – that’s my bar for successful workshops; when you leave that workshop, are you gonna get in touch with me afterwards and say “Hey, so I’m continuing to do some of the exercises and I’m stuck here.”

When that happens, I am overjoyed, because that means that I did the job that I was supposed to do, which was as a teacher I’m supposed to inspire you to keep learning; I’m supposed to make the material that before you walked into the workshop seemed so complex and so over your capabilities and your abilities to actually learn and be able to do; that fear that you had - I want you to walk out of that room no longer having that fear, knowing that there’s a challenge there, but that you can do it, and you can do it on your own, and that you have people to help you. You can get in touch with me to help you if you need it, but you can walk out of there having lost that fear and having gained zeal for learning the material. That’s my job as a teacher when I teach, to remove that fear.

Again, it’s not about the teacher, it’s not about the TA. We have to take a backseat in order to actually serve our students.

Along that line, it’s all about your attendees, I would love to hear how you think about almost like attendee management. If you have a group who aren’t speaking up, or there’s a few people who you’re not seeing them engaged, how do you help them feel comfortable, encourage them to participate? And on the flipside, if you have someone - and if I’m honest, if I think back to myself in workshops in the early days, I think I was this person… If you have one person who’s taking up a lot of space and is asking a million and two questions, and unbeknownst to them maybe taking time away from others, how do you maybe help them give others space?

Anna, when you’re lecturing, when you’re thinking about your workshop, how are you thinking about almost like people management, and trying to make sure everyone feels included and everyone feels like they’ve had a little bit at least of one on one attention, I guess?

That’s actually a very good question, and a challenging one. I try to engage people. If you engage them, you get directly feedback from them and know how it’s going. If I see that someone is asking questions over and over - I had that once in a local meetup, or a workshop, a small one - I said to the one person “If there are other questions, try to google it, search it.” I give them a hint, and then I move to the next person, to equally spread my end.

I actually had one TA – there are times, because if we’re like 10-15 people, it’s not possible that two people concentrate only on one person all the time… And saying that friendly, I think that’s okay; being aware of that.

For sure. And I agree, it’s very challenging, 100%. I don’t know whether Natalie or Johnny or Jonas, you have any tips? Because it’s certainly very difficult.

I think if it is the case for someone speaking up a lot, I’ll often use the “Hey, you know what - I feel like you have a ton of questions. Why don’t we chat a bit later? I wanna make sure everyone else has time.” Try to note that “Yes, I wanna help you, but we’ve gotta help everyone.” That usually works pretty well.

And I think for the quieter folks, I’ll note again that TAs are great for that, too. Sometimes if I see someone that looks quiet, I might just ask a TA, “Hey, why don’t you just check in with them a bit?” They might be shy, they may not wanna talk up, but just checking on them. So TAs help with that a lot, too.

For sure. Awesome. So I’m gonna ask one last question, until we move into what arguably be my favorite part, which is unpopular opinions… But the last thing is - for all people looking for workshops, what are some tips for looking for workshops that are gonna be beneficial? Is it that you should look for the leveling, you should look for who’s gonna be leading it, and look at their background? How do you identify good workshops as someone looking to learn?

Of course, take the instructor with the most Twitter followers. [laughter] I would probably evaluate that a workshop feels pretty good if it has a clear explanation of what is your expected knowledge; is this for complete beginners, or should you have some knowledge? This will help me understand that this is a little bit leveling, and kind of like being on the same page of what will be the level of it. Because what is intermediate for you is not intermediate for me. But if you say “I need to be somebody who developed at least one web app and deployed it once”, I will understand a little bit better what does it mean.

Also, something like “Here’s a list of the topics we will cover, or maybe this is what you can expect that we will have accomplished.” Then I feel that this is a workshop that is framed enough, and I know what am I stepping into.

[57:54] I guess just also be mindful of your learning style, and what’s effective for you, and how they’re catering it, and if it’s gonna work for you. Be realistic about what kind of things work for you and don’t. I definitely feel like especially in a virtual world I’ve tried different things and I realized “Oh, this is horrible.” I can’t pay attention. I need to recognize that this is not a good format for me. You wanna get the most out of it, so kind of recognize what sort of things help you really learn versus not.

This is a hard one… Anna, were you about to jump in?

Please, please do. [laughs]

I wanted to add to Jonas’ answer that I think it’s important that you be aware of what works for you, and that you also leverage people you know. Natalie asked [unintelligible 00:58:41.11] information about what’s working, and one other thing I realized for myself - also looking a bit more into your timetable, if you have the time to attend those workshops. Because for me, being for several hours in some workshop now in a virtual setting is much more exhausting than it was before. So if I know I have a week full of meetings, I’ve found even the coolest workshop or get-together more exhausting than before, and then it’s like “Do I learn a lot afterwards?” So that’s something very specific to this remote setting, and I think it’s also important that you’re aware of this.

Awesome. Well, we have come to what is arguably my favorite part, which is where we hear your unpopular opinion. It can be about anything, it does not have to be technology-related, Go-related; it can be about genuinely anything.

[59:40] to [59:57]

We’re gonna turn over to our lovely guest Anna first… What is your unpopular opinion?

Recently, I realized that this awesome compile time of Go eliminates my two deep breaths when compiling it, because it’s too fast. [unintelligible 01:00:16.03] it compiles, and I know I can two deep breaths before looking at the screen, seeing the errors, or seeing that it succeeded and be happy… And for the Go program, that doesn’t work, because I get the results directly. [laughter] So it’s a bit too fast… Which is great.

So that’s your unpopular opinion, Go is too fast. [laughter]

Oh my God, I love that. And our lovely other guest, Jonas - what is your unpopular opinion?

This is one I feel like I’ve noticed more since being remote, but I really generally don’t like Slack threads, except for maybe a few exceptions… And I think based on how everyone uses Slack, I’m in the minority… But I get lost, I have a hard time finding things, and it’s just too much. And there are now threads in DMs, and that’s absurd. I’m sorry, that just doesn’t work for me. I don’t like it. [laughter]

I have to say, at least for me, this isn’t unpopular. I love this. It keeps everything organized; it’s so nice. I could not enjoy this more…

See? I knew it. [laughter]

Alright, yeah. Clearly, I’m the minority here.

You’re the winner. This is an unpopular opinion.

I mean, is there a way to find a middle ground, where if a thread gets to 15, then you have to change it to some other form? I’ve been trying to implement that, where if a thread gets over a certain number, then we have to jump in a Google Hangouts, but not everyone’s decided that they wanna do that, because arguably, people don’t really wanna be in Google Hangouts. They’re more adverse to the Google Hangouts than this massive thread, I’ve found.

People are actually chatting on Slack already about that…

[01:02:10.07] Everyone’s gonna put things in threads… [laughter]

[unintelligible 01:02:13.02] and that’s starting to be confusing…

Multi-threading… I’m terrible – if I come to a thread that’s longer than I care to read, I’ll often be like, “Hey guys… I’m really sorry, can someone give me the TL;DR? So that I don’t have to read this massive thread…” I think that’s definitely up for debate. I’d be interested to see who finds that unpopular.

Natalie, do you have an unpopular opinion for us?

Mine is also about a very useful tool in the tech sphere, Twitter…

I think we should stop following people, and adopt lists instead. I saw this as a recommendation of Cindy (@copyconstruct), who I think is a really great person about everything infrastructure-related. Cindy said that she stopped following everybody; I think she has something like zero people she’s following, and she just organized that into lists. And not only it does not show you ads, which is nice, or promoted tweets, but also, you get to build your feed to whatever content you want to see now. I’ve slowly started implementing this as well, and I’m step by step unfollowing people and putting them into more categories… If only few people do this, if I unfollow everybody in this chat, it will be a little bit rude, as if I don’t care about you and I don’t like you… But it’s actually not true. I am consuming your content, and only when I want something related to what you tweet about. If we’re all gonna do this, then it’s not gonna be about polite or not, or who has more or less followers, or “I don’t follow you, you don’t follow me” or something in the Twittersphere manners… [unintelligible 01:04:08.15]

Yeah, because my social capital and my self-worth is directly correlated to how many Twitter followers I have…

Is that your unpopular opinion?

No, that isn’t actually true… [laughter] That is not actually true. Honestly, I feel like we are overtime, but Johnny, if you have a very succinct, pointed unpopular opinion, I’m ready for it.

I do, and maybe you’ll like it.

I think every programmer should at some point try management for a short stint. Try going into management, even if it’s just for six months to a year. And you can go back to being an individual contributor if you want, but you should at least try it once. That’s gonna change your perspective on a lot of things. So yeah, the manager is not the enemy.

Plus one hundred. And product managers are your best friend. Side note… [laughter] Well, thank you so much, everyone. This was truly a delightful conversation. I’m really sad that we didn’t have more time; I think we should have talked for hours on end on this topic… But thank you so much. Please check out Anna’s workshop coming up; you can check it out at GoperhCon Europe. I’m sure it’s gonna be brilliant, and obviously, all of the lovely speakers will be on Gopher Slack, so ping them with many, many questions… And hopefully, you’ll attend their workshops. Thank you, everyone.



Our transcripts are open source on GitHub. Improvements are welcome. 💚

Player art
  0:00 / 0:00