Talks

Summarized using AI

Continuing Education at Work

Katherine Wu • November 10, 2016 • Cincinnati, OH

The video "Continuing Education at Work" presented by Katherine Wu at RubyConf 2016 discusses the importance and benefits of running continuing education programs within the workplace. Katherine shares her personal experiences with two key programs she implemented at New Relic: a technical book club and a Lunch Conf session where conference talks are viewed and discussed.

Key Points:
- Introduction to Continuing Education: The intrinsic need for continuous learning is acknowledged, with a focus on benefiting both personal and professional growth.
- Book Club: For over two years, Katherine has facilitated a book club where participants read one or two chapters weekly and engage in discussions. This encourages active learning and reinforcement of concepts.
- Lunch Conf: A program designed to watch and discuss conference talks during lunch breaks. Over 70 talks have been covered, providing a variety of topics for discussion and learning.
- Positive Feedback from Participants: Attendees find these programs enjoyable and stress-free. Quotes from participants indicate that group learning significantly enhances understanding and retention of information.
- Benefits of Continuing Education:
- Keeps employees engaged and excites them about new concepts.
- Provides immediate application of learned material to real work problems.
- Helps fill knowledge gaps before they become critical issues.
- Group Learning Benefits: The advantages of peer pressure and shared learning experiences reinforce knowledge retention. The importance of discussing different perspectives on the materials is emphasized.
- Convenience of Workplace Learning: Utilizing company resources and a familiar environment makes it easier for employees to participate and commit time to learning activities.
- Three Principles for Effective Programs:
- Make it Easy: Reduce overhead to encourage participation; set low expectations to ensure attendance.
- Make it Distributed: Avoid dependency on one person by documenting processes to allow others to take over if needed.
- Make it Useful: Ensure learning is beneficial and stimulating to maintain interest and participation.
- Final Thoughts: Continuing education programs help foster a culture of learning, support, and collaboration in the workplace, while also encouraging personal accountability in learning endeavors. Katherine concludes that the goal is to create an environment where ongoing education flourishes.

Overall, Katherine Wu's talk underscores the significance of organized, low-maintenance education initiatives in the workplace, enhancing engineers' skills while building a supportive community.

Continuing Education at Work
Katherine Wu • November 10, 2016 • Cincinnati, OH

RubyConf 2016 - Continuing Education at Work by Katherine Wu

The list of things we want to learn is infinite. How many of us have marked items to read/watch, yet never go back to them? Despite the best of intentions, I often only learn what I directly need. It wasn’t until I started running a couple lightweight continuing education programs at work that I followed through on my goals. We’ll discuss strategies for making these programs low maintenance and long-lived, as well as flexible enough to help both more and less experienced folks. If you’ve been looking for a more effective approach to learning, but still outside classrooms, this talk is for you!

RubyConf 2016

