0 / 91
Week 1 · Day 2 of 91

Install and verify the toolchain

Orientation, CLI, and the Web

Objective

Set up a safe local environment and verify each tool from the terminal.

Treat the web as a connected system: the browser is a control panel, HTTP is the protocol, the server is the controller, and the database is persistent storage.

  • editor, terminal, browser DevTools
  • Node.js and Git versions
  • working folders versus installed programs

Why this matters

Today you turn your computer into a workshop. By the end you will have the three tools every developer uses all day — an editor, a terminal, and browser DevTools — installed and verified, meaning you have proof each one works rather than a hope that it does.

Verification is the real lesson. "I installed it" is a belief. "I ran the command and it printed version 22.11.0" is evidence. That distinction will save you entire evenings later.

The three tools you actually need

The editor — where you write code

A code editor is a text editor that understands code: it colours syntax, spots errors, and opens a whole project folder at once. VS Code is the common choice and what this course assumes. Download it from code.visualstudio.com and install it like any other application.

An editor edits files. It does not run them. That is the terminal's job.

The terminal — where you run things

The terminal (also "shell", "command line", "console") is a text interface to your computer. You type a command, press Enter, the computer does it and prints the result.

  • macOS: the Terminal app, or press Cmd+Space and type "Terminal".
  • Windows: use PowerShell, or install WSL for a Linux-style shell.
  • Linux: your terminal emulator of choice.

VS Code has one built in — Ctrl+` — which is convenient because it opens already pointed at your project folder.

The terminal is your bench multimeter

The GUI is the equipment's front panel: convenient, but it only shows what the designer chose to expose. The terminal is probing the board directly — you can measure any point, and the reading you get is the actual value, not a summary. When something misbehaves, you reach for the probe.

DevTools — where you inspect the browser

Every browser ships with DevTools, a panel that shows what a page is really made of and what it is really doing on the network. Open it with F12, or right-click any page and choose Inspect. You will live in it on Day 6; today just confirm it opens.

The two things you install today

Node.js — JavaScript outside the browser

JavaScript is the language browsers run. Node.js is a program that runs JavaScript outside the browser, on your own machine — which is how you will build servers from Week 6. Installing Node also installs npm, the tool that downloads code libraries other people wrote.

Install the LTS version from nodejs.org. LTS means Long Term Support: the boring, stable one. Boring is correct for tools.

Git — the history keeper

Git is source control: it records every change to your code so you can review, undo, and share it. You met it as a concept on Day 1; from Week 2 you use it daily. Install from git-scm.com.

Walkthrough: verify, don't assume

Open a terminal and type each command, pressing Enter after each. Type them yourself rather than pasting — the muscle memory matters.

node --version
v22.11.0

Your number will differ. That is fine — what matters is that a version number appeared. That output is proof of three separate facts: Node.js is installed, your terminal can find it, and it runs well enough to report on itself.

git --version
git version 2.46.0

The --version pattern is near-universal for command-line tools, and it is the standard way to answer "is this thing installed and reachable?"

"command not found"

If you see command not found or is not recognized, the tool is either not installed or your terminal does not know where to find it. The usual fix is the one that feels too simple: close the terminal completely and open a new one. A terminal reads the list of program locations when it starts, so one opened before the install has a stale list. If a fresh terminal still fails, the install did not finish — run the installer again.

Now tell Git who you are. It stamps your name on every change you record.

git config --global user.name "Your Name"
git config --global user.email "[email protected]"

These print nothing when they succeed. Silence is success — a very common convention in command-line tools. Check it took:

git config --global user.name

Checkpoint

Three commands, three pieces of evidence: a Node version, a Git version, and your name echoed back. If any one is missing, stop and fix it now — every later day builds on these.

Programs vs. project folders

One idea that confuses nearly everyone at the start.

Installed programs (Node, Git, VS Code) live in system locations and are available everywhere on your machine. You install them once.

Project folders are ordinary folders holding your files for one project. They are not special, and nothing is installed into them by existing.

Tools and workbenches

Node and Git are the drill and the soldering iron — you own one of each and carry them to whatever you are working on. A project folder is a workbench with one job's parts laid out. You can have many workbenches; you do not buy a new drill for each.

So a project folder is just a folder you chose. Making one is genuinely as simple as making a folder.

Your turn

  1. Create a folder named fullstack-journey somewhere you will find it again — your home folder or Documents. Use your file manager or the terminal, either is fine.

  2. Open it in VS Code: File → Open Folder, then pick it. The sidebar now shows the (empty) folder. That sidebar is your project.

  3. Open VS Code's terminal with Ctrl+</kbd>. It starts inside fullstack-journey`.

  4. Create a new file called setup-notes.md. The .md extension means Markdown — plain text with light formatting.

  5. Run node --version and git --version again, and write the real output into setup-notes.md, with a line in your own words about what each proves. For example:

    # Setup notes
    
    - `node --version` → v22.11.0
      Proves Node.js is installed and my terminal can find it.
    - `git --version` → git version 2.46.0
      Proves Git is installed and ready to record changes.
    
  6. Add one line naming your editor and one naming how you open DevTools.

Never paste secrets into notes

Your notes will end up in Git, and things in Git are hard to fully erase. Version numbers and tool names are safe. Passwords, API keys, and tokens are not — no exceptions, not even temporarily.

Tutor mode, before you run anything unfamiliar

"I am a beginner. Explain what each setup command does before I run it. Do not provide destructive commands." Ask before running, not after breaking. A command you cannot explain is a command you should not run.

Common pitfalls

  • Installing, then not restarting the terminal. The single most common cause of "I installed it but it says command not found."
  • Downloading "Current" instead of "LTS". Current is the experimental line. Take LTS.
  • Confusing the editor with the running program. Saving a file changes it on disk; it does not run anything. Running happens in the terminal.
  • Keeping projects on the Desktop in a folder called new folder (2). Pick one sensible location now. You will thank yourself in Week 7.

Verify it yourself

Open today's reference, MDN's Getting started with the web, and find its section on installing basic software. Compare its list to what you installed.

  1. MDN suggests a couple of tool categories this lesson did not require. Which, and can you say why today's lesson skipped them?
  2. Find MDN's advice about where to store your project files. Does your fullstack-journey location match it?

Adjust your setup if MDN convinces you. Note in setup-notes.md what you changed and why — recording why is a habit worth starting on day two.

The hour

  1. 0–5 min Recall

    Without notes, state yesterday’s main idea and one unresolved question.

  2. 5–20 min Learn

    Read only the listed concept notes and official reference sections needed today.

  3. 20–48 min Build

    Create a folder named fullstack-journey. Open it in the editor, then record the output of node --version and git --version in setup-notes.md.

  4. 48–55 min Explain and verify

    Run the result, inspect evidence, and explain the data/control flow in your own words.

  5. 55–60 min Quiz and commit

    Complete the quiz, record one lesson, and commit the verified change when applicable.

What to hand in

Deliverable

A setup-notes.md file containing verified versions and no copied secrets.

Working with AI today

AI as tutor

Ask for explanations, analogies, questions, and hints. Do not request a complete finished solution first.

I am a beginner. Explain what each setup command does before I run it. Do not provide destructive commands.

References

End-of-day quiz

Q1 What does node --version verify?
Q2 Which result best proves today’s work is complete?
Q3 What is the best tutor-style AI request?

Explain-back gate

Pass the quiz above to unlock completion.

Quiz + explain-back checks required.