Django Chat

Teaching Python - Michael Kennedy

Episode Summary

Michael Kennedy is the creator of the Talk Python podcast, courses, and a new series from Manning. He joins us to discuss how Python has become a "full spectrum" language, how Python 3.5 changed everything, and where Django fits into the larger Python community.

Episode Notes

Support the Show

Our podcast does not have a sponsor and is a labor of love. To support the show, please consider purchasing one of the books on LearnDjango.com or suggest one to a friend.

Episode Transcription

Will Vincent 0:06
Hi, welcome to another episode of Django Chat, a weekly podcast on the Django web framework. I'm Will Vincent joined by Carlton Gibson. Hello, Carlton. Hello. And this week, we're very pleased to have Michael Kennedy host of talk Python. Join us. Hi, Michael. Hey, guys.

Michael Kennedy 0:18
It's really great to be on your show. Thanks for inviting me. I'm happy to be here.

Carlton Gibson 0:21
Yeah, no, thank you for coming on this real honor. You're like, you know, with our little itty bitty podcasts, and then as you

Michael Kennedy 0:29
saw, I've mad respect for you guys you're doing it's great.

Will Vincent 0:31
And this is really full circle for me, because the first podcast I ever did was as a guest on your show. That's right. I mean, that really kickstart the idea that podcasting was the thing. And then you've been really encouraging over the last couple years, as I've asked you questions about the podcasting space. So I appreciate that. Oh, yeah. Happy, happy to do that. We had you over there on episode 190, about teaching Django and your books and stuff like that. And it was it was great. And you know, podcasting is so much fun, isn't it? It is Yeah, it's it's been? Yeah, I mean, what have we learned Carlton? I mean, it's been a great excuse for me to get to know Carlton better. And the Django community by proxy, you know, it's one thing to do the code, but I guess the people, right, as you know, from doing your podcast, that really is a benefit.

Carlton Gibson 1:13
It's my one sort of humor interaction for the week as well for me, so I really value it.

Will Vincent 1:17
Well, it's our families and then each other, basically. Yeah, these days.

Michael Kennedy 1:22
Yeah, you probably didn't expect that when you started the podcast. So you're gonna need to set up like a, a pandemic lockdown way and to keep in touch with the community with people, right?

Will Vincent 1:34
Well, in some ways, my life is the same. I mean, aside from people have masks on the street. I mean, I still stare at my computer, I deal with my kids. And I talk to Carlton, so

yeah, pretty well suited for it.

But let's talk about talk Python. Yeah. And then you have some new courses that you come out with Manning. So this is why did you start it? And I guess maybe, because you probably asked about it a lot. What do you know now about podcasting that you wish you knew back when you started? Because it's was it year five, or something for you? Yeah, yeah,

Michael Kennedy 2:03
this is year five and 2015. In April, I launched the podcast, I remember that, because I was super nervous about it. I did not think that podcasting was something I was particularly skilled at. But it was something I was very passionate about. I really loved learning about technology through this sort of back channel of podcasts. When we think about learning, you know, you you go and you learn the API, and you learn how to build stuff, and so on. And, you know, it's all those things for the most part, and, you know, science and that, that realm falls into this as well. So much of it is sterilized down to, these are the raw steps that you got to do. where, you know, it's just, it's so much more fun to hear the human side of like, well, we tried this, and that was such a bad idea. So we don't do that anymore. Here's what we do instead, and, and so on, and so on. And I just think that that is a really valuable way to see the community and to feel more in touch with it. Right? If you start to hear about the learn about who's, who's creating what, where, you know, where's the puck headed, I think that's an important part of the technology space being successful in your careers, sort of making bets on technology. And it's much easier to make bets on a humanized side rather than a bunch of, you know, well, this one's got 1000 GitHub stars, and the docs look good. Isn't that how you choose packages? And then and just so you were at the time, you were just a gigging software developer, right, it was just a side project for you. Just in terms of where you've come the last five years, exactly, it was a side project. For me, I was sort of transitioning out of being a professional trainers, you know, education, travel around the different companies and teach Python and other stuff to them. And I just, you know, I wanted to sort of branch out and get more deeply involved with Python. I had been doing C sharp before that. And I'm like, No, I really want to be over in the space and really enjoying it. Where are the podcasts? How do I listen to them? Wait, why are there no podcasts? What's going on? And all three of us have helped to solve that problem.

Will Vincent 4:16
Yeah, for sure. For me, like I listen to your podcasts to get beyond Django itself. Because, you know, Python is bigger than Django, which I sometimes I'm in my little world, man.

Michael Kennedy 4:26
Python is bigger than all of us. You know, I there's so many parts of Python that I look at him, like, I can have an interesting conversation around this. But I really know very little beyond like, the surface level that I'm just curious about. And I would love. It's great that I get to talk to people and sort of expand that as well. There's just so many ways people are using Python right

Carlton Gibson 4:45
now. I mean, that's one thing I wanted to ask you about, like his talk Python. It's just such a big topic. It's like, though, were you like when you started with Python, obviously, I'm just gonna go for the whole realm. Or when I started, I said, Who

Michael Kennedy 4:57
am I who are my friends and who do I know Okay, can I Invite to be on the show that I like, I know it's gonna go. That lasted for about three, three to malwa. Now where do we go? I think one of the really interesting things about podcasting is most people will just agree to be on there folks who would probably not give you the time of day. You know, they, they're usually happy to be on a podcast, and it really opens doors for you to sort of get these connections and talk to people doing amazing stuff. That it's like, Wow, that's amazing that that person took, you know, an hour and a half out of their day or more to sit and talk with me. When you know, they probably say I'm sorry, I'm too busy at a conference. Yeah. Oh, yeah.

