Software Developers Journey Podcast

#94 Michael Kennedy almost learned Python in the 90s


⚠ The following transcript was automatically generated.
❤ Help us out, Submit a pull-request to correct potential mistakes

Michael Kennedy 0:00
One of the things I decided when I started this journey to go independent was, I don't want to just go from having one boss, to having four or five bosses as a bunch of consulting clients. What I want is I want to change the fundamental thing that I exchange for my effort and work in the world. I want to change. I want to exchange value for money, not time for money, if I can create something amazing, and I can help people with that, you know, maybe they'll pay me or support what I'm doing or whatever. But I really don't want it to be like, I've got to work this week, or I don't get paid, right? Like if I create something that's great. Like, let me focus on how can I create something that people will really appreciate and continue to support me regardless of how I spend my time on it.

Tim Bourguignon 0:57
Hello, and welcome to developer's journey. The podcast shining a light on developers lives from all over the world. My name is Tim Bourguignon, and today I receive Michael Kennedy. Michael is an intrapreneur, a father of three girls, a husband, a student, and a teacher, Michael, he's also the founder and host of talk Python to me, a weekly podcast about Python, and related software developer topics. He is the founder and chief author at top Python training, where many leading Python developer courses are available online.

Michael Kennedy 1:30
Michael, welcome to journey, Tim. It's great to be here. Thanks for inviting me.

Tim Bourguignon 1:34
So let's serve this Python wave right away. So I assume you started your career in tech as a Python aficionado around 1990. Right?

Michael Kennedy 1:42
Yeah, I've, yeah, no, actually. I started my career in a completely different path than where I've ended up. But I think that's great. I think it's fine. I do think that you know, you kind of just kind of find the flow in life and kind of go down the river and see see Where you go. So I started my career as in 1990, I was just graduating high school. Shortly thereafter, I went to college and thought I either wanted to be a chemist or a mathematician. So I went through college and then into a Ph. D program to work on pure math. How about that?

Tim Bourguignon 2:18
sounds almost like piping.

Michael Kennedy 2:20
Well, we ended up doing a lot of interesting programming. And it wasn't until near the end of my college that I really got into programming. I done a little bit of c++. And in order to get my degree, I had to take one programming course. So I did that. And it was it was pretty good. But I never really saw it as a job. It was just like, Well, here's the thing I got to learn on my way to my math work, right. But right near the end, I got involved in this cool research project, where we were working on four dimensional fractals, like stuff from what's called complex analysis, and it was, it was really fun and they said, hey, look, if you want to be part of this research project, we've got this cool supercomputer. We do. Somebody's convert all this over into like 3d stuff with c++. We'll give you a couple bucks if you want to do it like, Ah, no idea how to do this. Like, we'll pay you it's the summer, no one else knows either. So we'll help you as much as they can. Or like, you know, that sounds way better than like working at, I don't know, fast food place or some other crummy job like PG myself programming over the summer and working on these these projects. Sounds awesome. Let's do that. And so I did that. And I realized I knew I was in trouble. Because as I was working these problems, I was just having great success. I was doing really cool programming projects. And then I would hit a part where like, all this part of the this whole project is a bummer. I don't really enjoy this part. Like, wait a minute, that's the math part. And when I solve it, that we go back, yes, back to the programming. This is great. We're rolling again. And like, you know, I this might be a sign that I should, should focus a little bit more so it took me a while to actually read the sign. But yeah, I started back in 92. I guess In college working like more of the science side, but I quickly got into programming I just I just loved it. I never really thought I would be a programmer. Like I said, I kind of stumbled into it but once I got there I was like, Wow, I can't believe they're gonna pay me to do this. I better figure it out before they realize I'm not worthy and they throw me on here.

Tim Bourguignon 4:18
What did you do to become worthy and stay in there? Did you do something special?

Michael Kennedy 4:22
I you know, what's really interesting is I wasn't very skilled as a programmer. I couldn't do a bunch of stuff but there was like a few small things I had learned. And I just found people that needed the skills that I had and I just like okay, I can do this one thing like I want to realize I can't do all like I couldn't build I don't know Microsoft Word or some app like that but i this thing you need me to do I'm really good at that. I can do that. I just slowly added skills over time and eventually I got good enough like actually I got kind of belong here. But yeah, I was just you know, taking the things I know and really got lucky finding the right places to apply.

Tim Bourguignon 4:58
This reminds people with a roof Learners say a couple months ago said being the big fish in a small pond. So finding a real niche and rocking this niche all over.

Michael Kennedy 5:09
Yes, absolutely. That's that. That's exactly it. Right. I started working at a scientific visualization company, bunch of PhD folks there who were really smart and could do cool stuff. But there was not really a software side of that company, they all needed little things to help them do their job or visualize data and make this or that faster. And that was like the perfect intro to the industry for me because it wasn't, you know, go build, like, the core trading image of a bank or something like that, right? It was just helped me do this little thing. And I got a whole bunch of those under my belt. And it was it was amazing.

Tim Bourguignon 5:43
And this was your first professional job.

