Virtual Environment: Have you ever made the same dish in two different ovens and discovered that it tasted just a little different between the two? Have you ever washed the same clothes in two different washing machines and found that your clothes felt slightly different after they came out of one washing machine vs. the other? A similar phenomenon can happen when you're building Python applications. It's possible for the exact same app to behave differently from one computer to the next due to differences between them. In fact, the same Python program might even behave differently if you run it on the same computer— if you update that computer in between the times that you run your app. Virtual environments solve this problem. A virtual environment is a place on your computer where you can run a program and have confidence that the program will always behave the same way. It's kind of like a special canister in a larger washing machine that makes sure that your clothes turn out perfectly every time. I strongly recommend doing all Python development in a virtual environment. To learn more about virtual environments, check out this extensive blog post.