← Back to Show Notes

Transcript: Teaching Python - Michael Kennedy

Will Vincent

Hi, welcome to another episode of Django Chat, weekly podcast on the Django Web Framework.

I'm Will Vincent, joined by Carlton Gibson.

Hello, Carlton.

Hello, Will.

And this week we're very pleased to have Michael Kennedy, host of TalkPython, join us.

Hi, Michael.

Michael Kennedy

Hey guys, it's really great to be on your show.

Thanks for inviting me.

I'm happy to be here.

Carlton Gibson

Yeah, no.

Thank you for coming on.

Carlton Gibson

It's a real honor.

You're like uh, you know, with our little Lady Bitty podcast, and then there's you and your massive podcast.

Michael Kennedy

So I've I have mad respect for what you guys are doing.

It's great.

Will Vincent

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.

Um and that really kickstart the idea that podcasting was a 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.

Michael Kennedy

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 that was that was great.

And you know, podcasting is so much fun, isn't it?

Will Vincent

It is, yeah.

It's it's been um, 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 just 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

It's my one sort of humor interaction for the week as well for me.

So I really value it.

Will Vincent

Well, it's our our families and then each other, basically.

Yeah.

These days.

Michael Kennedy

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

Will Vincent

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 I'm pretty well suited for it, I suppose.

But let's talk about talk python.

Um and then you have some new courses that you come out with Manning.

So this is so wh 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 that you've been doing?

Michael Kennedy

Yeah, yeah.

This is year five of 2015 in April.

I launched the podcast.

I 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 when you 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 and that that realm falls into this as well.

So much of it is sterilized down to these are the raw steps that you gotta 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 a thousand GitHub stars and the docs look good.

Carlton Gibson

Isn't that how you choose packages?

Will Vincent

Like and then, and just um, so you were at the time you were just a gigging software developer, right?

It was just a side project for you, um, just in terms of where you've come the last five years.

Michael Kennedy

Exactly.

It was a side project for me.

I was sort of transitioning out of being a professional trainer, you know, uh, education, travel around the different companies and teach um Python and other stuff to them.

And I just, you know, I wanted to sort of branch out and 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.

I'm really enjoying it.

Where are the podcasts?

How do I listen to them?

Wait, why are there no podcasts?

What's going on?

And uh all three of us have helped to solve that problem.

Will Vincent

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.

Michael Kennedy

Man, Python is bigger than all of us.

You know, I there's so many parts of Python that I look at and I'm 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 I'd 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

No, I mean that's one thing I wanted to ask you about.

Like, is talk Python, it's just such a big topic.

It's like were you like when you started, were you like, yeah, Python?

Obviously, that I'm just gonna go for the whole realm.

Michael Kennedy

Or well, when I started, I said, Who are my who are my friends and who do I know?

Who can I invite to be on the show that I I could I know how it's gonna go?

That lasted for about three, three to four weeks.

And then I'm like, all right, well now now now what?

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 uh for you to sort of get these connections and talk to people doing amazing stuff.

Yeah 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.

Interesting.

Will Vincent

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.

Michael Kennedy

Right, they they've been doing the work, yeah, exactly.

They've been doing the work for 10 years, regardless of whether you get the recognition or the spotlight, they've 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?

Right.

Will Vincent

And I think they don't they don't want the light, which which is a a great pure thing, right?

They're not they're definitely not self-promoters, and um, 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 the forum for it to be sort of out there.

Yeah, for sure.

Michael Kennedy

All right, you want to talk about some of the episodes, some of the the fun stuff, the lessons I've learned and so on?

Will Vincent

Yeah, well, and maybe um, you know So for you, just I'm just so interested in where you sit in terms of understanding the Python ecosystem because it is so large, but you probably have a as good a sense of anyone of of it all.

How do you account for like mind share if you had to draw a chart?