Michael Kennedy 5:45
Yeah, I would say so. I taught at some colleges for a while I taught math there. But that was more as like a graduate student and the US universities you can basically teach while you're a graduate student and they'll pay you a little bit Money and cover your tuition. It's like, like a scholarship, you work for something. How did

Tim Bourguignon 6:04
you decide on this visualization company?

Michael Kennedy 6:06
You know what I was at grad school and they it was started as part of the university I was at in San Diego. And they had put up a flyer like, Hey, we need somebody to work for us over the winter, winter break. It's like six months or something, or sorry, six weeks to build this small program. I'm like, I could do that. One. I could, I could totally do that. Why don't you go play for this? And it just worked out really well. And I just never left why eventually, but I was there for like seven years.

Tim Bourguignon 6:33
Can you describe to seven years? What's the outline of what you did? Oh, my gosh, this.

Michael Kennedy 6:37
So the place was originally a research lab for a bunch of cognitive scientists. And then it became a company that was spun out of the university. So it became its own company. And what we did there was we use eye tracking like not the letter eye, but your vision I we have this hardware that would let you figure out where you're looking at on a screen. It would actually study the, the diameter of your pupils, which turns out to be insane. So we did all these all this like usability research, you know, we'd have companies come in and say, Hey, you know, set people down, we'd pay like $50 for somebody to come surf the web over lunch for an hour. And they put on the hardware, I would say, I suppose you bought a laptop from this company, you're on their website, you want to return your laptop, do that, right? And you figure out like, well, what are they looking at? While they did that, we build all sorts of like analysis and visualization software around like those interactions and stuff to control the hardware. The craziest thing that we built was, we used this algorithm that looked at the pupil diameter, not where you're looking, but just this the diameter of your eyes over time, and some really wild math to come up with what we call the thoughtco meter. It's not its official name, but what it would do is it could figure out like if you're mentally engaged in problem solving, or not And we built like this real time system that was kind of like a How hard is the person thinking? And yeah, it was like peer reviewed and everything. That's crazy.

Tim Bourguignon 8:07

Michael Kennedy 8:09
So these are all all sorts of fun little software projects that all went together to make this place. Go ahead a couple other people I worked with there, they were great. It was it was really fun, great way to get into programming.

Tim Bourguignon 8:20
Can I picture this like, a bit like, like, data scientists data engineer today, so so you had some some masterminds in air quotes, kind of imagining all kinds of crazy usage that you could do? And then turn up to you and say, Okay, how can we do this to you have a software and ISIS? Oh, yes.

Michael Kennedy 8:43
Or we also wrote software to like, be the thing the person interacted with. So can we create software so that as you interacted with it, it would you do X, Y, or Z and then we could study how they respond to that. There's all sorts of Wild Things both on the data sciency side as well as the sort of controlling the experiments and interaction side that sounds awesome. Yeah, it was it was super cool like it was really really fun for for quite a while to just work on those projects and what was really nice I liked about it most of them not all but most of them were like we have this completely different thing coming up in three weeks can you build software for that? You have three weeks to do it you know like maybe like one time I think it was Hey, we want to have people watch the Superbowl ads in the US the Super Bowls are always have these crazy ads as like where the most money spent. We wanted to use just pure like I emotion and people diamond and stuff to predict before the survey results come out what ones were the most popular and what ones were the least popular because at the end of the Superbowl like the next week, they always rank here's the popular Superbowl ads, right. Could we do that without asking people just understand Standing what they do. So it would be like, Oh, we have to do that by two weeks. And it has to have an answer by the next day before these results come out, you know,

Tim Bourguignon 10:07
stuff like that. And if you're one day late, there's zero value added to the project.

Michael Kennedy 10:12
Yes, exactly. You gotta get it done.

Tim Bourguignon 10:15
Like the Black Friday, so, yes, we're gonna be ready tomorrow. Well,

Michael Kennedy 10:22
I've got a question, Stephen. You're gonna be ready for the sale. Right? There was a crash

Tim Bourguignon 10:27
salutely it's kind of scale. Talking about scale scaling. I really I saw today that Microsoft Teams at scaled something like 40% in the last week. So we are we are thrown out breaking in, in Europe right now. And 40% in one week, he said that's 44 million users nowadays, which is just let it sit on your tongue. This is just amazing that this thing is still working.

Michael Kennedy 10:59
Yeah. No, I, I think there's some really interesting scaling stories and some of these like also zoom. Certainly zoom seems like another one of those that I don't know if they've reported anything, but they have definitely got a huge bump in traffic. And I'm sure it's amazing. Yeah, it's amazing. Like, just think that, you know, 1015 years ago, you'd have to plan for this, you'd have to order the servers, you'd have to provision thing you know, now it's like, we're gonna check a box and like up that number of VMs up the number of Kubernetes servers in our clusters or something like that.

Tim Bourguignon 11:37
Yeah. Or you don't have to check anything. It's already there. And it was there all along.

Michael Kennedy 11:42
Yeah, it's automatic. You know, I saw a headline or something today that someone is asking Netflix to lower the data quality, so it doesn't break the internet. And I'm just thinking like, single company has the ability to break the internet like that's awesome. It's also bad but Imagine you run a company. Like, if we don't turn this down, we'll just break the internet. It won't break us. It'll just break the internet.

