Effective PyCharm Transcripts
Chapter: Why PyCharm and IDEs?
Lecture: What we'll cover

Login or purchase this course to watch this video and the rest of the course contents.
0:00 Let's jump right in by talking about what we're going to cover during this course we have so many things we're going to focus on.
0:06 We're gonna start with our very next topic right away after this by talking about why
0:11 You would want to work with an Integrated Development Environment often shortened to IDE's. That's what PyCharm is. There are many of these out there.
0:19 There's also more light lightweight editors and we're going to see the trade offs that you
0:23 Might choose. We're also going to talk about how you go learning all the features Of a large piece of software like an IDE.
0:29 Then we're going to focus on Projects. In Python So often we have a loose set of files that are contained in a directory or
0:37 larger projects, multiple subdirectories and that structure and those file names mean things.
0:43 They don't just organize the code but they actually control what could we write? What are the name spaces? Well the name spaces are the modules.
0:51 The modules are simply the folder names and things like that. PyCharm has great support for working with code.
0:58 Not just as a standalone Python file but to treat your entire collection of files as
1:04 a single application. You often hear about people talk about what we're gonna use this Python script to do that thing.
1:10 People don't talk about Scripting and PyCharm. I think more in terms of applications. Right. And that's projects are sort of the heart of this here.
1:19 The part you're going to care the most about will be the editor and of course
1:22 we would start there if we didn't really need to talk about projects first, the editor has so many features and so many things that it can do for us
1:29 It can write code, it can find errors. It will highlight code and it will also integrate many of the other things that we're
1:37 going to talk about later. Databases, Source Control, all kinds of stuff.
1:40 So the editor is really going to be featured throughout the entire course but we're going
1:44 to spend chapter just drilling into the cool features of the editor itself. Source Control is omnipresent in PyCharm.
1:52 It has support for all the popular types of Source control SVN, Git and many many others. So when you work with your code,
2:01 you'll see that in the editor we see things about the source control status of the
2:05 code that we're working on. And it also has built in support for things like GIT Hub said Git also Git hub itself for example,
2:13 working with issues in Git hub. Working with poor requests. You'll see that you can look and say here's the list
2:18 of pull requests. Let me just click this button and try that pull request out as it would be if I integrated it in my editor.
2:25 Rather than actually going to GitHub and doing all the steps to try out the PR. All sorts of cool Source Control Integration stuff.
2:31 We're going to talk about it. There Refactoring is one of my favorite topics. People so often get hung up about writing software.
2:37 Exactly right. And when you're getting started, you often don't know what is exactly right.
2:42 You don't fully understand the problem space and all the little nuances until you're part way
2:46 down the road. So instead of overthinking it and trying to plan out for all the possible eventualities, you just write your code,
2:53 you get it working if it needs to change, you Re factor it. Often Refactoring might mean changing the code by hand and hoping
3:00 you get it right. But with PyCharm, there are many, many tools that allow you to re factor it in a way
3:05 that's completely safe not find in files and replace text but understand the abstract syntax tree
3:11 and actually only change the symbols that are truly the same thing. Not just have the same text.
3:16 Databases are a super important part of many many applications. And PyCharm has really cool support for it. You can create databases in here,
3:25 you can connect to them do queries against them. The query console has auto complete and understands not just the SQL keywords,
3:33 but even the schema of your tables and their relationships and create diagrams and understand the relationships between tables within our database.
3:41 And there's even one really cool trick that brings many of those features actually to embedded
3:46 SQL within your Python code. So if you have a string in Python that happens to be represented a database query,
3:53 you'll see you get all kinds of support for that as well,
3:55 which it's completely mind blowing. Python is a really important way to build web applications and PyCharm of course supports that.
4:04 We have great older frameworks like Flask and Django as well as fancy new ones like FastAPI and others,
4:12 PyCharm has amazing support for all of these frameworks and you'll see not just the Python side but the website as well.
4:18 The HTML, the templates like Jinja or Django templates, the Javascript, you're gonna be using, the CSS that's used throughout those templates.
4:27 All kinds of cool stuff for building server side. Web frameworks, all sorts of cool stuff for building service side web app,
4:33 but it also has support for front end frameworks like Vue.Js and React and so on. If you're working on a single page app or something like that,
4:40 you're going to get a ton of support in the javascript side, even though it's called PyCharm,
4:45 it helps you a lot on the web in javascript in all those areas. One of the things I really like about an IDE is if something goes wrong,
4:52 you can set a breakpoint and say debug this in my editor. You don't have to jump into some terminal and see things line by line or do
5:00 a bunch of print statements. The debugging support PyCharm is top of the field
5:03 there's really, really awesome support for quickly understanding what the state of your application
5:08 is, and moving around and even changing it to explore different situations. While a group of files in a directory can represent an application.
5:17 If you want to create a library, you distribute around over PyPI and other mechanisms, you really want to create what's called a Python Package.
5:25 So these are the things that you pip install. And PyCharm has special support for working with existing packages and creating new packages that
5:33 you can put onto PyPI. When our code is slow, we could try to figure out what's wrong trying to
5:38 make it faster, but usually the right thing to do is run a tool against it to see where it's spending its time and then go to the spot where it's
5:46 spending all this time to make that one part fast. Our intuition is often wrong about where we need to spend our time and energy to
5:52 improve the speed and the tool that we use for that is of course Profiling and
5:57 PyCharm has really cool support for both feeding reports as well as visual representations of
6:03 where our code is slow. If you want to write reliable software and especially if you're
6:07 working in a team, you need to have Unit tests and PyCharm has amazing support for all the popular Unit test framework has built in unittest.
6:16 It has pytest and many others on top of that. It has a unified test runner that lets you do things like run a test run
6:23 many tests run just the failed test and even just continually run the test against your
6:28 app as you develop it. Very cool stuff. We're going to see in the testing chapter.
6:33 There's also a couple of other things that I don't know where they fit. They don't belong to any of these particular categories,
6:38 but they're worth talking about and they're worth spending a little bit of time on.
6:41 So we're gonna spend a final chapter here just doing like kind of a grab bag
6:45 of awesome features and tools that you should know about that don't fit clearly into profiling
6:50 or web or whatever. And finally we're going to see how to take Py Charm as it is an extended to be even more.
6:57 There are many, many plug ins that we can add to PyCharm to make it exactly like we want. You wish it had Vim key bindings Well you can
7:05 get the Vim plug in, you wish that it had AI- based refactoring support well, you can get a plug in for that.
7:11 There's all kinds of cool things to extend the type of files that understands and other
7:15 capabilities. We're gonna do a little quick survey of some of the cool plug ins
7:18 that you can get for PyCharm. That's it. We're going to talk about so many things. There's so much to cover as you go through this course.
7:25 I think you're going to really see how PyCharm can do more and more for you as you work on your Python apps.

Talk Python's Mastodon Michael Kennedy's Mastodon