Will Vincent 5:42
Interesting. It's also it's connecting in that, you know, so Django. I mean, Carlton's Django fellow. I'm now on the board. I work with it every day, but I'm still learning about important members of the community I didn't know about. It's such a vast web. Yeah. And knowledge is locked up in the heads of just a couple of people who aren't on a podcast every week. So it's, I mean, just for me through Carlton, I've gotten to meet a lot of the technical side of Django that I didn't really know. And so I think that's one of the things hopefully, for our podcast is it introduces these people who've been, you know, in the trenches, who aren't widely known, who have just been stalwarts of Django for years and years and years, they've been doing the work.

Michael Kennedy 6:21
Yeah, exactly. They've been doing the work for 10 years, regardless of whether you get the recognition or the spotlight, they still been doing it, and everyone's been standing on their shoulders. And it's just nice to be able to shine that light. Right.

Will Vincent 6:33
Right. And I think they don't, they don't want the light, which is a great pure thing, right? They're not they're definitely not self promoters. And, and but if you talk to them kind of in the same way, if you meet them in a at a conference or in person, of course, this is what they spend their time on. And they're they're deeply passionate about it, but it needs to, to have to forum for it to be sorted out there.

Michael Kennedy 6:53
Yeah, for sure. I want to talk about some of the episodes, some of the the fun stuff, the lessons I've learned and so on.

Will Vincent 6:58
Yeah. Well, and maybe, you know, so for you just I'm just so interesting, where you sit in terms of understanding the Python ecosystem, because it is so large, but you're probably have as good a sense of anyone have have it all. How do you account for like mindshare, if you had to draw a chart? Because I remember when I went to pi con last year? Yeah. You know, web was just a tiny part of it. And Django even smaller, which was, I guess I knew that, but just to see it in practice was like, wow, we're really just off in the corner here. It's my sense was it was really all data science. And yeah, I've heard you talk about, you know, Python three kind of coming about, in part because of this new wave of developers who

Michael Kennedy 7:39
have that data? Yeah, they didn't. It's interesting data science doesn't have legacy code in the same sense that we have legacy code, right. They do have core, they do, of course, have legacy code. But, you know, five years ago, there wasn't TensorFlow, and there wasn't necessarily deep learning models that they're using now. So it's not like they're, they've got to maintain their old deep learning models, because they're, they didn't exist, right. So much of the stuff they're doing. And it's changing so fast. And in such powerful ways, it doesn't make sense to try to maintain some legacy projects to the extent that, you know, that site that's been up for 10 years, and it's mostly in maintenance mode, nobody wants to touch it, of course, it's gonna stay in Python two, because if you change it, and it doesn't work anymore, that's your problem. And you're getting the blame Plus, you got to fix it on Saturday. Right? So I would say, it's really interesting, like, Python is often thought of itself as kind of having the the largest wedge of its specialty being web development. And I count myself among that slice. And I'm sure that your audience members largely do as well being a Django show, right? The PSF and JetBrains did a survey, I think it was the 2008. One. So JetBrains, kind of did the data crunching reporting. And it was sort of independent PSF survey, but they they helped out on the back end. Anyway, they one of the questions they asked, Are you a data scientist? Are you a web developer? Are you an other? other third, if you will? And then, you know, how do you feel about your space in the community? And how many others are there like you and the web developers? Like, yeah, there's a lot of us out here, we all all kind of hang out and we all write the data scientists themselves counted themselves to be underrepresented. So the data

Carlton Gibson 9:36
was you said 2018?

Michael Kennedy 9:38
I think it was 2007 or 2000. Sorry, 2017 or 2008? Okay,

Will Vincent 9:43
okay. Right. So 17

Carlton Gibson 9:47
years ago, that was

Michael Kennedy 9:51
so good enough by today. Yeah. So this was it was pretty recent, but a few few years ago, and I thought it was really interesting that day. data scientists felt like there were fewer of them than there actually were. And it turns out that there's about an equal equal split between web developers and data scientists. But if you look at, you know, keeping the science mode, you look at the derivative of the data scientists, I think that that is steeper than it is right. As it's growing. There's there's more people coming into Python through the data science channels, currently, than they were through the web. I'm not really sure why that is. I think there's, there's other choices that people are making on the website that are rate offs, but they see them as decent trade offs, right JavaScript node, which, you know, I don't really want to go do those things. But a lot of people see that as like a, that's a pretty viable path to go. And you've got the Java folks, you got the ASP. NET folks on the data science side is kind of, overwhelmingly Python. I mean, there's some are but overwhelmingly Python. And so I think there's like this, this, this influx of folks who come in, and it's really interesting, those those people who come from that space, not all of them, but some of them, don't see themselves as a software developer, you met them at a dinner party, you'd say, oh, what are you like, what do you do for a job they go, I'm a financial analysts, or I'm a biologist, or, you know, I work with traffic patterns, I go, Okay, that's not a software developer type of role. But somehow, you know, Python has drawn them in, and then they get a little more into it. And then you meet them at pi con. And they say things like, this is my first time at pi con. And while this is amazing, and you're like, but you're a biologist, how did you get here? You know, why? Why are you not at like, by bio con? Whatever, right?

Will Vincent 11:44
Well, that's it. I mean, Python is the, you know, beyond data science, I often think of that as like mining, database data. But you know, the sciences, I'm here in Boston, a number of my friends are, are PhD scientists, who are, you know, kind of asking me that it's like Python, or R, and they're like hacking away on stuff. Because it's sort of Yeah, become the default tool for these just massive data sets in every realm, whether it's Facebook data, or, you know, genomes, and it's the way to do it, which I guess it wasn't before. So, so I'm often surprised to just reach out technicals. Anything computational? Seems like a new, it's Python. Absolutely. Absolutely.

Carlton Gibson 12:24
I see a lot of people who are using Excel, and then they need something else beyond that. And, yeah, because Python can integrate easily with Excel, they find a path then all of a sudden, they're using pandas, it's like, hey, they're not data scientists in that. They're just