Tim Bourguignon 12:07
Yeah, that's one of the tweets that I sent out at the beginning of the outbreak, saying, well, this would be the time for Netflix or Amazon Prime or any of these VOD companies to just make a big, big, big break of their their prices and say, well, for for a couple of bucks a month, you get everything and so stay at home people. Yeah, I say I thought about it for a second and say, Well, if we increase the traffic from Netflix by I don't know. 20% 30% we will break the internet. Okay.

Michael Kennedy 12:38
I don't know the global stats. But I think in the United States, it's like 35% of all internet traffic in the evening is Netflix,

Tim Bourguignon 12:45
something like that. It's really 25 to 30. So yeah, I would say as well. It's just bonkers. So what kind of technology we're using at this company?

Michael Kennedy 12:54
Well, back then that was mostly c++. I would say that's where I learned the hard lessons of programming. Tell me about that. Well just you know, you have to check every little pointer. And you, you can't just write it. So it looks like it's gonna run, you've got to be defensive at every step of the way. And, you know, some of these things are, that we're working on are really time critical. If something goes wrong, you can't go and redo them. Right? You know, those people came in on that Monday morning, and they're all going to watch the Superbowl and if your software is crashing, and it's not able to do what it needs to record or analyze it, mostly recording and process, you know, the real time stuff like, you're done, you've lost that opportunity. Right? So that definitely got me really focused on writing good software. I think actually, that's one of the big differences between kind of beginners and experts in programming is not necessarily c++. Like put that aside, doesn't matter. But what I think one of the big differences is, is people You've written a lot of software they may have, maybe they have tests, maybe they're, they're checking to make sure everything is working, right. You know, like, Okay, this user input, not just gonna cast it to, or, you know, parse it to an integer, like, I'm gonna check to make sure that works and give them a message. And I find a lot of people that I worked with kind of mentoring them in the early days would write code that would work perfectly. If you entered exactly the right stuff, or it went down exactly the right path. But if anything goes wrong, it just goes poof, and just goes away. That's as good. You know, here's where you put the number. I'm gonna put the letter A let's see what happens. Poof. All right, you're not done.

Tim Bourguignon 14:39
Did you learn all this the hard way?

Michael Kennedy 14:41
I learned it the hard way. I think for myself, you know, when I was started at this company that did all the cool eye tracking and business app, that was awesome. But there were no other programmers. Eventually, we had some come along, but it was like, I was pretty inexperienced, and there was no one else so I got really good at making an effort. I always read books to always be learning to always be trying to advance my skills because I wasn't like a master's degree graduate, like some of us are. And, you know, I had I had, I had to like figure those things out myself. And so I would, you know, when I would go to lunch, I would take some kind of textbook or computer programming book. And I'd spend, you know, 2030 minutes every lunch, reading about whatever it was right at the time that I need to know c++ or when 32 or you name it, you know?

Tim Bourguignon 15:35
Did you get some mentoring at

Michael Kennedy 15:38
some point? I wouldn't say exact mentoring, but I got some co workers, where it was sort of like paired programming type of mentoring, you know, we just worked on stuff together. And I'm like, Oh, wait, what are you doing? That's cool. Or they're like, Hey, this is neat, though. What you're doing? I didn't think of it. It was more of an exchange, I guess.

Tim Bourguignon 15:55
Makes sense. And why did you decide to leave this company after seven awesome years. Doing some awesome things.

Michael Kennedy 16:01
Well, there's a couple reasons. There's a little bit of, I guess, probably the main reason was my wife was getting her PhD. And she actually stuck with it did get her PhD. So she got a job on the East Coast of the United States, and a tenure track position in that nice University. And so I went to those folks said, Hey, we're moving to these coasts. If you want to work from home, I'll work remotely with you or something, and we can keep going. You're like, I don't really know that remote works. gonna work out. All right, I'll go find another job. Thanks. You know, thanks for the time. It's been great, right? No hard feelings. Okay. And so, just like that next week, I had at this point, I had been started to speak at meetups and code camps and things like that to just try to push myself to learn more, because I was sort of on my own, like, Oh, I really like the stuff about design patterns. Let me like research that and talk about it or whatever, right things, things along those lines. And so just about that time, this training company called development or reached out to me and said, Hey, we see you're doing all these talks. This is cool. We'll pay you to do that. I said, Oh, okay. I've been doing this as a hobby, and you'll pay me That's awesome. I'm like, well, but I'm just moving to the east coast. So maybe you don't want work. Like we don't care where you live, you just work from home. Like, you got to deal let's do this. This is what I'm into. And I get to do it. I get to basically study this kind of stuff full time and then teach it to other people. And it was great. I did that for a long time. traveled around the world. I taught classes like all over all over US and Europe and Australia, places like that. It was it was really cool. It's a great experience.

Tim Bourguignon 17:40
I want to come back to to one of the sentence you said you said you you were just started speaking at meetups and conferences, to learn more. Is it a way to motivate you to learn something? How do they interpret it that?