00:00:10.800 I always get super nervous right before I start, no matter what. So, mentally right now, I'm reminding myself that the next 30 minutes will not literally kill me. I'm not going to die; it's going to be fine. We’re going to get through this. Just a warning: I am recovering from a bit of a cold. I have some meds I took this morning and a whole bunch of cough drops with me. I may need to suddenly lurch to the side, so I don’t cough into the audio recording. Just a heads-up, but it’s fine again; I’m not going to literally die; it just feels like it at times.
00:00:56.960 If anyone here is wanting to get into conference talks or public speaking, I’d love to talk to you about it. A piece of advice I often give is to set your goal at the right level. Especially with early talks, if you don’t die, that should be considered a success. Anyway, actually introducing myself, my name is Katherine Wu, and I’ve been a Ruby developer at New Relic for a little over three years now. The way I got into software in the first place was by going to a Python-based boot camp called Hackbright. Fun fact: a lot of people who attend Hackbright are huge Harry Potter fans, so I’d like to point out that I am wearing a Harry Potter shirt today. Yes, I actually made this, so we can also talk about that later. I’m really proud of myself; it’s super cute!
00:01:24.800 You can come compliment me about it later, it’s cool! So, you know, I went to this Python boot camp, and I’m super into Ruby, as you can tell because I dyed my hair to match. How many people have that level of commitment? I even have Ruby-shaped earrings that I wear now when I come to conferences. Of course, it’s just really great that I didn’t pack my pearl earrings instead!
00:02:15.900 Now, onto the subject of this talk. I’m going to cover a little bit about the two main programs that I’ve been running at work over the last couple of years. I’ll talk a little bit about why I think having those sorts of programs, or similar ideas, is just a good thing to have in general. The core of the talk is around three general principles I’ve come up with for running these kinds of continuing education programs. We’ll see how those principles come up in the details of how I’ve implemented them, and then I’ll send you off with some final thoughts and hopefully have some time for questions at the end.
00:02:53.800 There are two programs in particular that I’m here to discuss today. The first one is the technical book club that I have been running for over two years now, where we read about one to two chapters of a technical book each week. Then we meet with somewhere between two and twenty people to discuss the contents of what we’ve just read. I would like to note that I was working on a different project but decided to get some stickers designed for this book club as well. So, you know it’s a legit program when it has stickers! I have some stickers too; feel free to come ask me for those later.
00:03:43.350 So that’s the first program, the technical book club. The next one is a program we call Lunch Conf. Again, it has a sticker and a cute name, so it’s a totally legit program as well. In this one, we meet weekly, and I book a conference room at the office, and we just pick a conference talk that’s approximately 30 to 60 minutes long and watch it while we eat lunch together. Maybe we have some discussion afterward. Usually, there are probably around 10 to 15 people there. In the past year and a half that I’ve been running it, we’ve managed to watch approximately one talk a week.
00:04:23.100 Sometimes a talk will span two weeks, but through doing this, I have watched over 70 conference talks on topics ranging from parsing to refactoring to performance. All sorts of really interesting things are out there! So let’s talk a little bit about why these are good ideas, in my opinion. I gathered a couple of quotes from attendees of these programs. One attendee said, 'Oh, it gives me shiny hair and clear skin, and in just three visits, I grew two inches taller.' Oh my God, I’ve been five foot two since eighth grade! I reached adult height in eighth grade; that would have been really amazing if someone wanted to sell me that! But some legitimate quotes I did get from people include: 'All of the learning, none of the stress'—isn’t that pretty amazing?
00:05:12.600 It’s set up to not feel like school if that’s something you’ve always been a bit turned off by. Another quote I received from someone is: 'Watching conference talks is a whole different experience when you get to talk about them afterward with folks.' That’s a huge benefit from attending conferences in person, right? We could have the hallway track afterward, where we discuss with each other, but we often have to go home after, and it’s not always easy to get to conferences regularly. Yet we have so many resources available to us online, and this is a way to address that kind of experience too.
00:06:01.990 Now, I’ll go over why continuing education, why group learning, and why at work in particular. For continuing education, I really think the first reason is that it's fun. It’s really enjoyable to keep learning new things. It keeps your excitement alive and gives you a break from the day-to-day stuff that you might be handling. I think it’s good for your current job because you can often apply the content directly to your work. For example, someone said Lunch Conf was such a great thing because we watched a regex talk, and I totally just used it in researching a customer issue.
00:06:27.430 You can learn things when you're not under pressure for dealing with a fire. Someone once said, 'I guess I noticed all the gaps before they become fatal flaws.' So ideally, you might be able to prevent some of those fires in the future by having some more context. Regardless of what background you may come from, it is not possible to know everything that is out there. For example, New Relic has a very large code base that’s several years old. We read a book about refactoring, and we also read a book on patterns of enterprise application architecture, and all of those things ended up being pretty helpful on a day-to-day basis.
00:07:02.700 I think continuing education is also good for your long-term career because you learn things the easy way rather than having to pick it up the hard way through experience. It also gives you the potential to discover new areas of interest. For example, we read a book about error handling in Ruby, which led to someone giving a lightning talk covering some of the content that we had learned and wanting to dig into it a little bit more. So, why group learning in particular? For me, the number one reason behind this part is that I am trying to use peer pressure pretty deliberately on myself. I got to a point where I was tired of saying, 'Oh yeah, I’ll do that someday,' but it turns out that I will do things under peer pressure that I don’t do on my own.
00:07:45.480 I run these programs because I’m talking others into helping me do something I wanted to do. This is known as a forcing function—a term I’ve heard, which is any task, activity, or event that forces you to take action and produce a result. For example, the book club is every Monday afternoon from 4 to 5, so every Monday afternoon at 3 PM, I am getting on top of doing that reading because I want to show up having been prepared for that. Group learning is also really helpful; you’re doing it in a very active and reinforcing sort of way. You go over the material at least twice, maybe more: first by reading something yourself, then through discussion, and sometimes after the discussion—if new points come up, I might go back and reinforce what I’ve learned.
00:08:39.490 We discuss questions like: How come chapter four says one thing but chapter seven says this other thing? Or I might ask you questions like, 'What did the author mean by…' etc. The human interaction truly helps lock the knowledge in. I think that having this discussion enhances the experience of reading these books. One attendee noted, 'I’m not the most social person, yet learning socially happens to be how I learn best in the end.' Overall, you can end up learning a lot more than you might otherwise on your own because it includes learning about what not to trust; you don’t just have to take the author's word for it.
00:09:01.000 In discussion, we often present multiple sides of an argument, with people willing to disagree as well. Some of the books we read can be considered classics in computer science literature but also mean they were published 20 or 25 years ago. For example, that enterprise application architecture book I mentioned: a lot of the patterns we looked through were from when things were different. Those of us who are closer to the field were a bit like, 'Oh, at one point, this was a thing that was discussed and given a name.' But in our experience so far, it's mostly been taken care of for us by frameworks such as Rails. Understanding them helps us appreciate the shoulders of the giants on which we are standing. We know that we don’t necessarily have to use the patterns directly; we can get more context and update them for what we're facing currently.
00:10:11.260 As for why at work in particular, this has been a huge part of the success of these programs. For one, it’s convenient; we have to be there already anyway, which is really helpful. But I also think that doing it in the office allows us to take advantage of additional resources that are there. We don’t have a formal continuing education budget, as far as I’m aware, but I once asked if it was alright to buy some books, which were more expensive than regular ones. E-textbooks tend to bump the price by two or three times. When I went to my VP to say, 'Hey, I want to buy these books; that’s what we’re interested in learning next,' my VP was really excited. They said, 'Katherine, whoa, I spent a thousand dollars buying donuts this morning! Please spend a thousand dollars buying some computer science textbooks!'
00:11:08.330 It's not just about the money; having it within the office allows us to take advantage of extra time between other projects and tasks we’re working on. We have the conference room, snacks, and all the amenities available. I mentioned this earlier, but again, I learn a lot better from these topics when I can apply the material practically and immediately. It really helps solidify my understanding. During discussions, I’ll often finish a chapter and think, 'That’s cool that they described this as a thing that exists, but what do I use it for?' In our discussions, we can brainstorm: for example, we weigh the pros and cons and determine in what situations we’d want to know about particular techniques or strategies.
00:12:06.000 As for the social aspect, it’s really rewarding to see relationships blossom through this avenue. We get to interact with people we might not normally work with on projects. Other engineering teams across the company and folks from the support teams are welcome to join, as are people from the training teams. It’s nice to gain a broader understanding of what’s going on at the company outside of my immediate bubble. People find like-minded folks they can try to pair program with at times or mentor or be mentored by. So, we’re creating this environment where knowledge-sharing and support flourish.
00:12:55.440 Lastly, we can also drive some discussions about topics that could use broader exposure in the company. If I know the topics that might interest people, such as inclusivity and how we can improve that at the company, we can leverage these programs to expose those ideas to others. I want to talk now about the three general principles that we have in common for these programs. Some common challenges people think about for these programs are the overhead: it adds more coordination than if you were just doing something on your own. You may not want to get stuck managing it; you might want to be involved in other projects and don’t want to be on the hook for this forever, because it’s not your core job as a developer, after all.
00:13:54.100 It can be easy to push aside when there are other deadlines. So, I’ll introduce these three general principles, and then I’ll elaborate on how they’ve been applied in the programs I’ve been running. The first principle is to make it easy. This means trying to reduce the overhead as much as possible. Oftentimes, people come to me and say, 'Okay, we would like you to do all these different sorts of things; that’s so great!' I tell them that the secret is to set the bar really, really low—so low that it’s hard not to do it. Ideally, there should be an option where all people have to do is block off the time and show up. My goal in running these programs is to want just enough involvement to keep things alive, but not more than that.
00:14:51.440 Sometimes, people will say, 'Oh, wouldn’t it be great if we prepared exercises or had homework?' I often reply, 'That’s a great idea, but we don’t necessarily need it to keep going.' If you want to invest the time to do it occasionally, that’s great, but we don’t have to commit to that on an ongoing basis. The next principle is to make the program distributed. Make it as decentralized as possible. Much like software, I don’t want to be the single point of failure when it comes to running these programs. If I travel, get sick, or want to move on to other things, this principle helps manage that concern.
00:15:45.090 One example of this is documenting how things are being run so that it would be easy for someone else to cover or take over when I move on from it. The last principle is to make it useful, which helps resist the urge to deprioritize these activities. Above all, if you’re not getting much out of something, you should stop doing it. Again, people thank me for running these programs, but it’s really selfish; I run them because I want them to exist. I feel this guilt for not reading as much as I could. It's productive if it’s useful, and it's not useful if it’s paralyzing and makes you want to stop going further.
00:16:39.920 Trying to set up this positive feedback loop really helps keep that momentum going and build on our previous successes. Sometimes, people might drop off a little bit later in book club, and they come up and say, 'Oh yeah, I wasn’t so successful because I didn’t finish the book.' I always want to cut them off immediately and say, 'No! Don’t say that you weren't successful because you didn’t stick through it. You didn’t finish every single chapter in the book. If you read more and learned more than you would have otherwise, that is a success, and you should feel good about that. You already did more than zero!'”},{
Explore all talks recorded at RubyConf 2016
+82