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

Talk Python's Mastodon Michael Kennedy's Mastodon