Michael Kennedy 17:56
Yeah, well, I would say yes. had been, like I said, I was trying to like teach myself all these different things in programming. And I got to a point where I felt like the other people I was working with, they were really, really good. But they weren't necessarily interested in exploring that side of things. And there was no real one else really to talk to, I could go to these meetups and stuff. But I also found a lot of the presentations kind of not super interesting. So I'm like, Well, let me just submit some of these ideas that I've already been reading. I bet I could write this up. And people probably make fun of me for doing it badly. But I'll give it a shot, right. And so I put a few talks in and gave a couple of talks and people really seem to enjoy them. So I'm like, Hey, this is this is pretty fun. And so it's something that I just started to get into is, you know, finding interesting projects to research and present and eventually it just got me into in person training and I think it's a perfect follow on actually for the podcasts and the courses I'm doing now, right kind of you learn something interesting, and then you share

Tim Bourguignon 18:59
absolutely Whether another company if the equipment or did you start your own

Michael Kennedy 19:04
sort of so I worked for them for a long time for document development or, and, but they got acquired and during I sort of helped with that transition. And then it was like, it was time for me to move on and you know, start my own company. This is the podcast had been out for a year, you're to the podcast, talk Python, train, talk Python, to me, it was going really well, the podcasts and then I just I decided, you know, I really don't feel like I'm adding that much value with all the energy like, I feel like I'm spending a lot of time in meetings and working on projects, I think are going to get cancelled. I want to do more for the world than just create software that's not going to be used, or go to a bunch of meetings that I think could be an email or or something like that. Right. And so I just, I really wanted to see how far I could take the podcast stuff. I wanted to do my own courses, but because it was A company that also did training. I couldn't do that in my spare time, right? It's not like Well, I'm gonna sell antiques in my spare time. So it's gonna be fine, right? It's like a competitor to their business. So I had to quit and watch my, my stuff on Kickstarter. And never look back. Cool.

Tim Bourguignon 20:19
Let's talk about the podcast for a bit. So you said it was you created this a year before? Before leaving code mentor? Yeah, I think so. Yeah. What's the what's the first story of the of the podcast?

Michael Kennedy 20:29
Well, I love pocket. I've been listening to podcasts for such a long time before they were even called podcasts I had been listening to whatever the RSS things were that you could get, you know, talk radio on the internet diverse stuff, right developer talk radio. And so what I moved from doing a bunch of c++ and dotnet and stuff over to Python started learning Python. I was just blown away that there weren't really any podcasts in that space. I'm Here's one of the really fast growing parts of the programming industry programmers are super passionate about what they do most of them. And yet here's this world with no podcast. So I went along for a while just like going I well guess there's no podcasts, but eventually I decided, you know, I'm gonna listen to some podcasts about the stuff that I'm doing. And if, you know, if no one else is gonna make the podcast I guess I'll just make it because I want it to exist, right? Like I, I really enjoyed learning beyond just the API's or the technical details, like I've always always felt that way when I was doing math, like I loved learning the history of how something got thought about and developed and then created and you never learn it that way in the end, just like here's the formula. Here's how you use it. Let's go right there's no human story. There's no like creation invention in programming is the same, right? with like, why does this library exists? Like Where did this person come from? That created it and what do they you know, it's just amazing. So I really wanted to learn those stories. And so I decided I'm gonna create the podcast

Tim Bourguignon 22:08
is really cool. And by the way, that's that's why I'm waiting for Richard Kimball's history of dotnet. Really, really intensively it's gonna come probably this year, maybe next year. And I'm sure we're going to learn so much about dotnet, which has been tremendously used everywhere, everywhere. And I'm sure he's gonna be awesome.

Michael Kennedy 22:29
It's gonna be so cool. And I'm a big fan of Richard and what he's been doing and of course, this podcast, right, the dotnet rocks podcast that he and Carl been doing this. I've listened to it for a long time when I when I was doing that, but I think this book that he's doing for dotnet is gonna be really neat. I think it's gonna, like you said, it's gonna tell that story. And I would not be surprised if it inspires other people in other disciplines to do that, right? Like the history of JavaScript, the history of Python, right? I think those those were Also be really interesting stories. I don't really want to write the book that would do a great job with it. But I would love for it to exist. I would love for somebody to do it right. The ones that are smaller than that, you know, limited stories are still really interesting. So

Tim Bourguignon 23:14
it'd be great. That was gonna be my next question. So if you have some spare time to evenings to get going,

Michael Kennedy 23:22
Yeah, well, I could give up sleep. No, I've already got so many projects going. There's a real danger of just trying to do too many things. And just like losing all of your time and energy to context switching,

Tim Bourguignon 23:33

Michael Kennedy 23:34
yeah, I was just reading contracts. Before we jumped on the call together. I'm like, this is this is not my programming, but I guess I

Tim Bourguignon 23:44
have to you have to podcast and a training company. Is it is that right?

