#30: Python Community and Python at Dropbox Transcript
00:00 What does it mean to be a leader in the Python community? Does it mean you contribute to open source projects? You speak at conferences? You start the largest user group? You write a book? You be a core contributor to the language? The answer is yes, and that's why Jessica McKellar won the Frank Willison award for contributions to the Python community. She is the guest on this episode of Talk Python To Me. It's number 30, recorded Thursday, September 24th, 2015.
00:00 [music]
00:00 Welcome to Talk Python To Me, a weekly podcast on Python- the language, the libraries, the ecosystem and the personalities. This is your host, Michael Kennedy, follow me on Twitter where I am at @mkennedy, keep up with the show and listen to past episodes at talkpythontome.fm and follow the show on Twitter via @talkpython.
00:00 This episode is brought to you by Hired and Opbeat. Thank them for supporting the show on Twitter where they are at @hired_hq and @opbeat.
01:19 Hey everyone. I don't have any news this week, so let's get right to the show. Let me introduce Jessica. Jessica McKellar is a startup founder, software engineer, and open source developer living n San Francisco, California. She works at Dropbox, and enjoys the internet, networking, low level systems engineering, relational databases, tinkering on electronics projects and contributing to and helping others contribute to open source software. Her motto is "Be the change you want to see in the world", and she has been a director for the Python software foundation.
01:51 Jessica, welcome to the show.
01:53 Thank you for having me.
01:54 Yeah, I'm really excited to have you on the show. You've been a long time sort of Python hero to me, I've seen some of your talks that you have done at conferences, and keynotes and they were really inspiring, so I'm excited to talk to you about this.
02:11 Thank you.
02:12 So before we get into all the awesome stuff that you are doing, at the outer edge of the Python world, let's maybe take a step back and you could tell me a little bit about how you got into programming, and how you got into Python- what's your story?
02:26 Yeah, absolutely. So, I was not one of those people who was programming since birth. I was a big science nerd in high school and I actually declared chemistry as my first major. And I actually have a chemistry degree, that's my first bachelor's degree. But I had a bunch of friends, I went to MIT and I had a bunch of friends who were pursuing computer science degrees while I was busy pursuing my chemistry degree, and you know, I would sort of look at them out of the corner of my eye, and I looked at what they were learning.
02:57 And it seemed like they were really learning this toolkit, like they were learning a toolkit full of tools for solving many different types of problems in the world, and that seemed very attractive to me and also frankly, very different from what I was getting with my chemistry degree. I wanted to try out what learning that toolkit felt like, and I ended up taking some computer science classes, I was pretty immediately hooked and ended up getting computer science degree and then also a CS Master's.
03:26 That's cool. What was your first programming class language?
03:29 I was at MIT right when they were in the middle of this big transition from Scheme to Python, so my first couple of classes were in Scheme. An then my sort of the back half was in Python.
03:47 Oh that's nice. So, my first computer science class was also in Scheme, and I do wish it was in Python. No disrespect, but Python is just so much better, in my opinion.
03:58 Scheme is a very interesting learning language, but I think that one of the reasons for this transition was some pretty serious declining enrollment numbers in the computer science program, and so as part of this big revamp to make the program accessible to like diverse set of backgrounds, I think that there had been a sense previously that you really sort of needed to have already been programming in high school for you to really seriously consider doing it at university, and they wanted to open the door towards more diverse set of backgrounds and to make it also a more interdisciplinary curriculum. And I think enrollment has been sort of skyrocketing since that change, which is exciting for me.
04:46 That's really great, I don't know why, but it's definitely- I definitely get the sense that Python is more welcoming to people from different backgrounds, it just seems to bring greater diversity. I do conference speaking, I do training in a variety of languages and when I do Python- it feels like the people in the audience are much more representative of the general population. I don't know why, maybe you have better insight than I do, but it's a good thing for whatever reason that's true, you know.
05:15 Yeah, and then, so certainly the Python community has made very concerted efforts, internationally, to be a very welcoming community in particular to for programmers, and then also, I mean the language, the sort of "the batteries included" philosophy means that if you are just learning how to program, and maybe you are not sure if this is for you, the fact that after just a couple of hours of learning the language basics, and then a couple of lines of code you can do something that is actually pretty exciting; it really hooks people.
05:48 Yeah, I think you are right. I mean, programming is so fun and so interesting, but when you are new, it's not fun and interesting, there is all these little terrible details, like, "how do I declare a variable", and "why does this semicolon go there", and "why do I need to know how to declare a class to declare a function just to like print-", you know, there is like all these stuff you have got to sort of make your way through, believing on the other side there will be something interesting and cool you can do but it takes a long time with a lot of languages, and like you said, like Python you get to that the gratification a lot quicker.
06:21 Yeah.
06:22 So, what was it like doing computer science at MIT, I mean that's one of those schools that's definitely up there on the pedestal, and I bet it is pretty interesting environment, can you tell me what that was like?
06:33 Well, the pedestalization is funny, because, honestly the school was very similar to lots of other, you know, stan focused university is in the country and around the world and the thing that you really benefit from at MIT is the network, but yeah, you know, it was a rigorous computer science education and I learned a lot. One of my fondest memories, maybe it wasn't fond at the time, so I had this like fairly compressed computer science education there, because I sort of spent the first two years getting a chemistry degree and then the last two years getting a CS degree, and so I ended up...
07:09 So the time from first computer science class to taking grad classes was rather condensed, and I had this really distinct and fond memory of taking there is a sort of famous operating system class 6A28 and that was the class where I really learned how to be a systematic debugger. Because, when you are building an operating system from scratch this wasn't in Python, but you know, debugging is a universal tool of programming languages, but when you can't trust like your page table implementation, you can't like trust anything about your- you really learn how to be systematic about these things, I look back on that very fondly, like it was sort of very rigorous, it was very hard for me at the time but I learned a ton from it.
07:54 I can imagine that, if you mess up the memory implementation or something, right, like, that's pretty critical, just like you off a little bit, something goes really wrong, so yes, that's really, I'm sure that was interesting. Was that in C?
08:08 Yeah, and a lot of assembly.
08:09 I'm sure it was fun, like you said, I'm sure the most important part is just being around a bunch of smart people super excited about programming, just kind of immersing yourself from that world.
08:21 Yeah, totally.
08:22 The reason I reached out recently to you, is you got a big honor at the Python community, and you won this thing called the Frank Willison award.
08:32 Yeah.
08:32 Congratulations on that. Do you want to talk about that a bit? Maybe you tell us all what it is first?
08:38 Sure. It's mostly a recognition of sort of sustained involvement and investment in the community in particular, and that is pretty much my cup of tea here. So I do, you know, I have contributed to language, I'm a maintainer for a various open source Python libraries, but a lot of what I am invested in is the community side. I guess some of the things that I have done over the years have included being an organizer for the Boston Python user group, which became the largest user group in the world-
09:08 How big is that?
09:10 Several thousand people.
09:12 That's pretty awesome. You can have everybody attend, right?
09:15 No, you can't, but it's really wonderful sort of online and offline community and there are a bunch of people who deserve a ton of credit for this, it's certainly not a one person effort, but part of the growth was around us making a very concerted investment in attracting and retaining sort of diverse backgrounds, in the community in Boston. Boston is a college town, you have a ton of students, there are a bunch of fields adjacent to just sort of pure software engineering but very well represented, like there is a big biotech community, the science is very well represented there.
09:55 Yeah, you've got all that high tech stuff, what is that, 1.28 or something sort of on the ring out there, there is a lot of really cool companies-
10:05 Yes, so I had this opportunity to be in bunch of sort of really interdisciplinary one or two interdisciplinary discussions, and also to be very concerted about attracting diversity among other demographics, so we had a very concerted push, whereas getting more women into the community for example, take more students into the community and that was big part of our growth. And that model, sort of the model that we've built out was starting with sort of introductory series of programming workshops and building that into a pipeline of sort of project for your company where you can get mentorship for whatever projects that you are working on, to intermediate Python workshops, and then sort of being well situated at that point to be just a general fluent member of the community. And so this pipeline model has been emulated in the bunch of other cities, and it's been very successful.
10:58 Sure. I currently am not in Portland Oregon, but I live in Portland Oregon. The Python user group there, seems to be modeled very much like that, they've got like a peer mentoring night, and then once a month they've got more formal speaking and then they've got a lot of different levels, and I think that that is really pretty key to making it successful, like you said.
11:18 Yeah, I've actually been to the Portland user group on a couple of occasions.
11:21 That's nice.
11:21 Yeah.
11:23 Yeah, very cool. You know, it seems to me like if you are just a student or somebody, if you are to go to user group or some famous speaker talking about the new bits of some advanced piece of the language or some library or technology, that's sort of inaccessible to you, but I think having this pipeline is sort of what brings people more in, it's probably good.
11:46 Yeah, and you want the super advanced stuff too, I definitely want to be- have the opportunity to talk with, experts on advanced topics, but having the beginner, the intermediate and the advanced topics covering your base is definitely important.
12:01 Yeah. That's super cool. Ok. So, Python user group in Boston, you work on some other things? I know you have a bunch more.
12:13 I was a director for the Python software foundation for a couple of years, a codeshare for the our region education committee which is specifically dedicated to bringing Python into learning communities and attracting diverse audiences.
12:31 So what level are you focused at? Is that university, is it high school, general?
12:36 It's really everything. And actually a lot of learning opportunities and learning communities outside of the formal education system, so supporting a lot of diversity focused workshops or perhaps like an after school program for kids where they might not otherwise have a formal opportunity to learn how to program- it's really the full spectrum.
13:00 Ok. That's cool.
13:02 And a lot of the international investments, which is really cool, so we definitely giving grants for people on probably every continent except Antarctica, yeah.
13:14 Yeah, there is probably only scientists on Antarctica. They have probably brought Python with them actually. Keeping it warm in some hot- One of the things that I really liked that you did, was talk I think it was in New Zealand, Kiwi PyCon, is that right?
13:36 I've been there, yeah.
13:37 Yeah, and you said, your title was something like "Choose your own Python adventure". Do you remember that talk?
13:43 I do, yeah.
13:44 Yeah, that was really good, and let me see if I can summarize it so we could talk about it a little bit; so, you kind of said like look, we want development and programming in Python to be wonderful and delightful. And there is a lot of positive stuff happening like you talked about, the adoption growth and things like that, but you wanted to make sure that it keeps growing and there was maybe some challenges, that you said, look, we need to address these things. The number one issue that you brought up which I thought was pretty interesting and resonated with sort of my experience as well was, “Python on Windows”. So, what's the problem with Python on Windows, even though it is getting better?
14:24 It is definitely getting better. The talk was a couple of years ago and there has been a lot of investments since then. But this stands from I think an issue that is common in many communities, and also many startups, like there are many contacts in which this is true, which is this that the developers are using a different environment than the users. So the vast majority of people who are programming in Python are programming on Windows, and very few of the people contributing to CPython code base use Windows. And that creates a disconnect around- you need to be, you need to have a good understanding of what the experience is.
15:11 I'm talking of sort of the early experience, the onboarding experience, the insulation experience, for the vast majority of the users and take that empathy back and invest it in the language. And so a lot of it stands from that, just not having a lot of people regularly experiencing what it's like to be a beginner in a language on Windows. And so the key challenge is like attracting folks who do have that background, and welcoming them into the development community, and then also just being more conscientious and proactive about addressing that very large segment of our user base.
15:47 So, I come from sort of blend, I've been through a serious of startups and acquisitions, and I tend to think that everything in life including the Python community in terms of, like a pretty standard what user attention final analyses and if you think about it, it's like: Ok, Python wants to be a language that, hopefully, many people are still using in many diverse areas, many years, for many years to come. And to do that, we need to be getting new developers and retaining them.
16:24 And it's sort of like, at your big top of the funnel is all of these new users most of which are on Windows, and then you know, you get those folks to use a little language maybe in a basic way, maybe in school, you want to retain them through them using it professionally, and then you want to convert some of those folks hopefully into becoming active contributors back to language in community. And the thing that we can- it's easy to focus on things that impact a smaller set of the funnel, if you are not really conscientious of what the broader funnel looks like, because like, there is a disproportion at impact for focusing on the top of the funnel, the widest part of the funnel.
17:03 So the investments that you make, that make the first five minutes of using Python better, are going to have an impact on like hundreds of thousands of people. And then fixing like a particular bug that affects like some specific bug in some specific library, potentially is so very important, but may impact a smaller number of people. Because we shouldn't do both, we should be conscientious as a community about ensuring that we are investing enough in the top of the funnel.
17:35 Yeah, it's really interesting to view the ecosystem and life cycle of a language through growth hacking terms, that's really cool.
17:44 Yeah. I can't help it.
17:45 But it makes perfect sense. You are right, there is a disconnect, I mean, if you take the time and you make let's just focus on Windows, but it could be basically getting started anywhere, if you make getting started with Python on Windows better, you are not going to go to the conference necessarily and, oh that's the guy that made that better, because everybody there like doesn't hit that problem, they are way past it, right. But if you make co-routines just slightly more efficient, they might cheer when they see you, or something you know, but like you said, the people that are coming in, they feel that pain and I've done a lot of training where there is 30 Dell or HP laptop screens or you know, facing me and there is a lot of- well, it says Python is not found when I type Python. So I get like ok, well did you restart the command line, and the command prompt, after you installed it, there is just all that friction right?
18:42 Yeah. And to be clear, I'm definitely not knocking, so folks should do what they are passionate about, and if the thing that people are passionate about is in fact like optimizing how co-routines work that's fantastic. So collectively as a community we should value and we should incentivize and recognize the efforts that do impact this big part of the funnel that has historically been underserved.
19:06 Yeah. So I totally agree, I guess I should recommend that people watch that video of yours, even though it was a few years ago, I'll put it in the show notes, because I think it is like you said, it's a place to have where there are sort of low hanging fruit that can have really big impact on people. So, what do you think about things like IDEs, and stuff like that that maybe do a little more hand holding for getting people started?
19:06 [music]
19:06 This episode is brought to you by Hired. Hired is a two-sided, curated marketplace that connects the world's knowledge workers to the best opportunities.
19:06 Each offer you receive has salary and equity presented right up front and you can view the offers to accept or reject them before you even talk to the company. Typically, candidates receive 5 or more offers in just the first week and there are no obligations, ever.
19:06 Sounds pretty awesome, doesn't it? Well did I mention the signing bonus? Everyone who accepts a job from Hired gets a $2,000 signing bonus. And, as Talk Python listeners, it get's way sweeter! Use the link hired.com/talkpythontome and Hired will double the signing bonus to $4,000!
19:06 Opportunity is knocking, visit hired.com/talkpythontome and answer the call.
19:06 [music]
20:41 I mean, in general I think that's great, for people where it works, and for environments where it works, some of them are very common, and schools. I don't actually know if this is a majority opinion or minority opinion, but I have a strong opinion on this which is that I think that- so in general with Python, it's like there is one explicitness is better than implicitness, and like there is hopefully one obvious and good and correct way to do things. One of the places where we don't sort of inherit to that philosophy, is in how we recommend that people get started. And I actually think that there is an opportunity for us to be more opinionated with new learners, about how to set up their environment, in a way that will sort of maximize our chance of being successful new learners of the language.
21:30 So if you go to python.org right now and you try to follow the instructions for how to get your development environment setup, there are many forking recommendations, and we try to be in the sort of neutral place and I understand why there is a temptation to present yourself as like a neutral in providing all of the options, but the problem is that a new learner doesn't know enough to know to determine what the right answer is, and so being opinionated about potentially an IDE, maybe the answer is an IDE, maybe it's not and I think we should reconsider having more opinionated stands on what development environment we recommend for new learners.
22:16 Yeah, I think that makes a lot of sense. It means you don't want to 22:20 some significant portion of the population, saying use Emacs/ don't use Emacs, use PyCharm/ don't use PyCharm, whatever, right. But when you are new, recommendations if you say well here is 4 good choices and then, like you say it's tough. So, do this, get started, then make your choices down the road or something. I'm not really sure what the right choice is.
22:43 But I think it's a conversation worth having.
22:44 Yeah, I definitely think it's a conversation worth having. So, one of the things you did, as you said, for a while you were the PSF director. So what does the director do, what's that like? That's a crazy role to have.
22:57 And so, just to be clear, there were several directors on the board together. And, so this is the, the Python software foundation is a 501(c)(3) non- profit and it is sort of 23:10 for the community and also as a non- profit has the ability to collect and disperse funds towards investments in the community. So a big part of what we do is to get funding and then reinvest it in the community in a smart way. We also do things like underwrite PyCon. So those are the two big things that we do.
23:30 And there is also an aspect with this investments- and so like what are you investing in, you want to invest in accelerating development of a language, invest in development of our popular libraries and maybe new libraries, new initiatives, not new anymore but you know, back in the day for example we give a big grant to PyPy, so potentially new initiatives that would accelerate the language or broaden the site of domains, in which Python is an excellent language to use, and then also investing in like local community initiatives which include everything from local workshops to regional Python conferences.
24:09 Ok. That's really cool. Does trying to promote Python 3 fall under that banner?
24:15 Yes. I would say yes, we tend to, I mean so just to be clear, the PSF doesn't try to dictate details of the language, but definitely- I mean, Python is important a) because it's a future Python, and b) it's important that as a community we communicate a clear direction externally, but it can be very confusing again potentially to new learners or companies that are thinking about what languages they want to use for a new software tag, like they want to be confident that the Python community knows what it's doing, and has a clear sort of future direction, so so that is a part of sort of our communication mission in the PSF and it is definitely important to us. And we have funded, we give away grants to port major libraries to Python 3 and things like that.
25:01 Right, sure, I had Chrs McDonough on the show and he talked about, you guys, I don't know if you are involved directly but PSF sort of nudged him to get Pyramid to run on Python 3, what he was not exactly rushing to get it done, because he was actually working. Things like that. Right now, professionally you are working at Dropbox, right, in San Francisco?
25:25 Yes.
25:26 That must be a pretty awesome place to be?
25:28 Yes! It's been a lot of fun. So, as I said earlier, I come come sort of a series of startups and acquisitions, and the latest startup and acquisition have landed me at Dropbox. And I had been in Boston for ten years, coming out of university and sort of the inexorable pole of Silicone Valley finally got a hold of us, we all moved out west and...yes. So I am a director of engineering at Dropbox, I run the engineering group that is responsible for all of the sort of the platform software, so this includes the desktop clients, a mobile apps and mobile as a platform, Guido is a part of this group.
26:09 That's awesome, so what is it like to work with him?
26:10 Yeah, I mean, he is- if you've ever- if anybody here looks for the Python dev mailing lists, it's about like that, but yeah, Guido has such expertise with- if you think what skills developing a language entails, those are skills that are incredibly useful when complex systems, when thinking about abstractions that need to be very long lived perhaps with API design for example, so he is a very, he brings a lot of excellent expertise to the table at Dropbox.
26:45 I'm sure.
26:45 He also tends to get- we get into an occasional Python related flame, but that's part of the course.
26:53 Yeah, I'm sure. Yeah, I mean one of the really valuable skills that I could think of is like simplicity. You know, people see something that is simple and they think, "well, that must have been easy to build, because it's simple". You know, that's hard with languages, that's hard with complex software, but it seems like he's at least now that far from Python the language, I haven't seen the Dropbox codes, I can't say for sure, but I bet that skill transfers over.
27:18 Yeah, definitely. So the Dropbox desktop client is written in Python, it's one of if not the largest piece of desktop client software that is out, and Dropbox has 400 million users. There aren't that many pieces of desktop software that aren't sort of bundled with an operating system distribution, that have that level of user base. And so that's all in Python, not in Python 3 although we periodically- you know, it's a very large historical code base but we do periodically 27:48 it if we are going to make the jump to Python 3.
27:51 That's super interesting, I did know that and I thought it was great, so I'm glad you brought it up. Can you talk a little bit about like just the internals, the libraries, you are using, how you built it, how you distribute it, like what's the story with that?
28:07 I don't actually think that I'm allowed to. Sorry.
28:13 Ok, I don't want you to do anything you can't do, but you know, a lot of people build little utility scripts, or there is a ton of web applications and data science apps, but the sort of here is the thing with the UI that I can ship in Python, it's really interesting.
28:29 Yeah, well Python is taking us a long way, I mean Dropbox has been around since 2007, and Python gives you this cross platform, best type planned software that you develop against pretty rapidly, you know, we certainly benefited I think quite a bit from making this early language choice. There are present cons, like there are definitely alternative models for desktop client development, but it served us pretty well.
28:53 Yeah, it seems like it has served you guys pretty well. When I think of companies that are like making major use of Python, well, Dropbox maybe along with Google and a few others, is right there at the top. Can you give us kind of a sense of like all the things you are doing with Python there? Or you and other people obviously?
29:10 In addition to a desktop client being in Python the majority of our server side code is in Python as well. So, we pretty much use it for everything. There is a little bit ago, our mobile app server was in the language that you would expect but Python is definitely the majority language.
29:26 So, do you want to talk a little bit about some of the open source projects that you work on? I saw you're a core contributor to Twisted for example?
29:34 Yeah, so and I have to admit that sort of there is a flow to how much of my time is spent on sort of the community and the people parts versus the technical parts; the first open source project that I have ever contributed to is Twisted, it came out of an internship that I was doing, I was using Twisted- so Twisted is, I mean maybe everybody know, but Twisted is an asynchronous networking library in Python and I was using some of the primitives and some of the documentation was a little unclear to me and I thought, "Oh hey, this would be a great opportunity to like try my hand at making my first ever open source contribution".
30:15 So I created a little tiny def for like a little bit of documentation change and like very nervously, I like quadruple checked all the instructions, like contribution instructions, and then like you know, quadruple checked all the ticket fields and then like sort of sweat a little bit with my head hovering over. And it was super nice, so Glyph who was the creator of Twisted. Incidentally, this is what San Francisco is like, incidentally he lives in my apartment complex now.
30:47 Oh, wow, what a small world.
30:49 Right. So Glyph is the creator of Twisted, and a bunch of other folks who are super friendly, very willing to handhold me through the process. I ended up making some more small documentation contributions, I ended up sort of getting pretty involved in the community, I ended up writing a book about it with O'Reilly, so that first little nervous documentation contribution ended up being a very important for me, because that was such a positive first experience with contributing to an open source project. I want everyone to have that positive first experience. It was very important to me and hopefully also it's going 31:32 for Twisted. So that's one of them, and then OpenHatch is both a web side and a non-profit dedicated to lowering the barriers for entering for open source contribution, and I've been involved with them as well. And then I just like miscellaneous patches here and there to various other co Python.
31:52 Yeah, that's really cool. I think that's one of the nice things about the Python communities, they seem pretty welcoming to new folks, whereas you know, if that was like a C++ project, they might have not been as welcoming, right? It could have been, "Oh, you did this wrong" or whatever.
32:09 Well I hope that all language communities and all sort of libraries are recognizing how important it is to provide a good initial experience for potential contributors, because it's so important for you, like if you want your language or your library to continue to evolve and be popular, like you need to be ingesting new contributors who can pick up some of the development. So hopefully people are learning that.
32:33 That's for sure. And I think things like GitHub and Bitbucket are really sort of opening the door to make this feel less threatening as well, right, you are not cruising around source forge, trying to use similar clunky tool to get a check in to go or something.
32:50 Yeah, definitely.
32:51 Do you have a favorite open source project? Whether you contributed to or not?
33:00 Well, that's...
33:00 How about one or two of your favorites? You don't necessarily have to be exclusive.
33:06 Sure. I mean that's I think I can answer the question on number of different levels. So, I have used Django at this point through several startups, and I think that Django is a very important thing that have flourished in the Python community, it really was a big part of opening a Python being a serious language for many types of website development. On a personal level I have used it quite a bit and because I think it has a very material positive impact on the community. That's probably a choice
33:43 Yeah, I would say Django definitely has had a really big impact, so that's the good one.
33:49 Yeah.
33:51 You know, and Python itself, but that is kind of assumed, right?
33:56 Sure. Well, and having contributed to CPython, my challenge would be, that I think we haven't quite correct been on getting really good sustained new developers to core Python. And that's a thing that we should- that's a nut that we do need to crack.
34:17 Yeah, absolutely, and Guido actually made that a key part of his key note at PyCon, right?
34:22 Yeah.
34:23 Yeah. So, it's tough though, it's a very different world than Python and people are drawn to Python, the language, and then you go look at the CPython and it's to some degree a totally different type of programming, and skill set and so on, so...
34:39 Well it's a very mature project, in terms of it's been around for a while, it's the language so the commitment to quality needs to be very high, like we can't sort of regress functionality if we have hundreds of thousands of people who develop against it and then millions of people who end up sort of using the end software that is developed. So it's very mature, there is like a fair amount of process and that is all important and necessary but figuring out how to balance that again is making it an inaccessible environment for new contributors.
35:16 Yeah. Sure, I mean if you are writing software used by that many people, you have got to deal with every case, be just super careful and then on top of that it's C which means it's a little harder to do.
35:16 [music]
35:16 This episode is brought to you by Opbeat. Opbeat is application monitoring for developers. It's performance monitoring, error logging, release tracking and workflow in one simple product.
35:16 Opbeat is integrated with your codebase and makes monitoring and debugging of your production apps faster and your code better. Opbeat is free for an unlimited number of users and until recently has only been available for Django developers, but I'm happy to tell you they're launching Flask support.
35:16 Visit opbeat.com/flask to be among the first to join the Flask private beta.
35:16 [music]
36:23 I think it's important that people that work in Python kind of at least have a conceptual understanding of what is happening in, down at the CPython layer. There is a guy named Philip Guo who did a really cool thing, he took his graduate class that study the CPython codebase and then took like that and put it on YouTube, so there is this thing called, he called it the CPython 10 hour code walk or something like that, and I had him on show 22 to talk more about it, so I totally recommend people to go check that out if they want to learn more about CPython.
36:58 Yeah, totally, and I also, I know Philip, we were actually, I actually know him through a couple of channels, we were at this, there is a community that used to be called Hacker School, that is now called The Recurse Center, which is sort of like an artist and residence program for programmers, it's a fairly unstructured environment, where you go and you sort of invest in your programming skills for several months, and I have sort of been a visitor speaker at that program, and as has Philip. So we sort of crossed paths. Students So, it's a small world.
37:40 It definitely is. Where- if that was a thing in person, where was that?
37:43 So Hacker School in New York.
37:47 So, I've brought up here a video, Choose your own Python adventure, are there other videos that are either on YouTube or other places we can find that people should check out if they are interested more?
37:59 Like, of me or...?
37:59 Yeah, I mean like top secrets given that you think hey people should check this out. Or I guess other ones as well.
38:04 So many of the talk that I have given at various Python conferences are online and you can find them on Py Video. Maybe the one of the most gratifying things for me is so for couple of years at PyCon US I did an intro to PyCon tutorial, so you know, it's a 3 hour tutorial for absolute beginners assumes no prior programming experience like we walk everyone through everything, like from the environment setup on through the first couple of hours in the language, and we are at something like 200 000 people that watch those videos which is- well, it's a lot of people, I guess it's incredibly gratifying to me that there are that many people who were like wanted to learn Python and then took the time to have that first experience watching that PyCon tutorial. So that is something that I am proud of.
38:59 Ok, that's really cool. I mean, just the thought that you've influenced that many people down that path has got to be gratifying.
39:08 Yeah, and I really, like the beginners are where my heart is, I think some of that comes from being comparatively quote unquote lead to learn how to program, being surrounded at school who had been doing it for a lot longer and really sort of feeling like I was catching up for a long time, I think that built up a lot of empathy that has stayed with me through the years around, like what it's like to be a new programmer, what it's like when everything maybe feels foreign and you maybe are surrounded by people who would feel like they have been doing this a lot longer than you. And it's really wanting to provide an excellent experience for those people.
39:53 That's really interesting. I hadn't really thought of it that way before, but I didn't get into programming until like a ways into college and super deep into it until kind of my senior year almost in college, and I think it does help you teach people who are new because the sort of pain of learning is fresh so if you learn it when you are ten years old it's like learning language, like I don't remember how I learned English, I just know English, right? So, I feel totally unqualified to teach English but I do remember learning programming, and all the mistakes that I've made, so that's quite an insight. What else would you like to talk about while you are on the show?
40:31 Maybe there's a call to action here, for listeners, I am not sure, there are probably listeners from many backgrounds but I would encourage everyone to think about what they get out of Python the language and community and to consider if you are not ready giving back in at least one way either technically or in a more community oriented way, and if that is, like taking the plunge and making your first open source contribution, if that is volunteering with your user group at an upcoming workshop, you know whatever it might look like, I would definitely- one of the really many important things about Python is that it is almost entirely community driven, there is not a giant company or consortium behind the language and community, most of the conferences are volunteer driven, and so it really is like sort of the success in the community and requires us all working together to drive the language and community forward, that encourage everyone sort of to take that part in community seriously and pick at least one thing that you want to contribute by the end of the year and go ahead and do it.
41:46 Yeah, that's a great call to action, and I definitely second that. I'll throw a few more ideas out there. Hour of Code is coming up in December, you know volunteer at your local school, it's surprisingly easy there is actually a lot of Python sort of online Hour Of Code focused things so you know, you could maybe help push a kid in the direction that they start down the programming path where they might not have otherwise. Last year I volunteered at my daughters' elementary school and we did programming for first, second, third, fourth and fifth grade, we did a whole bunch of little classes throughout the week and then, 3 or 4 months later I saw a kid who was in third grade walking to school with the Javascript book. And I talked to his dad and he said, "Yeah, that's because he did that Hour Of Code thing with you". How awesome is that?
42:33 It's awesome.
42:33 Right, so I mean that's lie a few hours once a year you can do that, if you learn something, you are exploring some new library and you have a hard time finding documentation or it doesn't seem clear, you can record a video and put it on YouTube right, of what you figured out just to teach somebody how to get started right. A lot of ways to get that. Jessica, let me ask you a few questions, put you slightly on the spot before I let you go.
42:55 Sure.
42:56 Question I always ask my guests at the end of the show is what is your favorite editor? If you are going to write some Python code what do you open up?
43:03 Sure, I mean I am an Emacs user.
43:07 Yeah, learned it in MIT and that was that?
43:09 Yeah, pretty much. You can run a web browser inside an Emacs why would you not want to do that?
43:15 Of course. It's awesome, and then, there is so many awesome packages on PyPi that people can just go and grab you know, what are some of the ones you think people maybe do not know about that you would like to highlight and talk about?
43:30 Oh Gosh, I think my answer to this are probably unfortunately quite 43:32 there are lots of, there are libraries that facilitate- how do I even describe this, I participate in a lot of capture the flag events and so there are a lot of Python bindings for various types of like program introspection that you would do, like if you want to disassemble something, and then like trace flows to the program like there are Python libraries that facilitate that, so like we are to automate some of these processes so what you might use is to be disassembling and analyzing the binary for a capture the flag event like you can actually do a lot of the stuff in Python, and that's like a super 44:16 answer that is maybe not what you look out for.
44:18 No, that's good, I mean everybody has their own specialty and it's cool, it's like otherwise we'd hear Numpy, we hear Request, SQLAlchemy, so that's exactly what I was looking for really.
44:31 And the other thing I would say is that it's very very cool that there are such strong communities around certain various disciplines, and that's very exciting for me. So it's like astronomers have all kinds of like super sophisticated astronomy focused packages on PyPi like basically all of the science disciplines for like finance like there are a bunch of very sophisticated Python packages, it's like the fact that you have gotten into that level of specialization and have the ability to support these domains in very sophisticated way, I think that is very cool.
45:06 That is an absolutely huge win for the Python community. And I think it's just accelerating the diversity people come in from these different disciplines. yeah, that's great. Final call to action, people, get out there, contribute, donate your time, give a little back.
45:06 Jessica, thanks for being on the show.
45:25 Thank you so much for having me.
45:26 Yeah, you bet. Talk to you later.
45:26 This has been another episode of Talk Python To Me.
45:26 Today's guest was Jessica McKellar and this episode has been sponsored by Hired and Opbeat. Thank you guys for supporting the show!
45:26 Hired wants to help you find your next big thing. Visit hired.com/talkpythontome to get 5 or more offers with salary and equity right up front and a special listener signing bonus of $4,000 USD.
45:26 Opbeat is mission control for your Python web applications. Keep an eye on errors, performance, profiling, and more in your Django and Flask web apps.
45:26 You can find the links from the show at talkpythontome.com/episodes/show/30
45:26 Be sure to subscribe to the show. Open your favorite podcatcher and search for Python. We should be right at the top. You can also find the iTunes and direct RSS feeds in the footer on the website.
45:26 Our theme music is Developers Developers Developers by Cory Smith, who goes by Smixx. You can hear the entire song on talkpython.fm.
45:26 This is your host, Michael Kennedy. Thanks for listening!
45:26 Smixx, take us out of here.