Because I remember when I went to PyCon last year, yeah, uh, 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, well it's I've heard you talk about you know Python 3 kind of coming about in part because of this new wave of developers who didn't have that value.

Yeah, they didn't.

Michael Kennedy

It's interesting, data science doesn't have legacy code in the same sense that we have legacy code.

Right.

Michael Kennedy

I mean they they 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 have it's changing so fast and in such powerful ways, that 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 too, because if you change it and it doesn't work anymore, that's now your problem, and you're you're getting the blame plus you gotta fix it on Saturday.

Right.

Michael Kennedy

So to I would say it's really interesting.

Like Python has 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?

Uh so the PSF and JetBrains did a survey, I think it was the 2008 one.

So JetBrains kind of did the data crunching uh reporting, and it was sort of an 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, the 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 are like, yeah, there's a lot of us out here.

We all kind of hang out and we all write APIs and whatnot.

The data scientists themselves counted themselves to be underrepresented.

So the data scientists thought.

What did you say this was?

Carlton Gibson

You said 2008, I thought.

Michael Kennedy

I think it was 2007 or 2008.

Sorry, 2017 or 2018.

Oh, okay, okay, right.

So 1780.

Michael Kennedy

Sorry, sorry, by 10.

I was thinking 12 years ago.

Carlton Gibson

That was a good one.

I must have been off by

Michael Kennedy

10, eh?

Yeah, yeah.

Michael Kennedy

So this was it was pretty recent, but a few years ago.

And I thought it was really interesting that 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 the, you know, keeping the science mode, you look at the derivative uh of the data scientists, I think that that is steeper than it is, right?

Is it's growing.

Michael Kennedy

There's there's more people coming into Python through the data science channels currently than there 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've got the ASP.net folks.

On the data science side, it's kind of overwhelmingly Python.

I mean, there is some R, but it's overwhelmingly Python.

And so I think there's like this this influx of folks who 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.

If you met them at a dinner party, you'd say, Oh, what are you like?

What do you do for a job?

Michael Kennedy

Like, oh, I'm I'm um a financial analyst, or I'm a biologist, or you know, I I work with traffic patterns.

Like, 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 PyCon and they they say things like, This is my first time at PyCon, and wow, this is amazing.

And you're like, but you're a biologist.

How did you get here?

You know, why are why aren't you not at like bio biocon whatever, right?

Will Vincent

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 science is 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, um, and it's the way to to do it, which I guess it wasn't before.

So you so I'm often surprised too.

It just reaches the tentacles.

Anything computational seems like and new, it's Python.

Michael Kennedy

Uh absolutely yeah, absolutely.

Carlton Gibson

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 in, all of a sudden they're using pandas.

It's like, hey, they're not data scientists in the they're they're just people using Excel.

Michael Kennedy

And you know, they were pro 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 I feel like a lot of those folks they they get as far as they need to go, and then like, oh, wouldn't it be neat if we could do a little more and a little more and a little more, 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, 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 to my colleagues?

I'm gonna learn a package, and they're you know, all of a sudden down in disk utils like PI.

And then, you know, two years later, they're like, wait a minute, I'm a programmer.

How did I become a programmer?

Just what just happened to me?

Right.

And Python has this magical ability to pull people along.

And I have this label I've been trying to apply to it that I think captures this idea, saying that it's a full spectrum language.

We've got like really easy languages that are like visual basic.

You can create a little draggy-droppy UI, or um 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 an 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.

Michael Kennedy

Right, right, top to bottom.

Here's the I'd write 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?

Um, but on the other hand, you know, YouTube is built in Python, Instagram is built in Python, right?

Like YouTube does a million requests a second on Python, which is insane.

Will Vincent

I was looking before we spoke about your you had a post in your top ten 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, I'm 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 uh 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

Michael Kennedy

I bet it is

Will Vincent

or you know, 1020X what I thought it would be.

Because it is maybe

Michael Kennedy

we we should have an Excel podcast and we should do Excel training and write Excel books.

