Mastering PyCharm Transcripts
Lecture: You've done it!
0:02 Look at that, it's the finish line!
0:04 You've done it, you've finished this course.
0:06 I hope you really learned a lot,
0:08 because you now possess many of PyCharm's superpowers.
0:12 All of these amazing things that PyCharm does,
0:15 you've now seen in action, you have these hands-on your turns to try them.
0:21 So, let's go and review what you've learned.
0:24 We began looking at the concept of IDEs in general,
0:28 we talked about the spectrum of editors and the value that IDEs bring.
0:32 We talked a little bit about are they fast and what you define as fast,
0:37 is that literally the launch speed of the application
0:40 or how fast you write code, what you're optimizing for, things like that.
0:43 We began our actual exploration of PyCharm
0:46 by focusing on working with projects, large and small,
0:51 we checked out some very complicated,
0:55 nested directory structure that required some arrangements
0:58 using the Jumpstart demo code and things like that.
1:02 We saw that there's a ton of really powerful navigation features
1:06 around navigating across files in your project,
1:09 finding usages, go to declaration and things like that.
1:12 So you really start with the projects, right,
1:15 that's where you're going to create your files and write your code.
1:18 Writing code, well that's the editor
1:20 and we saw the editor has a whole bunch of amazing features
1:22 and we honestly just touched on some of them,
1:25 we can't really be exhaustive here, we'd just go on and on,
1:27 but he editor is really powerful, great syntax highlighting,
1:30 code formatting, code completion,
1:34 documentation generation and all kinds of stuff.
1:37 So the editor really, really great and of course,
1:40 front and center in PyCharm is —
1:42 We worked with source control and we focused on git and github,
1:45 we saw that many source control systems are supported here
1:49 but of course, git is sort of the source control de jour,
1:53 so that's what we were playing with.
1:55 And, we saw that we can do branching,
1:58 we can see even inside the editor the changes
2:01 that are not committed to source control,
2:05 so we have green bars for code that's new,
2:08 we have bluish bars for code that has changed, things like that.
2:11 Refactoring is a really powerful technique,
2:16 but you need a proper editor and the thing that understands
2:19 the abstract syntax tree of all your files
2:22 to make this work reliably and safely.
2:24 Remember, refactoring is not just change your code to find and replace,
2:29 it actually understands how your code is used and changes it.
2:33 In this section we saw really awesome refactoring tools just around Python,
2:41 and other things that are supported within PyCharm as well.
2:44 The relational database support in PyCharm is really unrivaled,
2:50 it's so amazing, the tooling that you get just for exploring the data is great,
2:55 the tooling that brings the schema of your database
2:58 back into your Python code for those embedded SQL strings,
3:02 that just blows my mind, and continues to delight me every time I see it.
3:07 Python is a premiere language for writing web applications,
3:12 we talked about YouTube and Instagram,
3:15 and all these other amazing places,
3:17 and we broke our discussion of the web into two parts,
3:20 server side code, Pyramid, Flask, Django, that type of things,
3:23 with the page templates, and support for project structure
3:26 like setup.py in Pyramid or manage.py in Django,
3:29 and there are all sorts of great support that we covered here.
3:40 we talked about less, saas, TypeScript,
3:43 so many things on the web side that you get.
3:46 And remember that somewhat comes from PyCharm
3:49 and that somewhat comes from WebStrom
3:51 which is a subset or embedded within PyCharm.
3:55 The debugging, the visual debugging is really powerful and awesome,
3:59 and it's honestly one of the reasons
4:02 I come back and back to working with PyCharm.
4:05 One of the other is the really great autocomplete and support around that as well,
4:10 those are probably my two favorite, most amazing things that PyCharm does.
4:14 In Python, packaging is really important,
4:16 but it's a little bit tricky if you haven't done it a lot before,
4:19 and we saw there is a lot of support, both directly in creating new packages
4:23 and actually in the refactoring for converting two and from packages.
4:28 When you want your code to go fast,
4:31 sometimes it's really hard to use your intuition to know
4:34 where it's slow, where it's fast,
4:37 I've tried to take a guess at this before and failed many times,
4:40 so you need tools to visualize how your code is running,
4:43 where it actually is fast and when you make a change,
4:45 what does that change do.
4:48 So the profiling tools, the visual profiling tools in PyCharm
4:50 are pretty straightforward and simple, but really powerful
4:53 and I definitely encourage you to use them when it makes sense.
4:58 Unit testing is really important,
5:01 it's extra important when you're working with dynamic languages like Python,
5:04 and we saw PyCharm supports the whole breadth of testing options in Python,
5:11 the builtin unittest, obviously, but PyTest, Tox and a bunch of other things, really great.
5:17 If you are a data scientist, PyCharm has this special data science mode
5:22 it has the science view, it has its special debugging for regular Python code,
5:26 as well as it has builtin support, and help for Jupyter notebooks.
5:31 There are some things that didn't really fit into what we talked about so far,
5:37 like the terminal window or various other little windows and tools,
5:43 so we threw a few in here, the Python console, stuff like that.
5:47 We saw that if the things that we've talked about so far
5:51 are not doing what you want, and you want something more,
5:54 there is a whole bunch of plugins that you can get for PyCharm and add them on,
5:59 you want Vim mode, go get a plugin for that.
6:01 You want NodeJS support, go get a plugin for that.
6:04 One that I use is Nginx for working with Nginx configuration files,
6:09 that's really nice that you get some help there when you're working with those things,
6:13 so tons and tons of plugins, and really great that those are out there.
6:17 Look at all these things you've learned,
6:20 and honestly, we really didn't cover everything,
6:23 there is actually a bunch of other features that I left out of this course,
6:27 just for the sake of time and focus and so on.
6:30 These are your superpowers, you can now go and apply all of them
6:35 at the same time within one tool against your project,
6:38 and let me tell you, you can go build something awesome,
6:41 so get out there and do it.