Michael Kennedy 23:49
That's, that's right. And that's pretty much all I'm doing. I'm not doing like consulting on the side or anything like that. I decided a long time ago. When I went down this path, like, I had worked for a handful of companies as full time employees, and I felt like a full time player and I felt that was pretty good. I had good experiences, great coworkers, and I learned a lot. But one of the things I decided when I started this journey to go independent was, I don't want to just go from having one boss, to having four or five bosses as a bunch of consulting clients. What I want is I want to change the fundamental thing that I exchange for my effort and work in the world I want to change. I want to exchange value for money, not time for money, if I can create something amazing, and I can help people with that, you know, maybe they'll pay me or support what I'm doing or whatever. But I really don't want it to be like, I've got to work this week. Or I don't get paid, right? Like if I create something that's great. Like, let me focus on how can I create something that is People will really appreciate and continue to support me, regardless of how I spend my time on it.

Tim Bourguignon 25:06
How did that discussion go with a family? You know,

Michael Kennedy 25:08
my wife has a lot of faith in me. But it was a little risky. And the reason it's risky is it's one thing to be 22 years old, out of college, or even just dropping out of college and say, I'm gonna go live in a place that's cheap. I'm gonna get some roommates so that I can only pay $500 a month I'm gonna live in Thailand, I'm just gonna focus on this thing. I had three kids, two of them were about to enter college, but we had to pay their tuition. We had a mortgage. I mean, I couldn't mess it up. Right. It had bad consequences for more than just Well, I moved back with my parents for a bit or something, right. It was like really not good if I messed it up. So yeah, so we talked about it for a little while. And you know, I I was really sure that it would work. But the thing I guess that really helped me the two things that helped me make the decision and sort of take the leap. One was the sort of got me thinking that I guess it's like what I call the five year test. You look at people five years down the road at the company or at what are they doing? Or would you like to be doing what they're doing? And the answer was no, I don't want to do that. That's really bad. really boring. But the other one was, I thought about Okay, well, what if something goes wrong, but remember, this is not now Coronavirus. Economy trouble? This is like the height of everything's good, right? So I thought, What does failure look like? If I try this and I fail? What happens? Well, what happens is, I have to go get a job just like the one I have now. And like, Oh, wait, what failure looks like what I'm doing now. Can I try for something I want to do more than that? Right. Like, let me just take a chance. And yeah, it was it was totally worth it. It was great. So how do you how did you

Tim Bourguignon 27:03
go about creating this business and then putting it on the right rails and getting momentum?

Michael Kennedy 27:09
Well, the podcast was essential. And I had tried to create little businesses before little startups, little sass apps and stuff. And they were all really interesting. And they were neat. And there are things that are successful now that were similar to what those ideas were, they're not really worth going into. But after a couple of attempts, the lesson that I took away was it's one thing to say, can you build this piece of software? can I build this service? Could I build something that will scale? Sure. But can you get people to care? Can you get awareness for it, right, getting, getting the word out and getting people to trust what you build or to care about what you've built. Basically, the marketing side is so critical and so hard, right? Like having great technology is table stakes. But you got to the Do the marketing and the growth and all that. And it's really not easy. And so I realized with the podcast, I had a huge advantage that I already had this this great set of people who listened to what I did, who mostly trusted the things that I talked about. And they would give it a shot. Right? And that's why when I launched it on Kickstarter, I'm like, I'm going to put it on Kickstarter before I actually get going, because that'll give me a sense of like, what people think. Right? And it funded in 12 hours. I'm like, okay, I was freaked out for 12 hours, but this is going to be okay. No, cuz I already have a bunch of customers who are excited. So now I just got to build it.

Tim Bourguignon 28:40
That was your training course. Your first training course.

Michael Kennedy 28:43
Yes, exactly. Yeah.

Tim Bourguignon 28:44
So you had the podcast and then used it as a funnel to reach even more people and, and that's that worked out, right. It worked. Yeah,

Michael Kennedy 28:54
it worked really well. I mean, it's not that it's not like, I'm gonna say, Okay, I'm gonna start the podcast. And then six months later, I'm going to do this. And I'm like I just said, well, the podcast would be a lot of fun. Let me try it. But, you know, these other companies are paying me money as sponsors to tell other people, my people are listening to the show about their product. I'm like, this. This is the marketing story, right? This is it's working for them. Why wouldn't it work for me? Right. So it was it was kind of it was it was pretty good. Yeah. I really appreciate everyone who supported it in the early days to help it get going. But it was really nice. So it was like a couple months of really hard work to write the the website, the platform, and then the courses and whatnot. But yeah, it came out well.

Tim Bourguignon 29:43
How do you decide on which trainings to write?

Michael Kennedy 29:48
Well, I had a little bit of experience having done like years of in person training, right. So I knew a little bit of what I think people really needed and what helped, but also did a lot of research. And I monitored some other places that were talking publicly about their numbers for different courses and whatnot. And I graphed it out over time. So let's just graph out what courses are being sold over time. And the beginner courses, like getting started helping people get into Python, or whatever the technology is, is much more popular than the most awesome advanced course you can dream of, right? Like, I don't know, the most amazing advanced object oriented programming thing in Python, like even if it's the best in the world, and there's nothing like it, it's still not going to sell as like, let's get started with Python. Or let's get started with you know, technology programming language x. And pyramid works.

Tim Bourguignon 30:54
One of your last trainings is Python for C sharp developers, I think

