2026-03-14

If you’re starting to code and use Windows, this guide will set up your machine with everything you need for a professional development environment.
We’ll install, configure, and understand each tool: from the terminal to the code editor, from version control to the AI tools that will accelerate your learning.
Warp is the most modern terminal available for Windows. Built in Rust, GPU-rendered, and with built-in artificial intelligence, it’s the equivalent (and many say superior) of iTerm2 on Mac.
Unlike the standard Windows Terminal, Warp organizes each command into navigable blocks, has smart autocomplete, AI-powered suggestions, and even lets you share terminal sessions with others.
If you prefer to install via terminal, open PowerShell and run:
winget install Warp.Warp
After installing and opening Warp:
Ctrl + Space to ask for help in natural language. E.g.: “how do I list all .js files in this folder?”Ctrl + R to search through history with fuzzy searchGit is the version control system every programmer uses. It’s how you save your code history and collaborate with others.
mainOpen Warp (or PowerShell) and configure your name and email:
git config --global user.name "Your Name"
git config --global user.email "youremail@example.com"
git --version
You should see something like git version 2.47.1.windows.1.
VSCode is the most used code editor in the world. It’s free, lightweight, and has thousands of extensions.
code --version
Open VSCode and press Ctrl + , (comma) to open Settings. Search for and enable:
| Setting | Value |
|---|---|
| Auto Save | afterDelay |
| Tab Size | 2 |
| Format On Save | enabled |
| Word Wrap | on |
WSL (Windows Subsystem for Linux) lets you run Linux inside Windows. With it, you get access to a real Linux terminal, with Zsh (a more powerful shell than Bash) and Oh My Zsh (which makes everything beautiful and productive).
Open PowerShell as Administrator (right-click the icon > “Run as administrator”) and run:
wsl --install
This installs WSL 2 with Ubuntu automatically. Restart your computer when prompted.
After restarting, Ubuntu will open automatically asking you to create a username and password. Choose something simple you’ll remember. The password doesn’t show while you type: this is normal in Linux.
After setting up WSL, go back to Warp and go to Settings > Features > Session to change the default shell to WSL / Ubuntu.
With Ubuntu open in the terminal, run:
sudo apt update && sudo apt install zsh -y
Set Zsh as the default shell:
chsh -s $(which zsh)
Close and reopen the Ubuntu terminal.
Oh My Zsh adds themes, smart autocomplete, and shortcuts to the terminal:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
When asked if you want to change the default shell to Zsh, answer Y (yes).
These two plugins will greatly speed up your daily workflow.
zsh-autosuggestions: suggests commands as you type:
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
zsh-syntax-highlighting: colors commands in the terminal:
git clone https://github.com/zsh-users/zsh-syntax-highlighting ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
Now activate the plugins by editing the configuration file:
vim ~/.zshrc
Find the line that says plugins=(git) and replace it with:
plugins=(git zsh-autosuggestions zsh-syntax-highlighting)
Save with Ctrl + O, Enter, and exit with Ctrl + X. Then reload:
source ~/.zshrc
Powerlevel10k is the most popular and beautiful theme for Zsh.
First, install a Nerd Font (a font with special icons):
.ttf > Install)Ctrl + ,, search for terminal font and enter MesloLGS NFNow install the theme:
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
Edit ~/.zshrc:
vim ~/.zshrc
Find the line ZSH_THEME="robbyrussell" and change it to:
ZSH_THEME="powerlevel10k/powerlevel10k"
Save and reload:
source ~/.zshrc
The Powerlevel10k wizard will open automatically. Follow the prompts to customize the look of your terminal.
Ctrl + Shift + P, type Terminal: Select Default Profile and select Ubuntu (WSL)Now your VSCode integrated terminal will use Linux with Zsh. To open a WSL folder in VSCode, run in the Ubuntu terminal:
code .
Node.js lets you run JavaScript outside the browser. nvm (Node Version Manager) lets you install and switch between Node versions easily.
Install Node inside WSL (Ubuntu), not on Windows. This avoids compatibility issues.
In the Ubuntu (WSL) terminal, run:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
Close and reopen the terminal, then verify:
nvm --version
Install the LTS version (most stable) and version 22 (required by some tools):
nvm install --lts
nvm install 22
Set the LTS version as default:
nvm alias default lts/*
node --version
npm --version
npm (Node Package Manager) comes bundled with Node. It’s what you use to install JavaScript libraries and tools: think of it as a parts store for programmers.
Open VSCode and install these extensions (click the grid icon in the sidebar or press Ctrl + Shift + X).
| Extension | What it does |
|---|---|
| WSL | Connects VSCode to your Linux (WSL) |
| Live Server | Opens your HTML in the browser with auto-refresh |
| Prettier - Code Formatter | Formats your code automatically |
| ESLint | Catches errors in your JavaScript |
| Auto Rename Tag | Renames HTML tags automatically |
| Color Highlight | Shows the actual color of color codes (e.g., #ff0000 appears red) |
| Material Icon Theme | Beautiful icons for files |
| Extension | What it does |
|---|---|
| GitLens | Shows who made each change in the code |
| Error Lens | Shows errors directly on the code line |
| Path Intellisense | Autocompletes file paths |
| Thunder Client | Test APIs without leaving VSCode |
GitHub is where programmers store and share code. It’s like a Google Drive for code.
After creating your account, set up SSH authentication so you don’t have to type your password every time. In the Ubuntu (WSL) terminal:
ssh-keygen -t ed25519 -C "youremail@example.com"
Press Enter on all prompts (accept the defaults). Copy the public key:
cat ~/.ssh/id_ed25519.pub
Copy the text that appears. Go to GitHub > Settings > SSH Keys, click New SSH key, paste the key, and save.
Test the connection:
ssh -T git@github.com
You should see: Hi yourusername! You've successfully authenticated.
Inside Ubuntu (WSL), configure Git again: the Windows configuration doesn’t apply here:
git config --global user.name "Your Name"
git config --global user.email "youremail@example.com"
git config --global init.defaultBranch main
Inside WSL, create a folder for your projects:
mkdir -p ~/projects
cd ~/projects
Golden rule: always work inside the Linux filesystem (~/...), never in /mnt/c/.... Working inside /mnt/c/ is significantly slower.
Claude Code is an AI agent that runs directly in your terminal. It understands your project, edits files, runs commands, and helps you code as if it were a senior coworker.
curl -fsSL https://claude.ai/install.sh | bash
Verify the installation:
claude --version
irm https://claude.ai/install.ps1 | iex
Claude Code on native Windows requires Git for Windows, which you’ve already installed.
cd ~/projects/my-project
claude> claude
> Create an HTML page with a button that changes the background color when clicked
Claude Code will create the necessary files for you.
Codex is OpenAI’s AI agent for the terminal. Like Claude Code, it can edit your files and run commands.
Make sure you’re using Node 22:
nvm use 22
Install globally:
npm i -g @openai/codex
cd ~/projects/my-project
codex| Claude Code | Codex | |
|---|---|---|
| Company | Anthropic | OpenAI |
| Model | Claude | GPT / o3/o4-mini |
| Installation | Standalone installer | Via npm |
| Requires Node | No | Yes (22+) |
| Plan | Pro/Max/Teams/Enterprise | ChatGPT Plus or API key |
Both are excellent. Try them both and see which one you feel more comfortable with: many developers use both.
After following the entire tutorial, check that everything is working. Run these commands in the Ubuntu (WSL) terminal:
git --version # Git installed
node --version # Node.js installed
npm --version # npm installed
nvm --version # nvm installed
zsh --version # Zsh installed
claude --version # Claude Code installed
codex --version # Codex installed
code --version # VSCode accessible from terminal
If all of them return a version, your environment is 100% set up.
┌──────────────────────────────────────────────┐
│ Warp (AI-powered terminal) │
│ ┌────────────────────────────────────────┐ │
│ │ Ubuntu (WSL 2) │ │
│ │ ┌──────────────────────────────────┐ │ │
│ │ │ Zsh + Oh My Zsh + P10k │ │ │
│ │ │ ┌────────────┐ ┌─────────────┐ │ │ │
│ │ │ │ Node.js │ │ Git │ │ │ │
│ │ │ │ (nvm) │ │ │ │ │ │
│ │ │ └────────────┘ └─────────────┘ │ │ │
│ │ │ ┌──────────────────────────────┐│ │ │
│ │ │ │ Claude Code | Codex CLI ││ │ │
│ │ │ └──────────────────────────────┘│ │ │
│ │ └──────────────────────────────────┘ │ │
│ └────────────────────────────────────────┘ │
│ │
│ ┌────────────────────────────────────────┐ │
│ │ Visual Studio Code (with WSL ext.) │ │
│ └────────────────────────────────────────┘ │
└───────────────────────────────────────────────┘
Now that your environment is ready, you can:
Happy coding!