Mastering PyCharm Transcripts
Chapter: Why PyCharm and IDEs?
Lecture: Welcome to Mastering PyCharm

Login or purchase this course to watch this video and the rest of the course contents.
0:01 Hello and welcome to Mastering PyCharm.
0:03 In this course, we're going to look at all the different features
0:06 of one of the very best Python IDEs— PyCharm,
0:10 and see how you can make the most of this super powerful editor.
0:14 Let's jump right into what we're going to cover.
0:16 First thing we are going to talk about is
0:19 why do we want to use an IDE, what value does some large,
0:22 heavyweight application like PyCharm bring and why would we want to use it.
0:26 You'll see there's many reasons and you'll definitely want to use
0:29 many of the features that are there,
0:31 but let's talk about the various types of editors we can use
0:34 and what the trade-offs are there.
0:37 When we're working with PyCharm,
0:39 we're focused on this idea called projects,
0:42 this is like a group of Python files and associated other
0:45 static and data files that all work together,
0:47 there's many of the features in PyCharm that work at this level.
0:51 We're going to start by focusing on
0:53 creating new projects and working with all the files
0:56 and you'll see there's a bunch of configuration switches
0:59 we can set to make it be a little more effective.
1:02 Then we're going to jump right into
1:04 what I would say is the star of the show— the editor.
1:07 If you're writing code you need an editor,
1:09 you want to be typing and manipulating text,
1:11 of course, the editor has to be awesome,
1:14 we're going to focus on all the cool features that the PyCharm editor offers.
1:18 We'll see that source control in particular, git and subversion
1:22 are really deeply integrated into PyCharm,
1:24 there's all sorts of powerful things we can do
1:26 including actual github integration,
1:29 not just git but github integration into github issues and things like that.
1:32 We were going to focus on source control
1:34 and the features right inside the IDE that we can use
1:38 for git and github and things like that.
1:41 We're going to see that PyCharm is great at refactoring
1:44 this is changing our code to restructure it
1:47 to maybe be structured in a different way, to use a slightly different algorithm,
1:52 but not actually changing the behavior of the code;
1:55 we'll see there are many powerful techniques
1:58 in PyCharm that you can use to do this
2:01 and because it understands all of your files at once, it can safely do this,
2:06 it will even do this out in doc strings and things like that,
2:09 so we'll see how the tools that are working that's really quite amazing.
2:12 There is some really interesting database tooling
2:15 and database integration in PyCharm,
2:18 so you'll be able to interact with databases,
2:21 SQLite, MySQL, whatever, you can connect
2:25 all the different types of databases, these relational databases
2:28 and edit the data, edit the schemes and things like that,
2:32 and you'll even see that there's one really amazing feature
2:35 that makes its way back into the editor
2:37 when you're working with SQL strings in your Python code.
2:41 PyCharm is great at building web applications,
2:44 typically, this would be something like Django or Pyramid,
2:49 or Flask or something like that, but it also builds other types of web things,
2:52 it has a full Javascript editor and environment in there,
2:57 it could do TypeScript or CoffeeScript,
3:00 it could even do things like Electron js, so lots of really cool stuff in here.
3:04 Then we'll talk about all the both
3:07 server side and client side features, on the web in PyCharm.
3:10 You will see that it has a great visual debugger
3:13 so we are going to look at all the different features
3:15 that we can use to debug and understand our application
3:17 including some really powerful breakpoint operations
3:20 that typically editors don't have.
3:23 In Python, we use the concept of packaging
3:26 to bundle up and share and reuse our libraries,
3:30 we'll see that PyCharm has a ton of features
3:32 to make and understand these packages,
3:35 so it understands the file structure of packages, how to do automatic imports,
3:38 they also do things like automatically generate you a setup.py
3:42 so people can install and configure your package and not just copy the files over;
3:46 so all sorts of good stuff there, we'll talk about that.
3:49 Profiling is really important if you want to understand how your code is running,
3:54 if your application is slow and you want it to go faster,
3:57 you really shouldn't guess, you'll see that it's easy to look at code
4:03 and think that this is the slow part and that's the fast part
4:05 but sometimes that's just not the case, and our intuition is often bad
4:08 and so we use tooling, profiling in particular, to understand the performance,
4:13 you will see that PyCharm has some really great built-in visual types of tools
4:18 for us to basically understand the performance of our app.
4:22 It has great built-in test runners for PyTest,
4:25 for the built-in unit test and a number of others that we're going to see,
4:30 so if you are doing any sort of unit testing or integration testing,
4:33 that's built in and we'll explore some of the really cool features,
4:36 like for example, there is one feature you can turn on for auto test running
4:40 and so if it knows that you are changing certain parts of your code
4:44 it will automatically re-run the test, just as you type in the background
4:49 and tell you basically, on the side continuously,
4:52 "Your code is good" or, "Your code is bad."
4:54 We'll see how to do that and a bunch of other cool stuff in the testing realm.
4:59 They've integrated Jupyter notebooks and a special data science view
5:02 with really cool documentation and all sorts of stuff to help you explore your data,
5:06 we're going to talk about the data science tools
5:09 and how those appear in PyCharm.
5:12 There is a couple of additional tools that don't really land
5:15 in any of these other categories that I have defined here,
5:17 so I just made a "Here is the stuff that didn't fit in any of the boxes I created"
5:21 I threw this at the end, additional tools,
5:24 so there's a few other really cool, handy things that don't really
5:27 classify themselves as fitting in with the others, so we'll talk about those.
5:30 Last but not least, there's hundreds of plugins
5:33 that you can get for PyCharm to make it do other things,
5:36 like for example do you want it to have like Vim key bindings—
5:39 great, go get the Vim plugin and plug it in
5:42 and you've got Vim bindings for your editor, things like that.