#444: The Young Coder's Blueprint to Success Transcript
00:00 Are you early in your software dev or data science career?
00:02 Maybe it hasn't even really started yet and you're still in school.
00:05 On this episode, we have Sydney Runkle, who has had a ton of success in the Python space
00:10 and she hasn't even graduated college yet.
00:12 We sit down to talk to her about what she's done and might do differently again to achieve
00:17 that success.
00:18 It's the Young Coders Blueprint to Success on episode 443 of Talk Python to Me.
00:24 This episode was recorded November 8th, 2023.
00:27 Welcome to Talk Python to Me, a weekly podcast on Python.
00:45 This is your host, Michael Kennedy.
00:46 Follow me on Mastodon, where I'm @mkennedy and follow the podcast using @talkpython,
00:51 both on fosstodon.org.
00:54 Keep up with the show and listen to over seven years of past episodes at talkpython.fm.
00:59 We've started streaming most of our episodes live on YouTube.
01:03 Subscribe to our YouTube channel over at talkpython.fm/youtube to get notified about upcoming
01:08 shows and be part of that episode.
01:12 This episode is sponsored by us over at Talk Python Training.
01:16 Did you know that we have over 250 hours of Python courses?
01:20 Yeah, that's right.
01:22 Check them out at talkpython.fm/courses.
01:24 Sydney, welcome to Talk Python to Me.
01:28 It's awesome to have you here.
01:29 Thanks.
01:29 I'm excited to be here.
01:30 Yeah, it's really cool to have you here.
01:32 Lovely to have somebody who has a brand new experience in the whole software industry.
01:37 And you've certainly found a lot of early success.
01:40 So that's great.
01:42 And you're here to share it with everyone.
01:43 So happy to have you here.
01:44 Yeah, I'm super excited to talk about it.
01:46 Yeah.
01:46 So, you know, we're going to talk about your experience.
01:49 You're working on some pretty awesome projects.
01:51 And as we were just talking before we hit record, you're still in college, still finishing up
01:56 your last year of college at Madison, which is excellent.
01:59 So I think you'll be an inspiration and, you know, provide a lot of good tips for people
02:04 who are just getting into the software industry.
02:06 All right.
02:07 Well, before we get to that, though, tell people a quick bit about yourself.
02:10 Who are you?
02:10 Yeah, sure.
02:11 So my name is Sydney, obviously.
02:13 I'm currently a senior at the University of Wisconsin-Madison.
02:16 I'm studying computer science.
02:18 I actually started off in both engineering and computer science, but decided that I loved computer
02:23 science enough that I just wanted to focus on that.
02:25 Yeah.
02:25 Why'd you switch?
02:26 What engineering discipline were you in?
02:27 I was in electrical engineering, so there was a decent amount of crossover between the two.
02:32 But I was just finding that I really liked my more advanced CS classes more than the advanced
02:36 engineering classes.
02:37 Way long ago, I think the way you kind of got a computer science degree is you did an engineering,
02:43 an electrical engineering degree.
02:44 And you're like, oh, that has to do with electrons and circuitry.
02:47 And that's computers, isn't it?
02:48 So the same thing, right?
02:49 Now it's way more focused, right?
02:51 Like the software side of education, isn't it?
02:53 Yeah, definitely.
02:54 And the nice thing is we still have some cross-listed classes.
02:56 So I still get to kind of dip my toes in both sides.
02:58 Yeah, excellent.
02:59 Yeah.
03:00 So I grew up in North Carolina originally in Chapel Hill.
03:03 Really loved it, but for some reason decided to move up to where it's quite cold.
03:07 And yeah, I've really enjoyed my time at Madison thus far.
03:11 I think it's a great place to learn about CS.
03:13 Well, I have some really good friends who were there for grad school at Madison and just loved it.
03:19 But I'm sure as we come into November that perhaps the weather's a little different than North Carolina,
03:25 which is, you know, sometimes it gets chilly.
03:27 Yeah.
03:28 I'm getting some new like nice winter experiences, you know?
03:31 Yes, of course.
03:32 Of course.
03:32 Cool.
03:33 Well, let's set the stage a little bit by talking about what you're doing so people get a sense, right?
03:40 Like obviously Madison, for those who don't know, is a super highly respected school.
03:46 So it's a pretty top tier computer science department there.
03:49 That alone is pretty awesome.
03:50 The fact you're about to graduate, it's pretty awesome.
03:52 But you're also working on some cool open source slash funded, I guess.
03:57 I don't know what the term for that is, like backed open source, but working with Pydantic.
04:02 So yeah, talk a bit about what you're doing these days.
04:06 Yeah.
04:06 So I'm currently working part time at Pydantic.
04:09 I know you've had Samuel and some others on the team on the show before,
04:13 but I reached out to Samuel kind of later in the summer, actually, after I heard him talk on your podcast at PyCon
04:19 and asked if they were interested in having an intern, you know, help with some of the open source work.
04:23 Because obviously they're delving into new commercial things now and Samuel got back to me.
04:28 And so now I'm primarily working on open source there.
04:31 I help with incoming issues and new feature requests, etc.
04:35 We're currently working on the version 2.5 release, which has lots of new features and fixes, which is great.
04:41 And it has certainly been the job where I've learned the most the fastest.
04:44 I think being surrounded by other developers who have tons of open source experience makes such a collaborative and fast moving team.
04:52 And so I've really enjoyed being able to learn so much and, you know, dive into this really well thought out and well developed code base and kind of go from there.
04:59 That's awesome.
05:00 Yeah.
05:00 Samuel is a great guy.
05:01 The Pydantic project.
05:04 It's really taken the world by storm, wouldn't you say?
05:06 Yeah, absolutely.
05:07 Number of downloads per month, I think.
05:09 Recently we hit over a million downloads per month.
05:12 It's quite impressive and, you know, crazy given that it only started a couple of years ago.
05:16 I think that I saw, I can't remember, was it an ex-Twitter post or was it a Mastodon post?
05:22 That Samuel had put up there that Pydantic had been, at this point, downloaded over a billion times, which is kind of unimaginable.
05:31 Yeah.
05:31 It's quite crazy.
05:32 I haven't taken a math class super recently, but I know that it's quite a large number, so.
05:36 That's right.
05:38 It's definitely, definitely large.
05:39 A lot of zeros.
05:40 So I pulled up the GitHub page here for Pydantic, and it says the project is used by 270,000 other GitHub projects.
05:48 Yeah.
05:48 It's definitely quite ingrained in a lot of projects.
05:52 Obviously, also used to support a lot of other popular open source projects, like the one that comes to mind immediately is FastAPI, which obviously many of the podcast listeners also know about.
06:02 But it's exciting that it's able to serve as such a consistent foundational block for so many other libraries.
06:08 Yeah, it really is.
06:09 The podcast website's based on Beanie, which is, you know, MongoDB plus Pydantic.
06:15 And I was literally just working on some FastAPI code.
06:18 I'm like, oh, I got to put this away.
06:20 Got to do the podcast with Sydney.
06:21 So yeah, it's definitely, definitely something that's pretty wild.
06:24 I don't know about how you feel about this, but does it make you a little bit nervous to work on a project that affects so many people?
06:32 Yeah, that's a good question.
06:33 I think starting off, I thought I would feel a bit more nervous.
06:36 But once I kind of got into the swing of things, I think we have a really great code review system there.
06:41 So, you know, I feel supported, even though if I'm, you know, making changes that seem kind of new or different to me, I feel like we have a great team.
06:47 And not only just the team at Pydantic, but obviously other open source contributors that can get feedback, etc.
06:53 And it's nice to be able to rely on them for feedback before, obviously, we release two.
06:57 Yeah, absolutely.
06:58 Yeah, they're right below the number.
07:00 The used by count is the contributors.
07:02 And there's 447, at least directly to Pydantic.
07:05 And I don't know the Pydantic one.
07:08 Maybe there's a Pydantic core that's a separate repo these days.
07:12 There used to be one thing, but then the whole VTube was about splitting that up, right?
07:15 Yep.
07:16 Yeah, exactly.
07:16 So we have a core written in Rust that handles a lot of the validation and serialization logic now.
07:21 Yeah, yeah, very cool.
07:22 So you're about to graduate.
07:24 You talked about jumping into this project and learning so much.
07:29 I had a really similar experience when I was in grad school.
07:32 I was studying math, but then I got to work on some actual software projects.
07:36 And they were desktop apps.
07:38 Can you believe it back then?
07:39 Really, really fun projects, though.
07:41 And I had the same experience.
07:43 Like, wow, I've learned so much here.
07:44 And, you know, I did less computer science in college because I studied math and computer science minor.
07:49 But still, my interactions with my computer science side of those courses, I felt there were a little bit – I mean, I guess you should be this way.
07:59 They felt a little academic being at the university.
08:02 And a little bit not entirely in touch with, like, what's the latest way of writing code?
08:08 What's the latest technologies?
08:09 What's the latest open source?
08:10 Or what's the latest tools?
08:12 You know, it's been a long time, let's say.
08:15 A couple years since that was – since I did that in the, you know, mid-90s.
08:18 Yeah.
08:19 You totally changed.
08:20 What's your experience?
08:21 Is it similar?
08:21 Yeah.
08:22 How has this new project kind of gave you a lot of exposure?
08:24 Yeah.
08:24 I would say my experience has been quite similar kind of with the juxtaposition of standards in my computer science classes and more academic applications of computer science versus in my various internships.
08:36 I think that's been one of the most valuable things about seeking out, you know, diverse opportunities outside of class is really being able to get experience with, you know, like version control systems and continuous deployment systems.
08:48 And how do I work on a code review?
08:50 How do I, you know, interpret a code review?
08:52 Things like that.
08:52 And then beyond that, just modern coding standards and current libraries, et cetera.
08:57 So I definitely do think there is a gap, but I do think there's still a lot of value in, you know, some of the fundamental concepts that are, you know, language agnostic or just, you know, easier to learn in a classroom and aren't quite as dependent on, like, code quality and production quality, et cetera.
09:11 But I think it's also really important to get the experience outside of class that gives a lot more feedback as to like, is this good code?
09:18 Is this bad code?
09:18 Et cetera.
09:19 Because that's certainly not something that's really emphasized in class.
09:22 Even if they try, I think one thing that's super hard to simulate is working on a team where stuff is used by other people and there are consequences.
09:31 You know, it's one thing to say, well, we're going to pretend to do a PR and how'd that go for you?
09:35 Yeah.
09:36 It's another to say, we're going to take down 270,000 projects if we get this wrong.
09:39 So the continuous integration should probably be working, right?
09:43 Yep.
09:43 Definitely.
09:44 What languages has your courses mostly been in?
09:48 So our kind of foundational computer science courses, you know, learning about data structures, et cetera, are in Java.
09:55 There are a couple of kind of like on-ramp courses that you can take in Python if you've never really learned code before.
10:01 Obviously, that's a little bit easier to get started with.
10:03 And then I've taken some courses in C as well that are architecture related, et cetera.
10:07 And now that I'm kind of past the intro, past the computer architecture and into the elective focus classes, we've kind of pivoted back to Python.
10:15 I think part of that is I'm taking a lot of more data science, machine learning focus classes.
10:19 And so obviously Python's a pretty convenient language to write up those things.
10:23 That's pretty much the de facto on there for sure.
10:26 Yeah.
10:27 When I took the couple of computer science classes that I did or programming classes, it was a little bit out of sync with what I was wanting to do.
10:35 So when I was, I also started out in engineering.
10:37 I'm like, maybe I'll switch to something else.
10:39 But before I did, they said, well, you're going to need to take a programming class.
10:43 I'm like, oh, that sounds awesome.
10:44 They're like, yeah, we got to have Fortran 77 class.
10:46 I'm like, are you serious?
10:47 This is the most important class you're ever going to take.
10:50 Don't skip on it.
10:51 I'm like, maybe I'm not so sure about that.
10:53 Then I said, then I wanted to take another course.
10:57 I'm like, maybe I'll take a C++ course.
10:59 They're like, great.
11:00 But first you got to take a Lisp course.
11:01 I'm like, really?
11:03 Can I just like take something that modern software is built with, please?
11:07 Nope, nope, nope.
11:09 But yeah, yeah, very fun.
11:10 Quite the journey though, it sounds like.
11:13 Knowing Java is a good skill.
11:14 It's kind of a different paradigm for how code executes.
11:17 It's the same for C, right?
11:18 Yep.
11:19 Yeah, I definitely think it was helpful.
11:20 I think at the time in class, I was like, man, I really love Python.
11:23 You know, why can't we be writing Python?
11:24 But definitely great to get exposure to different languages.
11:27 And I think it helps to better understand general patterns in programming, et cetera, if
11:33 you have to implement that and see the different implementations in different languages.
11:36 Yeah, for sure.
11:37 Python with its types is getting a little bit more like Java, but hopefully not too
11:42 much like Java.
11:43 So, excellent.
11:44 All right.
11:45 So, you mentioned that you're doing a lot of Java.
11:47 Quick audience question out there.
11:49 Arjun says, I'm an IT professional.
11:51 I've not had any experience in any coding.
11:55 What's the best way to start with Python?
11:56 I initially, a few years ago, started learning Java, but kind of lost interest.
12:01 What are your thoughts?
12:01 That's a great question.
12:02 Honestly, I started by reading a how to write Python book and kind of pivoted from that
12:09 to online courses.
12:10 I think my number one recommendation would be online courses.
12:13 I know you guys at Talk Python have some awesome online courses that people can take.
12:17 And before, I think in like middle school and high school, I took some courses through edX
12:22 and Udemy.
12:23 And I think that's a great way to get started because you can kind of have the balance of
12:27 I'm writing code.
12:28 I'm seeing other people write code.
12:29 You know, often there's like auto graded questions involved.
12:33 And the nice thing about an online course is that it's asynchronous, right?
12:35 So you can do things when it fits into your own time.
12:38 And another nice thing is that there's a pretty large community of people online who love to
12:42 write Python and are getting started writing Python.
12:44 And so I think there's also a lot of support there, which is great.
12:47 Yeah, there's definitely more resources now than there ever have been, right?
12:51 Yeah.
12:51 Yeah.
12:52 I agree with online courses.
12:53 I really, really like the focus.
12:56 You know, when I started doing online courses that we have, one of the things I wanted to
13:00 do is try to go like, how do people who might otherwise take a semester long course at say
13:05 a community college?
13:06 Because if you're in a full on university, you probably have a program you're following.
13:09 But if you're just like, I'm just going to take a course.
13:11 Yeah.
13:11 How do you take that and change that from 16 weeks to five hours, you know, and still get
13:16 something meaningful out of it?
13:17 Since this is kind of focused at young people and not, we're talking like, you know, 20s type
13:24 of young person, but just, you know, if people come along like, but what about my middle school
13:30 or something?
13:31 Are you familiar with this project, Code Combat?
13:35 Have you seen this?
13:35 Yeah.
13:36 Yeah.
13:36 I used it in middle school.
13:37 Did you?
13:38 Amazing.
13:39 What a cool way to write code.
13:41 Tell people what it is.
13:42 What are your thoughts since you actually used it?
13:44 There are a lot of sites like this that basically allow you to write code with, you know, some
13:48 pretty significant guidance and support to, you know, move along characters and games and help
13:53 in this case, like fight other characters with your code.
13:56 And, you know, I can think of other examples.
13:58 Like I worked on a like robot program where I was helping a robot Carol, like, you know,
14:02 walk around a maze and things like that.
14:03 And so I think websites like Code Combat or Codecademy or even Code.org have a lot of really
14:09 great opportunities, especially geared towards younger people who might need help writing code
14:14 for the first time.
14:15 It can't like just jump right into the deep end with one of the more complex courses on like
14:19 Udemy, for example, offers a lot of more like collegiate level things.
14:23 But I think these sites are particularly great and entertaining.
14:25 You know, it makes you feel like you're playing a game, but you're also learning in the background,
14:28 which is great.
14:29 Yeah, this is such a neat game.
14:31 They've got these different worlds or whatever, and they each have maybe this one here, Cloud
14:36 Drip Mountain has 110 programming puzzles.
14:38 And the reason I really when people ask sometimes I recommend this one is a lot of these things
14:44 that are like for really true younger people are really just true beginners.
14:49 They hide so much of the code.
14:50 They're like, well, if we could just teach the concept of loops, you know, and then you
14:53 just drag a circle around this thing and then you click this block in.
14:56 You know, I think that still is a pretty big gap.
14:59 But this is you write real Python with an editor, but the little editor is like the world's most
15:04 aggressive autocomplete you've ever seen.
15:06 Right.
15:06 You type the letter E, H, you know, like hero dot attack.
15:09 And like, what should you type in here?
15:11 You know, it's like, whoa, OK.
15:12 But yeah, I think this is this is really awesome for young, young people.
15:17 But, you know, I think even maybe older people might just if they want to kind of play an
15:21 online game.
15:21 Right.
15:21 If you're sitting around, you're like, oh, maybe I'll play Candy Crush or something like
15:25 I'd rather play Code Combat than that, you know?
15:27 Yeah.
15:27 It's definitely great to have the additional engagement there.
15:30 And, you know, if it's just like write this for loop to do whatever that's not even close
15:34 to as engaging as like, you know, the enemy or things like that.
15:37 Yeah, exactly.
15:38 Exactly.
15:39 Cool.
15:39 So there's a whole spectrum of online resources there.
15:42 All right.
15:43 How about we jump into some of the tips, some of the things as well?
15:46 Oh, before we do one thing, I think you kind of hinted at that with your answer here, your
15:51 response there.
15:51 How much programming experience did you have when you got to Madison?
15:55 Because I think one of the challenges is while maybe the principle of computer science is
16:01 you could show up with zero coding experience and they're like, this is a keyboard.
16:05 Awesome.
16:05 And we're going to start with that.
16:07 A lot of people don't.
16:08 And so you might be sitting next to somebody like, oh, we're both working on their project.
16:11 How are you done?
16:12 Like, well, I've been coding for, you know, however long, right?
16:15 What was your experience going in?
16:17 Yeah, I would say for a college freshman that I did have quite a bit of experience.
16:22 I had, you know, done all these code combat-esque things in middle school.
16:27 And then I was lucky enough that my high school offered some coding classes, even at the AP
16:31 level, so more advanced courses.
16:33 So I'd taken those.
16:34 And then especially-
16:35 Probably more Java, right?
16:36 That's what AP seems to be a lot of.
16:38 I actually took one in Python, but I think that there was definitely another one in Java.
16:42 And then, especially during the pandemic, I did start to get about antsy.
16:47 And I was like, man, I really want to be, you know, working and applying this.
16:50 So I started having computer science internships in high school.
16:53 So I think definitely coming in, I was a bit more prepared for some of the classes, especially
16:58 my first Java class.
16:59 I'd never written Java before, but I at least understood, you know, some of the paradigms that
17:02 were helpful.
17:03 And I do think it's helpful to come in with some experience because like you said, if you come
17:07 in with none, it's a little bit hard to just jump into a college level course.
17:11 Yeah, for sure.
17:11 You can do it.
17:12 Not saying you can't do it.
17:13 But I guess the thing is, you know, if you look around the class, you're like, there's
17:17 some people that are really good at this.
17:18 Like maybe that probably is true, but it also could be that there's some people that have
17:22 a lot of experience and you're brand new.
17:23 And we all know that the first bit of code that you write is always a bit of a got to
17:28 get your mind into it sort of thing.
17:29 Yeah, definitely.
17:30 And I think the good news is, too, you know, if you take one quick course, like even introduce
17:34 yourself for five to 10 hours, like that's going to be a really big benefit.
17:38 So it doesn't take a ton of work to just get over that initial, you know, learning curve.
17:42 Yeah, that's a super good point.
17:44 I remember when I was learning C++, I was so psyched that I got it to compile.
17:48 And then I learned about runtime bugs and how much harder they are.
17:51 I'm like, oh, this is worse.
17:53 This is way worse.
17:54 All right.
17:54 So all right.
17:55 Let's jump into the tips.
17:56 So tip number one, you have work on open source contributions.
18:00 Tell us about this.
18:02 I can't say that during my first couple of years of programming experience that I did
18:06 this.
18:06 It was really only more recently as like this past summer.
18:09 But I think, you know, getting involved in the open source community can be really beneficial,
18:14 especially in terms of like seeing other well-written code and, you know, standards in the industry.
18:18 And I think, you know, another thing I want to mention here is that like open source contributions
18:22 seem a little bit intimidating at first, right?
18:24 It's like, oh, my gosh, here's this huge project that has been worked on for years.
18:28 I don't know where to start.
18:29 But like even minor documentation updates are super helpful.
18:33 You know, we're just writing an example in the docs or writing an extra test, things like
18:36 that.
18:37 And so I think even just those little like micro contributions can really help you get involved
18:42 in that community.
18:42 And then also just learning more about the tools you're using day to day anyways.
18:46 Yeah, absolutely.
18:47 And many projects are very welcoming.
18:50 People who want to raise their hand to get involved, right?
18:53 Absolutely.
18:54 I mean, you know, filtering on the good first issue tag is always a good way to start.
18:58 We're trying to, you know, mark more and more of those at Pydantic just because there are
19:02 certainly a lot of people that want to help.
19:03 And we more than welcome their assistance.
19:05 It's really great to see, you know, first time contributors popping up every day.
19:08 So for people who maybe are listening and they're thinking about just getting into this, right?
19:14 But I'm labeled good first issue, right?
19:16 So if you go to the issues, you can actually see which things have been labeled as, look, you
19:21 don't need to understand a whole bunch about this system to get started.
19:24 So that's a really good way to kind of see what's already out there.
19:28 Because I think you might look at a project, I want to help, but how?
19:31 Like, what do they need help with?
19:32 Like, well, here's a whole list of small steps that people, somebody could raise their hand
19:37 and help with, right?
19:37 Exactly.
19:38 Yeah.
19:38 It's a great, when you have this huge project, it's like, oh no, where do I even start?
19:41 And then searching by that tag is a great way to just jump in and filter, especially,
19:45 you know, on large projects, like we currently have about 400 issues, right?
19:48 So it's nice to have that filter there.
19:50 Honestly, I'm pretty impressed that there's only 400 issues.
19:53 Yeah.
19:54 You know?
19:54 Trying to keep it clean, we'll see.
19:56 It's not easy, is it?
19:58 Definitely a lot coming in, a lot coming in after every release, but it's great to, you know,
20:02 see so many people engaging and interested in new features and helping report and fix bugs,
20:07 you know?
20:07 Yeah.
20:07 Yeah.
20:08 And I'm looking here and one of these, just open once, but it's numbered 8,058.
20:12 So, you know, that's a whole bunch of closed or deleted, ignored issues, but somebody had
20:19 to deal with them along the way, yeah?
20:20 Yeah, certainly.
20:21 And I think another great thing about working on open source contributions, especially if
20:25 you don't have a ton of experience with software development, you know, maybe you're a student
20:29 and you've worked a lot with computer science concepts, is it's a great way to practice your
20:33 version control skills, right?
20:35 Like you're going to need to make commits, you're going to need to submit a pull request and get
20:39 that reviewed and iterate with other developers.
20:41 And so it's an awesome way to just pick a project and develop those skills kind of in
20:45 parallel with your actual coding skills as well.
20:48 Yeah, absolutely.
20:49 And also get a sense of what does releasing and testing software feel like, because probably
20:53 got a PR, then the PR has got to run some continuous integration.
20:57 And then, you know, which branch does it go into?
21:00 All those sort of things that we were talking about before that make it hard to simulate in
21:06 school, like you throw it in the somewhat deep end, but you know, it's good, good learning.
21:10 Yep, definitely.
21:11 And there's a lot of documentation to help with.
21:13 How do I make my first commit?
21:14 How do I pull this code down, etc., which is good.
21:16 Yeah.
21:16 I also think the tutorials and the documentation side could be really helpful.
21:20 I was working on some project and it had documentation for the, you know, whatever
21:26 property function, whatever it was that I was working with.
21:28 So kind of enumeration.
21:30 And it was like split segments.
21:32 And then you look at it, the documentation says, this setting this to true will split the
21:37 segments.
21:37 Like, okay, what does it base the splitting on?
21:41 Like, what does this even do?
21:43 Like, okay, I understand they will be split, but I would need to be more precise.
21:46 Right.
21:47 And like, just if you look at it, it kind of has just the name turned into a sentence.
21:51 Like, you know, that thing is ripe for getting a little bit of extra detail, I would say.
21:56 Yeah, definitely.
21:56 You know, if you're confused, I'm sure someone else is confused and always great to at least,
22:01 you know, report or help fix that, etc.
22:02 Yeah.
22:03 The other thing I like about your first tip here is you make connections in the industry
22:09 pretty quickly, right?
22:10 Like, jumping into Pydanic, you get to know Samuel Colvin, who's connected to all these other
22:15 people.
22:15 And you probably work with Sebastian Ramirez from FastAPI because those two projects work
22:19 closely together, right?
22:20 And all of a sudden, people are like, oh, yeah, that guy's amazing.
22:23 I wish I could meet him, right?
22:24 You know, you're working, you know, virtually side by side, right?
22:27 Yeah, it's really great and, you know, awesome to have such a community that's focused on like
22:32 helping other projects.
22:33 And obviously, it's just, you know, general improvement of projects for public use, which
22:36 is a really great motive.
22:38 And as you mentioned, like any contribution that you're going to make is going to get you
22:41 noticed and help you make connections, which is great when you're, for example, a student
22:45 like me looking to, you know, like make connections in the computer science and software community
22:50 and maybe look for jobs eventually, etc.
22:52 Yeah, absolutely.
22:53 And if people show up, you know, you go to a job interview and there's 10, 20 applicants
22:58 and they're like, okay, look, we work with FastAPI.
23:01 Have you, are you familiar with it?
23:02 Somebody says, no, I think I've heard of it.
23:05 Is that, is that a Python framework?
23:06 Yes, it's a Python framework.
23:07 Okay.
23:08 Then the next person is like, yeah, I've written a little demo app with it.
23:11 And then, you know, you show up and you're like, yeah, I actually contributed and added
23:15 this feature that I hired.
23:16 You know what I mean?
23:17 You know, a lot of people focus on what is your kind of GitHub profile look like?
23:22 What kind of projects do you have, etc.
23:23 And, you know, if you're like, man, I don't have the time to develop all these awesome projects
23:28 on my own, but you know how I can boost my profiles, just work on other people's, other
23:32 people's projects, help out, etc.
23:33 Right.
23:34 And then, you know, someday you'll probably come up with something that catches on and you'll
23:37 have your own project.
23:38 But, you know, when you're really new, it's kind of hard to, those things are not easy to
23:43 make a popular project in the first place.
23:45 And so you can really jumpstart that whole process.
23:48 Yep, definitely.
23:49 All right.
23:49 Related to this, and you kind of hinted that it is the next tip is reading other people's
23:53 code.
23:53 Yeah.
23:54 As we discussed at the beginning of the podcast, sometimes the code that you might write in class,
23:59 you perhaps are a little bit more focused on, you know, getting it to work than how clean
24:02 is this?
24:03 How maintainable is this?
24:04 How well would it work with other systems?
24:06 So I think reading other people's code, especially often through, you know, open source contributions
24:11 can be really beneficial in just helping you understand what are the industry norms?
24:15 How can I improve my own code so that I'm, you know, matching these?
24:19 And another great kind of tie in with the open source contributions is if I write some code
24:24 to fix a bug and then get reviews from the, you know, maintainers of a repository, like I'm
24:29 getting immediate feedback about like, how am I doing in my, you know, patterns that I'm using
24:33 and the ways that I'm refactoring things, et cetera.
24:35 And I think that's one of the best ways to learn the most quickly is, you know, you already
24:40 had to come up with a solution to implement this fix yourself, but then let me collaborate
24:44 with other people who are really experienced in this field to get a better idea of what
24:48 I, how I should be solving problems like this.
24:50 Sure.
24:51 And when you learn through a tutorial or online course, or even a college course, there's
24:57 really different kind of expectations about how the code runs.
25:00 A lot of times it's like, oh, okay.
25:02 So if I type this in and I do this loop and I do this thing, then it'll work.
25:05 But what about the error handling?
25:07 What about the robustness, right?
25:09 Like those things are my experience when I was working with interns more quite a while
25:15 ago, but it was like, we'd have a project project would be going along great.
25:19 And they'd write awesome code, but I'd say, okay, see where you're supposed to put that
25:22 number, type the word seven in there and see what happens, you know?
25:25 And then poof, the program dies.
25:27 You're like, okay, we still got a little more work to do.
25:29 Like, how about an error message?
25:31 Like this has to be a number rather than just killing the program.
25:34 Those kinds of things you learn by working on like real projects, like open source ones,
25:40 I think.
25:40 Also, you know, you get to better understand for a given language.
25:44 Obviously, I'm most familiar with Python.
25:45 Like, where should I be writing documentation for my code?
25:48 You know, where should I be putting my examples?
25:50 Where should I put my tests?
25:51 And things like that, you don't necessarily have to think about if you're just writing a
25:55 script, you know, for a class or, you know, online or in person, whatever that might
25:58 be.
25:58 Talk Python to me is partially supported by our training courses.
26:03 When you need to learn something new, whether it's foundational Python or advanced topics
26:08 like async, web apps, FastAPI, and more, be sure to check out our over 250 hours of courses
26:16 over at Talk Python.
26:18 And if your company is evaluating how they'll get up to speed on Python, please consider giving
26:23 our content a look.
26:25 Check it all out at talkpython.fm/courses.
26:29 William out there says, when wanting to contribute to a project, I tend to fall down the try to
26:36 understand everything rabbit hole.
26:37 Any tips on balancing contributing and learning by reading code?
26:41 Yeah, that's a great question.
26:42 I definitely fell down that rabbit hole myself.
26:44 You know, I'm like, okay, I'm going to fix this one line in this function.
26:47 And then I'm like, oh, I just read 500 lines of code in the spot.
26:50 I think a good thing is to focus specifically on like one issue, right?
26:54 Like find one bug or one fix that needs to be made and just kind of constrain yourself
26:59 to like, let me fix this one thing.
27:01 And then if you're like, oh, I have extra time, then go ahead and read the rest.
27:04 But I think obviously, to your point, like you do have to contextualize some to be able
27:08 to understand an issue or a bug better.
27:10 But I suppose the nice thing is the more you read, the better.
27:13 It ends up being the long term.
27:15 Yeah.
27:15 Person, I kind of feel like try to understand programs and stuff like vertical slideshow.
27:20 through like all the tiers and parts of it.
27:22 Like how much of this database bit do I need to understand to make this part work?
27:26 I don't want to try to understand all the stored procedures and this weird optimization.
27:30 I just need to know, how do I get this thing so that I can do this feature?
27:33 And you kind of slowly explore your way through.
27:36 But, you know, you can sort of do those things more quickly than trying to like, okay, first,
27:41 we're going to read everything.
27:42 Right.
27:42 Give me a week.
27:43 Yeah.
27:43 And I think another thing that helps sometimes that helps keep me focused is, okay, let me,
27:48 you know, create something that's going to reproduce this problem.
27:50 And then let me step through a debugger so that I'm at least letting myself know where
27:55 like this data, you know, is coming from or where this problem is coming from.
27:58 But I don't necessarily have to understand like every function that things move through
28:02 or every class.
28:03 But I'm at least like getting that kind of higher level understanding of like, where the
28:06 heck is this thing coming from?
28:08 And then I can really focus more on, you know, where is the issue that needs to be fixed?
28:12 And let me really take a look at those couple of lines of code.
28:14 Another thing you get from reading other people's code is an appreciation of style, right?
28:19 Like formatting and polish and presentation, because a lot of good code, and a lot of times
28:25 this is open source code, is written to be read more than it's meant to be written, right?
28:30 Definitely.
28:30 We like our automatic formatters a lot at Pydantic.
28:34 So we just implemented the new Ruff formatter, which is written in Rust super fast and adheres
28:40 to I think it's like 99.9% compatible with black, which is great.
28:44 And then before that, we were using black for everything.
28:47 So another benefit of those contributions is getting used to using code formatters, you
28:52 know, once you're done writing your code.
28:53 And now I find myself, you know, just creating an environment and using code formatters for
28:57 my academic code anyways, because I can't stand the look of it if it doesn't, you know, match.
29:02 Yeah.
29:02 The professors must love you.
29:04 They're like, oh, this is so nice.
29:06 I can read it compared to like whatever.
29:08 So this other one that got submitted.
29:10 Yeah.
29:11 I switched over to using rough for all of my projects as well and ran rough against like
29:17 tens of thousands of lines of Python and Ruff format.
29:20 And it was like, you hit enter and it's just done.
29:22 It's like reformatted, you know, 392 Python files.
29:26 And like, did it really do it that quick?
29:28 Yes.
29:28 Sebastian was quoted as saying like, you know, sometimes I purposely introduce little
29:33 bugs or, you know, well formatted things in my code just to make sure it's working.
29:36 And it is, but I just wanted to make sure because it's so darn fast.
29:39 Yeah, that's awesome.
29:40 I integrated it into PyCharm and there's a way now with the plugin to say when you do reformat
29:46 code in PyCharm just run Ruff format, which is really cool.
29:50 And so now you just, you know, hit the keystroke to reformat and it's just, you go, and you're
29:53 like, okay.
29:53 And so it's all good to go.
29:55 Very nice.
29:55 Awesome.
29:55 I know what I'll be doing after this call then.
29:57 Alyssa says, I'm a TA for a college intro Python course.
30:01 What advice would you have for students getting into Python for the first time in college level?
30:06 You know, what to focus their time on and so on.
30:08 Yeah, that's a great question.
30:09 And I think kind of the fundamental data structures can be really helpful to focus on at first
30:14 and kind of fundamental concepts to programming like for loops, while loops, functions, classes,
30:18 et cetera.
30:19 And one nice thing about Python is that, you know, it's relatively easy to read code that's
30:25 written with those structures, right?
30:26 Like it's a little bit more intuitive than other languages like C, for example.
30:29 And so I think getting started with those basics is nice in Python because if you just look
30:34 at, you know, someone's example code, who's implemented that, you can kind of read it like
30:38 English if it's written well enough.
30:40 Good names for variables and functions and that kind of stuff, right?
30:44 Yeah, definitely.
30:45 And I think too, kind of like we mentioned at the beginning, if you kind of find a fun,
30:49 easy project that can help to contextualize and make your work more exciting, right?
30:53 If it's not just, okay, let me, you know, think through these 10 concepts that I need to
30:57 learn, but like, oh, let me write a rock, paper, scissors function or things like that.
31:01 Yeah.
31:02 One thing I'd also throw in there to add is maybe get them started with good tools really
31:07 soon, right?
31:08 Like PyCharm or VS Code, something like that, like rather than just notepad or some random
31:14 thing, like, look, these tools will really, really help you.
31:17 They'll like help auto format it.
31:19 They'll like do the formatting for you.
31:21 They'll give you advice and show you the errors before you even run it, you know, like send
31:25 them on the right path with that.
31:26 Yeah, that's a great tip.
31:27 I think it makes everything feel a little bit less overwhelming, right?
31:30 It's like, okay, this, this is going to do half my work for me.
31:33 And then I just need to do some of the thinking.
31:34 Exactly.
31:35 And it's got my back.
31:36 I think, you know, if you say like, okay, you type the if statement, then you hit colon,
31:39 then you go and you hit four spaces.
31:41 You're like, what?
31:41 I got to press space four times.
31:43 This is, but if you just say I type colon, I hit enter, then I keep typing and it's like
31:46 auto indented, right?
31:47 It's already done what I need.
31:49 Then like, oh, okay, this is actually, it sounds weird, but it's actually totally fine.
31:52 Yeah, definitely.
31:53 So your next piece of advice here is to join some kind of club, computer science club or
31:59 something at your school to get going.
32:01 Yeah.
32:01 Like I mentioned, I was really fortunate in high school to have, you know, a teacher that
32:05 taught some CS courses.
32:06 And I even helped lead like the coding club at my school.
32:10 And I think this is a really great opportunity to engage with other students who are interested
32:15 in coding.
32:15 Even if you don't have coding courses, you can, you know, all kind of get together once a week
32:19 even, or once every two weeks and just work on projects or learn together in the club that
32:24 I was leading week sort of did a combination of little lessons and then also, you know, working
32:29 on projects together.
32:30 And then sometimes we would do little competitions.
32:34 You know, there are things like LeetCode and other websites like that, that allow you to
32:38 practice your algorithm skills.
32:39 And not only are you getting better with coding, but it also helps to connect with other coders
32:44 in your community.
32:45 I think obviously by the nature of the work, sometimes it can feel a little bit lonely.
32:48 And so it's nice to connect like that.
32:50 And if you're not in school, but still looking to engage there, you know, Python meetups and
32:55 other like data meetups.
32:57 And yeah, yeah, exactly.
32:59 I don't know why I chose this location, but yeah, I just threw Python.
33:03 I told it near you, but it actually put it in Verizon, New York, wherever there's, there's
33:07 tons and tons of these places, right?
33:09 And evening of Python coding, Python and APIs, Python 100 days of code.
33:13 There's just tons of options, right?
33:15 Because when you're in school, there's usually like clubs either in high school or in college
33:19 or maybe even more.
33:20 But once you graduate, then you're like, well, go back to high school.
33:24 That'd be weird.
33:25 Yeah.
33:25 But these, these meetups and also, you know, PyCon just got announced for Pittsburgh and
33:32 PyCon is such a major experience, I think for a lot of people.
33:35 Yeah.
33:35 Looking in from the outside, I feel like people, a lot of people were like, well, I was really
33:38 intimidated to go.
33:39 And really it's just like the programming party and everyone's so welcoming and you should
33:43 really check it out.
33:44 I think for, for people listening.
33:45 I'm excited.
33:46 I'm going to go for the first time in next year.
33:48 Yeah.
33:49 Yeah.
33:49 Awesome.
33:49 Yeah.
33:50 I love PyCon.
33:50 Always, always tons of fun.
33:52 What's our next tip here?
33:55 Reach out to local companies for job opportunities.
33:57 You talked about your internships and I was going to ask you about like, how did you find
34:01 them so soon?
34:02 But I knew a tip was coming.
34:04 So save it for now.
34:05 Like this is a great, great piece of advice.
34:07 Yeah.
34:07 So I think sometimes getting a, you know, your first job in a computer science field can,
34:13 or, you know, software development field can feel a little bit intimidating, especially
34:16 when you're on the younger side, right?
34:17 It's like, oh, well, all these people that I see working at thing companies are, you know,
34:21 older and have degrees and are more experienced, but, you know, there are a lot of people
34:25 a lot of small computer science startups or even medium sized companies that are more
34:29 than happy to hire younger high school interns.
34:32 And so my first ever like computer science experience was a company that was in Chapel Hill,
34:38 Carrboro, where I grew up called QuantWorks.
34:40 And I worked for them for two summers in a row.
34:42 And it was really great just to start to get working with other people.
34:46 We did some work for a local nonprofit group and then worked on an API with COVID information.
34:52 And, you know, even those, these weren't like huge projects you'd hear about at, you know,
34:57 Google or things like that.
34:58 It was really great to just get those like local experiences.
35:01 And I think also it's a little bit easier to, you know, get ins at smaller companies, right?
35:06 Like if I, as a 15 year old email someone at Google, like, you know, who knows about me hearing a response,
35:12 but, you know, local companies, I think it's just a lot easier to connect and start growing your career roots there.
35:18 Yeah.
35:18 Here's the big secret that you don't learn until you kind of walk the path.
35:22 I think if you get one of those jobs at the amazing thing companies or some big tech company,
35:27 you're probably going to be doing something really focused and specific.
35:31 You won't get a real broad chance to work on software.
35:35 But if you get a job at a small company, you know, you kind of got to do a lot of stuff because,
35:39 well, it's maybe you and the one other person, right?
35:42 So I think it helps you grow a little bit quicker.
35:46 Yeah, I completely agree.
35:48 I've been really grateful to have had kind of all my job experiences be at smaller companies
35:53 at the next company that I worked at.
35:56 It was an insurance tech company.
35:57 I got to, you know, work on an API client and on even some like marketing videos for our company.
36:04 And then, you know, got my first exposure to like cloud infrastructure, which like you're saying,
36:09 like those aren't, those combinations of things aren't something you'd get to do at,
36:13 you know, a large company internship.
36:15 So I think that's one of the benefits of...
36:17 Yeah, there's teams for each one of those things you just said.
36:19 Right.
36:19 And then sub teams and then sub sub teams.
36:21 Yep.
36:22 Yes, exactly.
36:23 And it's easier, like you said, it's easier to get those jobs.
36:25 So it'd be cool to get a job at Google or Microsoft or whatever.
36:28 But seriously, look around.
36:30 There's probably a lot more opportunity at, you know, small groups that really need some
36:35 computer help.
36:36 You know what I mean?
36:36 Yeah.
36:37 And the benefits of looking local is like, you might already have a connection there that
36:41 you didn't know about or like that.
36:42 So it's always helpful.
36:43 Next up, next tip, learn about software design principles.
36:47 Yeah.
36:47 So this kind of ties nicely into our previous tip.
36:50 But, you know, the earlier you get to start working on some sort of production system or
36:55 even just, you know, an open source project that has releases, et cetera, the earlier you
36:59 get to start learning about how do I integrate and deploy this?
37:02 And how do I work with pipelines and why are all my tests failing, you know, and things
37:07 like that.
37:08 And I think having those skills going into other opportunities really makes employers excited,
37:14 right?
37:14 Because you're already experienced in things like that.
37:17 And so they don't have to spend, you know, the first couple of weeks getting you used to
37:20 their integration and deployment systems and contributing to the repository and pull requests
37:24 and things like that.
37:25 And even things like agile development strategies.
37:28 So getting used to like, how do I plan out what I'm going to develop in the next two
37:32 weeks?
37:32 You know, obviously there are various different systems you can use for that.
37:35 But I think just taking things one step further from I know how to write the code to like, how
37:41 do I write the code with a team?
37:43 And how do I, you know, make sure it's released consistently and reliably, et cetera, can be really
37:48 beneficial.
37:49 I mean, to the team, circling back just really quickly, like both to the contributing to open
37:53 source and the joining a club.
37:55 I think when you, a lot of people first think about programming, they think about, you know,
37:58 okay, well, I'm going to go into the basement and shut the blinds and not see anyone and
38:02 just write code and become pale.
38:04 And, you know, but a lot of software actually is a pretty social, pretty interactive experience.
38:09 And I think you get both of those from open source and internships and the clubs as well.
38:13 Yep, definitely.
38:14 And it's more fun.
38:15 Come on.
38:15 Certainly.
38:16 Yeah.
38:16 Speaking of fun, find an opportunity to teach code.
38:19 Yeah.
38:19 So this one, I think is a little bit harder to orchestrate, but obviously there are always
38:24 people wanting to learn how to code and people of all ages learning, wanting to learn how to
38:29 code.
38:29 So kind of my own experience was this with this was in high school.
38:33 My school was promoting this class for anyone of all ages.
38:37 It was going to happen, you know, from seven to 9pm once a week.
38:40 And we were going to teach Apple Swift.
38:43 So the like app development programming language.
38:45 And I had only, you know, learned it for a couple of weeks, but they were looking for volunteers
38:49 to help teach.
38:49 And, you know, it's similar to think our viewer, Alyssa mentioned she's a TA, right?
38:54 And I think the more you teach something, the more you are able to, you know, convince yourself
38:59 that you understand it, really grasp concepts.
39:01 And so I think if you get an opportunity to teach, you know, even if it's just volunteering
39:05 or if it's paid, it's really beneficial in helping you understand those concepts.
39:09 And I think just sparking kind of a general love for the community, right?
39:13 Like when you get to help others learn, it's really positive experience.
39:16 Yeah, it is pretty amazing.
39:17 And it doesn't have to be a full on college course.
39:20 It could be, you know, we talked about the meetups or clubs, like, hey, I'm going to volunteer
39:25 to do a presentation at one of the local meetups.
39:27 Yeah.
39:28 People are pretty supportive and it's pretty, pretty low key.
39:30 I know some of the ones I've been to will be like, well, we're going to have three presenters
39:34 and they're each, you know, 20 minutes instead of one person who has to be up there
39:37 in front for like a really long time.
39:39 And, you know, 20 minute presentation on something that you're kind of passionate about.
39:43 It's pretty easy once you, if you, if you're worried, you know, once you get over being
39:47 nervous, it's pretty easy.
39:48 Definitely.
39:49 And, you know, it's like, okay, what code did you write last week?
39:51 And what tool did you find really helpful?
39:53 Like, it's pretty easy to talk about that in front of other people who are also going
39:56 to be really excited to learn about it.
39:58 Yeah.
39:58 Yeah.
39:58 I thought this would be easy.
40:00 It was really hard.
40:00 Here's what I did.
40:01 Like, here's how we made it, like got through and what actually unlocked it.
40:04 And like that kind of stuff is really fun to talk about and super helpful.
40:08 Yeah.
40:08 What are your other pieces of advice?
40:09 I think it's kind of leans into the internship side of things, but, you know, connect with
40:14 nonprofits and see if you can help with any of their needs.
40:16 We've talked a lot about community on this podcast, right?
40:18 I think the more you involve with open source projects and, you know, work at a company,
40:22 you start to realize, okay, this like really is a welcoming and engaged community and kind
40:27 of taking that outside of the sphere of just computer science.
40:30 Obviously, nonprofits really help to do great things for communities.
40:34 And often they have some pretty significant tech needs that are hard to meet.
40:38 And so I think another really great opportunity for young people who aren't maybe necessarily
40:43 ready to start like a full-time job or even part-time job is just, can I work for a couple
40:48 of hours a week with this, you know, nonprofit to help them?
40:51 That might be, can I help them maintain their website?
40:53 Or can I build them a spreadsheet that has a couple of automations that's really going to
40:57 help them?
40:58 So like one example is that in Chapel Hill, where I'm from, we have this great nonprofit
41:02 called Porch that helps collect food from neighbors' porches and then redistributes that
41:07 to local families in need and food pantries.
41:10 And you can imagine once you start to hear about this organization and it spreads, there's
41:14 a lot of people involved.
41:15 And so I helped my first internship kind of build a tool for them just to like organize
41:20 their routes for pickups and things like that.
41:22 And so it doesn't even have to be as complicated as that, but just, I think reaching out to nonprofits
41:27 is a great way to not only feel like, great, I have a coding community, but also like I
41:31 have a place in my broader community as a whole.
41:32 Yeah.
41:33 And also offer some nice, nice ways to give back.
41:36 If you're working on a project where you, you know, maybe you're enjoying writing the code,
41:40 but you're not like, well, how much am I contributing?
41:43 Like I'm trying to, you know, optimize the trading speed for this algorithm.
41:47 Like that's cool and all, but I kind of want to just feel like I'm, I'm using some of my
41:52 powers for good.
41:53 You know, one of these things comes to mind is just a thing called the humanitarian toolbox.
41:57 And it's a whole bunch of different pieces of software to help.
42:00 Like when there's earthquakes or other national, you know, tsunami type disasters and, you know,
42:05 helping humanitarian organizations solve technology problems with open source.
42:09 Right.
42:09 Things like that is just, that's pretty cool.
42:11 Yeah.
42:11 Yeah.
42:11 Yeah.
42:12 So people can, I mean, there's just one that I know of.
42:15 You can search around and find, I'm sure there's many of these projects.
42:18 And if there's not, you know, you could create one, like the project you just talked about,
42:22 right?
42:22 Yeah, definitely.
42:23 The, it's exciting that the need is always there.
42:25 And so if you just find a project that sparks interest in you, like go ahead and contribute.
42:29 Yeah, absolutely.
42:29 All right.
42:30 What do we got next here?
42:31 Sign up for a couple of newsletters.
42:34 Yeah.
42:34 So this is a pretty like easy and passive way to get better at things.
42:38 But, you know, if you just sign up for a couple of newsletters, I know, like real Python has a great one that just sends out little tidbits and tricks and,
42:45 you know, best practices.
42:46 And then kind of a more career focused one is Ryan Peterman has a newsletter about just
42:51 kind of advancing through a software development oriented career.
42:55 You know, when you're sitting on the bus or ready to go to bed and just want to take a
42:59 little read of something, it's nice to just spend, you know, two to five minutes reading
43:02 little hints and tips and tricks.
43:04 And this is a nice thing for people who are quite busy and still looking to improve, but don't
43:08 have a ton of time to, you know, add an additional course or teach a class or go to a meetup,
43:13 things like that.
43:14 Yeah, absolutely.
43:14 Another tip you have is take online courses because they're pretty short, right?
43:19 Yeah.
43:19 I kind of mentioned that already, but I honestly, another benefit that I found of that is just
43:24 really helping me feel more comfortable in class.
43:27 You know, if I, I started taking, I think my first like machine learning course when I
43:32 was in eighth or ninth grade.
43:34 And obviously I did not understand a lot of what was going on in the course, but at least
43:38 I pulled, you know, maybe 20% out of the course and got to move forward with that.
43:42 And so I think just the earlier you get to have exposure to things that you find cool, the easier
43:46 it's going to be to learn down the line.
43:48 Yeah, that's awesome.
43:49 Another tip you have is learn more than one language, which you're kind of forced to do in
43:53 computer science programs, but it's, it's easy to just go like, well, I've chose which
43:57 one I'm going to learn on my own.
43:58 And then I just did that.
43:59 Right.
44:00 Yeah, definitely.
44:00 I think, you know, especially with Python, a lot of people who get started with maybe a
44:04 more data science oriented trajectory are like, okay, this is all I need.
44:07 I've got everything right here, you know?
44:09 And I think it just makes you a better programmer to have exposure to different languages.
44:13 And, you know, maybe you don't have a ton of time to study three at once, but like
44:18 go read, you know, some code from a different language.
44:21 And I'm kind of experiencing that right now, getting used to writing some code in Pydantic
44:26 core, which is in Rust and then being a little bit more familiar with the Pydantic Python wrapper,
44:30 but it's really refreshing and great to learn about new ways to solve problems.
44:35 And, you know, obviously Rust is quite impressive and fast.
44:37 So that's always exciting too.
44:39 Yeah.
44:39 You can tell that Python's getting older over 30 years now because there's a lot of Rust in
44:43 it.
44:43 Yeah, exactly.
44:44 No, it's, it really is impressive how much it's gone from, oh, we're just doing everything
44:48 in C extensions to like all the fancy shiny stuff is Rust internal somewhere.
44:53 Yep.
44:54 Right.
44:54 Yeah.
44:54 You've already talked about multiple tools that are in libraries that are that way.
44:57 Right.
44:58 And we use Py03, which is an awesome library that kind of helps to connect Python to Rust.
45:02 And, you know, there are more and more open source contributions to projects like that,
45:06 that help link languages, which is awesome.
45:08 Yeah.
45:09 So one sort of sub tip that you had in here is this get 1% better every day.
45:14 And you'd sort of group that into the newsletters.
45:16 I think that can go kind of shared amongst many of your pieces of advice.
45:20 Yeah.
45:21 I think it's a great mindset to have in general, you know, as long as you're putting in relatively
45:25 consistent work to learn and practice what you're learning, et cetera.
45:29 I think you'll be quite surprised and impressed with yourself at how much better you're getting,
45:33 how much more comfortable you feel with things.
45:35 And I feel like when you're just starting out and you've got this huge learning curve to
45:38 work on, it's really great to, you know, just be consistent, like for five to 30 minutes a day,
45:43 like work on this thing.
45:45 And then even in two weeks, you're going to be like, wow, I've learned so much, you know,
45:48 and then you can imagine what you'll feel like in a year.
45:50 Yeah.
45:50 I think it's so easy to underestimate that, how that compounds in your career.
45:56 I remember when I first got my first real programming job, I was still in grad school,
46:01 but working on it a lot and you would get, you know, officially, you've got an hour for lunch, but the way it really worked, we'd go grab some food and,
46:08 you know, eat it quick in the little courtyard and then go back to work.
46:12 And, just cause where else are you going to go?
46:14 You know, but what I started doing was I, I would get some new programming book, book on
46:20 refactoring or design patterns, or I was doing C++ at the time.
46:23 So some C++ book.
46:25 And I would just say, look, I get an hour.
46:26 I got 25 minutes before I go back to work.
46:28 I'm going to just sit here and read the book every day.
46:30 And just one, I felt like I was supposed to have an hour from my job for lunch.
46:34 And two, it was contributing back to my work anyway.
46:36 But it was after doing that for a year or two, I went from being like a super newbie to giving
46:41 conference talks to people like, wow, how'd you learn all this stuff?
46:44 I was like, well, lunch basically.
46:46 You know?
46:47 Totally.
46:47 And I mean, kind of connecting back to this podcast over the summer, I started listening,
46:52 you know, I was like, well, I have a 15 minute walk to work each way.
46:54 I might as well learn something while I'm at it.
46:56 And I'm a big fan of podcasts anyways, but, you know, I'd finished my New York Times daily
47:00 by then.
47:01 And I was like, well, I've got to listen to something else.
47:03 So it's great to just, you know, we have so much downtime during our days when we could
47:06 be listening to something.
47:07 But listening to this podcast is another great way to just pick up tips and learn about what's
47:11 going on in the Python community.
47:13 And, you know, how can I write my own code better?
47:15 Things like that.
47:16 Yeah, I really appreciate that.
47:18 And thanks.
47:18 I find there's a lot of people who will write me.
47:21 And when I first started this podcast, I thought, well, who's going to listen to such a show?
47:24 Like, must be the people like really, really into it, right?
47:26 And then I started getting emails from people who would say, hey, I really enjoy your show.
47:31 I'm starting to understand a lot of the things you're saying.
47:33 I'm like, I've been listening for six weeks.
47:35 I'm like, why?
47:35 You listen for six weeks and you like barely understand?
47:38 Like, well, okay, thank you.
47:39 But why do you do this?
47:41 And what I realized is a lot of people who are new start to use it as a language immersion.
47:46 You know, like if you wanted to learn Portuguese, you just go live in Brazil for six months and
47:49 then you would know it, right?
47:50 And so they kind of like, well, I want to be in the Python space.
47:53 So I'm just going to like immerse myself in that space until it starts to click.
47:57 Yeah, it's a good way to do it.
47:58 And like for the job that I had this previous summer, I was working in the Django framework.
48:03 And, you know, obviously when you're on the job and writing code and you have a problem,
48:07 it's pretty easy to just look something up and read through documentation, et cetera.
48:10 But then I kind of started searching through your previous podcast and just listening to
48:14 episodes about Django because it was like, okay, what can I, you know, pick up that I don't
48:17 necessarily need like right now to solve my problem, but can really help me down the line
48:21 and just kind of in my day-to-day writing code.
48:24 Awesome.
48:24 I think we might have touched on pretty much all of the tips.
48:27 Yeah.
48:28 I guess the last one is part-time freelance work.
48:31 So one angle was get an internship and so on, but maybe you live in a place where it's
48:36 hard, it's hard to find a remote internship or something like that, right?
48:39 You could do some like lightweight consulting type of work.
48:42 Yeah, exactly.
48:43 I'm certainly more interested in backend or like full stack kind of thing, but there are
48:48 a lot of people who are looking for, you know, website help and website development.
48:52 So I've kind of reached out on platforms like next door, which is just like a neighborhood
48:57 communication platform and, you know, through school email lists and things like that and
49:02 said, Hey, does anyone need help, you know, building a website?
49:04 And honestly, I do most things through Wix.
49:07 So it's not like it takes a ton of technical knowledge.
49:10 Like I didn't need to study these things for years and years to be able to practice them.
49:14 But there are a lot of people looking for just help with technical things.
49:18 And if you, you know, have little bits of time here and there, but can't commit to,
49:21 you know, a full internship or full-time job or anything like that, it's a great way to
49:24 just get started writing code.
49:26 And people are always, you know, super grateful just to have the tech help.
49:29 Yeah.
49:30 It's a good way for you to get experience out there.
49:32 All right.
49:33 I'll throw one in here to maybe around close things out is volunteer at conferences.
49:39 So we talked about going to conferences or going and joining meetups, but you could volunteer
49:43 at a conference or at a meetup.
49:45 And a lot of these conferences like PyCon, there's hundreds of volunteers, many, many
49:49 volunteers.
49:50 I think it probably is over a hundred volunteers to make that happen.
49:53 And I think there might even be sometimes like travel grants.
49:56 Like if, hey, if I volunteer to basically work at the conference, will you, you know, get
50:00 me there sort of thing.
50:01 And much like working open source, it really lets you make connections with people in the
50:06 industry, right?
50:07 With the speakers and other folks.
50:09 Yeah.
50:09 Yeah, definitely.
50:10 I think that's a really great piece of advice.
50:12 You know, I think a lot of these are very applicable to like, even if you don't have
50:15 a ton of experience, you can get started with this, you know, and it can kind of be your
50:19 on-ramp into this community if that's what you're interested in.
50:21 And I think that's a really great one, right?
50:23 Because not only are you going to get to be in this community, but also like no better
50:27 place to learn about Python than PyCon, right?
50:29 So yeah, just be in that space and get to absorb that, all that information as well.
50:34 Yeah.
50:34 And people might not know, they hear about PyCon, they're like, okay, that's the one, that's
50:38 the big one in the US and it moves around.
50:40 And then there's EuroPython, which is in amazing places in Europe, but there's actually many,
50:44 many miniature PyCons around, you know, there's like PyOhio and there's PyTennessee and PyTexas
50:52 and PyCascades and I was at PyBay in San Francisco a little while ago.
50:56 There's a bunch of volunteers there.
50:58 So it could be that there's one hour drive from where you are.
51:01 You don't have to make it a big trip.
51:02 Yep, definitely.
51:03 And, you know, more and more, there are also some like online opportunities, right?
51:07 So if you really aren't close to any that are coming up soon, you can also consider that
51:11 route.
51:12 Yeah, absolutely.
51:12 All right.
51:13 Well, I think that pretty much wraps it up.
51:15 Anything that we didn't cover that you think you want to throw out for people getting into
51:19 programming and Python?
51:21 So I think we did a pretty comprehensive overview, but I think the exciting thing is just if you
51:26 want to learn more, there are a ton of avenues to do it and a really supportive community kind
51:30 of waiting for you to help.
51:31 Yeah.
51:32 I think if you haven't experienced it before, I do think the how supportive the community
51:36 is and how welcoming they are is probably going to be a surprise.
51:38 A lot of people like you think, oh, I don't know enough.
51:40 They're going to call me and say, you don't know how to work at this project.
51:43 Get out of here.
51:44 Like, no, usually they're everyone's super excited to whatever, have you speak at their event,
51:50 volunteer, work on the open source project, you name it, right?
51:52 That's been my experience anyway.
51:54 Yeah, mine as well.
51:55 Excellent.
51:55 All right.
51:56 Well, before we get out of here, I usually ask a question at the end about some PyPI project
52:01 or a library that you've run across that are awesome.
52:03 I mean, we can go and throw out Pydantic and Pydantic Core for everyone out there because
52:08 that's amazing, right?
52:09 But anything else that you're like, wow, this is really awesome.
52:11 People should know about.
52:12 Yeah, I guess I mentioned it a little bit earlier in the podcast, but the company Astral
52:17 has been working on the Ruff project.
52:19 So they originally had a linter and the code for that is written in Rust.
52:23 So it's quite fast, as we discussed before.
52:25 But they just came out with their Ruff format support and lots of major projects have switched
52:32 over to that.
52:32 So FastAPI, Pydantic, et cetera.
52:34 And I think it's really great to see, you know, people still working super hard on high
52:39 performance formatting and linting tools.
52:41 And it's just really quite satisfying to see things run so fast and keep things so clean.
52:45 So I guess give a shout out to that project.
52:47 It's quite helpful.
52:48 Yeah.
52:49 Charlie Marsh and the team over there are doing excellent work.
52:52 And it's really great.
52:53 I think I like the way that it works.
52:54 And obviously, black is kind of the de facto things that people are choosing.
52:59 So I like the ways in which it's the same as black.
53:02 I like the ways in which it's different and configurable as well.
53:04 So I can definitely second that one.
53:06 That's a really good one.
53:07 Yeah, the number of configuration options that they offer are really great.
53:11 It's quite impressive that they have the, you know, 99.9% compatibility with black.
53:15 That makes it super easy to adopt given the already existing standard.
53:19 But also nice that they have really well-documented differences and things like that.
53:23 Yeah, for sure.
53:24 All right, Sydney, thank you so much for being on the show.
53:26 And I can tell that you're going to be super successful.
53:29 You already are super successful.
53:30 And, you know, you're months away, a good number of months, but months away from graduating
53:35 and really diving headfirst into this.
53:38 So you must be pretty excited.
53:39 And yeah, congrats.
53:40 Yeah, thank you.
53:41 It was so wonderful to chat with you on the podcast.
53:43 And hopefully I'll see you at PyCon this next year.
53:45 Yeah, you as well.
53:46 Hope so.
53:46 Bye.
53:48 This has been another episode of Talk Python to me.
53:50 Thank you to our sponsors.
53:52 Be sure to check out what they're offering.
53:53 It really helps support the show.
53:55 Want to level up your Python?
53:57 We have one of the largest catalogs of Python video courses over at Talk Python.
54:02 Our content ranges from the top.
54:06 And best of all, And best of all, And best of all, There's not a subscription in sight.
54:09 Check it out for you.
54:10 Check it out for yourself at training.
54:11 talkpython.fm Be sure to subscribe to the show.
54:14 Open your favorite podcast app and search for Python.
54:17 We should be right at the top.
54:18 You can also find the iTunes feed at /itunes, the Google Play feed at /play,
54:24 And the direct RSS feed at /rss on talkpython.fm We're live streaming most of our recordings these days.
54:31 If you want to be part of the show and have your comments featured on the air,
54:34 Be sure to subscribe to our YouTube channel at talkpython.fm/youtube.
54:38 This is your host, Michael Kennedy.
54:41 Thanks so much for listening.
54:42 I really appreciate it.
54:43 Now get out there and write some Python code.
54:45 Bye.
54:46 Bye.
54:47 Bye.
54:48 Bye.
54:49 Bye.
54:50 Bye.
54:51 Bye.
54:52 Bye.
54:53 Bye.
54:54 Bye.
54:55 Bye.
54:56 Bye.
54:57 Bye.
54:58 Bye.
54:59 Bye.
54:59 Bye.
54:59 Bye.
54:59 Bye.
54:59 Bye.
54:59 Bye.
54:59 Bye.
54:59 Bye.
55:00 Bye.
55:00 Bye.
55:00 Bye.
55:01 Bye.
55:02 you Thank you.