 How much do you know about DevOps? When did you first start learning about it? Who were your teachers? Now, imagine what it would feel like to teach DevOps to a high school student. Our next speaker, Daniel, is already doing it. He has been helping teach DevOps to high schoolers through his work with BitProject, a nonprofit focusing on tech education. In this talk, you'll hear about what it was like to make DevOps accessible to beginner developers. You'll also see some student projects that incorporated CI, CD, and infrastructure. I think you'll also feel pretty inspired about the future. Enjoy. Hi, everyone. My name is Daniel, and welcome to my talk, DevOps for High Schoolers. I'm super excited to deliver this talk at GitLab Commit, virtual 2021, and later on in the presentation, I'll be introducing my friend Emily, who's a high schooler, and she'll be talking about her experience learning about DevOps and actually building this talk and also this workshop with me as a high schooler. So, yeah, let's just get right into it. So, hello. My name is Daniel. I'm a senior developer relations engineer at New Relic. I'm also the president and founder of BitProject, which is a 503 nonprofit that helps students launch their first projects, learn about tech, and learn really cool new technical frameworks to maybe launch their next app. So, a couple things to know about me. I'm pretty new to DevOps. I started with DevOps when I started at my current company, New Relic. Before then, I was working a lot with Next.js and Gatsby and Frontend Development. I have a pretty short attention span. I love learning actively and hands-on. I don't really like reading textbooks or watching super long YouTube videos. I've learned by doing, and that kind of influences how I like to teach people as well. I love GIFs, as you will see throughout this presentation, and I actually have a long history with GitLab Commit. I think it was the second tech conference I've ever been to my entire life. The first one, after the first one, I was so pumped. I was hooked into the whole tech conference team all from the bagels to the fancy green juices. Amazing. I love it. I get to talk about technical things with other engineers. Next to my face, there are some pictures of me holding my badge when I went to the GitLab Commit conference in San Francisco a couple years ago. I think that was last year, actually, when I was still a student. I'm super excited to come back to GitLab Commit and contribute back to the conference that brought me so much joy when I attended in person in 2020. Last thing is I'm on Twitter at Learn With Daniel, so feel free to follow me and connect with me on Twitter. I'm pretty cool, so let's be friends. Okay, so let's just get right into it. When we think about DevOps, we think about a lot of things, but when I Googled DevOps for the first time and went to the Images in GIFs tab, I saw this GIF of this man holding, like, six devices, all furiously typing while the room is on fire, and especially when you're learning about DevOps for the first time, seeing an image like this being the representation of a particular field doesn't make it the most appealing to get into. It seems very intense and overwhelming. And, you know, it is. So when we think about DevOps as a practitioner or when we read blog posts or technical documentation about DevOps, we hear a lot of these words like infrastructure, observability, sysops, Docker, AWS, Kubernetes, SLA, CICD, all these two, three, four-letter acronyms that mean a bunch of different things. And this type of jargon is what? Very intimidating, especially for people who are very new students, even practitioners who are not the most deep into DevOps. It can be very, very overwhelming. So when I first joined Uvrelik, I was like, so yeah, I got to bring my Daniel Flair into what I'm doing. So how do I make the things that my company is doing more accessible and, most importantly, more fun? So this is why we introduced a workshop called Aira and Prod at FutureStack, which is our annual user conference. So what is Aira and Prod? Aira and Prod is a cool, fun, exciting, fabulous, amazing, cool extravaganza. Yay, love, Jeff. Introducing students to site reliability engineering. So today during this talk, I want to talk a little bit about how we make things more accessible and how we, and the lessons learned that me and Emily learned from building a DevOps workshop for high schoolers. So let's just jump right into it. So the first lesson we learned very early on was to make it relatable. So what does that mean? So that means usually answering the question, why should people care? Because let's be honest, going through the same hello world, getting started guide in the documentation for the seventh time to try to understand what's going on is a very fun. So this is where I bring in my friend Lizzie. I tweeted that I'll be including her in the presentation. So Lizzie, if you're watching, hey, this is me Daniel. Lizzie is now my friend, but back in the day, when I was a freshman in college, she was a developer evangelist at Twilio and I was just a humble student and she actually came to our school. I went to UC Davis, so she came to Hack Davis and she did this amazing demo where she put up a Twilio phone number on the screen and she had every single person at the event text that number with a phrase and we'd get something back from the number. And that was such an interesting demo for me because it wasn't just like, hey, go follow the tutorial. It's more like an interactive demonstration of how something works without telling someone verbatim how it works. So I got so much inspiration from that demo to create my own Twilio projects and that's why Twilio is so prevalent in a lot of my personal fun projects because it's so easy to work with and I had a great introduction from Lizzie. So that's kind of like what I learned is that we shouldn't do stuff for the sake of the demo and we need to help folks understand the context of what they're doing. So here are the two questions I would answer when I'm trying to make a demo is when would I use this and who would I use this and make sure that I can answer those questions before I can present it to an audience. So here's what we did for ArabPROD. So we used a real production e-commerce app with simulated outages to teach students about site reliability engineering. We called it NerdMart because we call ourselves data nerds. So instead of messing with production code we found that students didn't really relate to that content and a lot of students found it really overwhelming. We pre-instrumented and pre-connected all of the data from the production application to a user interface that was no code and students were debugging that application that was in production using the various tooling that our product provides. So they were doing the things that site reliability engineers do like digging through logs and looking at various charts and graphs to figure out what's going on because that introduces the high level concept of what site reliability engineers do and what kind of data they have access to. But without going so deep into the stack where we actually touch source code so we try to answer the question like why should they care like going through things like why is this website loading really slowly or why is this image just refusing to load and using data and using a platform that was easily understandable to kind of help students understand okay, this is what happens underneath the hood when a lot of these things that happen to you in your daily life like when you buy Furbys at 3 am in the morning on Amazon because you're feeling impulsive that's kind of the things that we want to introduce students to. So yeah, now I want to introduce Emily. Emily is a high schooler at Panther Creek High School in North Carolina and she was instrumental in bringing this workshop to life. So yeah, take it away, Emily. Hi, my name is Emily and I'm a student-devil at PIP project which is a non-profit Daniel actually just talked about. A part of that I'm also a rising senior at Panther Creek High School and like I said before this is also my first fun fact, fun fact. My second fun fact is that I'm discovering DevOps. So previously I didn't know this was even a viable entry way into the tech industry. I only knew about people coding sitting at the desk all day but now that I've learned from this workshop and many other things at the non-profit DevOps is actually really important in keeping my favorite tech services alive and working so that I can use it. So providing accessibility for that. Third fun fact, this is my third tech conference ever. So I've only been and spoken at two conferences before. I was at one that was themed animal crossing. So that's pretty cool. But let's get started. So Daniel just talked about why and how we can make people interested in this and the question we answer the questions of like why would they use this and how would they use this and by doing that, we're really pulling pulling them in. We're grabbing their attention. However, how do we keep that tension? Well, we can have a story and I'm going to start this off with a couple of games that I'm very familiar with. I'm not sure if you guys are, but how do games keep children engaged? So as a kid, I played a lot of pop tropical. I played Club Penguin and my friends played Mabel story. These games all have one thing in common. They all have stories. So like in pop tropical, there were different islands and you could play at each one. Like there was a diary of a kid island in Club Penguin. You can be a spy. There's all kinds of stories that really keep children engaged and surprise these tactics actually apply to students and very often even adults. So since we have stories, of course, we got to have characters. So in this case, having characters keeps students more engaged and obviously is essential to good storytelling. Like name one story that doesn't have a character. That's just not possible. In pop tropical, you were the main character in Club Penguin. Your friends could be the dojo master etc. There's a lot of ways characters make a game just more interesting. So for our workshop, we're going to talk about D-Bug. So D-Bug is the hacker extraordinaire. They're the villain. And D-Bug loves to cause chaos in production. So this is a character in the story that we're trying to fight against. Second, meet the security engineer. This is going to be you. Or in other words, the person who's playing the workshop, the student who's learning about DevOps. So the security engineer, they're stressed out. This is the main character. This is you. We're very inclined to think that we're the main character. This may sound narcissistic, but that is what grabs people's attention. The ability to think that you're the one who's solving problems in the world. So how do we scope DevOps for beginners? So we just talked about having story and how hello world isn't enough. This particular workshop of skills learning are important. But even if we use all of that, there's still one section left over. We have to make it appealing to people who haven't used all of this jargon, three letter acronyms, things like that. So first things first, config issues suck. No one wants to spend more than 10 minutes setting up their environment. So as many of you probably know, installing Python is a very tiring process, especially if you don't have the right versions, et cetera. So think about it. Does the workshop require Docker versions, Python versions, PyNB? What other packages do they need to install? And oftentimes they might be incompatible on different operating systems. So these are all things to think about before you try to shove them into a different operating system than you, or just simply different versions, as you know, different environments, it's just a huge hassle. Second, is it accessible? So can someone with a really crappy laptop join in? And think about it. Once again, this is kind of relating to the version and config issues. Does something need to be installed? Does someone need to have a very powerful machine? What if they try to run a workshop that would put anyone off and not make them want to continue and persevere? And of course, can it be simplified? It's always good to simplify anything to make it more appealing because you don't want, the purpose of this workshop is not to make someone set up an environment, it's to make someone learn DevOps. And thirdly, how is it not overwhelming? So like I said before, there's two acronyms. People don't know what those mean. Reading those on a screen with long paragraphs of text are not ideal to grab someone's attention and make this overall more accessible. So don't make it super technical and make sure it's not intimidating. And here are some factors we consider. Is the content really badly formatted? Does it sound like a rocket science course? And does it sound like a course syllabus? So, those three points, all of this makes DevOps unappealing and overbearing, and particularly for me, it's the environment set up that really resonates. And so, how do we make it engaging? And finally, we're at the conclusion. So here was our solution to the three main problems I just listed before. One, our workshop is all in browser, so it's very accessible. They don't need any coding skills to access it. And since the concepts are so foreign, we don't want to push more new coding, new languages or syntax onto them. And we do not want to introduce unnecessary complexity. So everything's in the browser. Anyone, even a Chromebook could access it. Two, it's a game with leaderboard and prizes. This is a very large motivator for a lot of people. I personally am very motivated by leaderboards earning points. Seeing my username climb up the screen, that's always something that keeps me engaged and keeps me wanting to continue playing. And finally, we answered why. So we explained why non-SREs should care about uptime. And like Daniel talked about before in the first part, this is a big step to overcoming the world part of things. Just making people print out Hello World does not show them how it supplies to the real world. And lastly, some questions to answer. And after this whole steal, when would I use this and who would use this? Well, when would I use this? Honestly, you could apply these skills almost anywhere. DevOps is very encompassing when it comes in terms of computing. You have to work with code, you have to work with business, you have to keep things operating. And personally, I've applied these skills much farther out into the field in tech other than just working out errors and keeping things running. Who would use this? Well, you have solution architects, you have developer advocates, engineering managers, Daniel, you have customer enablement and honestly, anyone doing technical demos. So when you're creating technical demos, whether it's a workshop or it's just showing off a product, keep these in mind for if you're trying to get if your target audience includes beginners. So call to action. Go ahead and try our fun workshop now. The link is on the slide. And also, we are creating a series of workshops just like these to introduce beginners to DevOps. So contact us. Our Twitter usernames are on the slide and as well as all the other ones. And we'd love to work together. We had a pleasure talking with you all today. So thank you so much for listening. And as always, keep on doing DevOps. I don't know how to end this talk, but yeah, have a good day.