1.3. To follow along#

1.3.1. Requirements#

This document assumes that you have a unix-like operating system (Linux, macOS, not Windows but see About Windows), so that you have access to a terminal (see Bash). To follow along the presentations of each tool, you will need a source code editor 1. There are a plethora of choices.

In the following, I will often point out how each tool integrates with VS Code and its extensions, because this is the editor I use and recommend, but taste and colours are not always the same, so here is a non-exhaustive list of other free, cross-platform and multipurpose source editors.

See this Wikipedia article for more editors.

1.3.2. Visual Studio Code#

VS Code is a free code editor that can be used with a great variety of programming languages. One of its main advantages is its great extensibility. On its own, it is a relatively simple source editor, but anyone can write extensions to add new features into VS Code, improving support for programming languages or adding new functionalities, to the point it can become a full Integrated Development Environment (IDE) for most programming languages. Where to start#

Let’s start from the beginning, you need to install VS Code on your workstation and learn how to use its basic editing features. Since I will not do better than the documentation, I refer to their Setup page for the installation procedure, while you can look at their Get Started page and Basic Editing page for basic editing features.

I want to highlight the Tips and Tricks page, where it is mentioned for example that you can learn how to use basic editing (and more) using walkthroughs (on the right in the landing page of VS Code).

In particular, the walkthroughs “Get Started” and “Editor Playground” are really nice, you will learn how to

  • use the command palette Ctrl/Cmd+maj+P 2 to call in VS Code command (and that is very very very important),

  • change the look of the editor,

  • save and sync the settings of VS Code,

  • use multi-cursor, snippets, intellisense, …

  • and much more! Extensions to help you start#

Once you took a look at the previous references, you should know how to install extensions on the marketplace (View > Extensions otherwise). I will only give here some extensions that I think are generally useful and that I used to write this document.

  • Project Manager can be used to define “Projects” (or auto-detect git repositories and define a project for each one), which in practice means you can open a project folder easily in a VS Code window (either using Project Manager: List Projects to Open in the command palette, or directly in the Side bar on the left).

  • LTeX provides spelling, styling and grammar checking for several programming languages (\(\LaTeX\) included) in several languages (more than 20 supported languages!) using LanguageTool. I wonder if people really understand how amazing it is.

  • Live Share enables sharing your editor in real time remotely, meaning you can invite people in your VS Code window, and collaborate directly writing code together. In practice, everyone can independently move around and edit files, you all have a cursor, and you can also follow a particular person as he makes edits and move around in the project. It is obviously useful for pair programming and teaching.

  • Better Solarized is a good theme (a look for VS Code) I use, but again, taste and colours are not always the same. The point is you can use another theme than the default one.

  • Draw.io Integration to integrate diagram.net in VS Code, which means you have a graphical interface in VS Code to draw diagrams and more.

  • :emojisense: to easily insert emojis (Why not? 😛 )

I will recommend more specific extensions when introducing each tool later on.

1.3.3. About Windows#

I recommend using a unix-like operating system to code, because most of the tools for programmers are tailored for this.

If you still want to use Windows, there are actually alternatives to a full unix-like system.

  • Recent versions of Windows actually comes with an “embedded Linux kernel”, this feature is called Windows Subsystem for Linux (WSL). You can run a GNU/Linux environment directly on Windows, but this is not enabled by default. I refer to its documentation for the installation, but I want to highlight the tutorial part of the documentation, and more precisely the page on Best practices for set up which gives a lot of information.

  • There exist tools that provide a unix-like environment on top of Windows: Cygwin and MinGW-w64 for example.

  • Another option is to install Linux with a dual boot, but it may be quite involved.

In the context of this document, I suspect the first solution is easier to use since it is directly supported by Microsoft, and the goal is just to try the tools introduced later on. Besides, Visual Studio Code has support for WSL via the Remote -WSL extension.


Or at least you need to be able to modify files somehow. But if you are here, I guess you will not just use bash commands to do that, so a source editor is probably more suited.


It means Ctrl, except on macOS where Cmd should be used instead.