I don't know.

Will Vincent

I mean No, no, it's like goes from Django to Python to Excel, but it is, you know, it it makes sense, right?

People most you know, for us, I think we enjoy programming and we kind of get into it, but most people just need to solve a problem.

And if it makes their job easier, um 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 uh you know, maybe Carlton too, 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 really need.

They need that on ramping.

And actually it's that uh leads into a question.

When you were doing your training, was that who 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 um trying to teach?

Michael Kennedy

It was usually professional developers, but not always.

Will Vincent

And was it Python that you were teaching them?

Michael Kennedy

I mean, the last couple of years it was when I was doing that, but previous to that it was uh C sharp.

Will Vincent

Well 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 have some thoughts on the roadblocks.

Michael Kennedy

Sure.

And so some of the, you know, one of the examples was I went to work with a bunch of stockbrokers and um people who worked 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.

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, 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

Isn't this where we need to be though?

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, but you know, and it just seems to me like we're the I don't know, we're kind of in the I always say say we're in another industrial revolution here where we're in the process of it.

And professional programmers like us, we're 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 a hundred years because you'll write your own letter and you'll be able to read your own letter.

And yeah, there'll always be professional programmers as there are will always be professional writers, but to see en masse, 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 exciting for me.

Michael Kennedy

I that 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, like you know, thinking of just the US.

And so what we gotta do is our 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 as 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 to 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 those people, 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, well, how much more could you do if you understood the code, you could analyze the data, and even maybe create technology or apps beyond that, right?

Like that,

the person who just got the US, the the the C not the C the uh 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 a 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.

Yeah, and Python's perfect for that.

Carlton Gibson

It's just it strikes me that in every role as well, every job, everything there is, there's there's so many opportunities which are um which are available to for automation for 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

and then

Carlton Gibson

there's a massive productivity boost for the economy, like and it's yeah,

there's a that's gonna happen more and more.

Carlton Gibson

Yeah, that's gonna happen more and more, I think.

I you know, I've been saying this for 10 years, and we'll see.

Michael Kennedy

Yeah, 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 a 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.

Michael Kennedy

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.

Not in a negative way, in a positive way, right?

You just like get like uh 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

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 to you want to build a website?

Well, let's talk about circuits and gates and logic.

And then maybe we'll get you right.

Whereas in the real world, everything is top-down.

It's like I have this problem, I need to solve it.

Um, and you know, for me, like with Django, what 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 where 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.

Um, so I think there's something in the middle there in terms of entryways into programming.

Like I know you have your Python jumpstart course um where you build 10 apps, you know, things where it's like, well, why, right?

Like so when like why do I want to learn to program?

What problem do I want to solve?

Like the value of a teacher is to eliminate the cruff 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 in.

I see that as sort of a guide, right?

Because all the knowledge is out there, it's just the the the linearity of like how do I go from here to here to here and not flame out, right?

Michael Kennedy

That's uh yeah, that's a great point.

And I feel like you and I have the same philosophy for sure on on this.

I think we talked about it in the Teaching Django episode we did too.

Yeah, I'm sure.

I'm sure we did.

Michael Kennedy

I mean, we we must have, yeah.

Will Vincent

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 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 like this code book that's good, there's but how do it work?

But there's nothing that combines those.

And I guess what what I think about 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 I think people maybe kind of want to care.

Like, what's an API?

Because I I mean I came into programming from the business world and just the miscommunication and confusion is uh you know amazing.

It's 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, use use Python.

So I understand that mindset, right?

But so I guess a long way of saying it's it's interesting, 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, Oh, I've I've bought all your courses, what next?

Right?

Like it's yeah, and I it's 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

It's uh it absolutely is a choose your own adventure for all the benefits and drawbacks of that like, oh, I'm three steps back, I forgot where to go.

No, um, yeah, I loved reason reading those books with my kids, the choose your own adventure books.