Michael Kennedy 12:38
using Excel. And, you know, they were, they were just forced there because they had this, this need, and there's like, this looks pretty simple. I can I can get there. And what I think's interesting is, I feel like a lot of those folks, they, they get as far as they need to go. And then like, wouldn't it be neat if we could do a little more and a little more and a little, and then, you know, they take these tiny little steps? Oh, I want to reuse this bit of code. Well, how do I do that? Oh, a function. Okay, I how do I make a function? Oh, and then how do I I'm gonna share this, how do I share? How do I share this, my colleagues, I'm gonna learn a package and they're, you know, all the sudden down in dist, utils land. And then, you know, two years later, they're like, wait a minute, I'm a programmer, how do I become a programmer, just what just happened to me, right in Python has this magical ability to pull people along. And I have this, this label I've been trying to apply to it that I think captures this idea of saying that it's a full spectrum language. And we've got like, really easy languages that are like, Visual Basic, you can create a little Draggy droppy UI, or obviously, like the block type ones that you might teach programming with. But nobody would ever build Instagram, or YouTube with VB, or blocky programming languages. On the other hand, they might choose something like Java, where you've got to understand classes, accessibility, you know, public, private, protected, you've got to understand compilers, and linkers. And all of those things, right, right from the start, right, you know, the public static main void type of stuff, just to get started. And Python has this sort of ability to reach both sides of these worlds. So you can start with a extremely partial understanding of the language, right? You don't even have to know what a function is. And you could be creating like a machine learning model. I mean, maybe you need to know how to call one but not create one. Yeah, exactly. Right, right, top to bottom. Here's the died, right, these 10 lines, and then it tells me whether it's a cat or dog, if I give it a picture, something amazing like that, right. But on the other hand, you know, YouTube is built in Python, and sukhram is built in Python, right like you do dozen million requests a second on Python, which is insane.

Will Vincent 14:57
I was looking before we spoke about your You had a post on your top 10 episodes. And I think the last the largest from last year was on Excel and pandas. And you've just released a course on it. It's true that, you know, we're kind of in web world or data science, and the majority of people just need to solve the problem in front of them, which is PowerPoint, Word or Excel. And I, one of my friends in my co working space, he manages two of the largest Excel training websites out there. And the traffic on those is insane. It is just, I bet it is. Or, you know, 1020 x, what I thought it would be, because

Michael Kennedy 15:34
maybe we should have an Excel podcast, and we should do Excel training, right? Excel books? I don't know.

Will Vincent 15:39
I mean, no, no. Python to excel, but it is, you know, it makes sense, right? Pete most, you know, for us, I think we enjoy programming, we kind of get into it, but most people just need to solve a problem. And if it makes their job easier. Anyway, so that's i when i was Yeah, I wasn't surprised when I saw that on your list of episodes. And I'm often reminded that sometimes I think I get, you know, maybe Carlton, two, we get into, like, the hard niche, interesting parts of Python and, and web stuff, because that's what we focus on. But that's not what most people are focused on, or you really need. They need that. Yeah, on ramping and actually leads in your question when you were doing your training? Was that who what kind of people were you training? Was it like Java developers into Python? Like, like, what was the level of people you were trying to teach? It was usually professional developers. But not always. It was a Python that you're teaching them

Michael Kennedy 16:32
in the last couple years. It was when I was doing that. But Previous to that it was C sharp.

Will Vincent 16:37
So I just asked, because I'm always curious about how to, how do I take someone who's interested and get them involved in not not even Django or web stuff, but Python? I'm curious what your take is on that? Because I thought

Michael Kennedy 16:48
Roblox Sure. And so some of the, one of the examples was I went to work with a bunch of stockbrokers. And people work on the trading floor. And like Carlton said, like, they had been using Excel to, you know, way beyond what Excel was supposed to do. Yeah. And they're like, Michael, we need you to come and give these folks like a crash course in Python, and programming so that they can, they can do things like pandas, and they can move on beyond just trying to use Excel. And they can, you know, do quicker analysis, they can analyze all the data and not like some subset sampling of it and stuff like that. And they were super excited. All those those people, even though they didn't consider themselves programmers, they're like, Oh, this, this is gonna solve the problem.

Carlton Gibson 17:37
Isn't this where we need to beat it? It's like the sort of the dream of computer literacy is that real world folks come along and use their computer and drive it like the machine it's capable of being rather than just play Candy Crush or whatever? Right? Which is great. Yeah, you know. And it just seems to me like we're the I know, we're kind of in the I always say we're in another Industrial Revolution here where we're in the process of it. Yeah, professional programmers like us. Were like scribes in a Dickens novel, right? You go along, you pay your money to the scribe to write your letter. And that won't happen in 100 years, because you'll write your own letter, right, we have to read your own letter. And yeah, they'll always be professional programs, as there will always be professional writers, but to see on mass, you know, the last few years, folks just pouring into Python, real world, folks, that's just like, yes, this is where we need to be. So

Michael Kennedy 18:28
I, that's a beautiful way to phrase it. And I completely agree with you, I hear politicians saying things like, we have a million unfilled computer science jobs, you can think of just the US. And so what we got to do, is our young people are falling behind, and we need to create more little CS programmers so they can grow up to get these jobs. And I just see that it's completely the wrong. Just not even just the wrong approach. Policy wise, I see it as the wrong mental model for what the entire world should look like. Just like you said, Carlton, it's like, why would you want to tell everybody say you're interested in all these things that are not programming, forget those, they don't mean anything to you. Just go write code and make make the login button bigger, you know, like, what, what those people should be doing is they should dive into the thing that they're super passionate about, and then amplify that with programming. So if you're really, really into fighting climate change, or how much more could you do, if you understood the code, you can analyze the data and even maybe create technology, or apps beyond that, right like that. The person who just got there us, the CEO, the college degree, in climatology, versus the person who did plus can write code and create things even if it's not at the level of you know, professional programmer, you can just do so much more. And I I think what you said exactly captures that idea. And what we need are, you know, a bunch of people who can do stuff but are now way more effective and powerful because they, they can do basic programming things.