Michael Kennedy 30:58
Yeah, that one actually has Based on partly, I just wanted to kind of document my transition from going from C sharp dotnet developer over to Python and like, here's all the things I wish I knew that were like took me six months to learn and were uncertain and like it just go here. That's great. People can check that out. And also, it's one of the things I had originally I gave that as a talk at NDC Oslo when I was living in Germany. And it was really well attended and well received. And I okay, it seems like people are interested in this, let me take the time and put that together. Like, it was also trying to think about this nice product, right. So like I said, that there's the beginner stuff that I've absolutely selves and people are interested in. But I'm like, there's a large group of dotnet people, there's a lot of them move into Python, you know, how many other of those quote there's gotta be like, a handful of those types of courses in the world, right? So compared to how many getting started with Python courses and YouTube videos and stuff, it's got to be like 100 to one right. So it was also trying to think about how can I There's probably an underserved part of the world that I could help.

Tim Bourguignon 32:03
I just realized we haven't talked about you transitioning to Python. That was my first question. Very first question, assuming that in 1990, you were already a Python expert. So is it a really long answer to your first question? Absolutely. It is. When did you leave C sharp behind and and transition to

Michael Kennedy 32:21
pi? It was probably gradual. It's hard to remember exactly. I would say probably around 2013. I'm guessing because it wasn't exact. So I had been doing C sharp and stuff for a long time. And I had been doing the the training stuff around it, and it was starting to stall out. Maybe it was even a little bit before then. You know, there was the whole the windows team is taking over. And they're kind of changing what it means to do dotnet and the whole API for programming around windows and Steven Sinofsky and all that stuff, and it was like not a pretty time. Okay, well, this is really not a great place I've gotten myself into as a dove. To be only doing C sharp for this company, there's the only one that controls C sharp, what if they make bad decisions? Right? That's my career that goes with it. Right? So what? So I thought it's probably a good time to like poke my head up and go learn something else, not necessarily at first to go make the switch to it just to like diversify a little bit, right. And so I looked around, and this was when Python was really just starting to take off, right, the whole data science explosion in the Python side happened, like began in 2012, I would say. So just a little bit after that, and you start to see that it's really like becoming popular, interesting, and people are energized about it. So I started to learn it as, as a second language, and another language. I guess I had new JavaScript, but I didn't really do much with it. And as I got into it, I realized like, wow, this is super cool. I really like this ecosystem. I really like programming over here. And After a couple of weeks of working out, I went back into work on some C sharp project, the hike actually doesn't feel as nice as I remembered over here, I kind of want to be in this new place. And so I just, you know, switched over and started doing more and more in Python. And yeah, I just, I dove in and I loved it. Like, I was kind of thinking, you know, why didn't I not know about this place sooner? Honestly, should have been here before but whatever.

Tim Bourguignon 34:26
Um, you don't know what you know, knew.

Michael Kennedy 34:28
Exactly. Like he could only go for it right. The best day to planted a tree is 20 years ago.

Tim Bourguignon 34:35
Absolutely. But I guess the the steeper curve of Python was was a bit after that. So it started in 2012 2013. But it really boomed in 20 1415, I would say,

Michael Kennedy 34:47
right, right. And it's continuing. I'm really kind of blown away at that curve. I think it's really interesting to even like, think about why. What I think is interesting is Python has been around for going on 30 years, right? It came out 1991 or something right at the very beginning of my story way, way back this whole math thing, that's when it came out. I could have just done it then. But it had been around for I know, it had been around for like 20 years or more. And then it took off, right. I mean, it was already a pretty populating much, but it was kind of like going along flat ish, right. And then it just took off. And so I think it's really interesting to explore why would that happen to a language? You know,

Tim Bourguignon 35:28
that was almost my next question. I know, for Ruby, for instance, it's really rails that that yes, propose it in in forward. And is it only data science that propelled Python forward? I have no idea. I really have no

Michael Kennedy 35:42
idea. Yeah, sure. So certainly, the data science gave it a solid kick to like, get it moving in a slightly different way. So I feel like that that influx of people was interesting, but I don't think you know, you hear people People say that it's because of data scientists. And I think it's a little bit backwards. So I'll tell you what I mean. So I think the reason that Python is popular amongst that crowd in the early days, or the reason it's sort of sucking so many people into that ecosystem in a good way, is a lot of people see Python as, like a really minimal way to do some simple programming. that'll solve a problem, right? So imagine you're a biologist, and you run a research lab, and you've got to do a little bit of programming to make something happen. You've only been using MATLAB or Excel or something like that guy. Well, what? What seems to be out there that works well. Here's a library that happens to be in Python, I can, I don't even have to know what a function is. I can just write five lines in a script file, type this thing and like magic happens and I get my data out, right. And that happens in other places that happens in like early Visual Basic that happens in MATLAB, and so on, but the difference is with Python As your needs grow, you don't have to abandon and say, Well, you could do this so far in Python, but now you have to go get a grownup language like c++, right? Like Python has all the main ingredients of advanced computer science, right? It has functions, classes, properties, generators, iterators, like all the all those things you can use, but unlike, say c++, you don't have to bring a lot of them in in the beginning, you can, like grow into them. So I think that a lot of the growth of Python is people come in, like, I just need to do a little programming, I'm just gonna learn a tiny, tiny bit. And then they get stuck in a good way that they never have to grow out of that area and go find some other programming place to be. I think that's the secret. So I think there's all these people from economics, from biology from all these places. They don't at first call themselves data scientists at first. They're like, I'm a scientist or an economist, and I used a little bit of this scripting language to make this thing happen. And then They look up two years later and like, wait, I'm a data scientist, how did that happen?

