Required Software
This document outlines required software for Coding Bootcamp. Please install this software before starting the course unless instructed otherwise.
- 1.Please install the latest version of Windows or MacOS that your computer supports.
- 2.If you haven't already, please obtain and install Fundamentals required hardware, software and accounts.
WSL allows us to run the Linux operating system on Windows machines. We do this because most programming uses Unix-based operating systems, of which MacOS is a descendant. Most SWEs that use Windows do their work in WSL to maximise compatibility between their work and work done on Linux machines. Before installing WSL, update Windows to the latest version.
- 1.
- 2.Install the latest version of Ubuntu here. Ubuntu is a popular version of the Linux operating system.
- 3.Run
sudo apt install build-essential
in Ubuntu in WSL to install standard libraries Ubuntu needs to further install common packages. - 4.Run
sudo apt-get install ca-certificates
in Ubuntu in WSL to get SSL verification certificates on Ubuntu for Ubuntu to communicate with VS Code on our computer.
- 1.
- 2.Click the Remote Development extension icon in the bottom left corner of VS Code. A pop up will appear with a list of options. Click the first option "Remote-WSL: New Window" for the default distro.
You will see a notification "Starting VS Code in WSL...". This means VS Code is setting up a server inside WSL for the first time. Once installed, the VS Code of your Windows OS will sync automatically with the VS Code of your Ubuntu OS, and the VS Code terminal will show the Ubuntu terminal.
Homebrew is a package manager for MacOS that provides a single source of truth for which packages and package versions are installed. This is typically only relevant to command line packages; We typically do not install GUI applications via Homebrew.
Homebrew typically manages OS-specific packages, e.g.
node
, and not application-specific packages, e.g. react
. Application-specific packages are typically managed by application-level package managers such as npm
or pip
. Application-specific packages are typically bundled and deployed together with an application, regardless of where those applications are running.Windows
MacOS
Open an Ubuntu terminal in VS Code and run the following commands separately.
sudo apt-get update
sudo apt-get install git
# Verify correct installation by checking Git version
git --version
1. Download and install Git for MacOS
brew install git
2. Verify Git is installed by running
git --version
in the VS Code terminal. This should print out a version number on the next line, e.g., git version 2.9.2
.git --version
To install the Git Credential Manager you may need to allow "unidentified developer apps". Don't worry, Git Credential Manager is created by Microsoft. Instructions here.
If you are using a company computer for this course you may not be able to override the security settings. You may need to create a personal access token instead.
When using the HTTPS protocol on GitHub to retrieve repository information you will need to develop a personal access token on your GitHub account, you will then be able to use this token to authenticate your request. To create a personal access token please follow this set of documentation.
After you have created the personal access token be sure to save it in a safe spot as it will be required when authenticating requests to the GitHub servers. You will be prompted to pass your GitHub username and password when trying to push to repositories, use your Personal Access Token in place of your password.
Set the default Git branch to
main
as per GitHub's (and Rocket's) latest convention. Some older versions of Git may still use master
as the default branch name.git config --global init.defaultBranch main
- 1.
- 2.Set the default Git code editor to VS Code to avoid Git's default command line editor Vim, which requires learning Vim-specific keyboard shortcuts. We may need to use Vim on remote servers as SWEs, but to keep things simple during Bootcamp we will stick to VS Code.
git config --global core.editor "code --wait"
Set your GitHub account credentials on your computer through the command line. This will enable us to interact with GitHub via the command line, which we will do a lot. Please replace
<YOUR_GITHUB_USERNAME>
and <YOUR_GITHUB_EMAIL>
with your GitHub username and email.git config --global user.name "<YOUR_GITHUB_USERNAME>"
git config --global user.email "<YOUR_GITHUB_EMAIL>"
Type
git config -l
into the terminal to verify configuration success. If you see user.name
and user.email
in the output, we succeeded. If you see a :
at the bottom of the output, you may need to press Enter
until you see the lines starting with user.name
and user.email
.After configuring your GitHub credentials you will be able to access GitHub repositories and make requests, however you will be prompted for your username and password every single request. While this level of security is brilliant for companies it can be frustrating for the developers. To make your lives a tad easier you can run these commands in your CLI in order to save your credentials into the environment.
git config --global credential.helper store
git config --global credential.helper cache
After doing these commands you may need to go through git flow once before it has saved your credentials (including your personal access token, which should be used as a password when prompted for username and password.
Windows
MacOS
Open an Ubuntu terminal in VS Code and run the following commands separately.
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt-get install -y nodejs
Install Node.js using Homebrew using the following commands.
install
installs the package and link
makes the node
command accessible in our terminal. Run these commands separately. brew install node@16
brew link node@16
Prettier is a code formatter that will auto-format our code and make it more readable when we save our files.
- 1.
ESLint is a JavaScript code linter that helps us detect functional errors in our code prior to running it.
- 1.Install ESLint on your computer by running
sudo npm i -g eslint
from the terminal in VS Code. Enter your computer's password if prompted. - 2.
- 1.Open VS Code and open the command prompt with
Ctrl+Shift+P
on Windows orCmd+Shift+P
on Mac - 2.Start typing
Preferences: Open Settings (JSON)
and select this option when you see it in the search dropdown. VS Code should open a JSON settings file. - 3.Replace the contents of the file with the code below
- 4.Save the settings file
- 5.Restart VS Code to apply settings
settings.json
{
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true,
"editor.formatOnPaste": true,
"editor.tabSize": 2,
}
Rocket recommends the following folder structure to keep ourselves organised during Bootcamp.
Name files and folders in kebab-case, e.g.
new-file.txt
, lowercase and hyphenated for ease of use on the command line. We do not recommend naming files and folders with spaces in names because we will need to enter special characters in the terminal to escape the space character when referring to these files.Please do not store code in folders synced to cloud storage such as Google Drive or Apple iCloud. This will cause issues during Bootcamp, such as package installations running slowly or unnecessary extra files committed to GitHub.
- 1.Store all Bootcamp code in a folder called
bootcamp
. - 2.Within
bootcamp
, create a folderm1
for Module 1 and store all Module 1 exercise code there in exercise-specific folders. Our Project 1 repo folder can also go insidem1
. - 3.Make 3 copies of
m1
withinbootcamp
and rename themm2
,m3
, andm4
, 1 folder for each module in Bootcamp.
We will use the following software accounts during Bootcamp.
- 1.
- 2.
- 3.
Another way developers are able to authenticate requests to GitHub is to create and use an SSH key on their personal machines. This SSH key acts as a unique signature that can be linked to your GitHub account online, essentially creating a connection between your machine and GitHub when used. SSH keys require a little more setup than using HTTPS but they will not prompt you for authentication every single request.
Last modified 3mo ago