Carlton Gibson 20:04
Yeah, perfect for that just strikes me that in every role as well, every job, every thing there is there's there's so many opportunities which are, which are available to, for automation for computers to be there, but not such that you could afford to contract a developer to come in and spec it out and develop it. And you know, we'll do all those things, which are really costly. And so that thing doesn't get automated until the person doing it can write the program themselves. And there in the end, there's a massive productivity boost for the economy. Like, it's Yeah, there's more. Yeah, that's gonna happen more and more. I think I, you know, I've been saying this for 10 years. And what's it? Yeah,

Michael Kennedy 20:43
I think part of that steep curve of growth in Python, are folks who, the way I think of it is they're like, captured by the gravity of Python, right? they've they've had, they've tried to use it just enough to solve a problem. And then as they grow, like, back to that full spectrum idea, a lot of times you, you find something easy, and it solves your problem. But then you get to this cutoff where like, it doesn't work anymore. Like now you've got to go learn a real language, like it's time to learn c++ or something, you're like, No, no, no. with Python, you don't outgrow it. And so once you kind of even a little bit get captured by its gravity, it just pulls you further and further in and not in a negative way in a positive way, right? You just to like, get like, you know, find more ways in which you automate these little things, which it powers the stuff that you're doing. Yeah. Then all of a sudden, you're like, Yeah, I was a lawyer. But I basically just write code all day. Now to analyze stuff. You're like, wait a minute, how did that happen?

Will Vincent 21:34
I think part of it is that the traditional engineering science stem background is to go bottom up on everything. So you say, Oh, you want you want to build a website. Let's talk about circuits, AND gates and logic. And then maybe we'll get right. Whereas in the real world, everything is top down. It's like, I have this problem, I need to solve it. And, you know, for me, like with Django, part of the reason I wrote my books was I approached it from a top down point of view where I started with, like, let's actually use it, and then we'll get into it. But just the, the pedagogy and just the mindset of many engineers is, you know, first principles, which presumes the context and the discipline to get through it. All right. Whereas if you're, you know, in your 20s 30s 40s, and you just need to solve a problem, it's like, I ain't got time for that I need to go automate the boring stuff. So I think there's something in the middle there in terms of entryways into programming, right? Like, I know, you have your Python jumpstart course, where you build 10 apps, you know, things where it's like, well, why, right, like, so when, like, why do I want to program? What problem do I want to solve? Like the value of a teacher is to eliminate the cruft and just go Here, take this approach, maybe you won't understand all the reasons, but it will get you where you need to go. And then we can kind of fill that and I see that as sort of a guide, right? Because all the knowledge is out there. It's just the the linearity of like, how do I go from here to here to here and not flame out?

Michael Kennedy 22:54
Right. It's a it's a great point. And I feel like you and I have the same philosophy for sure. On this, I think we talked about it in the teaching Jingo episode we did. Yeah,

Will Vincent 23:02
sure. I'm sure we did. I mean, we must have Yeah. But I think about it in terms of like, you know, how does coding fit into just just kids, right? We all have kids or older people like what is what is that entryway, like, if it's a liberal art? Because it really kind of it is? How do people get exposed to it? Like, there really isn't a general, there isn't a book I could give someone that's shows the lay of the land of kind of hardware software, how computers really interact with society, like there's a couple on hardware, there's this code book, that's good. There's but how do it work? But there's nothing that combines those. And I guess what I think of as an educator is, is that an opportunity? Or is it a little bit like internal combustion where I just want to drive a car? I don't care how it works, right? Yeah, I think people maybe kind of want to care, like, What's an API? Because I came into programming from the business world. And just the miscommunication and confusion is, you know, amazing. Just sort of interesting, right? Like, I have an MBA, I remember doing all these forcing Excel to do all these things and macros, and it's like, wow, I wish we could write a SQL query, or like, you know, us use Python. So I understand that mindset, right. But as I guess, it's a long way of saying it's interested, like, what are those on ramps? What is the problem you want to solve? But kind of then what's next? Right, like, because you probably have this question, people say, I bought all your courses. What next? Right, like it's Yeah. And is, is there is no linear path. Really. I mean, there's Free Code Camp, and there's podcasts, but it's a choose your own adventure, without a guide. In many ways.

Michael Kennedy 24:35
It absolutely is the Choose Your Own Adventure. For all the benefits and drawbacks of the echo. I'm three steps back. I forgot where to go. Now. Yeah, I loved reading those books. That's my kids, the Choose Your Own Adventure books. Yeah. I think part of the challenge of teaching and part of the challenge of learning is, you know, a lot a lot of stuff comes from this engineering mindset you're talking about and a lot of it comes from An academic mindset where, among other things in the academic world, you have a captive audience for four months, five months, right? So they're gonna, the students are going to show up in September, and they're going to have to get their degree or their, their, their credit for the course, in December. And between those two times, they're, they're required to basically come and participate, and so long as you get them to where they need to be, by the end, knowing they're not going to leave after the first two weeks, because they pay $1,000. And it's going to be a black mark on their record. They do. So there's their captive, so we're just going to get them from here to there. And in this way, outside of academics, it doesn't work that way. Right? If you're trying to inspire people, and you're trying to motivate them and get them interested in something, you've got an hour of their time and their interests maybe, and then that's it. So how do you basically how do you come up with a bunch of short wins, getting people from not programming into programming? How do you get them to say, Wow, that was cool. And it wasn't that hard, like everything I just did. I totally understand that amazing. And now I have this power, like one of the examples I wanted to share with you about just like why Python was really interested in having this growth. Just it was yesterday, one of the listeners for my show sent me a sent over a video of this guy named Jeremy fielding, I believe his name is, and I'll share the YouTube video with you. And it's this guy who's into woodworking and, and stuff. He took a tablesaw. And he completely disassembled it and put a Raspberry Pi into it, and a couple of automated motors. And he built his own automated saw with with Python. Wow. And he's got like this, like this gooey touchscreen on the side. This is like a, you know, just a standard plug in all it does is turn this on and off Cypress tablesaw. And he turned it into this robot. And what he said was, this is the first piece of software I wrote. And I wrote it with you kidding me? Like this is insanely creative. And it's you know, it's controlling servos. It's, it's detecting things, it's got a UI. I mean, like, really, really interesting that that people can come on and do the end. But the reason I bring this up is this guy was just, you could just see the joy on every like, every little step like it moved. Can you believe like it was just, you know, he could have done a backflip, like right there. It was just so cool. To see the excitement. And so when you're thinking of like how, obviously building saws is probably not the general solution for teaching people and getting them inspired into programming. But the small wins are

