When it comes to operating systems and software tools, put two software engineers in a room and you’ll get (at least) three opinions on what the best tool stack is! Across all of the engineers at digiLab, I don’t think any of us use the exact same tools in our development environments - so, there are generally no hard and fast rules on what works best.
Probably the most fundamental decisions are what operating system and development environment to use.
The headline from this lesson is that you should use whatever operating system and development environment you feel most comfortable with.
If you’ve got some coding experience or already work with Python, keep using what works for you. But if this is all new to you, we’re going to make some recommendations to help you get up and running with as little friction as possible.
Chances are you’re already familiar with one particular operating system so that’s not even a choice you really have to make. You’ll find that most of the Academy tutors will use MacOS, but everything can be just as easily accomplished on Windows or Linux. The only real difference will be when you install packages but that in itself is a simple procedure regardless of the operating system.
The next decision is what to write your code in. There are a lot of options; at one end of the spectrum, we have relatively simple code editors that provide syntax highlighting but little else. Sublime text is a good example here. At the other end of the spectrum, we have tools like PyCharm, which is a fully featured integrated development environment (IDE) specifically for working with Python.
In all of our data science courses, we’re going to be using Jupyter Notebooks. A Jupyter Notebook is a specific file format that is exceptionally popular with engineers and data scientists and we’ll dive into them a little later in the course.
I mention them now because this means there are really only two front runners for what we should write our Python code in, Jupyter Lab or Visual Studio Code (VS Code). Jupyter Lab is a development environment specifically developed for working with Jupyter Notebooks, and it has many of the features that one would expect from a modern IDE.
Visual Studio Code
VS Code is another extremely popular IDE developed by Microsoft. It is lightweight and has excellent support for Jupyter Notebooks. Generally speaking, VS Code is more versatile than Jupyter Lab, more popular with developers across more languages and has an excellent extension eco-system.
Although I use VS Code for my non-Python development work, my personal preference for working with Notebooks is probably Jupyter Lab, but I was outnumbered! The rest of the digiLab team is on team VS Code all the way! To be fair, VS Code actually has some nice Notebook features not natively available in Jupyter Lab. So we’ll be using VS Code throughout, but you can happily code along with any Academy course using whatever development environment you prefer.
I guess I should also say that, technically, you don’t have to use Jupyter Notebooks. You could write all of your code in pure Python (.py) files. But there’s a reason Notebooks are so popular in the data science community, which you’ll come to appreciate. So for now, just trust me, Notebooks are the way to go - everything else is up to you!