Um I I think part of the challenge of teaching and part of the challenge of learning is you know, 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 gonna 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 gonna leave after the first two weeks because they've paid a thousand dollars and it's gonna be a black mark on their record, they do so, they're they're captive.

So we're just gonna get them from here to there in in this way.

Outside of academics, it doesn't work that way, right?

If 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 interest, 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, um, one of the examples I wanted to share with you about just like why Python was um really interesting having this growth.

Just I think it was yesterday, one of the listeners from my show sent me over sent over a 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 s and stuff.

He took a table saw and he completely disassembled it and put uh a Raspberry Pi into it and a couple of automated motors, and he built his own automated saw with with Python.

Wow.

And it's got like this, like this GUI touch screen on the side of this is like a you know, just a standard plug-it in.

All it does is turn the saw on and off, site a table saw, 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 Python.

I'm like, are 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 I mean, like, really, really interesting that that people can come along and do that.

And what 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 uh 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

no that that that look where he's like, Yeah, I'm doing it.

Like that's that's the teaching reward, right?

Where you see the student, and they I know they're I to uh one memory that comes to mind is doing the Django Girls workshop, and all of a sudden one of the

students is

Carlton Gibson

in the shell, driving the ORM and making quit and it's like yes, and you can see the look on her face as she's that I'm getting this, and that moment of like okay, yeah, that's worth it.

That was you know, all of it.

Michael Kennedy

Yeah, and if you just can inspire one person like that every uh once a week or something, you'll change the world.

Will Vincent

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 in software development, right?

I mean, two PhDs in MBA, but nothing in software.

Michael Kennedy

I've I'm almost PhD.

I'm not a full PhD.

Will Vincent

Oh, you're an A B D?

Yeah.

Um But there's no other

Michael Kennedy

training math

Will Vincent

that isn't, you know, very rigid and structured in how you do it.

It's just this total like good frickin' luck.

Yeah.

And like I think at on the one hand, that's gotta 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 this I feel like I wish I wish that could change, right?

Or maybe it's it's not just the um curriculum, it's also just the time and energy, and then really the um certification.

Because again, I mean all

Michael Kennedy

of us are kind of people want the credential.

Yes, they want the credential so they can get that promotion or they can get that job or whatever, right?

Will Vincent

Right, because most jobs require some sort of certification, and that's what I mean.

LinkedIn, right?

They bought Lynda.com, they're making they're providing certifications, and Linda's interesting because its whole brilliant moment when I I believe private equity people bought out Lynda was we're trying to sell in, you know, these like web development classes and photo editing, but we're 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 um, you know, yeah, I don't know what a Django certification would look like, but I you could think of one for Excel.

Um, so again, I see that as like a blind spot I have that I have to constantly remind myself about is 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 gonna be able to justify the cost.

And an 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

Yeah, I I I totally agree, and I think that is an interesting challenge.

I don't know necessarily how to solve it uh in um a way that doesn't require an insane amount of effort, I guess.

I I mean I know how to solve it like replicate the university side or or what or 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

But at the same time, a lot of times you have to pass the whiteboard test.

Yeah.

So it's like you still need to you still need to, you know, memorize and jump through the hoops of algorithms that you will rarely use yourself.

Michael Kennedy

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

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 course that you had to memorize, and you never

Michael Kennedy

I know you're gonna be a I know you can yeah, I know you're gonna be a heart surgeon uh and an ER doctor, but I've written uh a chemical reaction uh sequence on the board.

It's missing a catalyst, which one?

Right?

Like nobody cares, like the leg is broken, how do you fix it or whatever, right?

But I feel like that's sort of and 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, I 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 I feel like, and people are willing to lie, yeah.

Like I've there's an amazing, amazing uh tweet by uh 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.

So, you know, I think there's like all of these challenges.

And the the the easy way is like, well, what does every programmer need to know?

They need to know quick stort, 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, up, up, up in this traditional bottom-up engineering way.