Carlton Gibson 27:51
no that that that look where he's like, yeah, I'm doing it that. That's the teaching reward, right? Where you see the student and I know they want me to come comes to mind is doing the Django girls workshop, and all of a sudden one of the students is in the shell driving the ORM and making it and it's like, yes, and you can see the look on her face that she's getting it. And that moment of like, okay, yeah, that's worth it. That was, you know, all of it.

Michael Kennedy 28:16
Yeah. And if you just can inspire one person like that every once a week or something, you'll change the world.

Will Vincent 28:21
Well, one thing I think about is just this current state in time, it's something like over half of all professional software developers have no formal training. I believe among the three of us. None of us have a formal training and software development, right. I mean, two PhDs and MBA but nothing in software.

Michael Kennedy 28:35
It's either I'm almost Fiji I'm not a full year Navy. Yeah.

Will Vincent 28:41
Um, but there's no other Yeah, I think so. You're trained I shouldn't math. It isn't, you know, very rigid and structured and how you do it. It's just there's total like, good freakin luck. Yeah. And, like, I think on the one hand, that's got to change, but also the kind of people who are drawn to programming. A lot of times it's people, I mean, so why can't everyone learn how to program something that I often forget is that, you know, people have jobs and opportunities, they sort of need the structure of school, they need loans, they need the classroom. So even though, you know, you write a better Python course video than anything in class, and I do a better Django one, someone who's working two jobs doesn't, they have to have the structure of school loans and all the rest, to have the opportunity to have a couple hours a day and the energy to get through it? So there's the I feel like I wish I wish that could change, right? Or maybe it's it's not just the curriculum, it's also just the time and energy and then really the VAT the certification. Because again, like Yeah, I was

Michael Kennedy 29:39
gonna say like proving what the credential Yes, they want the credential so they can get that promotion or they can get that job or whatever. Right.

Will Vincent 29:46
Right, because most jobs require some sort of certification and that's what I mean LinkedIn, right. They bought lynda.com. They're make they're providing certifications. And Linda is interesting because it's hold brilliant moment. When I believe Private Equity people bought out Lynda was were trying to sell in, you know, these like web development classes and photo editing, but were selling to HR and HR, what do they want? They want people better at Excel and PowerPoint. So they added in those classes, and then that's how they got in the door. And, you know, yeah, I don't know what the Django certification would look like. But I, you could think of one for Excel. So again, I see that as, like a blind spot I have that I have to constantly remind myself about as I'm, I'm not standard, right, like, the average person has these, you know, lifestyle challenges. It's not just the curriculum, it's, it's everything, and they need that certification. And in the absence of that, they're not going to be able to justify the cost. And the employer probably has a harder time saying, Yeah, here's a couple hundred dollars to go spend as you will, without some sort of proof.

Michael Kennedy 30:44
Yeah, I totally agree. And I think that is an interesting challenge. I don't know necessarily how to solve it in a way that doesn't require an insane amount of effort, I guess. I want to solve it, like, replicate the university side, or what our mentor side or something but but it's it is a big challenge. I do think there's a there's a bit of a divide, you know, in the programming world, it's very rare. Once you've been spent any time in the, in the industry that folks ask, Well, you know, what is your degree? And where did you get it from? And can I see your transcripts? Like? No, because I've had plenty of people who've gotten great grades at good schools, who were not very effective at programming and people who, you know, were wizards and had very little formal education, like you said,

Will Vincent 31:35
but at the same time, a lot of times you have to pass the white board test. Yeah. So it's like, yeah, you still need to, you know, memorize and jump through the hoops of algorithms that you will rarely use yourself

Michael Kennedy 31:48
that, you know, that drives me so crazy. I think it is. It's such To me, it feels like such a cop out.

Will Vincent 31:54
Yeah, we don't ask doctors to like, you know, pass organic chemistry again, every time they switch jobs. But that's the equivalent. It's like a second year core. Yeah. Yeah, memorize. And you never know us. anybody I

Michael Kennedy 32:05
know you. I know. You're gonna be a heart surgeon, and an ER doctor, but I've written up a chemical reaction sequence on the board. It's missing a catalyst. Which one right like nobody? Like is broken? How do you fix it or whatever? Right. But I feel like that's sort of the reason we get in this situation, I think, is it's hard to verify whether people are actually good programmers, whether or not you have a degree in it. Kind of like I said, a lot of times can you can still be a terrible programmer and have a four year degree in it, or you could be amazing. I feel like and people are willing to lie. Yeah, like I've, there's an amazing, amazing tweet by Sebastian, from fast API, saying he saw a job post asking for four years of experience with fast API. Right. And he's like, I couldn't get this job. I only created it a year and a half ago. You know, I think there's like all of these challenges, in the easy way is like, Well, what does every programmer need to know, they need to know quick store, they need to know binary trees, and so on. So let's just ask them about that. And the reality of like, bringing it full circle, will, what you're saying is, if you were taught in this, you have to understand everything from the lowest level up up in this traditional bottom up engineering way. Maybe everyone does know quicksort, and all these things, but if you learned it in a much more practical way of like, how far down Do I need to go till it works? two levels are stopping there. Yeah, right. Like, I just got it working. I don't care what algorithm it uses. When I call sort, it sorts, it sorts it fast, probably better than me or done. Right? I don't need to know this more. And so it's just such a cop out to say, but what we're gonna do is you're just gonna ask them about these really easy, low level stuff that it's easy to do. And it's, it's, it's sad to me because, you know, imagine you're interviewing somebody for a Django job, fire up soon, turn on screen share and say, Alright, I have an idea for an app. It's called, you know, photo now. I want you to create a virtual environment and get me a Django app running called photo now, right? And you know, they've got a, you know, pip install some stuff, they've got to create a virtual environment, they've got to do some manage py stuff. You'll know right away whether they've spent a lot of time in Django, or whether they, they have just no clue, right? If they can't just do that, bam, bam, bam, bam, like no, they've already lied to you about being the Django they're not a Django developer. They may have studied some Django but they are not they don't have that year of experience or even six months of experience they talked to, and how hard is that instead of saying, you have to, you know, by hand, invert a binary tree like I I've never done that. I couldn't do that. But that matter.

