 It's my lame attempt at turning the very insulting those who can do saying into something nicer. I'm Kenneth Love. You can find me on most things at my own name because I'm not creative. And it's rarely taken. And then I was supposed to tell you to do the feedback thing, and then I noticed nobody else put it on there. So now I feel weird. But if you want to do the feedback thing, it's on there. So feel free to do that. So I work for a school named Treehouse, which is on my shirt. Sorry, I got loud there. We do online training. So you can come to us, pay a subscription fee, and go learn Python or JavaScript or C plus C sharp or whatever. I also speak at conferences, do videos, corporate training, things like that. All of that's just stuff under the teaching umbrella, kind of to give you an idea of my background. I have no training as a teacher, though. I've made it up as I've gone along so far that's worked. Hopefully it stays that way. So I'm going to try and I'm not going to talk to you about how to teach a language. I know nothing about pedagogy, so I'm not going to cover pedagogy at all. I don't know the science behind teaching. But I'm going to talk to you about what I've done, things that I think you can do. Your mileage may vary, of course. But it's things that are meant to make teaching more diverse, more inclusive, and to help prevent people from shutting down their learning while they're working with you. I also have to warn you that I'm very much a social justice warrior, so if that bothers you, now you know. You can leave if you want, but I'd rather you not. So let's talk about reaching a larger audience. I have two main sections today. One is reaching the audience, and the other one is coming. We'll get to that. So I think that all of this applies whether you're a teacher, whether you're a mentor, whether you're a coach at something like a hackathon or Jango Girls, or if you're just helping people in a chat room online. I think it all is teaching. I think it all applies all the way across. So let's talk about reassurances. The first thing you have to remember as a teacher and that people tend to forget, especially when you're out of school for a while, is that learning is hard. It's really, really hard to learn things, especially if it's your first time in that area. I get a lot of students that are coming from, they've worked in grocery stores, stocking shelves, or they've worked in warehouses, or they've been a stay-at-home mom for 20 years and now their kids are going to college and they wanna do something new. They haven't spent a lot of time learning lately, so getting back into the learning thing is hard to do. I read a blog post recently talking about how learning requires deep work. You have to be able to get into that deep concentration, right? We're programmers. We all have that groove, that zone, right? You get into the zone and then somebody comes up to you with a meeting and oh god, there just went two hours because I can't get back to that mindset. Learning requires that exact same mindset. You have to get into the spot of being able to learn. So, reminding people that they have to spend time learning. They have to practice at learning. They may have to repeat your modules or your lessons multiple times to get the thing they want to learn. Personal story, decorators, it's a big part of Python, right? I've been writing Python for about 10 years and I think a year or two ago is where I finally understood what decorators do and I still can't write one from memory. Cause, decorators are terrible. And on top of all that, none of us are born knowing how to do tree traversal, which I still can't do. I just know that's a buzz phrase. And because of that, because we all learned and we all made our way through that, we can come across as teachers as being amazing, as being these gods or goddesses or whatever of programming and students will put their teachers onto a pedestal. So, reminding them that you're still learning, that you're still a student, that you still make all these mistakes, you still have a hard time, can go a really long way in helping them approach learning from a more open mindset. And, okay, so I lied a little bit when I said I wouldn't talk about how to teach. One thing though that I'll mention is that you should encourage breaks. I've had a lot of students that, they just wanna power through it, right? I'll put out a course that's three hours long and they'll wanna do it in one sitting. Three hours doesn't seem like a long time, but if you're learning something that's brand new that you've never done before, three hours is a really, really long time. And they just wanna power through or they'll get hung up on a code challenge or a quiz and they'll spend all night trying to write three lines of code. You have to encourage these people to take breaks. You have to tell them to do it. I've actually started putting it the last year, so into my course is telling people to go outside and get a breath of fresh air. Go get a snack, go get a drink of water, stretch, take a walk because A, these things all help your mind, right? You can process, things start to move into deeper memory, but also when you come back you will automatically have a different view of the thing just because you walked away for a little bit. It's probably as simple as going through a door with how doors mess up your memory, right? Like you gotta go do a thing, you go into the kitchen and then now you can't remember what you have to do. Same idea. All right, so this is one of the bigger ones. This one's gonna be up there for a little while. If you take nothing else away from this talk, I hope you'll take away that inclusion and representation matters. Now, I happen to be a cisgendered heterosexual white male, which means I don't really ever feel out of place in the tech world, but more and more of the tech education audience is not like me, which is wonderful, that's great. For the place that I work, a lot of our audience comes from places other than the US and even regardless of nationality, they have different genders, they have different sexual orientations, they speak different languages, they have different ethnic backgrounds or religious backgrounds. It doesn't cost me anything as a teacher, it won't cost you anything as a teacher. To use a name that's not Bob or to use a pronoun like they, to a lot of students, this can mean that they feel seen and recognized. I've got a great example of that on the next slide. And also don't expect for things to be universal. If I say dunk tank, anybody in this room not know what a dunk tank is. Yeah? So a co-worker of mine who teaches Java, poor guy, he gave, he had them writing Java in a text editor, not an IDE, just a text editor, they had to type out everything. So in his course where he finally brought in IDEs, he apologized that they had to type out everything and he promised that they would get to dunk him into a dunk tank. He had multiple students from around the world write to him and ask him what's a dunk tank? In America it's fairly ubiquitous. Like you go to the fair, you see the person get dunked in the water. It's not everywhere. So you gotta worry about those little things. Something that I have a problem with and depending on what my time is, oh, not too bad this time. I talked really fast as a native English speaker, right? So when I'm saying things that I know, I can go really quick and say them very fast. As a teacher, that's really challenging. A lot of students, especially if you're teaching online, English is a second language or maybe even later language than that. Maybe they don't understand English very well at all. So if you slow things down, you annunciate, you pronounce things more, you simple words, it's all the better. As kind of a side note to this, there's a couple of really good posts out there that are things programmers believe about names, things programmers believe about dates. While they don't necessarily apply to teaching, they are very good resources for the things that you think are universal, right? Like, we think time zones make a lot of sense. Well, okay, those of you who've never played with the date time module think time zones make a lot of sense. They don't, so yeah. So speaking about the inclusion thing, this is an email I got about a year ago from a student of mine. And I've got one of these videos where I'm showing them how to do string formatting. So, you know, curly brace placeholders and you toss strings into it. And I go through a couple of them, you know, I make like Kenneth is a lumberjack and he's okay because it's Python. And on one of them I use like a, I think I use the name Sam and I use the pronoun they. And I got an email from this student, which I won't read because I always have a hard time reading it without choking up. But they felt like somebody had actually seen them just because we used a different pronoun. So, it's pretty amazing. Like your words can have a lot of impact. So, second takeaway, leave relatives out of your examples. There's really nothing, like it's so terrible hearing, you know, it's so easy a mom can do it. This actually goes the other way around too though. Because a lot of audience members that you'll get will be often a younger boy, right? Maybe a teenage boy. They may have been saddled or they may now get saddled with the idea that oh, they're a young male. They must know everything about computers or electronics. So, they feel like they have a thing to live up to. So, just don't bring that stuff up. Just leave that out, right? You can talk about your friend Sarah or Jake or whoever that did this cool thing. And don't include their relationship to somebody else. But yeah, just leave moms alone. Moms are awesome and get a lot of stuff done. Avoid for a little words. I don't mean profanity. I don't really care if you use profanity or not, but that's me. Don't say easy. Don't say just. Not a four letter word so my analogy falls down. Don't say simple. Because those are all completely relative, right? What's easy to you is not easy to me. What's simple that you understood in five minutes of review I may spend three days trying to figure out. I may never get it. Obviously. Obviously, yes, that's a great one. All these ones that we use to just, well, anybody can get that, right? And no, that's not true at all. Along that same one is jargon. I find these as being, lots of times programmer jargon is less about handily encapsulating an idea and more about excluding people who don't know that thing yet. So when you find yourself using something, something pattern or such and such paradigm, if you cannot use that, don't use that. But if you have to use that, explain it. Break it way down, right? Bring it back to the real world. Bring it back to things they've already done, things they've already experienced. And it's the same with acronyms. Shout out to Java developers, but our world is full of acronyms. That same Java teacher, co-worker of mine, has broken me with how many levels of acronyms they have. It's amazing. Does anyone know what TLA stands for? Three of them, right? It's my favorite of them. And then for my last one is that you should make mistakes. This is one that I've always done as much as I can without it seeming ridiculous. It's really hard to write code perfectly the first time, right? Typos are a huge thing we all deal with. Or you wrote a function that does something you didn't actually even need to do and it never gets called or whatever. So making those mistakes as a teacher is really good because it, again, takes you off that pedestal. It helps the students see you as just another human, just another person who's writing code. But you can go a step further and turn it into an educational experience too because then you can teach them how to handle errors. You can teach them how to read stack traces. Stack traces are maybe one of the scariest things you ever encounter in programming because most of the time they don't make a lot of sense. I know I have encountered a lot of Python stack traces that are just pointing to lines inside of Python. And I'm pretty sure I didn't break Python. So what did I do wrong? Maybe I did, I don't know, but you never know. And it also gives you a good chance to explore refactoring, showing them, look, I wrote this code. I realized now it was a mistake to write this code. How can I break this out into things that are reusable and more useful? So just, you know, natural and normal. So to prove to you that I made mistakes, I'll give you one right now, I talked about how I had mentioned telling students they should go get a snack. I've actually had somebody write in and say I shouldn't do that, that I was encouraging American style overeating. Now that part's funny. But then I thought about it for a moment. And it's also something to worry about because lots of people, depending on where they are in the world and what their financial situation is, may not have that extra food to just go and eat. So you may be subconsciously putting a bit of a burden on them that you're like, hey, you should go eat something. And they're like, but I don't have anything. Because they're just trying to learn. May or may not apply, I may be overthinking that. But it's something I like to consider. Also, I like that my question mark fell on the next line. That was not intentional. All right, so this next part is a little bit more teaching oriented, but I'm still not gonna go into any specifics. But let's talk about reinforcement, helping people remember the things that you've taught them. Because that's the whole point of teaching as they remember it. So one of the things that I get to use at my work a lot is coding challenges. Now these may or may not be available depending on what platform that you are using to teach somebody. But it's not that ridiculous to be like, here's a prompt, go build a script that will display a tic-tac-toe grid and let me put X's and O's on it, right? Maybe you can't grade the code they wrote, but you've given them something to go and build. It's really hard, especially as a beginner, to come up with project ideas. We get a lot of students that are like, hey, yeah, I went and did all the JavaScript stuff at Udemy or whatever. What do I go build now? And it's like, whatever you want. Yeah, but what do I go build? Like they need those project ideas. So giving them challenges that they can work through is good. One of the things to worry about though with coding challenges, and I'm very much guilty of this, is it's often really hard to understand what somebody else meant for you to do. So get somebody else to like QA your prompts and your ideas to make sure that it's something other people can understand to go implement. And this goes back to the English as a second language thing. We'll use a lot of stuff like, you know, write a function that gets this argument and people like, where does that argument come from? So you wanna go a little bit closer back to jargon of like, you know, accepts a parameter, blah, blah, blah. So it's challenging. But a great idea is if you can to re-approach your challenges from different angles, have them build the tic-tac-toe thing, then have them build a tic-tac-toe thing that builds however many columns and rows they want, and then one that does different glyphs between the cells. And then later on, come back and have whole coding challenges as one step in a larger coding challenge, which helps them, when you point that out, you know, it does a little bit of a mind-blown thing of, oh my God, look how far I've come. And ultimately it's all about progress, not perfection, when it comes to coding challenges, things like that. This is where I get to the technical advice part. Try to be as accepting of answers as you can and generally judge the output of the code they wrote, not the code they wrote. Like, it doesn't really matter if they used a list comprehension inside of a function if that would have been the best way to get it. So they did a for loop, who cares, right? For loop with a pen does just fine. It works the same as a list comp. Don't judge what they used inside. And you can also provide people with repositories, full of issues, give them a repository, a GitHub repo, tell them to clone it and then tell them to go fix all the issues in it, right, or fix all the to-dos inside the code. And it gives them a great way for them to explore and it gives them a good way that, especially if you're watching, like, say, on a live stream, they can code along with you or they can submit pull requests to you, which is a whole other thing that you can go through that whole process, but they can code along with you, which really helps a lot of people. On that, talked about this earlier, story problems. You remember doing story problems in math class, you know, like Juan would have 100 watermelons and then he eats 22 of them and how many does he have left? Those are actually really good though, because, I mean, they're horrible examples, but they're good because they ground the math or the science or the whatever the thing is that you're doing in the real world. So giving people examples that tie to things they might be doing outside of technology, right? They're stuffing envelopes. Stuffing envelopes takes a long time. What if you could automate the stuffing of envelopes? Well, you can't in the physical world, but you can with code. Here's how we would do it. Things like that are really good. It helps people to bring the abstract technology stuff back into their own real life. Something that you, again, may or may not have access to is motion and design. There's a lot of things you can say with words that are way more easily understood with visuals or a prop of some kind. Now at Treehouse, I thankfully have a team of people that do motion design. If you've seen Treehouse stuff, they do amazing motion design work. I'm glad because I can't do motion design at all, but if you have it available, it's cool. If you don't think you have it available, you might be surprised. You can do a lot in PowerPoint and Google Slides and things like that. And then if you look online, there are a lot of places that offer pre-rendered video bits, stock photos, stock animations, things like that that you can use. And going back to that dunk tank thing, we cleared all that up by just, we rented a dunk tank and then dunked Craig, and then everyone knew exactly what we meant. We also dunked me, but that video's never been posted online, so I'm not gonna fix that. Provide notes and documentation, anywhere that you can, even if it's just some markdown scripts that are just like, here's what I just did in this lesson, you can do it as well. But if you can provide them links to documentation for bigger projects that you're using, if you can provide them definitions to your acronyms and jargony phrases, if you can provide them code snippets, Jupyter notebooks are amazing for this, as are again GitHub repos where you can give them all the code and the project files. Basically anything that helps them go back to the place they were in when they were learning the thing. That's all I have. We got one minute left for questions. I will be around though, I'm here the whole weekend, so find me, talk to me, tweet at me, do whatever. If you are interested in teaching, there are literally thousands of places out there that you can do it. There's meetups in your neighborhood, if there's not, start one. There are boot camps, if there's not, maybe start one. There's tons of places online that you can teach. Treehouse is always looking for guest teachers, especially if you're doing data science stuff, come find me. Django girls, or you can go do corporate training. Corporate training pays really, really well, but you have to travel a lot, so if you don't like flying, skip that one. Yeah, and then I want to say thank you to Sly Carnival for making my slides and people at Treehouse for taking my picture. But 25 seconds, who can ask a question that fast? No? Why? Why? Why not? I mean, I'm making it up, I was like, oh, yes. So the question is if we have students create portfolios. We have a program at Treehouse that is focused on the idea of making a portfolio and having them work through a set number of projects. That's obviously not something everyone takes and obviously not something that I would encourage everyone to take. But we do encourage people to put stuff up on GitHub wherever they can, you know, post about what you're doing on Twitter or Facebook or whatever. Basically, you want to spread awareness that you are programming. All right, thank you all very much.