Transcript from the "Introduction" Lesson
>> Hi, everyone, welcome to Practical Python. My name is Nina Zakharenko, and I'm your instructor today. This is an immersive hands-on Python course, and it requires a little bit of prerequisite knowledge. So in order to really succeed today, you should be comfortable on the command line. You don't have to be a pro.
[00:00:23] And you should know a little bit about programming in some other language. So understand basic constructs like loops and variables. And those are gonna be the things that set you on the path to success. If you're a little bit more of a beginner, you might enjoy the the two day course that I did for Frontend Masters last year, called Introduction to Python and Python Fundamentals.
[00:00:51] Now, you might see this course website that I have up here, you can find this at practical.learnpython.dev. Let me bring that URL up for a minute. Practical.learnpython.dev. Now, I recommend that you, Don't just follow along on this website, don't read, because we're gonna be moving pretty quickly today, and you're gonna get most comfortable if you type along with me.
[00:01:33] So by typing along with me, as I type, you're gonna gain that muscle memory that's really going help that knowledge stick. A little bit about me. My name is Nina Zakharenko, and let's see here, I've been coding altogether for probably about a decade now. I started out in Java.
[00:02:01] [LAUGH] That is my secret. But I moved towards Python probably about six years ago now because I really liked the community. And I thought that the libraries and the ecosystem were really amazing. I started speaking at Python conferences and just completely fell in love with it. Recently, I've been elected to the Board of Directors for the Python Software Foundation, which is really great.
[00:02:29] I get to do a lot of good work. And I've also written code for companies like Reddit and Meetup and HBO. These days, I'm a Principal Cloud Advocate at Microsoft, focusing on Python. If you wanna stay in touch with me, I'm on Twitter or LinkedIn or GitHub. All of the links are here.
[00:02:48] And then I also included links to some of the more popular conference talks that I've done over the years. You can also find my other courses on Frontend Masters. One of my personal favorites is get in depth, and as well as Python Fundamentals and Intermediate Python. A little bit about navigating the course.
[00:03:11] If you see any typos, which I have not made because I am 100% perfect, but if you spot anything that you think shouldn't be there, there's an Edit this page link at the top of every page. And that will take you directly to GitHub, where you can open a poll request.
[00:03:32] There are navigation arrows here on the left and the right side, and you can also navigate via keyboard shortcuts, which is one of my favorite features. There are breadcrumbs on the top left here for each section. And that will pull up a table of contents right here. Some sections look like this with double arrows that have additional content.
[00:03:57] So you can just go ahead and click on that and that content will expand. If you want to copy any of the code or any of the commands, you can hit this button right here and it will copy to the clipboard. If we're working in the Python REPL, for example, where there are extra control characters that are in that will be displayed on the course website, know that they won't be copied over.
[00:04:22] You can search in this text box up here. And as you go through the course, you'll see a little checkbox next to each chapter. You can go ahead and clear the history if you find that distracting. And again, I really suggest following along with me in the class and typing as much as possible.
[00:04:42] This is a resource for you to have, cuz I know that when I'm done with a class, especially one that's all day, I feel like did I learn anything? I'm just gonna forget everything. So it's here for you for afterwards. It's here for the exercises or if you need to go back and figure out how to do something.
[00:04:58] But I do not recommend reading it. I wanna quickly go through the course agenda. So I'm gonna explain to you, why Python? Why you might wanna reach for Python? Why you might wanna choose Python for your project? And talk a little bit about some of the philosophies and Python's design principles.
[00:05:17] Then we're gonna move on to data types. Python is a dynamic language. What does that mean? We're gonna learn how to work with numbers, strings, lists, and more. Then we're gonna move on to some of the more advanced data types that Python offers. And those are sets, tuples, and dictionaries.
[00:05:37] These are container objects that let us organize other types of objects in different ways into other kinds of data structures. Then we're gonna move on to functions, loops, and logic. Functions help us organize our code in a way that's more readable and reusable, and they accept arguments and defaults as needed.
[00:05:57] And loops are gonna take us let us take action on collections of different items. Boolean logic, it's gonna allow us to control the flow of our program. We're gonna cover some practical applications of what we've learned so far, including using advanced looping types. Like list comprehensions, converting between different types in Python, which I believe is really one of its absolute strengths.
[00:06:22] And we're also gonna cover how to work with files. Next is going to be object-oriented Python, which allows us to represent our code in a little bit of a different way. We can define reusable classes and define relationships between different objects and build modular and reusable code. We're also gonna cover libraries and modules.
[00:06:45] So now that you have all the foundational understanding of how Python works, you're gonna learn how to structure your code and work with different libraries, both the standard library and external third party packages. And then, in the last chapter we're gonna cover web frameworks, and we're gonna talk about Django in particular.
[00:07:03] So we're gonna practice all of our new Python knowledge by building a basic blog, a basic web application with some unit tests and a database. This is gonna give you a great tour of everything that's available in Python. You might not be an expert in any one of these areas by the end of the day, but you have the tools available to learn and discover more.
[00:07:30] Now, there are a few prerequisites before going through the course. You need to have a Linux, Mac or Windows 10 machine. If you're using Windows 10, you need to make sure that you have administrative rights so that you can run your programs correctly. We're gonna be working with the latest version of Python, which as of today is Python 39.
[00:07:54] We're gonna be using Visual Studio Code, and the Python extension for Visual Studio Code. Now, a lot of you are already programming, you already have your environment set up. Why VS Code? Well, I recommend that we're all on the same environment today, because if you run into any issues, this is really gonna help us troubleshoot and figure out what's wrong.
[00:08:18] Once you're done with the class, feel free to go back to your editor of choice. I have a section here for how to set up VS Code with different key bindings. For example, I use VS Code with Emacs key bindings, and you can set up them, or Sublime, or whatever you're most comfortable with.
[00:08:36] Really appreciate if we were all in the same environment, and that way you can follow the steps. And you know there there's nothing about your machine or your editor that's gonna cause any problems. I'm gonna review the setup instructions for Mac OS, because that's what I'm using, but instructions for Windows are available as well.
[00:08:56] And then I'm gonna quickly show you how to configure VS Code for maximum productivity in Python. All right, so here are all the things that you should have downloaded and set up. Python 3, Visual Studio Code, and the Python extension for Visual Studio Code. If you don't have these set up right now, please go ahead and start installing these prerequisites on your machine while I continue talking.