Will Vincent 35:03
I mean, part of it is for Django like how would I, I've learned more and more that, you know, Django is massive. So some of the top Django technical people have told me they've used some of my posts, because they haven't built a Django site from scratch and yours, because they're working on, you know, YouTube stuff, right? Yeah. There's also Yeah, like, I mean, the way I like to do that is I actually, I hate putting people on the spot, I like to say, Show me some piece of open source Django code. And then let's talk through it. Right. And yeah, just tweak rather than anyways,

Michael Kennedy 35:36
yeah, add a feature to a basic app or something. Right. You know, there's, there's, there's like these simple steps. You can't You can't you want to explore the the magnitude of their knowledge, whether or not they can you know, add a new view, or add a new form to a webpage. But you'll get a sense, not just technically, can they do it, but are they comfortable in that world? Right? Do they do they feel what did they look like? They usually use these tools and these API's, or do they look completely floundering? Right. And and that, that distinction, right, there is usually enough to to know whether or not that person's, you know, knowledgeable, someone somewhat to the note in the right place,

Carlton Gibson 36:15
that kind of thing.

Michael Kennedy 36:17
Yeah, exactly. So I don't know what so when I see these, like in, you know, do quicksort from hand, it just makes me cringe, because it's wrong on so many levels?

Will Vincent 36:27
Well, I think I mean, one thing I think about, since I didn't program until my 30s, is that programming is uniquely intimate in terms of the work setting, if I'm hiring someone to be a doctor, or a barista or anything, I just need some set of credentials, and they're going to deal with the customer. And I'm just going to watch them and that's, that's all I care about. Whereas programming, it's like this hive mind that we're creating, right? It's really intimate, right? It's not like I'm just hiring out to fill a slot. In my business, it's like you're gonna be touching and manipulating our codebase. It's, it's a really unusual thing, actually, if you think about most jobs.

Michael Kennedy 37:02
Yeah, that's a good point. I hadn't really ever thought of it that way. But it's like I've my, all of my logic and my thoughts are put together in this code in a very careful way that makes everything hang together. And you have to enter interlace yours as well. And let's make sure that that's not gonna like go crazy in some way. Now for sure.

Will Vincent 37:19
Right. And and in this in the, in the space or something that's ever changing, and there isn't necessarily one way to do it. Yeah. In any case, we're so we're coming up a little on time I wanted.

Carlton Gibson 37:31
Well, hang on, you said you said something at the beginning. But you've got courses going on money now. So let's talk about that. So you

Michael Kennedy 37:38
have a bunch of courses on talk Python, and now you're there's this the same courses on manding? Are these are new courses on meaning. So these are a select subset of courses on Manning so over and talk Python, I have almost 30 courses. So we've we've done like 200 hours of video and like hundreds of hours of exercises to go along with them and stuff. So we you know, this is part of my, my journey I've been on for like four years. And you know, man is doing their live video, they reached out to me and said, hey, what you guys are doing is really cool. Could we do like a talk Python series over on Manning live video. So we selected some of the popular courses that were a good fit for Manning. And so if people are live video, man and customers, they can go over there and check out some of the courses right there without doing anything different. Or if not, you can also check out the stuff over at talk Python directly in there as well. So you know, some work better, some places that work better for your company. I've already got an arrangement stuff with Manning. So that's all good.

Will Vincent 38:37
Right? And we're gonna have links to all those and i think i think we're gonna have some sort of discount as well for the Manning one. Yeah, that sounds good. Check the notes. Well, I have to say I'm insanely jealous that Python courses as opposed to Django, you don't have to update so often, right? Like the idea of doing like three Django video courses seems more than anyone can manage, let alone 30. And yet, you've done I mean, you keep doing new ones, like you did in Python. A sync one, I think last year, yeah. Before?

Michael Kennedy 39:03
Yeah. I guess if you just did a Python, I don't know what the reality is. This is like, these courses are a blend of kind of like the podcasts a little bit. They're a blend of what a bunch of people would like to hear about or learn about. But it's also often a lot of time with like, why is there no information on this thing? It's driving me crazy like it is why is it so hard to learn about asynchronous programming and Python? People? All most of the articles say it's just really hard. And you probably shouldn't do like, hard. And if you actually know what it was doing, it's not that good. You could just tell us, all right, and so there was always that kind of stuff. And like the last one I wrote was Python memory management, like diving into counting and garbage collection. And there's all this interesting stuff. And like how do you leverage that to make your code faster, you know, CPU wise, as well as memory, more efficient memory wise and, and whatnot. So I wrote that course partly because I thought people would like it. But also because I'm like, I just need to learn this. And I need to dive into it and like understand it, because I'm tired of the world just waving their hands and saying, well, we don't really need to talk about this, or it's hard and complicated. So we're just going to pretend you know that we don't need to pay attention to it, because it's important, right? So it's been this really cool journey of kind of research projects, forcing me to really understand something and you know, teaching stuff, as you know, is a really great way to learn it.

Will Vincent 40:32
So maybe one last question for you. So you cover some web frameworks on top Python courses? Where do you see Django fitting in? pyramid flask? others? What's your outside sense of, of Django and Python? web?