Maybe everyone does know quick sort and all these things.

But if you learned it in the much more practical way of like, how far down do I need to go till it works?

Two levels, we're stopping there.

Yeah.

Right?

Like, I just got it working.

I don't care uh what algorithm it uses when I call sort, it sorts it, it sorts it fast, probably better than me.

We're done.

Right?

I don't need to know this more.

And so it's just such a cop-out to say, well, what we're gonna do is we're just gonna ask them about these really easy, low-level stuff that it's it's 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 Zoom, turn on screen share and say, All right, 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 gotta, you know, pip install some stuff, they've got to create a virtual environment, they've gotta do some Managed Pi 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 if they can't just do that bam, bam, bam, bam, like, no, they've already lied to you about being a Django developer.

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 uh you know, by hand invert a binary tree?

Like I I've never done that.

I I couldn't do that.

But it doesn't matter.

Will Vincent

I mean, and 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 in years because they're working on you know YouTube level stuff, right?

So there's also like I mean the way I like to do that is I actually I hate putting 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, maybe make this tweak rather than um anyways, it's it's interesting.

Michael Kennedy

Or add a feature to a basic app or something, right?

But you know, there's there's there's like these simple steps.

You can't, you can't you won't explore them the magnitude of their knowledge, whether or not they can, you know, add a new view or add a new form to a web page, 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 do they look like they usually use these tools and these APIs, or do they look completely floundering?

Right.

And and I that that distinction right there is usually enough to to know whether or not that person's you know knowledgeable somewhat.

Carlton Gibson

Do they nod in the right place, that kind of thing?

Michael Kennedy

Yeah, exactly.

So I don't know.

Michael Kennedy

So when I see these like in you know, do quick sort from hand, it just makes me cringe because it's wrong on so many levels.

Will Vincent

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 gonna deal with the customer and I'm just gonna 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 you to fill a slot in my business.

It's like you're gonna be touching and manipulating our code base.

It's it's a really unusual thing, actually, if you think about most jobs.

Michael Kennedy

Yeah, that's a good point.

I hadn't really ever thought of it that way.

But it's like I've 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 inter interlace yours as well.

And let's make sure that that's not gonna like go crazy in some way, yeah, for sure.

Will Vincent

Right.

And and in this in the in the space of 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 want to

Carlton Gibson

well, hang on.

You said you you said something at the beginning about you've got courses going on manning now.

So let's talk about that.

Will Vincent

So you you've had a whole bunch of courses on talk python, and now you're is this the same courses on manning, or these are new courses on Manning?

Michael Kennedy

So these are a select subset of courses on Manning.

So over at TalkPython, 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, Manning 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 uh so if people are uh live video Manning customers, they can go over there and check out uh some of the courses right there without doing anything different.

Or if not, you can also check out the stuff over at TalkPython directly and um there as well.

So, you know, some work better, some places that work better for your company have already got an arrangement stuff with Manning, so that's all good.

Will Vincent

Right.

And I we're gonna have links to to all those, and I think I think we're gonna have some sort of discount as well for the Manning one.

Um 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.

Um and yet you've done, I mean, you keep doing new ones, like you did a Python async one, I think, last year, the year before.

Yeah.

Um, I guess if you were

Michael Kennedy

just did a Python, I I so what the the reality is is this is like these courses are a blend of kind of like the podcast 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 times of 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 in Python?

People all most of the articles say it's just really hard and you probably shouldn't do it.

Like, I'm pretty sure it's not that hard.

And if if you actually know what it was doing, it's not that like it's you could just tell us.

All right.

And um, so there was always that that kind of stuff.

And like the last one I wrote was Python memory management, like diving into reference 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, you know, 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 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 uh you know, teaching stuff, as you know, is a really great way to learn it.

Will Vincent

So maybe one last question for you.

So you cover some web frameworks on talk python courses.

Where do you see Django fitting in?

Pyramid, Flask, others.