Tim Bourguignon 38:04
Is that it? This is funny the detail, I say this because I came to it from a different angle. So knowing c++, knowing C sharp knowing Java, and I came to the Python world with the, with the object oriented mind. And so I started doing classes and modules and everything. And only after that, I realized, well, I can leave all this crap away and just type the script. And that's it. I don't have to import anything. I just start typing and that works as well. And it was kind of a revelations they say, wait a minute. This is

Michael Kennedy 38:37
why I can I can? Yeah, why can I Why don't I need a static class? What happened to that? Right?

Tim Bourguignon 38:43
Absolutely. Absolutely. Where's the static main void? function? Where's it?

Michael Kennedy 38:49
Yeah, that's also the way I came from it right? Like my background was c++ and then C sharp and then this and so I came from like this. You need all this structure and all these ideas to make it work. And I feel like my programs are getting simpler, not more complex, something like actually this thing I've been doing yet, you don't even need that. Like there's just not do that, right. But I don't think most people come that way. I think it's actually the other way.

Tim Bourguignon 39:15
I'm going to give you a painful example. My last question on Stack Overflow is something like you add a function that was taking taking a list. And I wanted to use and I had only on the integers in in my hand, and say, How do I put an integer in the list? So I created a list and appended list with the integer as well it doesn't look pythonic at all at all. And I searched for at least an hour until I realized that you just put it in brackets and that's it. And bracket seven

Michael Kennedy 39:45
comma comma five comma bracket. Yeah, whatever.

Tim Bourguignon 39:48
It's, yeah. Isn't isn't cold brackets.

Michael Kennedy 39:51
Yeah, that's right. Yep,

Tim Bourguignon 39:52
yep. And see it. Host No, no. That's too simple. I guess I was searching well, to way too complicated. But now, my brain is just,

Michael Kennedy 40:06
yeah, well, I've been there as well, right? Sometimes you've got to go the hard way to realize like, actually, now I don't I don't need any of this right? This is there's a whole much simpler answer.

Tim Bourguignon 40:16
It's great. So you're stuck with Python for the rest of your life now, right?

Michael Kennedy 40:20
I'm pretty broken. I can't, I don't enjoy the C languages very much. Not Not as much as I used to. I used to love c++ and I thought C sharp was great. And now I look at him like why are all these symbols here? Like what is going on? You don't need any colons like why are the semicolon Why do I need a parentheses on all my if statements and my while loops? Like I used to think literally they had to be there like, this is how it this is the one true way right? You know if parenthese thing closed parenthese right. And then I went to Python it really freaked me out that they were gone. I was like, this is really a weird language. I don't know and but then I went back back, and I put all these symbols. I've been lied to they're not needed, like, Why are they here? They're not really needed. Like, we could all avoid all this type. And it was just it was a really weird shift mentally. So I guess I may be stuck with Python. I try to write JavaScript without semicolons. You can do it. But the editors don't like it. Because they don't you know, it'll close the ball for you. If you don't, you probably should, but it's my Python side.

Tim Bourguignon 41:27
Um, one last question about your podcast. So you have two podcasts. And why create a second one?

Michael Kennedy 41:33
I had way too much time. No, that's not true. I'm sorry. Here's the thing. One of the important things I tried to do with talk Python is I try to tell stories that I think are going to be important for a while. Right, like, here's the story of how Python is used at the Large Hadron Collider. Right? Here's the story of how flat got created. But one of the things that that really lacks is, in a sense, almost a community feel of like, Hey, everyone in our community, this is happening. And don't forget to go to that conference, I hope to see you there and so on. And I could like a lot of podcasts like smush that together in the first 10 minutes or news in the last 50 minutes or interview, but what I decided was, I would rather have a short little podcast that you can listen to for 20 minutes a week, and just get the news in the programming space. So I created Python bytes, which is like, basically a audio newsletter with analysis. And it is only time later. I mean, there's stuff that will be relevant if you went back and listened because we talked about libraries that was still may be useful to you today. But it's its purpose is to bring you the stuff that's interesting that week, whereas that's the exact opposite of cpython. It's like that I hope is still valuable for that episode in five years. Right? So I don't want to put like hey everyone next We'd be sure to sign up for you know, pi, Tennessee, I hope to see you there. No, like, Well, that was like, what, four years ago? Forget that, right? Or this, this StackOverflow surveys out, be sure to check it out and vote on it. You know, just like, I felt like those two things were really at odds, but I really wanted to have them both exist. So like, Alright, well, I'll create another one. But the overriding directive, I guess I gave myself around creating that format, which, which I did with Brian Aachen, my co host, was, it cannot add a lot of work. Right? Like, Python is a lot of work. This show for you, I'm sure is a lot of work, right. It's a long show. You got to edit a lot. You got to research and stuff. Python bytes is like, hey, let's find a bunch of stuff that's in the news. That's interesting. Talk about it for a couple minutes each. Let people know and just, you know, no, no frills, not super long, drawn out just really quick and to the point.

