Maybe Not the Programmers They Deserved, but the Programmers They Needed
This is a modal window.
The media could not be loaded, either because the server or network failed or because the format is not supported.
Formal Metadata
Title |
| |
Title of Series | ||
Part Number | 25 | |
Number of Parts | 48 | |
Author | ||
Contributors | ||
License | CC Attribution - ShareAlike 3.0 Unported: You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal and non-commercial purpose as long as the work is attributed to the author in the manner specified by the author or licensor and the work or content is shared also in adapted form only under the conditions of this | |
Identifiers | 10.5446/33200 (DOI) | |
Publisher | ||
Release Date | ||
Language |
Content Metadata
Subject Area | ||
Genre | ||
Abstract |
|
DjangoCon US 201725 / 48
2
5
6
14
16
23
26
30
31
32
34
39
43
48
00:00
SoftwareCASE <Informatik>Social classLevel (video gaming)RankingPerfect groupPresentation of a groupLocal ringBitStatisticsFigurate numberMathematicsMultiplication signEmailMetropolitan area networkAdventure gameCopyright infringementGroup actionSoftware developerRing (mathematics)Electronic visual displayMereologyRepresentation (politics)Expert systemSocial classUniverse (mathematics)Computer iconLevel (video gaming)Mechanism designDecision theoryOnline helpVotingLaptopTablet computerGame theoryObject (grammar)NumberShared memoryFitness functionInheritance (object-oriented programming)Programmer (hardware)Musical ensembleMoment (mathematics)TheoryHypermediaRight angleMachine visionSoftware engineeringExistential quantificationElectronic program guideReading (process)VacuumFreewarePiDifferent (Kate Ryan album)1 (number)Computer animation
08:10
MassDifferent (Kate Ryan album)Level (video gaming)BackupFeedbackConfidence intervalCodeMoment (mathematics)Set (mathematics)MereologyMultiplication signWordWeb-DesignerFeedbackInheritance (object-oriented programming)CodeMusical ensemble1 (number)Video gameBitGame theorySocial classFitness functionGroup actionLevel (video gaming)WebsiteDifferent (Kate Ryan album)CASE <Informatik>Metropolitan area networkTrailOnline helpAlpha (investment)Shared memoryGoodness of fitAutomatonCategory of beingIntegrated development environmentEndliche ModelltheorieVariable (mathematics)Arithmetic meanOntologySoftware developerSpacetimeSoftware testingInformationExpert systemRight anglePhysical lawQuicksortComputer animation
16:11
DivisorFeedbackHydraulic jumpOnline helpComputer programOpen sourceGroup actionLattice (order)Presentation of a groupOnline helpNumberFeedbackAdventure gamePerspective (visual)CodeSlide ruleForcing (mathematics)Arithmetic meanPoint (geometry)WritingSocial classExpert systemProcess (computing)Factory (trading post)Multiplication signEvent horizonFormal languageInheritance (object-oriented programming)InformationBitMereology1 (number)Metropolitan area networkUniverse (mathematics)LogicDivisorLinearizationImplementationLevel (video gaming)Expected valueRight anglePattern languageState of matterSoftware testingInformation securityComputer programmingOpen sourceMusical ensemblePlastikkarteAnnihilator (ring theory)Game theoryVideo gameProgrammer (hardware)Motion capture2 (number)Data miningException handlingWordGame controllerCircleElectronic mailing listMoment (mathematics)Hacker (term)Java appletSoftware bugComputer configurationCodeCycle (graph theory)Complete metric spaceReal numberConnectivity (graph theory)Analytic continuationNatural numberCode refactoringGoodness of fitComputer animationLecture/Conference
24:12
XML
Transcript: English(auto-generated)
00:01
Please God don't let me have to do this alone. It says it's on. Perfect. Cool. Alright. Hi everybody and welcome today to the presentation.
00:30
Maybe not the programmers they deserved, but the programmers they needed. Let's get straight into it. Maybe there won't be a presentation today. Alright. There we go. Alright. One win.
00:43
So it relates to what we're talking about. So my name is Megan Well. I'm a Senior Software Engineer at the University of Texas. I'm Jessica Deaton. I'm a Senior Software Developer at the University of Texas at Austin as well. We're the co-creators of Learning Python on Wars, which is a text-based adventure tutorial game we wrote for the Girl Scouts of Austin.
01:05
Great. So maybe you're here today because you're like, I'd like to do things in the world. Maybe make it better. Have enough experience. Or maybe I'm just not an expert or a rock star, code ninja. Or maybe I'm not a great teacher. Maybe I just don't know how.
01:23
I'm here today because we'd like to see more people from all different representations in development. And we think part of that starts with people getting exposed at a younger age. So we got involved with teaching Python.
01:43
Yeah, so first we wanted to start with a little metaphor and a small disclaimer here. I am not a Batman aficionado. I do enjoy it, but I don't know a ton about him. Sorry about that. Also, for copyright infringement reasons, we've chosen to use our own terrible bat.
02:02
So, you know, bear with us, first-time speakers. We didn't know what kind of trouble we might get into. So, yeah, so back to the metaphor. There's approximately 10 million people living in Gotham City. Unfortunately, there's only one Batman. So given the high number of crimes in Gotham City, higher than average, I would say,
02:22
the amount of transit time between places in Gotham, super villains, that's a whole other issue that takes up a lot of time, and just the fact that Batman is not always Batman. He spends a lot of time being party boy Bruce Wayne. So given all of those things, if I happen to be in distress, I'm wondering, Megan, how much of a chance do I have at Batman actually rescuing me?
02:45
Yeah, Jessica, I'm afraid the chances just aren't great. Not so great, yeah. That's what I was afraid of, and we're not very great with math, so if any of you guys want to actually figure out the statistics and really scare me to death, please do so after this and let me know. But basically, we need you to help. That's what it all comes down to.
03:03
We can't just sit around and wait for Batman to show up. We need people like Commissioner Gordon and the police department. We need firemen. We need nurses, doctors, everyday people to step up and help their community. And right now, there's a lot of people that think they need to sit around and wait for someone with more experience, more talent,
03:22
and that's just not true, and we wanted to hopefully share with you guys today that you can also be a Bic help without being Batman. So we're offering to let you learn from our experience, if the whole Bic with the clicker wasn't enough. So for me, this all started, I was helping coordinate a Jengo Girls tutorial in Austin, Texas, where we live,
03:44
and I was talking to a local STEM leader for the Girl Scouts, and she mentioned that she'd been wanting to teach Python for a while, but she didn't have anybody to do it. And so I thought, oh, I can do that. And I was pretty sure that the ideal person was a lot cooler than me, but I was like, well, something's better than nothing, right?
04:02
So they had a hackathon coming up. They kind of wanted to do a basic and advanced class. There were going to be maybe like 25 people maxed in each class. They were going to be ages 10 to 18. And it was going to be from 8 to midnight on a Friday. Almost real. Almost a deal breaker. That Friday night thing. Ooh, I don't know.
04:21
Yeah, it was fun. Yeah, so we're going to give you some hints, but do keep in mind that this is based on our personal experience. We were very new to doing something like this, so your mileage may vary, but we think that there's some pretty good takeaways here for you. So go ahead, Megan. Hint number one. So our first hint is to do some research. So before I got into this whole thing, I looked at tutorials that already existed,
04:46
tried to figure out what would fit in two hours, and what could cover both basic and more advanced Python. And I couldn't find anything that would fit quite right, so I decided to make my own Python text adventure game. If you're not familiar with the Hitchhiker's Guide to the Galaxy text adventure game, you should check it out. Sweet.
05:05
So I thought if I was a Girl Scout, I would think that was fun. But I did a lot of research. I decided to level up, because I had a moment where I was like, I'm not cool enough. That's the moment where you have your own montage, and there's cool music, and you level up.
05:20
So do a lot of reading. Figure out what's already there. Use it. Talk to other people. Don't create in a vacuum. If I had created this in a vacuum, it would have gone terribly, because I created text adventure game. It was fun to play. I was like, this is it. It's awesome. I took it to Jessica. I was like, what do you think, Jessica? And she was like, um, it's a fun game, but do you really think you should cover class-based inheritance in like a basic Python class?
05:48
Yeah. For ten-year-olds, it's going to be a little, you know. Yeah, so, I think we went back. There we go. So hint two is to make a plan.
06:01
So after you've done a lot of research, decided where you think your experience level kind of fits in, and how big of a risk you're willing to take with making the leap into helping your community, it's a good idea for you to decide who it is that you want to help. That's the first thing. We'll have some good suggestions for that for you guys later.
06:23
Next, you want to figure out how you want to help, and there's some things you might want to consider, namely cost. You can do things for free. You can also go out all and find sponsors and try to do fancier things. You also kind of want to figure out your role. By de facto, Megan became the leader, because it was her idea.
06:44
She said yes. We all kind of got roped in, but she was our leader. And then also, venue. Getting a venue can be challenging. There are definitely people in the community that have already been working with mentorship and doing workshops, and I would reach out to them to try to get ideas about venue.
07:01
But keep in mind, too, that it should be non-distracting and fit within your budget. You also want to think about supplies that you might need to buy, or the medium you want to work in. So if you choose to do something with raspberry pies, you'll need to probably buy some raspberry pies. If everyone's going to be working on tablets or laptops, that's something else you need to figure out ahead of time and make sure that you've planned for.
07:22
Power outlets. That was a direct hint from the Barbara and Katie talk that they gave about the young coder, so stole that. And we have some more suggestions coming later, but basically figure out how you want to build or if you want to help someone that's already started, or if you want to just use something that's already out there.
07:42
It's a big decision to make, and doing your research will help you make that decision. So our plan was to help the Girl Scouts. They came to us, so it was super easy. We didn't really have to make any big decisions there. We decided to build because it was difficult to do anything in two hours, and nothing really existed that would meet that timeline for us.
08:01
We also didn't want to spend any extra time having them set up email accounts to get into things that already existed because it was just going to eat into the two hours that we did have. And we thought it would be a good learning experience for the two of us, and it totally was. The other thing is be perfectly comfortable with being imperfect.
08:21
This is so important because the first time around you're definitely not going to get it right, much like this talk right now. There are plenty of opportunities to be imperfect, but it doesn't mean that it's not helpful, so keep that in mind. Ask for help. Batman isn't a one-man show. If you think that, you're wrong.
08:42
He has Alfred. He has Batboy. Catwoman helps out. And depending upon what universe, Gotham or whatever, there are a lot of other people that help Batman. And secondly, a lot of other people would probably like to help. They'd like to help make the world a better place, and if you have an idea for it, let them in on it. Share the glory.
09:03
So I had a wonderful group of people. Jessica obviously came and helped make the tutorial not horrible and scary. And then we had Caroline Taylor, Rebecca Post, Maggie Pfeiffer, Monique Murphy, and Riddhi Mankad, who all came and helped at the actual hackathon.
09:21
And they were maybe more important than the actual tutorial itself because they were real women who work in tech, who are able to be there for the Girl Scouts and show them what it was like to be a real person who does that and give them some interaction. And it's also harder to fail when there are more people that help you. Share the blame. I'm just kidding. Totally kidding, totally kidding.
09:45
Okay, so another important thing is to figure out what it is that your audience wants to get out of whatever help you decide to give. So what interests them? What goals do they have? These are important things to figure out and do a little more research about or try to tailor the fit
10:01
for whatever it is you're trying to accomplish to the actual goals of the people that you're trying to help. Also, you want to consider experience levels of your attendees. Some people will be at a much higher level, some people will be complete novice, and you need to be able to kind of adjust accordingly. Really, if you think that you're going to have people with different needs and different experience levels, you may consider doing completely different solutions for those people.
10:26
We tried. We were told we would have two different classes, one of complete beginners, one with a little more experience. And it turned out to be more of a giant, blended class that slowly trickled in as they felt they were ready, which made it a little difficult to meet their needs.
10:41
So in the future, we may try to segregate that a little bit more. And also, you want to keep in mind that no one is going to master concepts at their own time, and they're all going to do it differently. So don't make assumptions. No one's going to master everything. They probably won't master anything.
11:02
They will maybe gain a knowledge of something to give them the confidence to move forward. But no one is going to sit down in two hours or eight hours and know all of Python or know all of Django or know all of web development. It's just not going to happen. I still don't, and I've been in the game for four years. And also keep in mind that not everybody enjoys coding.
11:22
I definitely have days where I don't enjoy coding, but for the most part, I really like it. And you may have people come and say they are excited about coding and get there and decide this isn't for them, and that's totally okay. We had girls show up that were super engaged. We also had girls show up that were deciding pizza and dancing in the aisles was much more their speed.
11:44
And they got up and had a great time, and it was great dancing, so we were fine with that, too. Respect the unexpected. It's like the second law of thermodynamics, so it really shouldn't be unexpected. It should just be part of life that things don't always go exactly as you planned, don't panic.
12:04
It can actually be kind of fun, you know? If you have a new challenge, you can just go for it. So as Jessica mentioned, sort of like, you know, two groups of 25 was not the case at all. We had like seven girls come at first, and it slowly turned into like 50. It was kind of crazy.
12:22
And it was kind of awesome because it meant that many people wanted to learn Python and be introduced to it. And it was a good thing that we kind of had made the tutorial so that it could scale up easily based on how much you already knew. So that way, we had sort of a plan in place for, you know, what if somebody already knows about, you know, variables and data types,
12:42
but maybe they don't know how to do loops. They could just skip forward to that. Another thing was that it was amazing. We had a lot of parents come that were really excited about coding and learning to code themselves, which was awesome. But also sometimes it got in the way of the children themselves getting to think about the problems. And as we all know as developers,
13:02
maybe more important than the code we write is how we think about the problem and design it. So something we ran into and weren't quite sure how to deal with was giving the children their space to think about the problems. And then lastly, they didn't really know what a start or a save button was, and that was really frightening.
13:22
We were like, all of a sudden, we're like, we're so old. We didn't realize we were that old already. It's a super bummer. So that kind of leads right into our next hint, which is just to be vulnerable. And this is so super important. You know, we're getting vulnerable by getting up here and giving this talk.
13:42
It's our first time, but we want to share this information with people, and so we're putting ourselves out there. Same thing with this tutorial. We had never written a tutorial before. We had never worked with this age group before. And being vulnerable meant that we were willing to expose the fact that we weren't super experts at this to them. And it ended up working out super well. Being human is super inspiring, and it's okay to be human, and it's okay to make mistakes.
14:08
And so for us, you know, taking feedback was also a huge part of being vulnerable. It means that people are going to be critiquing your work, stuff that you've put your heart and soul into and a lot of time into. And you think, oh, I've got it at this level. It's super great. And then someone's like, oh, not so much.
14:25
And that's okay. Like, that's how you get better. So being able to take that feedback graciously, regardless if it's a critic or a coworker or a friend, a colleague, or a ten-year-old girl. So our real human moment during this, remember those start buttons and save buttons?
14:42
That was pretty much the beginning of the tutorial, so once they didn't know what those things were, we were like, oh, no. So we decided to do live editing on the tutorial as it was taking place. Your mileage might vary with that, and I don't necessarily recommend it. But it actually turned out to be a good experience for us.
15:03
As the girls started making suggestions and asking questions, we got right in there and started implementing that stuff as they were rolling in. And I think it ended up being really inspiring for the girls that were working in the tutorial because they became part of making this thing. They could see that their stuff was being implemented at the same time that they were asking it.
15:22
So it also let them know that they were kind of de facto coding. Like, even though they weren't writing the code, they were actively manipulating code base with very beginner skills. And that was super inspiring to them and inspiring to us and boosting their confidence in that way was a really awesome thing.
15:41
So being vulnerable, very hard, very worthwhile. Is to go ahead and set improvements. So we finished the hackathon, and we were like, they enjoyed it. It was successful. They went away, and I think we definitely had girls who were like, how do I learn more?
16:01
So from our perspective, it was, you know, we got done what we needed to get done. But, you know, we went home, we crashed on my porch, and all of us, and we started talking about the fact that we'd like to do it again, and we'd like to do it even better. So that is to say, you know, if you're not feeling like you're where you should be, make it like your code, a continuous refactoring cycle.
16:22
And the refactoring cycle starts with figuring out what's wrong. So, you know, try and make it specific to you and your project. For us, we needed to make it more accessible. Even as simplified as we had made it, it could have been simpler. It was really late at night. It was like, you know, it was 10 o'clock at night, and there were 10-year-olds, and there was pizza and dancing.
16:45
And, you know, it could get simpler. So, but they did the command line, which is also really cool. I wish I could say I did the command line at 10. But, yeah, and then redirecting parents, maybe experimenting more with pair programming. The younger ones did this on their own anyways, and we thought it was great.
17:02
Another thing is we realized that, you know, we at the University of Texas have like a little perspective on the world. But you all have all different perspectives. So, if you are looking for something to do, you could help us make the tutorial better. Anyway. Hint, hint. Yeah.
17:22
Okay. So, hint eight is to refactor. This is a part of natural coding. It would obviously be a part of whatever it is that you decide to build, make, or implement for your community. So, we decided that we need to practice more. Everybody should practice more. We also know that you should always be looking to simplify.
17:42
That's the same as coding. Keep it simple. Keep making it simple. And, again, feedback. Get as much feedback as you can and implement it as often as you can. Our takeaways were basically more milestones and more affirmations. I think this is a good lesson at any level. Keeping people engaged means letting them have lots of small wins and not just one big win.
18:04
Because you don't know if they will have time to get to the big payoff. So, simple is good. Simpler is better. Simplest is always best. And even when you think you have it at the most simple level, there is always room for improvement in that arena. And, lastly, just set their expectations. What should they accomplish?
18:21
What should they expect out of what you're trying to do? We should have set better expectations in a lot of ways, but we mainly should have probably started by introducing ourselves. We didn't do that. So, we put a slide right at the beginning of this talk to make sure that we introduced ourselves this time around.
18:42
Go ahead and jump in for it. And I would say that this is something that I'm good at. Say yes. Say it responsibly. But maybe you're working on a project at work and they're like, hey, I think you can do this thing. They probably have a good reason to trust you for it. Trust yourself. Trust that you can level yourself up to get where you need to be for that project.
19:04
Start small. We didn't say we were going to teach every kid in Austin how to program. We just had a group of people who needed our help and we made ourselves available to them. And then people generally want you to succeed. I mean, you know, yeah, basic comedy is based on unexpected failure and, you know, they're a house of cards.
19:23
Everybody's trying to hurt each other. But that's not real life. Most people that you work with want you to succeed at your project. They want that piece of programming to get finished on time. So, you know, have faith in yourself. And then the other thing is that, you know, there is no failure.
19:40
I mean, there is failure. But there is. It's a fact of life. But beyond that, at least for us in our situation, there are moments where it's okay to fail. For them, you know, there's this idea in movies that there's going to be this hacker and then it's like five seconds and the, you know, and the rocket's going to come crashing down.
20:04
So you have the hacker and he's like got five seconds to like get into the mainframe and make it work. And have you ever noticed that they never hit like a null Java point exception or anything? It always works. Like I spend most of my day debugging. And I bet a lot of you spend a lot of your days dealing with bugs.
20:21
And I think it was helpful for the girls to realize that like debugging's part of it. And there's no shame or nothing wrong with that as long as it's controlled and locked out. So to kind of start coming back full circle, we did mention earlier that there were some ways that you could help. And maybe if you don't know who it is you want to help, this is a small non-exhaustive list.
20:44
It's just all we could fit on the slide that might still be readable to the people in the back. So there are a lot of other people. It's just important that you find something you're passionate or curious about. And then go out there and ask them and talk to them about it. See what they need. See how you can help. And see if it aligns with where you feel like your expertise is or where you want to go so that you kind of force yourself to level up.
21:07
And we'll put our slides online later so you can read these if you didn't get a chance. So our last hint is that not all helping or, you know, getting involved means coding. In fact, I would say that probably more of helping involves not coding.
21:22
We might have to fight each other for the coding option. But for us, there's somebody called Caroline, and she was really helpful for us in thinking about all those things that surround getting this tutorial ready that we wouldn't necessarily have thought of. Like code freezes and, you know, spelling.
21:40
Oh, God, spelling. I know, right? It's the worst. But the point is that there are a lot of ways to get involved that don't involve writing code. So you have open source projects, and they need people to, you know, help figure out how we're going to design things, documentation, you know. There's going to a soup kitchen and actually being the person that's going to help feed people.
22:02
So regardless of, like, where you live and the coding life cycle or if you live in it at all, I would just encourage you to stop waiting for somebody else to be the person. Yeah, so once more, with feeling, and to bring it all the way around.
22:20
So we definitely weren't the programmers these girls deserved. We would love if the people who wrote Django Girls could come down and teach this class for them. But things like that just aren't realistic, and they can't happen to everybody, and there's much more of a need than there are people to fill the need. So even if you don't feel like you're an expert, you know something. As long as you are willing to put it out there, you can help somebody.
22:42
So we ended up being the programmers these girls needed, and you guys are also really needed. So we hope that we've inspired you to get out there, regardless of whether or not you think you might be ready or the right person for the job, and help bring people into this community. I know you were wondering this the whole time, but we're not androids, despite the complete lack of mistakes.
23:07
So, once again, here's our contact information. We're real people. Thank you for coming. I have a quick question. I have a 10-year-old girl in my life, and
23:21
her mother has asked me a couple of times to teach her coding and get her interested. And I've been able to get her interested in some CSS. She likes to make things pretty, but you're talking about a text adventure game where it's going to be a little bit less visual. So do you have any advice on how to up the enthusiasm for things that don't involve sparkles?
23:43
Yeah, so we found it helped that they got to play the Python text adventure game first. And then the other thing is that we allowed them to change the story. We allowed them to change components of the story, so they were actively creating part of what that game meant. So there was a lot of the logic there, but you're landing a rover on Mars, and
24:03
then you go out and do different little missions, so you could have the aliens say different things.