What what's your outside sense of of Django and Python Web?

Michael Kennedy

Well, sure.

Well, uh, 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 and grown a little bit or you know, they had kind of like um 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.

Right.

I hear a lot of people like, oh, I wanted to create an app.

I heard Django was awesome, I used it, now I'm a Python developer, right?

So that's

Carlton Gibson

how I got into it.

Michael Kennedy

Yeah, that's awesome.

Yeah, and there's so I feel like from that world, Django and Flask.

And they're they are still taking the majority of the mind share 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 3 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 2 to 3 land, and what that meant is least common denominator, right?

Uh, there's this these cool type hints, these type annotations.

I bet we could do something with those around APIs, but no, no, it doesn't work over here.

Or people say no.js is crushing Python because it has this async capability.

How frustrating is that?

But we can't use it because that's a Python 3.4 and above, really 3.5 and above uh in the nice way of writing it feature, right?

But then once we kind of get to 3.5, we've got uh type hints, we've got async.

There were just so many different frameworks that exploded.

We had Sanic and DePronto burst on the scene showing just like insane speed, uh, you know, really being focused on the async side of the story.

Court came along, and Court is interesting.

Uh, I had the guy on my podcast around that one, and basically re-implemented 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 to see that is

Carlton Gibson

cool because I've been wondering about that.

I bet I didn't know about court, but I have been wondering how Flask was gonna do that.

But if there's a if there's an async capable version, then it's super.

Michael Kennedy

Yeah, yeah.

And I believe David Lord and the Pallets folks are working with the guy from the Court project to try to make that the official 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.

Michael Kennedy

Like we all need for certain things.

And so uh I but it's I believe they're gonna try to put those together.

That's the last I heard anyway.

I'm really excited to see Django dropping Python 2 support.

There's talk about async over there.

Carlton Gibson

Yeah, we so we have async views in 3.1, which that what we don't have yet and uh is the RM support, which um Andrew Godwin's working on at the moment, and then the thing that we really need for it to mature and be proper, you know, to be Django-y is um kind of the patterns in place that you just kind of define a view and you override a

couple of

things, and there it's all working, you know, like the class-based views we have.

And that will be a few, that will be a few releases away.

You can yeah, you can write async views, uh but uh there isn't the Django story there yet to go with it.

But if you need it, you can drop into it.

And it's so right.

Michael Kennedy

We're at this interesting time where you know, 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.

Michael Kennedy

That's how it works.

Like that

we don't

Michael Kennedy

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 gonna change.

Michael Kennedy

No, 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 can

Carlton Gibson

that's what Django's about, right?

It's that nice API where you just kind of do it, and even a b a beginner can do it without really understanding what's going on, and it works.

We we'll get there, but you know, it's still growing and developing.

Michael Kennedy

Yeah, yeah, 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 world.

Of now that we're free, what would we build if we if we weren't constrained?

And I think Sandic and Trapranto uh 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 hints.

Like I believe API Star was in that world, but I haven't done anything with it for a while.

Fast API, absolutely.

Carlton Gibson

Fast API and Starlet.

Michael Kennedy

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.

So 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

Yeah, and then the the thing that goes with that is this is the ASGI um thing, which is like um so WISGI and then ASGI is the asynchronous version, and so Starlet is an ASGI framework, and Django is building around ASGI as well, and um, so Simon Widerson's dataset project that uses is ASGI-based, and there's a few, you know, there's a there's a whole little ASGI ecosystem, and they're all kind of to some extent interoperable.

You can, you know, nest an ASGI app inside another one, so you could have you know your Django app nested next to your fast API thing or next to your data set.

Michael Kennedy

Right, right, right.

You're gonna do your main web app in Django, but then maybe the API stuff you want to do in Fast API, and you've got cool things like Pydantic uh that are are doing really around.

Oh, it's super cool, yeah.

So I've got this form, I've 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

It's a great overview.