Tim Bourguignon 43:56
That makes sense. Makes sense. Do you have a feeling if it's the same old So if you have two different audiences,

Michael Kennedy 44:02
it's not exactly the same. There's certainly people that listen to both. But I would say it's probably a third intersection, like a third, people listen to both a third. It's just Python bytes. And the third is just talk Python. Because some people like that really short form. They're like, I don't really want to listen to an hour interview, or whatever and other people's like, well, that's what it's about. I love the hour interview and the deep stuff and whatnot, they don't get into the the short thing. So, you know, it's also sort of two different audiences. And that's another reason to keep them apart. Right? Because if you jam them together, the the two thirds that are not the intersection, the Venn diagrams, it'd be like, Yeah, all right, we'll get past this part. Yeah, true.

Tim Bourguignon 44:41
That's true that Okay, um, if you could travel back in time and tell yourself something at the beginning of your career while you were doing this eye tracking stuff, which which advice would you give yourself besides learn Python? invest in Tesla?

Michael Kennedy 44:57
No, just kidding.

Tim Bourguignon 45:01
Not not apple.

Michael Kennedy 45:03
No Apple, right? Apple would have been the right choice. No, obviously, like, those are kind of silly examples. What I would tell myself is, I guess I kind of opened your, my response to your first question. As like, you kind of go with the flow and everything. And I was not very specific about the path that I took in my career and whatnot. I was kind of like, Oh, this is interesting. I'll do this for a while and see where it takes me. Oh, now here's like, a, another current. That's interesting. And I'll see where that takes me. I, I kind of, I was always jealous that people are like, even in high school, or like, I want to do this, and I'm going to do that. And here's what I want to be. You know what I mean? So I would give myself some advice to try to be a little more deliberate about like, should I have gone to work for a.com company? I'm probably not at that time, but you never know. Like, just what should I feel like I could have been much more deliberate, I would have been a different Kind of life, but I feel like I just kind of went with the current and it took it took me where it took me and it was all good. So no complaints, but I feel like I probably could have done better with like actually managing that side of things of my life,

Tim Bourguignon 46:13
or just go to the gray area in between. So be deliberate. Think about it a whole bunch, and then completely ignore it and go through with flow.

Michael Kennedy 46:22
Yeah, there you go. At least Yes, exactly.

Tim Bourguignon 46:25
Right. Cool. Cool. Cool. Yeah, that's true. Being deliberates or at least analyzing a bit more where you could be going, etc. Never, never

Michael Kennedy 46:32
hurts. I guess it's the long term career version of you know, make sure that the life you're living is a life you chose not just the life that you ended up with. Right?

Tim Bourguignon 46:42
Absolutely. That is very, very well. summarized. Thank you. Thank you. Thank you. So where could the listeners continues his discussion with you? If he wants to?

Michael Kennedy 46:50
Well, if they want to continue an actual conversation, Twitter's probably the best place to chat with me. So you can find me at at m Kennedy, which I'll give you a link for that in the show notes. Adam Kennedy on Twitter, if they just want to kind of kick back and listen more, they could definitely check out either the podcast. So I'd say just pick the style that feels like you're interested in, you want to hear interviews, check out duck Python, you want to just hear a bunch of little news items, then try Python bytes.

Tim Bourguignon 47:15
And your trainings are online and available on your website directly. They are

Michael Kennedy 47:20
there on our website. We can get them at training dot talk python.fm or just talk with them.fm and click on that courses. Link. We have a bunch there. I think we're 125 hours of like focus content. So we're building up and yeah, it's it's growing and really happy to be doing that for people.

Tim Bourguignon 47:43
Not bad, not bad. And you shouldn't see you live in a place that wasn't canceled by the virus. Oh my goodness.

Michael Kennedy 47:50
Yeah, you know, I would love to be in some places that we're live. I'd love to be at pi con. I'd love to be at some other conferences. I was at Microsoft Ignite. unveiled last year, as well as those replaces, but life turned upside down. I mean, it's a crazy time, Tim, it isn't needed. So I I it's suspended. But uh, yeah, for now. I'll get out and about soon as I can,

Tim Bourguignon 48:15
Michael, thank you very much. It's been a blast.

Michael Kennedy 48:17
It's absolutely been a blast to chat with you. Thanks for having me on the show.

Tim Bourguignon 48:21
And this has been another episode of developer's journey. We will see each other next week, bye. All right, this is Tim from a different time and space with a few comments to make. First, get the most of these developer's journey by subscribing to the podcast with the app of your choice, and get the new episodes automagically, right when the air. The podcast is available on all major platforms. Then, visit our website to find the show notes with all the links mentioned by our guests, the advices they gave us, their book, references and so on. And while you're there, use the comments to continue the discussion with our guests or with me, or reach out on Twitter or LinkedIn. Then a big big THANK YOU to the generous Patreon donors that help me pay the hosting bills. If you have a few coins to spare, please consider a small monthly donation. Every pledge, however small counts. Finally, please do someone a favor, tell them about the show today and help them on their journey.