#62: San Diego Technology Immersion Group Learns Python Transcript
00:00 Do you remember what it's like to learn Python?
00:01 Yes, some of you may have just picked up the language, while others have lived and breathed it for years.
00:07 Either way, you may have some hindsight bias towards the whole experience.
00:10 What was hard? What were your expectations? And what delighted you?
00:15 Well, consider this episode, 10 months in the making, your time capsule to explore just this experience.
00:22 It starts July 22, 2015, with a unique user group or meetup called San Diego Technology Immersion Group,
00:29 or SDTig for short.
00:31 This group spends six to eight months deep diving together into a topic,
00:35 rather than hearing a different one-hour presentation each month.
00:38 We'll follow the organizers and students before many of them learn a single line of Python
00:43 all the way to the end, 10 months later, after they've studied the language, web, and data science frameworks.
00:48 This is Talk Python to Me, episode 62, recorded throughout 2015 and 2016.
00:59 Welcome to Talk Python to Me, a weekly podcast on Python, the language, the libraries, the ecosystem,
01:25 and the personalities.
01:26 This is your host, Michael Kennedy. Follow me on Twitter, where I'm @mkennedy.
01:30 Keep up with the show and listen to past episodes at talkpython.fm, and follow the show on Twitter via
01:35 at Talk Python.
01:37 This episode is brought to you by Hired and SnapCI.
01:40 Thank them for supporting the show on Twitter via at Hired underscore HQ and at Snap underscore CI.
01:46 We begin our time capsule back in July of 2015.
01:51 You'll meet Scott Reed, Brad Cunningham, and Ike Ellis.
01:55 This interview is just at the beginning of their foyer into Python.
02:00 Just a quick addendum to my intro.
02:01 Scott, Brad, Ike, and I did work together for many years at Developmentor, but we've all moved on since the recording.
02:07 They started crafting bytes, and as many of you know, I'm building online training courses at training.talkpython.fm.
02:14 All right, let's meet the guys.
02:15 Brad, Scott, Ike, welcome to the show, guys.
02:19 Thanks.
02:20 Good to be here.
02:21 Thanks.
02:21 Thanks to you guys for joining me.
02:22 We're going to have a really cool adventure over the next six months.
02:26 So we all know each other.
02:28 We work together sort of sporadically.
02:30 We all do training for Developmentor and have taught various classes together, sat through each other's classes.
02:36 And so we kind of have this big history, and you guys came to me and said,
02:40 look, we have this thing called SDTIG, and we're going to talk about Python in that.
02:48 First of all, tell me, what is SDTIG, or San Diego Technology Immersion Group?
02:52 Ike, do you want to take it?
02:53 Yeah, sure.
02:53 It's a book club.
02:54 It's a book club for nerds that want to read the same technical book.
02:58 And where it started was Brad Scott and I wanted to read the same book and learn the same things
03:03 because we found we were always learning something new constantly.
03:06 Whether it was a framework or a language or a database technology, we were always looking for something.
03:11 And so we just picked a book, and we started reading the same book at the same pace so we could talk about it.
03:18 And we found that we disagreed on what the author had to say, and we had so many interesting opinions
03:23 that we thought, well, we'd invite other people along to read the book with us.
03:26 And so we made it public, and it took off.
03:29 I think our very first meeting had 15 or 20 people, and that was the lowest attendance.
03:35 And I think our highest meeting we've had upwards to 100 people.
03:39 Yeah, it was the JavaScript one.
03:40 120 people studying the same thing.
03:42 How long did that run for?
03:43 JavaScript ran for, I don't know.
03:46 Yeah, we did it twice, right?
03:48 Yeah.
03:48 We did like an intro to JavaScript using JavaScript the good parts.
03:53 Then we went away from JavaScript for a while, and then so many new people had joined in the interim
03:58 that we brought it back again the second time.
04:00 And that one ran for about six months, I think.
04:03 So six sessions or seven maybe even.
04:06 Yeah, and I think TIG's been around four years.
04:08 Yeah, coming up on four years.
04:10 Coming up on four years, yeah.
04:11 And we now have loyal people who go to every single meeting, and they say the best part is when Brad, Scott, and Ike descend into chaos.
04:20 When you guys argue.
04:23 Yeah, we just argue about, because they said what it does is it allows them to vet the author's message, right?
04:29 The author says something, and then we take different positions around it, and then the person watching can kind of like form their own opinion based on what they're hearing.
04:38 And they can understand that it's okay to not either agree or to not have a fully mature kind of image around what the author is talking about.
04:47 I think it was interesting for us when we heard that, too, because so many user groups you go to are stand up, give a presentation, they're very polished, or they try to be polished, and, you know, hold your questions to the end type of thing.
04:59 And we didn't really like that.
05:01 And so when we did the first one, we kept it kind of loose, and then just, you've taught with us, inherently the three of us will just argue with each other when we're talking about something.
05:09 We'll go, that's not the way you do it.
05:10 This is the way you should do it.
05:11 And so we kind of did that just naturally in the meetings and thought, oh, maybe we shouldn't do that.
05:16 That maybe looks a little unprofessional.
05:18 And then people just came up and said, please keep doing that.
05:20 That's all we want to hear is that.
05:21 So we'll stick with that.
05:24 The other thing that we do is we are very honest about what is difficult to learn.
05:30 And so, so much like if you see somebody on the stage, it looks like it's so easy, but the guy's been doing it for two or three or four years, right?
05:37 But for us, if we're learning something new and we didn't understand it, we're very, like, open about that.
05:44 And I think that makes the technology way more accessible to a wider audience.
05:48 Right.
05:48 Yeah, like, we will ask each other questions, you know.
05:50 So each one of us kind of takes the lead on a specific track.
05:55 And, you know, like, if Ike's doing his SQL stuff, I might go in there and say, you know, I've never understood, you know, whatever it is.
06:03 What is that query plan thing you keep talking about?
06:05 Yeah, yeah, yeah.
06:06 Or, you know.
06:07 What is the CTE?
06:08 Common table expression.
06:09 Yeah, I'd ask what a CTE is when we do SQL.
06:12 Yeah, awesome.
06:12 I think that it definitely makes stuff more approachable for, especially for beginners.
06:16 They're like, oh, look, these guys know what they're doing, but also they're sort of in the same shoes as I am.
06:22 They're also learning with me.
06:23 And I think that's also really different than a lot of user groups is you guys are kind of learning this as you go.
06:28 It's not like you spent the last year diving deep into Python and now you're ready to present it, right?
06:32 Yeah, absolutely.
06:33 I mean, I think that's one of the main reasons we wanted to engage you and kind of do this talk Python thing and just dive deeper into it is because the three of us think Python's cool and we like it and we really want to learn it.
06:44 And I would say maybe Scott has the most exposure to Python so far, but we're all very much in the learning stages of Python.
06:51 We're looking to the community for experts and, you know, we've been talking with you about what the right book is to use.
06:57 Should we use a book?
06:57 What's the online exercises we can do?
06:59 That sort of thing.
07:00 So, yeah, very much in the learning phase.
07:01 That's awesome.
07:02 So, there's a huge wide world of technology out there and, you know, there's never been a better time to be a developer, right?
07:08 There's so many things going on.
07:10 How did you guys choose Python?
07:11 Let's see.
07:13 So, I had programmed Python back in 2004 through like 2006 maybe.
07:25 As I was working at a developer at a company called Cardinal Health and they were a very large company and they did a lot of their test automation through Python.
07:35 And then they also had a custom, very small binary protocol that they used to communicate with their pumps that were located throughout the hospital.
07:46 And they used Python to generate messages and so forth from the description of the protocol.
07:53 So, when the protocol would change, we would just adjust like the documentation file.
07:59 And from that, we could use Python to generate both the messages and example messages for documentation and for testing purposes.
08:08 And so, that was a long time ago.
08:10 And I really liked my exposure to it at that time.
08:13 And then, you know, I was feeling like I really needed to learn dynamic language to sort of round out my skill set.
08:22 And I was looking at either Python or Ruby just because of their popularity.
08:26 And I'd had some exposure to both.
08:28 And I kind of enjoyed Python more.
08:30 I like the expressiveness of it and its readability.
08:34 We put it up for a vote like we always do at TIG.
08:38 We, you know, give our recommendations of next topics.
08:41 And then we ask what the, you know, I don't want to call them students, but the participants.
08:47 Yeah, yeah.
08:48 Co-learners.
08:49 Yeah, co-learners.
08:50 Exactly.
08:50 What they want, you know, what their preference was.
08:54 And then Python was an overwhelming response there.
08:58 So, it was kind of a community decision.
09:00 I guess that makes sense if everybody's really contributing like six months of studying to this thing.
09:05 It's not just something you want to pick out of thin air, but do what everyone's most interested to do, right?
09:10 Yeah, absolutely.
09:11 I mean, that's why we call it a book club, right?
09:13 If you think about like a traditional book club, although I don't know that I've ever been in one.
09:17 I mean, the idea is that, you know, you kind of collectively pick a book to read and you read it together.
09:22 And then, you know, next time somebody else picks the book.
09:24 And, you know, that's really what we're going for is we tell the co-learners all the time, like, hey, we're here for you.
09:31 Like, we want to learn things and we'll give our opinion on what we want to learn.
09:34 But we're here learning with you at the same time.
09:37 We would prefer that it's just an open format discussion amongst ourselves and the people in the room.
09:43 And they're discussing between each other, even answering each other's questions.
09:45 And we're kind of just immersed in it and watching it go type of thing.
09:49 We don't we really don't want to sit up front and teach.
09:51 You know, that's not really the style we're going for.
09:53 So how do you feel like the first meeting went?
09:55 Well, last month was a big test for us because we were doing for the last three and a half years, we were doing the meeting in Del Mar.
10:01 And Brad Scott and I opened a software studio last year where we were, you know, taking in business requirements from companies and then delivering software products in a lot of different platforms, whether it was a Roku app or Xbox or a lot of mobile tablet devices and just a lot of like modern web, web to Angular apps.
10:22 And we finally got to a spot where we were large enough to hire employees and employees need a place to sit.
10:30 And so we had to, like, open up a location.
10:33 So we rent, you know, signed a lease, bought furniture, bought garbage bag bags and, you know, toilet paper.
10:43 And we are sitting in our offices right now.
10:46 And so we decided what we had so much work to do with our studio that we needed to we didn't have time to drive down south 20, 30 minutes once a month, which I really sounds ridiculous.
10:58 But we really believe that so we had the first meeting here last week and it was huge.
11:06 Like we thought maybe when we changed locations that maybe we'd get like 10 people would come with us.
11:11 But really, maybe actually, I think that's what happened.
11:15 I mean, about 10 people came with us.
11:16 But we got because we're in a new location, we got so many new people that it made up for the people that we left behind, I think.
11:23 And I think also largely because it was Python.
11:27 I mean, I think surprisingly, actually, I mean, I think when we did the JavaScript track, we kind of expected we would get 100 people.
11:33 JavaScript is such a popular, well-known.
11:35 I mean, you know, everybody needs JavaScript.
11:38 Yeah.
11:39 Yeah.
11:40 It was not unexpected that our JavaScript track pulled that many people.
11:43 I think for me, at least, I was somewhat shocked by the volume of people we had.
11:47 The Python track, I think we had between 35 and 40 people in person and we had another 25 people on a live stream hangout.
11:54 Yeah.
11:55 Yeah.
11:55 The turnout is incomprehensible.
11:58 That was a Python pun.
12:01 A very lame one.
12:04 But there it is.
12:05 So it is sort of worth pointing out, you guys are talking about Del Mar and San Diego.
12:09 People can attend this, sort of in air quotes, anywhere in the world, right?
12:14 You guys have this live on Google Hangouts streaming the whole time.
12:18 And the exercises are online.
12:19 And, you know, it's part of your meetup group.
12:21 So I'll put in the show notes details about how people can sort of be part of it.
12:25 Yeah, we do.
12:26 It's on our, you know, I said we opened a software studio.
12:29 Our company is named Crafting Bytes.
12:31 And so it's on the Crafting Bytes YouTube channel.
12:32 We live stream these.
12:34 We're just starting it.
12:35 So the last week's meeting is there and it's recorded.
12:37 You can watch it and kind of catch up with where we're at.
12:40 And then from then on, every month is going to be live streamed.
12:42 So you can join from anywhere in the world.
12:43 And if you happen to be down here in Southern California, you know, in the San Diego area, you're more than welcome to come join us.
12:49 Yeah, we did it primarily because the people we left behind, as we mentioned, you know, we've been being there for so long and a new location.
12:56 And some people couldn't make that commute because, you know, if you're coming from downtown, it would like double your time in the car there.
13:03 So because of that, we decided to live stream it to give those people a chance to attend as well.
13:08 That's excellent.
13:09 And also, just because the way podcasts work, a lot of people will drop in, like, after this show is out or the stuff's already recorded, right?
13:16 Just the way things work in terms of time, the stuff will still be all recorded.
13:20 So they can go back through it.
13:21 They'll just sort of be, like, kind of on solo mode for the first time or something like that, right?
13:25 Yeah, your listeners are welcome to join us online and, yeah, watch old shows and then keep abreast and see if there are any new topics.
13:33 They can even vote and recommend topics if they have a good idea.
13:36 Yeah.
13:37 Awesome.
13:37 Yeah, we're on meetup.com so they can join our meetup group and there's discussion boards there so they can jump in and give their two cents.
13:44 And, you know, we like to have discussions as the students are doing the exercises.
13:47 If someone gets stuck, they want to give a comment.
13:49 We're hoping to, you know, drive all that through meetups.
13:51 So even if you're anywhere in the world, you can jump in and contribute.
13:55 So final question for you guys.
13:57 What does success look like in six months?
13:59 Where would you like to go with this?
14:01 I mean, really, I'd say we're in it just for the learning.
14:04 Me personally, anyway.
14:07 I don't know.
14:07 I'm getting weird looks now.
14:08 But, you know, so success for me is, you know, I've learned Python and everyone else has learned Python with me, you know.
14:18 I feel like I could jump on any Python project and be a contributor, that I could, you know, look at some Python in the wild, I'm using quotes, and understand what it does.
14:31 For me, success would be that if I and our learners that are coming along with us, our co-learners, like you named them, could pick out any Talk Python to Me podcast and listen to it and know what's going on.
14:46 That's awesome, yeah.
14:47 That's a really good question.
14:48 I think I mentioned something in the meeting, and it probably rings true.
14:51 It's like I don't foresee myself as being primarily a Python dev.
14:55 I mean, the nature of our business, we're not a primary anything.
14:58 We change skills all the time.
15:00 So success for me is probably looking into my toolbox of programming languages I know and realizing and knowing when to pull out the Python one.
15:08 I'll learn the language, and that's fine, but when should I actually use Python?
15:12 And that's what I'm hoping to learn.
15:13 Awesome.
15:14 Yeah, it used to be, you know, you could be a .NET guy or C++ guy, and that was your thing.
15:18 But those days are long gone, right?
15:19 Yeah, for sure.
15:21 If you want to stay alive and make money.
15:22 Although, based on that infographic you showed us, maybe I should just be a Python dev.
15:26 Yeah, maybe.
15:28 I'll link to that infographic as well in the show notes.
15:30 All right, gentlemen, thanks for letting me be part of your group.
15:33 This is going to be really fun.
15:34 All right.
15:35 Thank you so much.
15:36 Thanks.
15:36 Thanks, Michael.
15:37 See you online, and we'll put out a show in six months that brings us all together.
15:41 All right.
15:42 Sounds good.
15:42 All right.
15:43 Bye, guys.
15:43 Bye, guys.
15:43 Bye.
15:46 Now let's join SDTig as they meet for the first time in their Python track.
15:51 And they introduce the Python track to their what we ended up calling co-learners.
15:55 There's going to be a brief introduction where Ike, Brad, and Scott introduce the topic and set the ground rules.
16:02 And I've edited this just to keep it down to the relevant sections for you.
16:06 Then I'm actually going to have a conversation with the students.
16:09 We'll record that and we'll sort of talk about what they expect to get out of learning Python.
16:14 Why are they starting down this path of learning Python?
16:16 Things like that.
16:17 All right, so let's get right to it.
16:19 Three of us, then maybe we can get one or two people to come join us.
16:23 So we're super surprised to have all you guys show up because we really thought that only like two or three people would come and be with us.
16:29 And we had 40 some odd people sign up on Meetup and then we'll see how many people actually show up.
16:35 But we're super excited you guys either made the drive or this was convenient to you and you're able to join us.
16:41 So what you're joining is the beginning of our Python track.
16:44 And where we're different than a normal user group is, we're going to be doing Python for, it looks like, six months now.
16:50 So we always take November and December off, which means we'll be doing Python from now into February.
16:56 So we're going to read the same book.
16:58 We're going to be doing the same course material.
16:59 We're going to be doing the same lab work.
17:01 And we're going to come prepared to have like an interactive discussion on that course material or the book that we'll be reading.
17:08 So the reason why we're different is we have like expectations from you, which is that you'll actually read the homework and that you'll come ready for your questions.
17:16 Because that's the root purpose of this group.
17:19 The root purpose is that when you get to a part of the book where you're like, I don't understand what the author is saying, or the author is saying something that you've heard different things online, or you've heard different things from colleagues and you wanted to like work it out.
17:33 Those are the questions that we want to answer at this group.
17:36 So you read, you get to a point where you're like, the author isn't making sense to me, or we want more information.
17:41 You come here for the more information.
17:43 So we're not going to read together, right?
17:45 We're going to read on our own time and come and answer questions here every month.
17:49 And we have a few rules wrapped around that that we've learned from, you know, long, long experience.
17:56 And the first one is we incur all of those dumb questions that you don't want to ask in front of your colleagues because you're afraid to look like an idiot.
18:04 We want those questions here, right?
18:07 So every question gets asked and every question gets answered.
18:11 And that's our goal.
18:12 So remember what separates us from a normal group.
18:15 One, we stick with one topic for a long time.
18:18 In this case, Python is going to be six months.
18:19 Two, you have expectations.
18:22 It's not just coming to listen.
18:23 You actually have to read in between meetings and do the exercises and lab work.
18:27 And three, you come with your questions and we want every question.
18:34 Every single question you have, we want.
18:36 Now, where Python is a little bit different is Michael Kennedy.
18:39 So can we bring Michael back up?
18:41 We can.
18:41 And maybe Michael can introduce himself.
18:43 Oh, you want to introduce him.
18:45 I got Michael.
18:45 So Michael Kennedy is the host of right now the most popular Python podcast called Talk Python to Me.
18:54 We told Michael about this and we said, can you help us figure out what we should be teaching?
18:58 And Michael said, help you?
19:00 I want to be a part of this.
19:02 So he's broadcasting with us.
19:04 And he's actually going to be kind of taking our group idea and our broadcast here as we talk and learn about Python and weaving it into his podcast.
19:14 So you can listen to yourselves online if you have questions.
19:17 Yeah, so in six months or so, you will be podcast superstars.
19:21 So the idea here is really that Michael's going to lead the first 15 or 20 minutes tonight and he's going to ask us a bunch of questions.
19:28 We're going to give you some feedback.
19:29 And then he's going to come back in six months once we finish this track.
19:32 And we're going to ask a bunch of those same questions and get some feedback and figure out how much did we learn?
19:36 How valuable was this?
19:36 And we're going to put that all together and it's become an episode of Talk Python to Me.
19:39 So we're very thankful for Michael for doing that.
19:42 And if you're not already listening to Talk Python to Me, you should be because it's an excellent podcast.
19:46 They just had an episode with a guy from Netflix.
19:48 Brilliant.
19:49 Just brilliant to hear what they're doing on Netflix with Python.
19:52 So highly recommend it.
19:53 Yeah, so I think maybe we'll just roll into the list of questions you have.
19:56 I would like to just start by getting a sense of how many of you guys are .NET developers.
20:02 And that might seem like an odd question coming to a Python six-month track, but I know the history of this group is very .NET focused.
20:09 I would say a majority of the group here has got their hands up.
20:11 And so there's a couple of things that are interesting about learning Python.
20:14 And I think to drive home the point that it's useful and to make you feel comfortable right away,
20:20 I think it's really interesting to take the perspective of the stuff that I know how to do really well today.
20:25 How does that map over to my world?
20:28 So before I ask you some more questions, I'm going to just show you two pictures and get some feedback from you.
20:34 So I wrote a blog post over here.
20:36 This was, I don't know, a year and a half, two years ago, something like this.
20:40 I was trying to think, like, what's the relative size of Python and .NET?
20:44 And you guys were just talking about Meetup.
20:46 And that was actually the source of my analysis, if you will.
20:50 This is not scientific, but it does have some data behind it.
20:54 If you look at the size of the Python, the main Python meetups and the main .NET meetups,
20:59 like not the Django versus the .NET architecture, but like the main, you know, main .NET for a city versus the main Python.
21:06 So we come over here and here's an interesting graph for you guys to think about for a second.
21:12 So as much as .NET dominates the software development community that a lot of you guys run in, it's not the only thing out there.
21:19 And look at how much more opportunity there is in Python in some of these major cities.
21:25 Like, so here's New York.
21:26 New York has 1,000 approximately .NET developers in the Meetup, 4,500 in Python.
21:32 San Francisco, disproportionately open source friendly, 1,000 again, 3,800.
21:38 And if you look at Silicon Valley, Python's actually 28 times more popular there.
21:43 So I think that that's really interesting that there's a lot of opportunity and a lot of variety in that opportunity.
21:50 You guys are on a really big adventure here, and I think you're going to find the Python community to be very welcoming.
21:56 I think you're going to find the ecosystem to be super, super rich.
22:02 So just so we kind of get a baseline, show of hands, how many of you guys have some programming experience with Python?
22:09 Brad or Scott, you have to interpret this for me.
22:11 We got 1, 2, 3, 4, 5, 6, 7, 8, 9.
22:16 Okay, so about a quarter.
22:18 About a quarter.
22:19 Okay, that's cool.
22:20 So now it comes to sort of the participation part.
22:23 I'm going to just ask you guys a couple of questions.
22:25 And for each question, maybe one or two people just shout out an answer.
22:28 And when you do, please say your name if you want.
22:31 You can say your Twitter handle and then answer it so we can kind of give you a little credit.
22:36 So why are you guys here tonight?
22:38 Like, why do you want to learn Python?
22:40 Why is this so interesting that you're willing to spend six months digging into this?
22:43 Will?
22:45 I actually want to get into roguelike development.
22:48 And there's a lot of roguelike libraries that are supported through Python.
22:52 Roguelikes.
22:53 Roguelikes.
22:55 Roguelikes.
22:55 No, rogue.
22:55 Like a thief.
22:57 Roguelikes.
22:57 Okay, awesome.
22:59 That's cool.
23:00 Yeah, very nice.
23:01 Maybe one other person.
23:02 Why are you guys here?
23:03 Your boss is a Python guy.
23:05 Okay.
23:06 What was your name, sir?
23:07 That is a good career move, indeed.
23:09 Boss is a Python guy.
23:11 Okay, so career move.
23:12 Got it.
23:13 Love it.
23:14 Red butt right in front here.
23:15 My name's Aaron.
23:16 Kind of the same thing.
23:18 A little peer pressure.
23:19 Like, everyone from my office is here.
23:20 And they made you sit in front, too.
23:24 That's brutal.
23:25 Okay.
23:25 Right on.
23:26 In the back.
23:27 Somebody in the back.
23:28 Bachelor?
23:29 Yeah, I work at a biotech company, and so all the bioinformaticists are huge Python guys,
23:34 and I don't know a single bit.
23:35 Okay.
23:36 Bioinformatics.
23:36 Okay, so it's in your industry.
23:38 Yeah.
23:39 Yeah, what you guys are going to see is that one of the biggest areas of Python where it doesn't
23:44 just compete, but it really leads the way among other technologies is in data science, computational
23:50 science, and visualization.
23:51 And so I'm sure it's things like IPython, NumPy, that kind of stuff that they're using.
23:55 A couple more.
23:56 Right in front.
23:57 What's your name?
23:59 My name is Richard, and I am very interested in learning on how to program and CSS coding.
24:05 Okay.
24:06 So that's why I'm here.
24:07 So you're learning how to code in general.
24:11 Python is a good first language.
24:12 Yeah.
24:13 I mean, pretty much, I want to make this into my new career.
24:16 Yep.
24:16 Got it.
24:17 Cool.
24:17 Anybody else in the back?
24:18 Nick.
24:20 Nick.
24:20 I've been working as a .NET developer for 12 years, and I just took a job for Python, doing
24:28 Python.
24:28 So I haven't worked on Python in like four or five years, so I kind of want to.
24:33 Okay.
24:34 Dynodeveloper switched careers to Python.
24:36 So Nick lied in a job interview.
24:37 Right.
24:38 Yeah.
24:39 That's now on YouTube.
24:41 Got it.
24:41 Yeah.
24:41 Actually, I'm in the same boat.
24:46 You know, I used to use Python.
24:48 It was even longer for me, like six years ago.
24:51 And since then, I haven't touched it very much.
24:54 And I'm getting back into it now.
24:57 I have a reason.
24:58 I have a reason.
24:58 That was Scott Reed.
24:59 Ike, what's your reason?
25:00 I think, actually, Python is a pretty language to read.
25:04 Yeah.
25:05 I'm saying that legitimately.
25:06 I've read a lot of languages.
25:07 And when I see Python, I think it's written nicely.
25:10 Yeah.
25:11 Yeah, I agree.
25:12 It's a beautiful language.
25:13 Okay.
25:13 Let's take one or two more.
25:15 Down in front.
25:15 In your name.
25:16 Eric.
25:16 Eric.
25:17 I have a very large web app, so 2,000 web pages, in a language that's killed.
25:22 They have now VFP, Visual Foxbook.
25:23 The last two years, I'm looking at thinking to switch to PHP, but I'm not convinced that's
25:28 the right move to do.
25:28 You're right.
25:30 You were right.
25:31 I'm trying to find a more.
25:34 You have an accurate moral compass.
25:36 Wait, Michael, what did you say?
25:38 Well, I'm just going to say I have a comment about the PHP thing.
25:43 The T-O-B, T-I-O-B-E index for the most popular languages just came out today.
25:49 There was a new version or a new set of data that just came out today.
25:52 And they let you graph all these various systems, these various languages and their popularity
25:58 in terms of basically usage, right?
26:01 And PHP is on a very sharp downward trend.
26:07 I try to not bet my projects or my company or my career on things going super straight.
26:14 On the other hand, C-sharp went up a little bit.
26:20 That was cool for you guys.
26:21 And Python went up like three points.
26:24 So C-sharp is number four.
26:25 Python is number five.
26:26 And they're both on a recent upward trend.
26:29 There are many, many different runtimes, if you will, to use the .NET term.
26:43 There's an interpreted version, which is the main one known as CPython.
26:47 But there's also one that's more like .NET called PyPy, P-Y-P-Y, because it's a Python implementation
26:53 written in Python that is JIT compilation and garbage collected.
26:57 There's something called MicroPython for micro devices.
26:59 There's a whole wide variety.
27:01 There's also IronPython, which runs on .NET, for example.
27:04 Yeah.
27:05 Very cool.
27:05 Okay.
27:06 Next question.
27:07 Next question.
27:08 All right.
27:08 Next question.
27:09 How many of you guys are here thinking about Python?
27:12 Like I said, my assumption is a lot of you are .NET, Microsoft folks.
27:16 How many of you are here to sort of say, I've made a decision to break out of the Microsoft
27:21 Windows sort of lock-in?
27:24 Not in a negative way, but there's all these other platforms.
27:27 I'd like to work on Linux.
27:28 I'd like to work on Mac.
27:29 And how much of that sort of cross-platform bit of Python is interesting and part of your
27:35 main motivation?
27:36 So trying to get cross-platform.
27:38 One.
27:39 Two.
27:41 Three.
27:41 Four.
27:42 Plus gem.
27:43 Gem.
27:43 Plus gem.
27:44 Four plus gem.
27:45 Four plus gem.
27:46 Okay.
27:47 Awesome.
27:49 So you guys don't have too much experience with Python.
27:51 So I'd like to kind of get a sense of what is your perception of this language?
27:56 Is this just a scripting language?
27:58 What do you think Python is used for?
27:59 What do you think you could build with Python?
28:01 That kind of stuff.
28:02 All right.
28:02 Volunteers again?
28:03 Of course science.
28:04 It is scientific language and you can program a lot of application in machine learning and
28:11 continuum analysis and things like that.
28:13 So it's slick actually compared to C-sharp, which has a lot of feature and very big.
28:19 I think that Python is very focused and you can use very small amount of feature and your
28:24 programs could be smaller for the same type of features.
28:27 Excellent.
28:28 Okay.
28:28 Cool.
28:28 That's a good answer.
28:29 What else?
28:30 Yeah.
28:30 How about in the back?
28:31 Oh, sorry.
28:32 I'll get someone in the back.
28:32 Okay.
28:34 Cool.
28:34 And your name?
28:35 Michael, did you hear that?
28:36 That was kind of why, but I heard excellent documentation.
28:40 Compared to MSDN, he thinks it's better.
28:42 Yeah.
28:43 I would say that may be true.
28:45 It's interesting to note that the ASP.NET team, as you know, those guys are going all
28:49 in on open source.
28:50 They're all moving to GitHub, all that kind of stuff.
28:52 They recently moved over to the documentation system, Read the Docs, that is pretty much the
28:58 default one for Python.
28:59 So ASP.NET documentation has now moved to where Python has been the whole time.
29:04 So that's also kind of funny.
29:05 Yes.
29:06 In the front.
29:06 Clean syntax.
29:08 Thank you, Perry.
29:09 Clean syntax.
29:10 But two or three years ago, I almost went to Python, but when Python 3 was coming out,
29:16 I heard there was no backward compatibility, and that basically stopped me in my track.
29:19 We will definitely talk about that later on tonight.
29:21 Yes.
29:22 Okay.
29:22 So he had said the clean syntax.
29:25 Yeah.
29:26 Clean syntax is really interesting.
29:28 You will find, for those of you that come from a C-based language, C#, C++, Java,
29:35 JavaScript, you will be freaked out by this language for about two hours of the typing
29:43 time, right?
29:43 Not the looking at time.
29:44 But as you're actually writing, you're like, wow, this is crazy.
29:46 Because you don't have curly braces to separate, to define functions.
29:50 You just use indentation and white space.
29:52 Same thing for if statements and while loops and classes and methods and all that kind of
29:57 stuff.
29:57 And it really takes some getting used to.
29:59 But after doing it for like a week, it'll be painful actually to go back to C# or
30:05 C++ with all the extra stuff that's not there.
30:07 So the clean syntax is really a selling point, but it takes a little bit.
30:10 So just do sort of a suspension of disbelief for the first few hours while you're getting
30:15 used to it.
30:15 Cool.
30:16 Sorry, I just want to make sure we're keeping up with the comments on the YouTube stream.
30:20 Sorry about that, Brad.
30:21 No worries.
30:21 It looks like some people are saying Linux.
30:24 Jeff says he wants to do Linux and Russia says I don't do Windows.
30:27 Good for scientific work.
30:29 Just makes sense.
30:30 Yeah, excellent.
30:31 I think the Linux point is interesting.
30:33 If you go look at the pricing for EC2, the pricing for the Linux machines is half price
30:39 for the Windows machines.
30:40 And so if you're going to go put something on the cloud, you may be able to do it cheaper.
30:45 And just all like the sort of DevOps type stuff, Docker, Chef, Puppet, that's more accessible
30:53 in Linux.
30:53 It's really cool.
30:54 All right.
30:56 So those are kind of the positives I was asking for.
30:58 What about the negatives?
30:59 Like, what are your apprehensions?
31:00 Like, I'm really going to dislike X or I really don't know about how this is going to go.
31:05 Yeah.
31:06 So my name is Mike.
31:08 And I've been kind of curious about Ruby over the last few years.
31:13 And Python syntax is kind of similar.
31:17 When you look at the two, they look similar.
31:19 But part of the things that kind of dissuade me from Ruby world is the volume of the different
31:25 gems that you just need to know about or you need to dig and find out about.
31:28 And then the backward compatibility when they come out with new versions of gems.
31:32 How does Python compare?
31:33 Yeah.
31:34 So that's an interesting problem.
31:36 I don't do a ton of Ruby.
31:38 So it's a little hard for me to speak to it.
31:40 But there are many.
31:41 There's something like Ruby gems or .NET, NuGet packages, PyPI for Python package index.
31:48 And they've got about 60,000 packages there.
31:51 You do have similar problems.
31:53 But I don't think there's – I haven't run into too many sort of incompatibilities.
31:59 So it's pretty solid, pretty stable, I would say.
32:02 Yeah.
32:02 So I would say now that Python 3 is solidifying, they kind of culled down the number of packages.
32:10 But we'll probably see it ballooning back up again.
32:13 You know, I imagine you're going to have that problem.
32:17 I mean, that's going to be a problem with any sort of open source, you know, user-contributed libraries.
32:22 You know, you're going to have a flood of libraries.
32:25 And trying to determine the one to use is always going to be a thought process and not just let me click a button.
32:32 Absolutely.
32:33 I would say there's like a core.
32:35 There's like a core of things that are very stable.
32:38 They've been around for like five or ten years.
32:40 Everybody uses them.
32:41 If I'm going to talk to a relational database, I'm going to use SQLAlchemy.
32:45 That's the entity framework equivalent for the .NET guys, right?
32:47 Like that thing is super solid.
32:49 It's more when you get into like farther out, the more niche type of stuff that you might run into issues like that.
32:56 Like some of those.
32:58 All right.
32:58 All right.
32:59 One more negative.
33:00 Wait, wait, wait.
33:00 I'm sorry.
33:01 Yeah, Chris.
33:02 So I use Python quite a bit.
33:05 And one of the things that I keep running into, and I wonder if you can speak to this, is a lot of the libraries that I run into are calling C++ in the background.
33:16 And it seems to make like an efficient and stable library.
33:20 You actually have to then start writing native code.
33:23 And this jumping between paradigms is a little iffy for me.
33:28 Especially as a library author, right?
33:32 Like if you're consuming it and it's tested, like who cares how it's written.
33:35 But if you're writing it, that's a different story.
33:37 So it's true that some libraries do depend on C, but it's not the only possibility.
33:45 So the ones that really come to mind are things like NumPy and SciPy that do tons of computational math.
33:51 The optimized parts of that are written in C, right?
33:56 And so that's a little tricky.
33:58 However, we did talk earlier about the different runtimes or implementations.
34:02 And if you look at the one called PyPy, they're about 10 times faster than the CPython one.
34:11 Not stuff written in C, but the one that runs on top of the C interpreter.
34:15 That's the default one.
34:17 So that's a really interesting possibility if you're looking for performance that would not require you to work in these two modes.
34:24 Thank you.
34:25 Cool.
34:26 Yeah, sure.
34:27 I mean, that's not the only answer, but that's definitely one of them.
34:29 Cool.
34:31 Next question.
34:31 Brad, Scott, Ike, I'd like you guys to just talk a little bit about the materials you're going to use and what you're going to cover so I can sort of get that into the show and what everyone's – what journey are these guys about to take?
34:42 This is a topic of a lot of discussion.
34:45 Yeah, we went back and forth on this for a really long time.
34:47 And we're not even sure we're right on what we decided to do, but we want you to know it wasn't done lightly.
34:52 Yeah.
34:54 So what we have right now – so there's the meeting tonight, which is like episode zero, right?
34:58 Python's a zero-based language.
35:01 And then we have the next two meetings are going to be about the Python language itself, right?
35:08 And so the book we're going to be using there is Dive Into Python 3.
35:11 And we'll talk about why 3 versus 2 in a little bit.
35:16 So this is Dive Into Python 3.
35:19 You can find it at diveintopython3.net.
35:21 You can get a – also available in dead trees.
35:27 You can get that printed version as well, but it is available in HTML.
35:32 The second part of the track, we're going to be talking about Python as a web programming framework.
35:38 So to Eric's point, a couple people have mentioned that.
35:41 And we're going to be talking primarily about Flask.
35:44 And the book that we're going to be looking at there is Flask Web Development.
35:51 That's probably the biggest up in the air right now, but I think that's probably what we'll end up doing.
35:56 Flask is a micro-MVC framework, a lightweight MVC framework.
36:02 So Django is probably the one you've heard of if you've heard of Python.
36:06 That's the big one, right?
36:07 Flask is sort of a lighter weight, up-and-coming – you can think of it as like MVC versus the web forms, right?
36:15 So Flask would be the newer, lighter weight way of doing something, which Django would be the way that it's been done primarily in the past, right?
36:25 Michael, this was kind of your input, right, that you thought maybe Django wasn't the best idea for us?
36:32 I definitely think so.
36:33 I mean, I sort of come from the – I'd like to build lighter weight, small, tight applications where I have more control over the HTML and what's going on and craft it just so.
36:44 And there's a couple of web frameworks that make that really easy.
36:48 And those are Pyramid and Flask, right?
36:52 There's some others like Bottle.
36:53 There's actually a lot more choices in the web frameworks here than if you come from the .NET space.
36:58 But these are the two most popular ones, I would say.
37:01 And they're doing some pretty cool stuff here.
37:04 It's really easy to get started.
37:06 It's probably five lines of code to get started with Flask.
37:10 It's a little bit more for Pyramid because there's some structure around it, but generally you don't have to write that.
37:15 There's tools that will like build the project for you.
37:17 So Flask does have a couple of videos that you can watch, which we'll get to later on.
37:22 And then the third part of the track, we're going to be talking about Python as a scientific data analysis language.
37:28 And the book there is Python for Data Analysis.
37:31 Let's see what else I want.
37:33 All that other stuff is going to come later.
37:34 So those are the three parts of the talk that we're going to – of the track.
37:42 Brad, how long – or Scott, how long are you guys planning to encourage everyone to spend per week or per month?
37:48 Like how much time are you spending learning this before we like come back six months and like see where everybody got to?
37:54 Yeah, that will vary, I think, by individual.
37:56 But there are – I would say there's probably – if you were to print out the pages, probably about less than 100 pages, maybe 80 pages of reading material printed, although it's going to be online primarily.
38:11 And then there are some exercises, which it depends on the level of exposure you've had to Python and the amount of – that's going to vary a lot.
38:23 So, Michael, we've been doing this group for a long time, and we found that when we started assigning 300 pages of homework, nobody did it.
38:30 And when we assigned 200 pages of homework, only we did it.
38:39 And then when we assigned 100 pages of homework – About half.
38:43 About half do it.
38:44 Yeah.
38:44 So we're under 100.
38:46 We figure in 100 pages, depending on the person, four to six, maybe eight hours a month.
38:53 Yeah.
38:54 Yeah.
38:54 But usually four hours a month.
38:55 Four hours a month.
38:56 Okay.
38:56 Excellent.
38:57 All right.
38:58 I think that's it for my questions.
39:00 Okay.
39:00 Awesome.
39:01 Cool.
39:01 Very cool.
39:02 I have some parting thoughts.
39:03 I mean, you guys, you're on a great adventure here.
39:06 This is going to be a lot of fun.
39:07 Enjoy it.
39:08 There's a lot of cool stuff to learn.
39:10 Python's a great community.
39:11 And these guys are great leaders.
39:12 So enjoy it.
39:13 And I'll see you in six months or whenever we get back.
39:16 Yeah.
39:16 Awesome.
39:16 Cool.
39:17 Thanks so much, Michael.
39:17 Have fun.
39:18 This episode is brought to you by Hired.
39:32 Hired is a two-sided curated marketplace that connects the world's knowledge workers to the
39:37 best opportunities.
39:38 Each offer you receive has salary and equity presented right up front, and you can view the
39:42 offers to accept or reject them before you even talk to the company.
39:46 Typically, candidates receive five or more offers within the first week, and there are
39:50 no obligations ever.
39:51 Sounds awesome, doesn't it?
39:53 Well, did I mention the signing bonus?
39:55 Everyone who accepts a job from Hired gets a $1,000 signing bonus.
39:58 And as Talk Python listeners, it gets way sweeter.
40:01 Use the link Hired.com slash Talk Python to me, and Hired will double the signing bonus to
40:06 $2,000.
40:06 Opportunity's knocking.
40:09 Visit Hired.com slash Talk Python to me and answer the call.
40:12 Now zoom into the more recent past.
40:21 Approximately 10 months later, you'll meet two of the students or co-learners named Jim
40:26 and Eric.
40:26 They spent the last nine sessions with a winter break thrown in between learning Python.
40:31 Now we'll get their perspective looking back on what they've learned.
40:37 All right, I'm Jim Counts, and I'm a .NET and Perl developer primarily.
40:43 So Jim, you spent about six, seven months now with us learning Python.
40:49 What do you appreciate the most about the language and the ecosystem now that you've learned it?
40:52 Probably just how quickly you can get something started and up and running.
40:57 So just open a file and start hacking and then press play if you're using PyCharm, and you're
41:03 good to go.
41:03 You get to see stuff right away.
41:05 Nice.
41:06 So coming from that C# background, what surprised you about Python and its ecosystem that you maybe
41:12 didn't expect to see?
41:15 I guess, I mean, I have been doing Python for a while, like on and off, but not as intense
41:21 as this.
41:21 So if I think back to then, it would probably be like the white space, right?
41:25 I'm used to just kind of like typing, and then when I hit a semicolon or something, everything
41:31 fixes itself and not having to worry about white space.
41:34 So that's probably the biggest kind of surprise, the biggest thing different.
41:39 So I know that Python is not your second, third, or even fourth language, probably something
41:43 on order of your 10th or 12th programming language, but is there anything about Python that's changed
41:47 your perspective on the software development landscape?
41:49 Yeah.
41:50 I mean, so it's like a more subtle change.
41:52 Like, it's like, I feel like Python's a bit more evolved than like earlier dynamic languages
41:57 I had used, like Perl.
41:59 You know, there's less ceremony in Python than there's with Perl.
42:02 So I feel like Python's a language that's learned from the languages that came before it.
42:08 I like to think of it as a manicured language.
42:10 It's a very well manicured, cared for, crafted language.
42:14 It's a language of class.
42:15 Yeah.
42:15 Sophistication.
42:17 Yeah.
42:17 I like it.
42:18 Okay.
42:18 I always use dynamic languages.
42:20 Ah, yes.
42:22 I see.
42:23 Not always, but when I do, I use Python.
42:25 So do you have any advice for anybody that's maybe haven't learned Python and hopefully listening
42:30 to this podcast and wondering, should I learn Python or not?
42:33 You probably should.
42:34 It's important to, like, that's always the question, but it's important to,
42:38 like, always be learning new things to get new perspective.
42:41 Like, even if you don't end up using Python every day, it's going to influence the way
42:46 you think about problems you're solving in whatever language it is that you are using for your
42:49 regular work.
42:51 And there's really, like I said, a low barrier to entry with Python.
42:55 So as opposed to some more esoteric languages where you might be able to get a different
42:59 perspective, it's easier to get a different perspective with Python than with some other
43:02 languages.
43:03 All right.
43:04 Thanks, Jim.
43:04 Hi.
43:06 My name is Eric Lanvey.
43:07 I'm mainly a web developer.
43:09 Although I'm using Visual Fox Pro as my main developer language currently, which is a desktop
43:15 oriented application language.
43:16 but created several web apps, including one that has more than 2,000 web pages.
43:21 Very cool.
43:23 All right.
43:23 So you spent a bunch of time with us in the Python track.
43:26 I think you went to basically all the meetings.
43:27 It's been about six or seven months.
43:29 So what is it that you appreciate the most about the language now that you've learned about
43:32 it?
43:32 It's general use language.
43:34 I think it's wonderful to have a language that can be used for more than one purpose.
43:37 I was used to Visual Fox Pro, which was in the same kind of idea to can develop this desktop
43:43 app and web apps and for small things or large apps.
43:46 So that was very nice.
43:47 I like the fact that there's a large library, large collection of libraries out there.
43:53 Even just recently, I needed to do some SSO, single sign-on, and I fairly easily found
43:58 libraries for XML signing.
44:01 Trying to do the same thing in other languages is very difficult.
44:03 I also liked very much, I mean, coming to this particular group opened the door for me
44:09 to learn more about the Python and the other groups here in San Diego.
44:12 So it was very interesting to see how many developers are in San Diego.
44:16 It's quite large.
44:17 So having an active group of users, lots of, from different sources, not just developers,
44:23 but also scientists, database people, of course, web developers.
44:28 And they even grew up here for PyLadies, ladies who are into Python.
44:33 That's right.
44:33 So it's kind of the diversity of developers.
44:36 It was quite nice.
44:37 I love the fact that there are so many online resources.
44:40 I mean, I was just astonished how many resources I found.
44:44 Of course, the podcast was one of the starting points.
44:49 So, of course, Michael Kennedy's podcast was a wonderful sort of information, which opened
44:53 the door to other things.
44:53 And because of that, I basically looked at almost every video from the PyCon conferences.
45:00 So, and because of that, I'm going to the next one.
45:03 Oh, very cool.
45:04 Yeah.
45:05 So that was just very interesting for me to see this active.
45:08 Visual FoxPod is heyday.
45:10 The conferences also had over 2,000 to 3,000 people.
45:13 And that's now where Python is.
45:15 So for me, I see this kind of renewal into people being excited about an environment, except
45:22 this time it's open source.
45:23 Right.
45:24 So I think you kind of touched on this already, but maybe get a little bit more into it.
45:28 What surprised you then?
45:29 It sounds like the amount of online resources were interesting and the amount of libraries.
45:33 What surprised you about the ecosystem?
45:34 Yes.
45:35 As I said, the ecosystem is wonderful, having all the resources.
45:40 And also knowing, as a business owner, knowing that one of my biggest concerns is to be able
45:46 to find qualified staff or resources out there.
45:50 And knowing that Python now became one of the leading languages being taught in colleges,
45:54 universities, actually reassures me to know that whatever investment I do in it, I will find
46:00 resources out there to expand the product or to continue.
46:04 And because of that, even though our product is currently in Visual Fox, we're adding a whole portal to allow our clients to extend the product in Python.
46:13 And we have a pathway now actually how to convert even some of our app to Python itself.
46:19 There are a few things that I had a little bit of a hard time with.
46:23 There are a few things that I had a little bit of a hard time with.
46:27 Here I had a hard time finding for some of the desktop parts of a product.
46:31 It was very difficult to find how to convert that.
46:33 There's no proper object-oriented design of desktop.
46:36 It was a little bit hard.
46:36 The arrays are a little bit unusual.
46:39 But the richness of the language, the whole tuple, list, dictionaries, the iterators, the factories,
46:47 all of those were actually some of those concepts I didn't know about.
46:50 So that was very nice to see.
46:52 So looking at an open source project that had so many new features, such a well-designed structure,
47:00 was actually very refreshing for me to see.
47:03 Yeah, that's interesting.
47:04 So you're coming from a FoxPro background, it sounds like.
47:07 And so Python is quite a bit different from that.
47:10 How has knowing Python kind of changed your view of just software development in general?
47:15 It sounds like open source was kind of enlightening to you there.
47:17 Well, Visual FoxPro had some open source projects.
47:20 The Visual FoxPro community was always very open to share code.
47:25 So that was already used to.
47:26 The few things that I felt like kind of missing, like a native database layer, was a bit hard for me to use.
47:34 Did you try the...
47:37 SQLAlchemy?
47:38 Yeah.
47:38 It's too restrictive for what we need to do.
47:41 The idea of being able to get the data, make a temporary cursor, for example,
47:46 and re-execute additional select statement against it is kind of missing in the language.
47:52 So in Visual FoxPro, we can definitely manipulate the data a little bit easier,
47:57 especially we don't have to load everything in memory.
47:59 And if you make a web app, you cannot have an unlimited amount of RAM, so you have to try to make things fit in a smaller footprint.
48:05 But on the other way, as I said, it has lots of similarities.
48:10 For example, I always force a code indentation.
48:14 So this was the first time I actually saw a language that you had no choice but to indent your code.
48:20 So that was actually nice.
48:22 The parameters, having named parameters, is wonderful.
48:26 I mean, so often you keep cheat sheets on the side what the parameters are,
48:32 but having this little add-on, having named parameters, it was a big plus for me to see.
48:39 Yeah, that's very cool.
48:40 So for those people that are listening now that maybe are thinking about learning Python,
48:45 don't know anything about Python, what advice do you have?
48:47 I would say definitely do it.
48:48 Looking at the languages out there, the ranking of the languages, knowing that Python will open the door for not just Windows and Mac, but almost any platform,
49:00 that it can be used from small devices to large apps, web apps.
49:05 One of the first things I did is how to ensure that I can call, okay, interface Visual Fox Pro with Flask.
49:14 And I was able to make a wrapper to call a com object from within Flask to still call VFP code,
49:22 so to be able to make the transition smoother.
49:23 But again, Python being, you know, fairly generic language and still forcing you to have clear structure of what you do,
49:30 especially for new developers, I think it's essential.
49:34 I did coding in Assembler, in C, in Global, Visual Fox Pro, store procedures, backend procedures, and so on.
49:42 And I would say Python is definitely a clean language.
49:45 And it's still both object-oriented and functional, kind of like Visual Fox Pro was.
49:51 As a new developer, you are going to be phasing and learning about all those different techniques.
49:57 So even if you don't stay with Python, at least you're going to have the right principles behind.
50:03 Very cool.
50:05 All right.
50:05 Well, thank you so much, Eric.
50:06 SnapCI is a continuous delivery tool from ThoughtWorks that lets you reliably test and deploy your code through multi-stage pipelines in the cloud without the hassle of managing hardware.
50:33 Automate and visualize your deployments with ease and make pushing to production an effortless item on your to-do list.
50:39 Snap also supports Docker and M-Browser debugging, and they integrate with AWS and Heroku.
50:45 Thanks, SnapCI, for sponsoring this episode by trying them with no obligation for 30 days by going to snap.ci slash talkpython.
50:54 Finally, let's hear from Scott, Brad, and Ike, looking back on their nine-month experience learning and teaching Python.
51:11 Brad, Scott, Ike, welcome back.
51:16 Thanks.
51:17 Thanks.
51:17 Good to be back.
51:18 Yeah, it's great to have you back.
51:19 We've been at this project for a while, right?
51:22 I think we're at eight months over time, right?
51:25 We talked eight months ago about getting started with San Diego learns Python and all that.
51:31 And we've had a chance for you to do – how many sessions did you end up doing?
51:36 I know you took a little break, so it was not quite eight, maybe.
51:39 Yeah, we took a break.
51:40 I think we did six or seven sessions.
51:42 Six or seven sessions once a month.
51:44 That's pretty awesome.
51:45 So you guys got to cover a lot of stuff from the language to Flask to data science.
51:49 And we just heard from the students.
51:51 They had some really cool stuff to say, and I think their perspective, both before and after, is really pretty unique and cool to put it all together at once.
52:00 But looking back, what do you guys think?
52:02 How do you feel like it went?
52:03 I think it went pretty well.
52:06 We've been doing TIG for – I actually just looked at my LinkedIn randomly, and so it'll be six and a half years since we started TIG.
52:12 So we've got a lot of experience with these tracks, and they tend to go multiple months.
52:16 And they all kind of have a natural ebb and a flow.
52:20 So I think when we started in the beginning with Python as a language, we got a lot of interest.
52:23 A lot of people wanted to just know what Python was all about and learn how they could leverage Python and what they're doing.
52:29 And then we shifted gears to Python on the web, and then Python and data science, and those crowds split a little bit.
52:35 The people that were interested in the web came to the web talk, and people that were interested in data science came to the data science talk.
52:40 I mean, data science, I think, was our smallest group.
52:42 But probably for me, it was our most interesting – the most interesting questions came up in that group.
52:47 It was an area that I didn't have a whole lot of background in in the context of Python.
52:52 And we actually had another mentor from the community run that track.
52:56 It wasn't one of the three of us, like it usually is at TIG.
52:59 So it was good to see somebody else get involved with their background in data science and kind of move that group forward.
53:04 And I was able to sit in a crowd and learn for those three months.
53:06 So that was really fun for me.
53:07 Yeah, yeah, that's really cool.
53:09 Someone else?
53:10 Yeah, I mean, I had a similar experience.
53:15 I liked – actually, my favorite part was still the first part, was the language part, just because of the hands-on, I think, you know, the exorcisms that we did.
53:23 I think that was the best part for me.
53:26 But I agree that the data science was the part that I knew the least about.
53:30 It was eye-opening how easy it can be to put in, like, machine learning into day-to-day, you know, coding.
53:36 Some pretty interesting feedback from the students, too, in the data science track.
53:40 You know, just some students around San Diego and who they were working for.
53:44 You know, someone working for big banks, and they were using data science, machine learning, to do kind of fraud detection.
53:50 And they were interested in learning how to leverage Python to do machine learning algorithms and deal with the massive amount of data they have at a big bank to deal fraud detection on, you know, credit card purchases and that sort of thing, which was a really interesting and relevant topic, you know, related to everybody that was there.
54:05 And I think, like Scott mentioned, in the first area, we used exorcism.io, which is a great resource for our students to learn Python.
54:13 It's a really great guided, you know, kind of short lesson-based way to learn a language.
54:18 And they have a lot of languages up there, and we just use the Python piece of that.
54:21 It's not even language.
54:22 It's problem-based, really.
54:23 Yeah.
54:23 Like, here's a problem.
54:25 You know, try and solve it any way you can.
54:26 But what's cool about the exorcism is, you know, once you submit a solution, it's up to the peers to critique that solution and offer you guidance as to how to move it, how to make it more idiomatic or whatever.
54:39 I see.
54:40 So everybody does their answers, and there's kind of like a back and forth on your solution, something like this?
54:45 Yeah.
54:45 Yeah, exactly.
54:46 Yeah.
54:46 So these problems are very simple, you know, like outputting Roman numerals or…
54:53 Repeer, the demification.
54:54 Yeah, yeah, yeah, yeah.
54:55 I mean, that was the very first… Some of them were like kind of towers of Hanoi, like you get from a CS class, just kind of relatively trivial algorithm-based topics that your focus is on how you implement.
55:06 I mean, a lot of them actually were problems I already knew how to solve in other languages or already had solved in other languages but didn't know how to do it in a Pythonic way.
55:15 And so I would post to Exorcism the way I would solve it using my limited knowledge of Python, and then others in the community that were stronger at Python would give me feedback and say, your solution works, but here's the more Pythonic way to do it.
55:28 And they would, you know, make it simpler or use classes or libraries or functions that I didn't know existed in Python.
55:34 So that was really neat.
55:35 Prefer the comprehensions, you know, things like that.
55:38 Right, right.
55:38 What you do is you can form a group, and everyone can be part of your group.
55:44 So we created a little group so we could see each other's solutions and see how they evolved.
55:49 And so, like, it was interesting to watch other developers, like, that I knew.
55:56 Like, I could go to Scott and say, Scott, I saw your solution to that.
55:59 That was amazing.
56:00 Like, I would never have thought to solve it that way.
56:02 And it made me, like, look at mine and see how I could optimize it or make it terse or clear or something like that.
56:12 Yeah, that's really cool.
56:13 And then you guys are kind of doing that on a massive scale with all the students as well, right?
56:17 Yeah.
56:17 Your original question, how the track went, for me, I can't really talk about the rest of the students.
56:22 But for me, I love Python, right?
56:26 Like, I look at it, and there are things about the language that I really, really like.
56:30 And I kind of wish that C-sharp was more like.
56:34 Even the things I hated about it at first, like, I really grew to appreciate why I did that.
56:39 But you know what?
56:41 In the end, it left me with some big questions, like, why did data science adopt this language?
56:46 Like, it's not that easy.
56:48 I mean, it's easy.
56:49 It's pretty.
56:51 But it's not like it is, like, a visual basic or, like, some Delphi or some of the languages that have, like, no barrier to entry, right?
57:00 There are some nuances about it that are powerful and not easy to understand at first.
57:08 I think it's interesting to look at it and study it, you know, to analyze why it became popular in data science in that way.
57:14 And a lot of it, I think, has to do with the really good packages and the tooling, more so than the actual ease of the language, which I think.
57:25 I mean, the language is not hard, but like you said, it's not totally basic.
57:29 Yeah, I think that was one of the things I saw in the data science track.
57:32 The mentor that we had leading it had done his schooling, I think, master's or even a PhD, I think, background in machine learning algorithms and focused on using Python.
57:42 And specifically uses NumPy and Pandas as libraries to do.
57:47 And Scikit-learn.
57:48 And Scikit-learn, yeah.
57:49 He was huge on Scikit-learn.
57:49 And these were just packages that I didn't even know existed.
57:52 And it really came down to about four or five lines of code to load an array of data and then apply some sort of learning algorithm against it.
58:02 SVC.
58:04 I'm forgetting what the name of that thing is.
58:08 But anyway, he was able to do it in like one or two lines because the library did all the heavy lifting for you.
58:12 So I think we see that, you know, us at Crafting Bites here, we see that a lot in other spaces, too, primarily in JavaScript.
58:18 The availability of libraries in JavaScript is immense.
58:22 And that's one of the major reasons why it's, you know, spread to everywhere is because if you need to solve a problem, you can find a library on NPM that's doing it for you.
58:31 Yeah, absolutely.
58:31 I mean, it does make its own set of problems because now you've got to learn all the libraries.
58:34 But that's a good problem to have, right?
58:37 Yeah, for sure.
58:38 So maybe we could talk a little bit about some of the materials that you guys use, like what worked and what didn't.
58:43 Like, so Exorcism sounded like it worked well.
58:45 Yeah, Exorcism.io was a great resource for us for the beginning of our track.
58:51 And I think if we move, if TIG moves on to another new language, like, I don't know, let's say Scala or Ruby or whatever, I think we would probably go back to use Exorcism again as a good intro.
59:04 You know, it sustains us, sustained us for three months.
59:07 I think on learning Python, we were able to get enough content to have some reading and really just have some hands on time for all the students to perform.
59:16 And the great thing was that everyone was solving the same problem.
59:18 So when they came together for the monthly meeting and we compared them, it was all very familiar to them.
59:23 And they were able to see the different ways to solve a problem and said, oh, I didn't realize you could do it that way in Python.
59:28 That's much simpler.
59:29 And then they could revise their own version.
59:30 Yeah, we would open it with like, okay, so here's, you know, a solution.
59:35 Like, maybe we'd pick Brad's and here's another solution, Jim's, Ike's, whatever.
59:39 And then does anybody have a completely different way to solve this problem?
59:42 And then people would say, yeah, you know, my name, you know, my account name is this.
59:47 And we'd go look at that solution and show it and, you know, see a completely different approach.
59:53 And it was amazing how many different approaches there are to the same exact problem.
59:58 Yeah, that's awesome.
59:59 So books also played a pretty big role in what you guys are doing.
01:00:03 Can you talk about, like, what books worked well or didn't?
01:00:05 Yeah.
01:00:07 So in the beginning, we had Dive into Python, which is, what was nice about that one is it's a free online, you know, HTML.
01:00:17 You can get the actual book as well.
01:00:20 The same guy who did Dive into HTML, right?
01:00:24 He, like, rage quit the Internet or something, so I'm not sure.
01:00:27 I don't know what happened there.
01:00:29 I think it's the same guy.
01:00:30 Yeah, I think so.
01:00:31 Yeah, Mark Pilgrim.
01:00:32 Yeah, Mark Pilgrim.
01:00:33 Yeah.
01:00:35 So that was nice that it was completely online.
01:00:38 And then when we went to Flask, we went to – you had him on your show, Michael Sarsford G.
01:00:45 Grinberg.
01:00:46 Yeah, Miguel Grinberg.
01:00:48 And, you know, he also has a lot of PyCon talks and so forth and workshops that are available online that you can basically get his book distilled down to video form,
01:01:00 which I know a lot of the students did rather than reading.
01:01:04 They wanted information to just flow to them.
01:01:06 Yeah, yeah, absolutely.
01:01:07 That's cool.
01:01:08 How about the data science stuff?
01:01:09 So for the data science, we used machine learning in Python.
01:01:13 And that book, I mean, I think it was partially the subject matter.
01:01:18 It was dense.
01:01:20 Yeah.
01:01:21 And students definitely had a harder time reading that one.
01:01:25 Yeah, we've seen that in the past in other tick groups, too, that the density and complexity of the material really affects, you know, students' motivation to read.
01:01:33 So this machine learning is a really hard topic.
01:01:36 It was very foreign to most of the people in the group.
01:01:38 There was only maybe one or two people that were doing any kind of machine learning in their daily job.
01:01:42 So they really didn't understand it.
01:01:44 So there was a lot to go on it.
01:01:46 And the libraries that machine learning in Python used was NumPy.
01:01:52 I wasn't in NumPy almost all of it.
01:01:55 And then instead of scikit-learn or pandas.
01:01:57 And so it was like if you didn't use NumPy, even if you did machine learning, they were teaching you most of the function calls in NumPy.
01:02:05 So it was just it wasn't as effective, we thought, like, you know, a broad approach to the topic.
01:02:10 Well, I mean, what was nice is the first couple of chapters, you know, set up.
01:02:14 And I thought pretty easy to understand language, what machine learning was and how it's useful in the various algorithms that you can apply and why you would apply them, you know, that sort of thing.
01:02:26 So at least it had, you know, some decent, well-written background material.
01:02:31 Again, I think it's just the fact that the topic is complex.
01:02:35 You know, it's like a really it's really hard.
01:02:37 It's an interesting topic, right?
01:02:39 Like I saw I saw a conference talk where the guy introduced big data this way.
01:02:45 And I apologize to your listeners for being vulgar.
01:02:47 But he said that big data is like high school sex.
01:02:51 Everyone thinks everyone else is doing it.
01:02:54 Everyone says they're doing it.
01:02:55 But really, no one is doing it at all.
01:02:57 Yeah, I heard that quote as well.
01:02:59 Machine learning is kind of a similar state right now where every company says they're interested in it.
01:03:04 But when we look at their machine learning projects, it just looks like some basic data analytics to us.
01:03:11 It doesn't they're really not modeling.
01:03:13 They're really not taking in, you know, predictive models and then doing any type of real forecasting.
01:03:18 And when they do do it, they're not creating anything that's really that actionable.
01:03:22 And so there are some companies that are doing it.
01:03:25 Some cutting edge companies are doing it in San Diego for medical diagnostics and and health care related topics.
01:03:34 Some of them are doing it for financial.
01:03:35 Some of them are doing it to try to figure out failure rates of products that they're making.
01:03:40 But it's very rare.
01:03:43 It's not everyone.
01:03:44 Yeah, it's very powerful when they have the right use case.
01:03:47 But yeah, I hear what you're saying.
01:03:49 One company that's doing really interesting machine learning is Netflix is using it to study their thousands of machines to see when one of their services has gone wrong automatically.
01:03:58 Yeah.
01:03:58 And to fix it.
01:03:59 That's pretty amazing.
01:04:00 All right.
01:04:01 So maybe we could wrap it up with you guys telling us what's next for SDTig.
01:04:05 What are you guys doing now in the future?
01:04:07 So we started this past month was our first meeting for a track that we're calling DevOps.
01:04:14 And DevOps is a big nebulous term.
01:04:17 So we're starting with a book on continuous delivery.
01:04:22 It's called Continuous Delivery by Jez Humble and somebody else.
01:04:27 You search Continuous Delivery on Amazon, you'll find it.
01:04:29 And so that's really probably what the track is evolving into.
01:04:32 We're going to focus on continuously delivering software.
01:04:35 And that's going to involve things like continuous integration servers, build servers like Jenkins or TeamCity or something like that.
01:04:41 It's going to involve some discussions about version control systems, automated test approaches, and then configuration and deployment options.
01:04:50 So we're going to talk about Docker, Chef, and Puppet.
01:04:52 We've already talked about it a bit.
01:04:53 Octopus Deploy and these sorts of things.
01:04:55 So it's probably going to be four months, maybe four or five meetings worth of content in DevOps.
01:05:01 And then the really great thing about TIG is before we started Python, we were finishing up a track on Angular.
01:05:07 And on the last day or the last Angular track, we took a vote to see who was, you know, what the most interesting topics were.
01:05:14 And Python and DevOps were the two leading candidates.
01:05:17 So we did Python and then we did DevOps.
01:05:19 And at the end of DevOps, we're going to take another vote.
01:05:20 And so we don't know what we're doing after DevOps, but it will be whatever the community here in San Diego finds to be the most interesting topic next.
01:05:27 We'd like to do after DevOps.
01:05:28 I mean, for me personally, I would like to cover a NoSQL topic.
01:05:32 But the problem with NoSQL is, like, the leader changes too frequently.
01:05:36 Like, if you had asked us a while ago, we would have for sure said Mongo.
01:05:39 Now you kind of have to talk about Cassandra with as far as, like, momentum.
01:05:44 You know, there's a lot of momentum behind Cassandra.
01:05:46 Like, who knows what we would cover?
01:05:48 But it would be nice to do, like, an alternative SQL database.
01:05:52 What would you recommend?
01:05:53 You think Mongo?
01:05:54 I think one part of NoSQL would definitely be the document databases, right?
01:06:00 And of the document databases, Mongo is way more popular than Couch.
01:06:04 It's, like, not even on the same scale as Raven.
01:06:07 Right.
01:06:08 You know, it's, yeah, I would probably recommend Mongo.
01:06:12 But like you said, there's Hadoop, there's Spark, there's Cassandra.
01:06:17 There's, like, so many different types of things that it's quite an interesting question.
01:06:21 So for your DevOps one, just like before, people can come and attend this online through Google Hangouts
01:06:29 or Google Hangouts on air, and then the discussions are online.
01:06:33 So people are listening, and they want to do some DevOps continuous delivery stuff and learn about it.
01:06:38 It's early enough that it probably makes sense to go watch a recorded one and get going.
01:06:42 Is that right?
01:06:42 Yeah, I think so.
01:06:43 I think if you go to sdtig.com, it'll redirect you to our meetup group.
01:06:47 And there's a discussion board going, and you can see what the previous month's, this past month's meeting was.
01:06:53 And that's, there's an intro that we recorded on YouTube.
01:06:57 It's about 25 minutes long where we introduced the topic and the first set of reading.
01:07:00 And then we recorded, we recorded and live streamed the meeting.
01:07:03 So this month's meeting is there.
01:07:04 It's about, like, two hours, two and a half hours.
01:07:07 So you can catch up with where we were at.
01:07:09 And then, yeah, we'll be through chat, basically read through chapter four of the book by next month, and you'll be good to go.
01:07:14 All right.
01:07:15 Well, you guys, this was really fun to do this unusual podcast journey across your whole project.
01:07:20 Thanks for letting me be part of it.
01:07:22 Yeah, thank you.
01:07:22 It was really fun.
01:07:23 Yep.
01:07:24 Yep.
01:07:24 See y'all later.
01:07:24 Hey, thanks.
01:07:27 This has been another episode of Talk Python to Me.
01:07:30 This episode's guests have been Scott Reed, Brad Cunningham, and Ike Ellis, as well as Jim and Eric.
01:07:36 And this episode has been sponsored by Hired and SnapCI.
01:07:39 Thank you both for supporting the show.
01:07:41 Hired wants to help you find your next big thing.
01:07:44 Visit Hired.com slash Talk Python to Me to get five or more offers with salary and equity presented right up front and a special listener signing bonus of $2,000.
01:07:53 SnapCI is modern, continuous integration and delivery.
01:07:57 Build, test, and deploy your code directly from GitHub, all in your browser with debugging, Docker, and parallels included.
01:08:03 Try them for free at snap.ci slash Talk Python.
01:08:06 Are you or a colleague trying to learn Python?
01:08:08 Have you tried books and videos that left you bored by just covering topics point by point?
01:08:13 Well, check out my online course, Python Jumpstart by Building 10 Apps at talkpython.fm/course to experience a more engaging way to learn Python.
01:08:21 You can find the links from this episode at talkpython.fm/episodes slash show slash 62.
01:08:27 Be sure to subscribe to the show.
01:08:29 Open your favorite podcatcher and search for Python.
01:08:32 We should be right at the top.
01:08:33 You can also find the iTunes feed at /itunes, Google Play feed at /play, and direct RSS feed at /rss on talkpython.fm.
01:08:42 Our theme music is Developers, Developers, Developers by Corey Smith, who goes by Smix.
01:08:47 You can hear the entire song at talkpython.fm/music.
01:08:51 This is your host, Michael Kennedy.
01:08:53 Thanks so much for listening.
01:08:54 I really appreciate it.
01:08:55 Smix, let's get out of here.
01:08:58 Stating with my voice, there's no norm that I can feel within.
01:09:01 Haven't been sleeping, I've been using lots of rest.
01:09:04 I'll pass the mic back to who rocked it best.
01:09:07 Developers, Developers, Developers, Developers, Developers, Developers, Developers, Developers,
01:09:19 Thank you.