I mean, I 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 gonna be 10% or these?

You know, your average CRUD web app probably doesn't need it.

Um again, I guess it opens up non-CRUD, whatever that looks like.

Michael Kennedy

Yeah, it does open up some something, it opens certain things like uh like WebSocket support, right?

Um, anything real time, anything where you're um you're trying to run um I don't know, where your IO band, 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 or thousands connections on a single thread, that's amazing.

Carlton Gibson

Now you've got to look at the node, node.js examples, you know, if you get Node.js the right way from Pragprop, 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 3.6, 3.7, or 3.5, 3.6, 3.7.

And now they are.

Yeah.

And so, you know, what's exciting about this three, this Python 3 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 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're gonna do loads of async, you might want to go and look at one of the more specialist async frameworks.

But to not just have that option to turn on, ah, yeah, I can just sprinkle in a little bit here.

That's ah, that's super for me.

That's you know, it's a really exciting time.

Michael Kennedy

The 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 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 can handle like 10x 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 the blocking and the tackling.

Like, how do we as Python people make sure that the 5% use cases that are these high-end ones that actually need this, right?

Like if you could use one-tenth the infrastructure for the same web uh 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 Node.sa, 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 Google, but it doesn't matter because so many people don't need a Kubernetes cluster.

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 need 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 it guards against that that drain at the 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

But it's also part of being a full spectrum language.

This is your term, right?

It's lovely, but like

Carlton Gibson

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

Yeah, absolutely.

I hadn't thought about it that way, but you're absolutely right.

Yeah, that's great.

Yeah.

Will Vincent

Well, I think the only missing bit for full spectrum is easy installs, which is a whole separate topic.

But if if the way to do it, come on, we're 15 minutes in already.

This is not a good thing.

Will Vincent

Well, no, I mean, my my my daughter's you know second grade, she's on a Chromebook.

How does she do Python?

You know, I mean there's some web versions, like I've but anyways, separate thing.

Michael Kennedy

No, 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 uh think about or discuss that it is that it is a part of of of need or something.

And so one of the things is like distributing applications, right?

Or like imagine you 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

This is Russell Keith McGee's keynote from PyCon last year.

Michael Kennedy

Yeah, yeah, absolutely.

And and it's like I talk to people, they're like, Well, I've never really wanted to build a GUI app in Python.

It's like because it is so incredibly hard, you've never can even consider trying it.

Like, like, so there's like this it, these interesting chicken and eggs.

Let me leave you with one thought for your daughter.

Codecombat.com.

Have you guys checked that out?

Will Vincent

Yes.

Michael Kennedy

Yeah, I love it.

Yeah, yeah.

My my slightly older daughter, uh early middle school daughter, really enjoyed going there and it's get a right real Python code, but the it's like incredibly supportive Python code is nice.

Will Vincent

Yeah, maybe we'll we'll see if she's ready for that.

There's also, I mean, there's services like um glitch and um replit, which has you know it 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 of the yeah.

Michael Kennedy

I think some of the VS Code stuff, some of the VS Code online is actually really exciting for them.

Will Vincent

Yeah, that's it's really that the whole thing with Microsoft's doing.

Carlton Gibson

Yeah, they've got this make code site as well, which is very good.

I got my kids a 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 websites and you can program it on this on the website and then upload it to the board and you know.

Will Vincent

Yeah.

Well, Michael, thank you so much for taking the time from your podcast to come on our podcast.

I if people don't already know, talk Python.

If you want a weekly Python podcast, you've got courses, you've got the new Manning courses.

Uh, is there anything else you want to plug before we go?

Michael Kennedy

Um, your show.

I'm really glad that you guys are creating this Django podcast.

That's 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

Well, thank you.

Um, as ever, we're at DjangoChat.com, chat Django on Twitter, and we'll see you all next week.

Bye bye.

Bye bye.

Michael Kennedy

Thanks, guys.

Bye.