Workspace Setup
To make starting out with programming easier, we encourage a somewhat unified workspace setup. That's not to say that there is a "right" way of how that should look like, individualism is very much welcome. But for teaching purposes, being able to say "click on that menu, it will bring up what you need" is really nice. Therefore, there is a recommended starting setup. Feel free to divert on any point, but be aware that it might make following the lessons harder.
Recommended starting setup
Our starting setup consists of the following pieces of software. We're providing a short explanation as to why we are choosing these specific technologies in each of the subpoints.
Some Linux console
Whenever possible, we recommend that people get used to Linux and command lines early on, since most servers they will ever interact with are probably running Linux. There are two easy ways of doing so:
- Directly running a Linux distro (pick your poison, Ubuntu is popular for beginners)
- Running Linux over the Windows Subsystem Linux (requires Windows 10)
Git as source code management tool
We feel that Git is a good starting point for the world of source code management, and while many graphical tools exist and many of them will cover everything you need on a day-to-day basis, having a bit of experience with the command line tool can help a lot in understanding what the whole process actually does, and to fix more complicated issues. Therefore, we will start out using git just via the linux command line.
Node.js, npm
Much of our course is focused on JavaScript. Node.js is by far the most mature and stable engine for running JavaScript on a server, so we'll make use of it. While there are quite a few good alternatives to npm, it installs right next to Node.js and is mostly still considered the "default" package manager - so at the very least, we'll learn the basics of how to use it.
Visual Studio Code
This might be a more contested choice, especially since there are many great alternatives. Our criteria ended up being:
- Free to use
- Easy to set up
- Good IDE experience (syntax highlighting, smart suggestions, plugins etc)
- Good integration with Linux on a Windows machine
Visual Studio Code fits the bill well ¯\_(ツ)_/¯