Michael Kennedy 40:44
Well, sure. Well, I think Python web, I feel like, until recently, there were the stalwarts. Right, there was Django, there was flask, there's a bunch of other smaller ones that had either come on grown a little bit or, you know, they had kind of like, turbo gears, for example, stuff like that. I think Django is is very special in that it. So many people get into Python, because of Django. It's almost like the data science story, but repeated for the web side of Python. I hear a lot of people like I wanted to create an app. Her Django is awesome. I used it now. I'm a Python developer. Right. So. So I got it. Yeah, that's awesome. Yeah. And there's, I feel like from that world, Django and flask, and they're still taking the majority of them mindshare of the world, right. They're pretty close in the recent surveys in terms of popularity and usage, and whatnot, and you know, people who use either of them love them. But when Python three came along, I feel like it unlocked a lot of creativity out there. So people are like, wait a minute, we've we've been stuck in this Python two to three land and what that meant is least common denominator. Right? There's this these cool type, hence, these type annotations. I bet we could do something with those around API's. But no, no, doesn't work over here. Or people say no j s is crushing Python, because it has this async capability. How frustrating is that, but we can't use it. Because that's the Python three, four and above, really three, five and above, in the nice way of writing feature, right. But then once we kind of get to three, five, we've got type hints. We've got a sink, there was just so many different frameworks that exploded, we had Sanic and depronto burst on the scenes showing just like insane speed, you know, really being focused on the async side of the story. Court came along and court is interesting. Heather's the guy on my podcasts around that one and basically reimplemented flask, but with async support. So So much so that the flask extensions are basically like 99% compatible with his async thing. So it's like, replace the word flask with court. And now you have the async enabled version. That's pretty cool. I'm really excited

Carlton Gibson 43:14
to see is cool, because I've been wondering about that about I didn't know about court, but I've been wondering how floss was gonna do that. If there's a there's a async capable version that soup.

Michael Kennedy 43:23
Yeah, yeah. And I believe David Lord and a palettes folks are working with the guy from the core project to try to make that the official approach was I can't I can't change the world from the outside. But I create this thing that you can plug into your web app. And it looks like flask, but it has, you know, def async view method. Like we all need for certain things. And so I but it's, I believe they're gonna try to put those together. And it's last I heard Anyway, I'm really excited to see Django drop in Python to support. There's talk about async over there.

Carlton Gibson 43:56
Yeah, we so we have async views in 3.1, which that right, we don't have yet and acrm support, which Andrew Godwin is working on a moment. And then the thing that we really need for it to mature and be proper, you know, to be Django is kind of the patents in place that you just kind of define a view and you override a couple of things. And there it's a work, you know, like the class based views we have. And that will be a few that will be a few releases where you can get you can write async views. But there isn't the Django story there yet to go with it. But if you need it, you can drop into it. And so

Michael Kennedy 44:35
right word, this interesting time where, you know, it's especially for the Django way of doing things. The fact that we're talking about this means it's not quite there yet. Yeah, right. Like, it should just be, this is how you do it. What's that async word, oh, that just goes there. That's how it works. Like we don't need to worry about all the Oh, we're gonna try to get to this world and it's gonna work this way. I'm going to You know, it's just, this is how you write the code. It makes it better. If you want to dive in and learn more about it, then you guess

Carlton Gibson 45:07
what Django is about. Right? So nice API is that just kind of do it. And even a beginner can do it without really understanding what's going on. And it works. We will get that but you know, it's still growing and develop. Yeah.

Michael Kennedy 45:16
Yeah. So there's all these different, I feel like in the last three, four years, there's been this explosion of like flowers blooming all over the place in the Python web, we're all have now that we're free. What would we build if we, if we weren't constrained and I think Santa Clara pronto? were interesting as some of the first fast async ones. We've got other frameworks that are coming along and making and taking big advantage of the type hence, like a bleep API star was in that world. But I haven't done anything with it from our past API. Absolutely.

Carlton Gibson 45:53
Flawless type install.

Michael Kennedy 45:56
Yeah, yeah, fast API and starlet. And then also like with things like starlet, and then Falcon and other frameworks, you're seeing layers start to develop. Right? So there's the hug API framework, which is built on Falcon. There's fast API, which is built on starlet and I believe API star, kind of on top of that, as well. Do you're seeing these like, here's the base layer. And now what creative thing can we do on top of that, as well, which I think is pretty interesting.

Carlton Gibson 46:23
Yeah. And then the thing that goes with that is the ASCII thing, which is like, so we and then ASCII is the asynchronous version. And so starlet is an ASCII framework in Django is building around it as he as well. And so Simon, Edison's data set project that uses is ASCII based and there's a few You know, there's there's a whole lasky ecosystem, and they're all kind of, to some extent, interrupt operable, you could, you know, nest and ASCII app inside another one. So you could have, you know, your Django app nested next year, first API thing, or next year data set. Right, right, right, you're gonna do your main web app in Django, but then maybe the API stuff you want to do and fast API, and you've got cool things like pedantic that are doing really, that's really exciting. And it's super cool. Yeah. So I've got this form, I posted it, it's gonna be like this model and the model, do all the validation, and then be filled with the data. And I don't have to think about it, how lovely,

Will Vincent 47:17
it's a great overview. I mean, I, in the back of my mind, I sometimes wonder with the async stuff, if it's, I'll make an analogy to physics, if it's a little bit like string theory, and that, okay, it's faster, but do we need it to be faster is it even if it's perfectly there, with caching and standard tools is it always just going to be 10%, or these, you know, your average spread web app probably doesn't need it. But again, it opens up non crud, whatever that looks like.

Michael Kennedy 47:45
It does open up some something, it opens certain things like, like WebSocket, support, right?

