The Jupyter Project¶
Today, if you use more than one programming language for data science, you probably also use different programs to edit and interact with those programs. R users, for example, often use RStudio, while Python users use Spyder, and Julia users use Juno.
But in recent years, an amazing effort has been underway to provide a single set of tools that work with nearly any underlying programming language: Jupyter (as in Ju (Julia) - py (Python) - teR (R)).
The idea of Jupyter is to separate the interface you are working with from the underlying programming language doing your analysis. This makes it possible to create one interface (a text editor, a window where results are displayed, etc.) that can be used to run your analyses in any number of different programs. In the Jupyter ecosystem, the program being used to actually run your analysis (i.e., Python, R) is referred to as a kernel.
(Note: Jupyter Notebooks used to be called IPython Notebooks before they expanded to support more languages, so if you see people talking about IPython Notebooks, just think of that as an early, Python-specific version of Jupyter Notebooks.)
Jupyter Notebooks are a tool for easily integrating text, code, and code output into a single document. This not only makes them incredibly useful for instructional materials (this entire site is actually built with Jupyter Notebooks), but it also makes them useful as a method of sharing analyses. Using Jupyter Notebooks, you can not only share the conclusions of your analysis with colleagues, but also the code that generated those analyses, making it easy for others to see how you reached your conclusions, and, crucially, play with that code to see what happens if the analysis is changed slightly. Indeed, Notebooks are so useful for sharing analyses that they’ve become the de facto standard for sharing information at many companies, including Netflix.
OK, I know, that all sounds really abstract. What makes Jupyter Notebooks special is their interactivity, so it’s hard to understand their value without seeing them in action.
Jupyter Notebook Tutorial¶
To learn the basics of Jupyter Notebooks, please watch watch this tutorial.
However, obviously this tutorial is being done in the native Jupyter notebooks environment. In this course, though, we’re going to try and focus our attention on a single editor so you have an opportunity to get really good at it: VS Code! Thankfully everything works roughly the same in VS Code as in the native environment, so feel free to follow along with the tutorial in VS Code.