Python for Absolute Beginners Transcripts
Chapter: The big ideas of software development
Lecture: Beginners and experts

Login or purchase this course to watch this video and the rest of the course contents.
0:00 No matter what your end goal is
0:01 do you want to learn some programming so you can
0:04 be better analyzing your data as a scientist?
0:07 Do you want to start a new startup like Google?
0:11 Or do you want to just manage some data
0:12 while you're doing some accounting
0:14 or automate simple things around the office
0:16 or your even your house?
0:19 No matter what your end goal is
0:20 you're going to go through different stages.
0:22 At first, you're going to be like
0:23 wow, this Python, I don't really even know
0:25 how to put it together correctly.
0:27 And you'll get better at the structure
0:29 of writing Python code or source code in general
0:32 you'll be able to do that reliably.
0:33 But when you approach a problem, it'll be like
0:36 wow, I know how to do stuff in the language.
0:39 But this problem, I don't know how to apply
0:42 the Python to this complex problem
0:44 or how to break it down in a way that I can deal with.
0:48 So in this next short section
0:49 I want to talk about the difference
0:51 between pros and beginners.
0:54 In some ways, people who can just sit down
0:56 and write whole web applications
0:58 that are things like Google or, you know, do their startup.
1:02 You know, Mark Zuckerberg sitting in his dorm room
1:04 creating Facebook, it seems like
1:07 there's a huge divide between beginners
1:09 and pros who are experts in that world.
1:11 But really, what you'll see is it's just
1:13 a few bits of mindset, some practice
1:16 and a whole bunch of persistence, really.
1:19 So let's talk about the differences.
1:21 Persistence to just keep trying.
1:24 Now, you might think this thing I'm trying to do
1:26 is frustrating because I'm a beginner
1:28 and I don't know what I'm doing.
1:30 That may be true, but a lot of times, it's just frustrating.
1:33 And that happens to experts as well.
1:36 I was working with a library just a few days ago
1:38 and it was like, why is this thing not working?
1:41 And I've been programming for over 20 years
1:43 and yet it is right there in front of me.
1:46 It's not clear what it's supposed to do.
1:49 It's definitely not doing what it's
1:50 what I'm trying to ask it to do.
1:52 And how did I solve it?
1:54 I didn't use necessarily 20 years of experience.
1:56 I just kept looking for answers.
1:58 I just kept trying variations
2:00 until the thing finally worked.
2:02 So do not discount, just persistence
2:05 to get through these problems
2:06 because it's not just that you run into them
2:09 as beginners and they go away.
2:11 No, sometimes that's true for sure.
2:13 But it's not as true as you would think.
2:15 And along with that, just feeling like
2:17 you're stuck on a problem, it's just part of the journey.
2:20 Again, as a beginner, if you feel stuck
2:22 you might think, well, I'm stuck because
2:24 I have no idea what I'm doing or worse
2:26 you might think I'm stuck because this is not for me.
2:28 I'm not good at this.
2:30 No, like I just told you just a few days ago
2:32 I was totally stuck and I've spent hours
2:35 looking at this thing, trying to figure out
2:36 why it won't work.
2:37 But difference as an expert is I know
2:40 that that is part of the journey
2:42 but it's also going to go away.
2:44 If I apply rule number one, I'm persistent
2:46 and I just keep working on it.
2:48 But eventually, I'm going to find that article
2:51 that somebody wrote or that Q&A that somebody did
2:54 or that thing in the documentation I overlooked
2:56 and it's going to unlock and then whoosh
2:58 off it'll go again, you'll just be cruising along
3:00 working, smooth, even keeled for a while
3:02 until you hit another thing like this.
3:04 So being stuck is part of the journey.
3:06 And just because you feel that way
3:07 it doesn't mean it's not for you
3:09 it just means it's part of the journey.
3:11 Now one thing that does help is
3:13 seeing a similar problem before on other projects
3:16 that you've created, on articles, or in a book
3:19 or something like that.
3:20 This does take a little bit of experience
3:23 'cause how are you going to see similar things
3:24 when you're brand new?
3:25 Well, you just have to expose
3:26 yourself to them and try solving problems
3:28 and reading and taking online courses
3:29 or even in person courses.
3:31 But going through and just getting that experience
3:34 this is something that really is helpful.
3:35 Think I need to create a website and have users login.
3:38 Well, if I've done that five times before, guess what
3:41 it's pretty straightforward to seeing
3:43 how to solve that problem.
3:44 But if I've never done it, a research project.
3:46 The thing is, being really good at programming
3:48 is not necessarily being super smart.
3:51 It's just going through a little problem
3:53 after a little problem, after a little problem
3:54 and having that in your toolbox.
3:57 Another thing that's super valuable are data structures
3:59 and we haven't talked about these yet
4:00 but organizing your data in just the right way
4:03 makes it much easier to think about
4:05 and it gels better with the language
4:08 in ways that can process it and you can
4:10 ask questions about it, and so on.
4:12 So we're not there yet, and when we get to the part
4:14 where we're writing more complex code
4:16 we'll get into the data structures
4:17 and you'll see what I mean.
4:20 Much like the seeing a similar problem
4:22 but more random fact based
4:25 is having tonnes of very small and simple facts on hand.
4:28 How do I install this library?
4:29 Well, I know I typed this thing.
4:30 And if it gives me this error, like permission, denied
4:33 I know, oh, I have to do this other thing
4:35 in addition to that.
4:36 And just having all these little small facts on hand
4:39 it really, really is helpful.
4:41 It might feel like it's something for the super smart
4:44 this person just knows everything.
4:45 They say, do this little thing or that little thing.
4:47 But it's not smart, like physics and Einstein
4:50 or large hadron collider smart
4:51 where you've got this grand vision of the universe
4:54 that people don't have.
4:55 You just have zillions of little tiny facts
4:58 and techniques that you've somehow learned
5:00 you've experienced, you've dug up
5:02 and they just add up layer after layer after layer.
5:04 So again, the only way to get that is
5:06 just keep working through it, be persistent.
5:10 Knowing the libraries, both the built in standard ones
5:13 and the external ones you can use to solve a problem
5:15 is super helpful.
5:17 There's places you can go look
5:18 and we'll talk about that later when we get
5:20 into the external library section.
5:22 But these complicated algorithms
5:24 or things that you need to do understanding
5:26 a complicated data file structure
5:28 or some crazy thing like that
5:30 you could either do tons of work that could be error prone
5:34 frustrating and hard to solve that.
5:36 Or you could just go and grab an external library.
5:38 There's over 200,000 different libraries
5:41 available to Python that you can say our
5:43 this scientific data file, I if I need to pull
5:46 data out of a telescope for astronomy
5:49 there's a known format for much of those files
5:51 and I can just go grab that library and say
5:53 love that thing up.
5:54 I don't have to try to learn that
5:56 but if you're new, you maybe don't know that.
5:58 You don't know that, Oh, I can just grab A library
6:00 and write two lines of code instead of 300
6:03 complicated lines to try to figure out what this file is?
6:05 So knowing those things is really important
6:07 and we're going to learn that in this course.
6:10 Googling for solutions and error details
6:13 you'll hear people mock developers
6:15 and often newer developers say
6:16 Oh, they just copied and pasted that from Stack Overflow
6:19 or they don't really know what they're doing
6:20 they just Google for this.
6:22 That may be something that should be avoided, eventually.
6:25 We will see more as we go through this course.
6:27 But certainly, if you get stuck
6:30 you're very unlikely to be the first person
6:32 to have that problem and because it's Python
6:35 there's so many people using it
6:36 that it's very likely there's a
6:38 discussion online about that problem.
6:40 Sure, sometimes you'll be stuck
6:41 and you can't just go find the answer online.
6:44 But there's a surprising number for which you can.
6:47 Don't hesitate to Google the error details
6:49 or more details about a library
6:52 of what you're trying to accomplish.
6:53 It's actually pretty productive
6:54 and that helps you see similar problems
6:57 or acquire these simple facts that you just have on hand
6:59 because you can level up through someone else's
7:02 hard work of figuring it out.