Effective PyCharm Transcripts
Chapter: Conclusion
Lecture: You've done it!

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


Talk Python's Mastodon Michael Kennedy's Mastodon