Carlton Gibson 47:51
Anything real time, anything, where you're trying to run away your i o path. So you're making a lot of requests out and there's they're all pausing, you can run it on a single thread, and you can, you know, service hundreds of thousand connections on a single thread. That's amazing. Now, you've got to look at the node node j. s examples, you know, if you get no GS, the right way from Prague, probe their book, and you build some of the examples in there. And they're super. And they weren't really possible in Python up until three, six, or seven, or 353637. And now they are Yeah. And so you know, what's exciting about this three, this Python three maturing world that we're in now, is that you don't have to change language, just change language, just because you need some of these use cases. And then, for me, we're on the Django side, it's just nice that if you if we're getting to the point where you don't have to change web framework, just because you need to sprinkle in a bit of async. Now, if you go to loads of async, you might go and look at one of the more specialist async frameworks, but did not have that option to turn on. I can just sprinkle in a little bit here. That's, that's super, for me. So you know, it's really exciting time,

Michael Kennedy 48:59
though, the way I think about this is a lot of people see other frameworks, you know, traditionally, it's been node.js. More recently, maybe it's go. And they say, we think we need that, or my tech lead, who's not a super big fan of Python already says we probably need that. So we're switching to go. Yeah, right. And when I look at like, the stuff I'm running in production, it has, you know, millions and millions of requests a month, data driven requests going all through the Python layer, response times are 10 milliseconds, it, it doesn't need any of this stuff. Like I really would not rewrite it with this because it just, it's more than fast enough. It could handle like 10 acts of what it's doing at least. And if it needed more, just turn the knob in the cloud and you get bigger servers. But there are use cases where you need it on one hand, but also I think there's just it's kind of like the blocking and the tackling like, how do we as Python people, make sure that the 5% use cases There are these high end ones that actually need this, right? Like if if you could use one 10th the infrastructure for the same web farm, that would be awesome. If you had a big set of infrastructure, how do we prevent major? Excuse me, major players moving over to this, something like go or no JSA. And I had to leave Python because it didn't have this. And then there's so many people who say, Oh, I saw what Google's doing for their Kubernetes cluster. So we're gonna do that. For ours. It's like, you know what you're not. It doesn't matter, because so many people

Carlton Gibson 50:32
to go to the Kubernetes. cluster.

Michael Kennedy 50:35
Exactly. But so many people are going to see that and they're like, well, maybe we also need to move over to go or we mean to drop Python and move to Node JS. And so even if like, 95% of the web developers don't need this, I feel like it's, it's like a, it guards against that, that drain at the high end of the, the need, which drags a bunch of the people who just admire those folks, and that infrastructure, and that those those patterns along out of the ecosystem. So even if I never use it, I'm really happy. It's there.

Carlton Gibson 51:08
But it's also about being a full spectrum language. This is your term, right? It's not Yeah. But like, if Python if Python gets to that, like ultraviolet bit of the spectrum, and then says, Oh, I have to stop. Well, it's not full spectrum.

Michael Kennedy 51:19
Yeah, absolutely. I hadn't thought about it that way. But you're absolutely right. Yeah, that's great. Yeah.

Will Vincent 51:23
Well, I think the only missing bit for full spectrum is easy installs, which is a whole separate topic. But if, if

Carlton Gibson 51:30
we come up with 15 minutes in already this No, so no. I mean,

Will Vincent 51:33
my daughter's in a second grade. She's on a Chromebook. How does she do Python? You know, I mean, yeah. And web versions like I've, but I have a separate thing.

Michael Kennedy 51:44
That you are absolutely right. And there are the there are certain areas in the Python ecosystem that are so broken, that people don't, people are not even willing to think about or discuss that it is that is a part of need or something. And so one of the things is like distributing applications, or like imagine want to build a GUI app, a desktop app, and you want to give it to somebody to run it, right? I want it like Excel, but a Python thing that is so incredibly hard. Right now on like so many layers.

Will Vincent 52:17
This is Russell Keith McGee's keynote from Python last

Michael Kennedy 52:19
Yeah, yeah, absolutely. And, and it's like, I talked to people like, well, I've never really wanted to build a GUI app in Python. It's like, because it is so incredibly hard to never even consider drying it like, like, so there's like this, these interesting chicken and eggs. Let me leave you with one thought for your daughter. combat.com. If you guys check that out.

Will Vincent 52:38
Yes.

Michael Kennedy 52:40
Yeah, I love. Yeah, my slightly older daughter, Early Middle School. Daughter really enjoyed going there. And it's good to write real Python code. But it's like, incredibly supportive Python code is nice.

Will Vincent 52:52
Yeah, maybe we'll see if she's ready for that. There's also I mean, there's services like glitch and replique, which has nothing at all contained and as a teacher, because that's the issue is most most students again, to the resources do not have a new Mac to work on. It's a shared computer. So if there's a way to save it and run automated tests, that's kind of the thing that unlocks it to the masses. I think some

Michael Kennedy 53:14
of the vs. Code stuff, some of the VS code online is actually really exciting.

Will Vincent 53:18
Yeah, that's, that's really the whole thing. What Microsoft's doing

Carlton Gibson 53:22
here, they've got me Yeah, make code site as well, which are very good. I got my kids micro bit and one of the, you know, the, you start investigating the resources that go with it. It's like a little program programmable board. And you know, they've got class and you can program it on the on the website, and then upload it to the board. And, you know,

Will Vincent 53:39
yeah. Well, Michael, thank you so much for taking the time, from your patience to come on our podcast. If people don't already know talk, Python. If you want weekly Python podcasts, you've got courses, you've got the new Manning courses. Is there anything else you want to plug before we go?

Michael Kennedy 53:56
Your show? I'm really glad that you guys are creating this Django podcast. It's really great. And, you know, we talked, I don't know, it was a year and a half ago when you were getting started. And I'm really excited to see you guys still going. So you know, congrats on that. And just, you know, there's there's so many interesting things out in the Python space that I mean, we could go on forever and ever, but I'm really just encourage people to just go explore something new. It's, it's amazing out there.

Will Vincent 54:20
Thank you, as ever. We're at Django chat.com chat Django on Twitter. And we'll see you all next week. Bye. Bye. Bye Bye.

Michael Kennedy 54:26
Thanks, guys. Bye.