Dashboard

Audio Settings

1.0x
Status: Ready to play
System Voice Guide: To add Male/Veena/Ravi Indian voices on Windows, go to Settings > Time & Language > Speech and install the English (India) language pack.
Phase 0 — Setup
essay 0.1 of 3  ·  series: official roadmap structure

Your Complete
Development
Environment

Before you write a single line of real code, you need a cockpit. This essay builds yours — completely, correctly, and once.

Read Time ~25 minutes
Setup Time ~2 hours (one time)
Prerequisite None. This is the start.
Outcome Target A fully working dev machine
📋 Executive Mission Parameters Summary:
Professional software engineering begins with tooling setup. Writing, execution, tracing, testing, and deployment require a decoupled set of native tools operating in sync. A senior-grade developer machine must run a clean text editor workspace, environment runtimes, version controls, localized relational databases, and testing environments configured to match standard server environments. This module sets up your machine completely and correctly.

🗺️ Presentation Layer Phase 0 Progress Matrix Map

0.1 Dev Environment
0.2 Terminal Mastery
0.3 How Developers Think
⚡ Software Development Environment Pipeline

Visualizing how code travels from your brain to a local editor and then onto remote version systems:

Local Workspace VS Code Editor
Local Execution Node.js / Python
Local History Git VCS Repos
Cloud Warehouse GitHub Remote

📊 Primary Environment Telemetry Indicators:

🛠️ Workspace Standard: VS Code LTS
A fast, extensible source code editor supported with Prettier formatting and error-checking linting is the core cockpit.
🟢 Backend Core: Node.js Long-Term Support
Installing Node.js LTS ensures a stable, enterprise-ready server execution environment with package management resources.
🐧 OS Kernel: Unix Shell / WSL2 Ubuntu
Operating inside a Linux kernel on Windows guarantees that local commands and files match production cloud systems.
01

The Big Idea — Why your environment matters

A FAANG engineer doesn't "just open a laptop and code." They sit inside a precisely configured environment — tools that autocomplete their thoughts, catch errors before they run, track every change they make, and deploy code with a single command.

Most beginners ignore this step. They Google something, copy-paste a command, and end up with a half-working setup that causes mysterious errors six months later. You are not going to do that.

Your development environment is the sum of every tool on your machine that lets you write, run, test, and ship software. Get it right once, and every essay that follows becomes dramatically easier. Skip it properly, and you will waste hours debugging problems that have nothing to do with your actual code.

The Rahul Principle

You are building toward FAANG interviews where you might be asked to code on a screen share or whiteboard. Interviewers notice your environment. A clean, professional setup signals that you are serious. A messy, confused one signals the opposite.

This essay installs and configures everything. By the end, you will have: a professional code editor with smart extensions, Node.js and Python running on your machine, Git and GitHub connected, a working terminal, and PostgreSQL ready for databases. And you will understand why each piece exists — not just that it does.

02

Where This Fits — Your position in the journey

Here is where you are and where this is taking you:

0.1 — This Essay
1.1 — HTML Foundations
1.2 — CSS Layouts
... 59 more

Everything installed in this essay will be used in every single essay that follows. When Essay 1.1 asks you to open VS Code and write HTML, you will have it. When Essay 3.5 asks you to commit to GitHub, you will be ready. When Essay 6.2 asks you to run a Node.js server, Node will already be installed.

Don't skip ahead

The PDF says it clearly: every topic must be learned in order. This essay is the foundation the entire series stands on. Two hours here saves you twenty hours later.

The next essay (0.2) teaches you to be fast and comfortable in the terminal — the command line interface that all your tools live inside. Together, essays 0.1 and 0.2 are your Phase 0: Setup. After that, the real learning begins.

03

The Intuition — The Formula 1 cockpit analogy

Think of a Formula 1 driver. Before the race, they don't just sit down and start driving. They spend hours getting their cockpit exactly right — seat position, steering wheel angle, button layout, pedal feel, mirror angles. Everything is configured for maximum speed and minimum thinking.

Your dev environment is that cockpit. Every tool is a button or lever. Configure it once, and then everything flows. The code editor (VS Code) is your steering wheel — your primary interface. The terminal is your dashboard — it shows you everything happening under the hood. Git is your race data recorder — it logs every single change you make so you can always go back. Node.js and Python are your engines — they run your code. The browser and DevTools are your mirrors — they show you how your code looks and behaves from the outside.

The 15-year-old version

Imagine you want to write a book. First you need: a desk (computer), a good pen (VS Code), paper (project folder), a filing system (Git), a printer to share drafts (GitHub), and a way to check if the book makes sense (the terminal). Your dev environment is just setting all of that up before you write word one.

Here is what each tool does in one line:

🖥️ VS Code
Your primary code editor. Where you write your files. Smart, fast, and highly extensible.
⬛ Terminal
The text interface to your operating system. More powerful and flexible than any visual GUI.
🟢 Node.js
Runs JavaScript locally outside a web browser. Used to build your server systems.
🐍 Python
Your secondary language. Core for scripts and system utilities.
🌿 Git
Local version control. Logs every line change. Your safety net.
🐙 GitHub
A cloud hub where your Git history lives. Serves as your portfolio.
🐘 PostgreSQL
Your SQL database. Stores structured table files for your apps.
🔧 Postman
Tests your backend APIs by sending requests without needing a frontend built.
04

The Visual — Environmental flow maps

Here is the full picture of how your dev environment fits together. When you write code, this is the chain from your brain to the internet:

The Developer Workspace Ecosystem Map
You (Rahul)
➔ writes in
VS Code Editor
Terminal Console
➔ executes via
Node.js / Python
PostgreSQL SQL
➔ queried by code
Git Local Index
GitHub Cloud
➔ deployed to
Vercel Live CDN

This chain is the lifecycle of every piece of software you will write. Right now you are setting up the top half — your local machine. Later essays will cover the bottom half — databases, deployment, and live projects.

Mental Model to Keep

Your machine is the workshop. GitHub is the warehouse. Vercel/Render is the shop front. Code starts in the workshop, gets stored in the warehouse, and gets shown to customers at the shop front.

05

The Depth — What each tool really is and why it exists

Every tool has a reason. Understanding why each one exists makes you use it correctly — and impresses interviewers who expect you to know more than "I installed it because the tutorial said to."

VS Code — The Editor

VS Code (Visual Studio Code) is a text editor made by Microsoft. That sounds boring. It is not. It is the most popular code editor in the world by a massive margin — used by engineers at Google, Meta, Amazon, and virtually every startup. It is free, open-source, and extensible, meaning thousands of people have built plugins (extensions) for it. When you write code in VS Code, it understands what language you are writing in and helps you: it suggests what to type next (IntelliSense), highlights syntax errors as you type, lets you debug line by line, and integrates directly with Git. The reason it beats all alternatives for beginners is that it is both simple enough to start immediately and deep enough to use for the rest of your career.

VS Code vs Other Editors

You may hear about Vim, Emacs, Sublime Text, WebStorm, PyCharm. Ignore them for now. You will use VS Code for all 63 essays. Some engineers use Vim for terminal-based editing (you will learn the basics in essay 0.2) — but VS Code is your primary tool.

The Terminal — Your Command Center

The terminal is a text-based interface to your computer. Instead of clicking icons, you type commands. This sounds primitive. It is the opposite. Everything that is truly powerful in software development happens through the terminal. Installing packages, running servers, committing code, configuring databases, SSH-ing into remote servers — all terminal. On Windows you will use either WSL2 (Windows Subsystem for Linux, which gives you a real Linux terminal) or PowerShell. On Mac, you use the built-in Terminal app or iTerm2. On Linux, you have the terminal natively. Essay 0.2 teaches you terminal mastery in full depth.

Node.js — JavaScript Everywhere

JavaScript was originally a browser-only language. In 2009, Ryan Dahl built Node.js, which took the V8 JavaScript engine from Chrome and let it run JavaScript on a server. This was a revolution. Suddenly you could use one language (JavaScript) for both your frontend (the webpage) and your backend (the server). Node.js also comes with npm — the Node Package Manager — which is the world's largest library of reusable code. You will use npm from essay 2.1 (React) all the way through essay 9.4 (CI/CD). When you install Node.js, you get both Node and npm together.

Git — The Time Machine

Git is version control software. It tracks every change you make to your code over time. You can go back to any previous state. You can work on multiple versions of your code simultaneously (branches). You can see exactly what changed between versions. Git was created by Linus Torvalds — the same person who created the Linux operating system — in 2005. Every software company in the world uses Git. Without it, teams of engineers would be emailing each other zip files of code, overwriting each other's work constantly. Git solves this. At your level, Git's most important function is: if you break something and don't know how to fix it, you can always go back to when it worked.

GitHub — Git on the Internet

Git lives on your machine. GitHub is a website that stores your Git repositories online. It lets you: share your code publicly (your portfolio), back up your code in the cloud, collaborate with other developers, and show recruiters your work. GitHub is owned by Microsoft but is free to use. Your GitHub profile is literally your resume as a developer. Recruiters look at your GitHub before your LinkedIn. The contribution graph (green squares for each day you commit code) tells a story — 180 green squares over 6 months says "this person is serious and consistent."

PostgreSQL — Your Database

Most applications store data. PostgreSQL (pronounced "post-gres-Q-L") is a relational database — it stores data in tables with rows and columns, like a very powerful spreadsheet. It is open-source, free, and used at scale by companies like Instagram (early days), Reddit, and many others. You query it with SQL (Structured Query Language). Essay 6.4 goes deep on SQL and PostgreSQL. Here you are just installing it so it is ready when you need it.

06

Code Lab — Step-by-step setup guides

Every command below is explained. Do not copy-paste things you don't understand. Read each explanation first, then run the command.

Step 1 — Install VS Code

Go to code.visualstudio.com and download the installer for your operating system. Run it. When installation finishes, open VS Code. You should see a welcome screen with a dark theme by default.

Step 2 — Install these VS Code Extensions

Press Ctrl+Shift+X (or Cmd+Shift+X on Mac) to open the Extensions panel. Search for and install each of these:

Extensions To Install
# Search and install each of these in VS Code Extensions panel

Prettier - Code formatter        # Auto-formats your code on save
ESLint                           # Catches JavaScript errors as you type
GitLens                          # Shows Git history inline in your code
Thunder Client                   # Tests APIs from inside VS Code (like Postman)
Live Server                      # Refreshes your browser when you save HTML/CSS
Pylance                          # Python language support and autocomplete
Path Intellisense                # Autocompletes file paths when you import things
Error Lens                       # Shows errors inline next to the problem line

Step 3 — Configure VS Code Settings

Press Ctrl+, to open settings. Search for "format on save" and enable it. This makes Prettier automatically clean up your code every time you save. Search for "tab size" and set it to 2 (the JavaScript standard).

Step 4 — Install Node.js

Go to nodejs.org. Download the LTS version (Long-Term Support — more stable than the latest). Run the installer. Open your terminal after installation and verify it worked:

Terminal — Verify Node.js Installation
rahul@machine ~ $ node --version
v20.11.0 ← Any v18+ is fine
rahul@machine ~ $ npm --version
10.2.4 ← npm comes with Node automatically
rahul@machine ~ $ node -e "console.log('Node is working!')"
Node is working!

If you see version numbers, Node.js is installed correctly. If you see "command not found", close and reopen your terminal and try again. If still failing, reinstall.

Step 5 — Install Git

On Mac: Git comes pre-installed. Type git --version to confirm. On Windows: download from git-scm.com and install. On Linux: sudo apt install git. After installation, configure your identity — Git needs to know who is making commits:

Terminal — Configure Git Identity
# Tell Git who you are — this appears in every commit you make
git config --global user.name "Rahul"
git config --global user.email "your@email.com"

# Set VS Code as your default Git editor
git config --global core.editor "code --wait"

# Set main as the default branch name (modern standard)
git config --global init.defaultBranch main

# Verify your configuration
git config --list
user.name=Rahul
user.email=your@email.com
core.editor=code --wait

Step 6 — Create GitHub Account and Connect SSH

Go to github.com and create an account. Use a professional username — your real name or something close to it. Use no numbers or "coder" suffixes. Recruiters will see this. Now, set up SSH so you can push code without typing your password every time:

Terminal — Set Up SSH for GitHub
# Step 1: Generate an SSH key pair
ssh-keygen -t ed25519 -C "your@email.com"
Generating public/private ed25519 key pair.
Enter file in which to save the key: [press Enter]
Enter passphrase: [press Enter for no passphrase]

# Step 2: Start the SSH agent
eval "$(ssh-agent -s)"
Agent pid 1234

# Step 3: Add your key to the agent
ssh-add ~/.ssh/id_ed25519

# Step 4: Copy your PUBLIC key to clipboard
# On Mac: cat ~/.ssh/id_ed25519.pub | pbcopy
# On Windows: cat ~/.ssh/id_ed25519.pub | clip
# On Linux: cat ~/.ssh/id_ed25519.pub | xclip -selection clipboard

# Step 5: Go to GitHub → Settings → SSH and GPG Keys → New SSH Key
#         Paste the copied key and save it

# Step 6: Test the connection
ssh -T git@github.com
Hi Rahul! You've successfully authenticated.

Step 7 — Install Python

On Mac: Python 3 is usually pre-installed. Check with python3 --version. On Windows: download from python.org — during installation, check the box that says "Add Python to PATH" (this is the most common beginner mistake). On Linux: sudo apt install python3 python3-pip.

Step 8 — Install PostgreSQL

Download from postgresql.org/download for your OS. During installation, you will set a password for the default "postgres" user. Write this down — you will need it every time you connect to your database. Also install pgAdmin (often bundled) — it is a visual interface to explore your database, which helps a lot when learning SQL.

Step 9 — Install Postman

Download from postman.com. Postman is a tool for testing APIs. When you build a backend server in essay 6.2, you will use Postman to send requests to it and see the responses — before you have a frontend built. Think of it as a browser specifically for APIs.

Step 10 — Windows only: Install WSL2

If you are on Windows, do this step. WSL2 (Windows Subsystem for Linux version 2) gives you a real Ubuntu Linux environment inside Windows. Most servers in the world run Linux. Learning on Linux from the start means no surprises later. Open PowerShell as Administrator and run:

PowerShell (Administrator) — Install WSL2
# Install WSL2 with Ubuntu (one command, may take 10-15 minutes)
wsl --install

# After restart, WSL2 will ask you to set a username and password
# Use your first name as username, set a password you remember

# Verify installation
wsl --list --verbose
  NAME      STATE           VERSION
* Ubuntu    Running         2

After this, open VS Code and install the "WSL" extension — it lets VS Code work directly inside your Linux environment. From now on, always open your terminal in VS Code and use the Ubuntu (WSL) terminal, not PowerShell.

07

Common Mistakes — Environmental Pitfalls

These are not hypothetical. Every one of these is something that has burned hundreds of beginners. Knowing them in advance means you will not lose days to them.

PITFALL 01

Installing the "Latest" Node.js instead of LTS

Beginners choose "Current" because newer feels better. This is wrong. "Current" means bleeding-edge — it may have bugs, and many packages don't support it yet. LTS is stable and tested.

Remedy: Always download the LTS variant
PITFALL 02

On Windows: Not adding Python/Node to PATH

If Node or Python is not in your PATH, your terminal says "command not found" even though the software is installed. During Python installation, check the box that says "Add Python to PATH".

Remedy: Check the "Add to PATH" toggle in installers
PITFALL 03

Forgetting the PostgreSQL database password

PostgreSQL asks you to set a password for the default "postgres" superuser during installation. Many beginners forget this password. Six weeks later, they cannot connect to databases.

Remedy: Write database passwords down immediately
PITFALL 04

Using an unprofessional username for GitHub

Your GitHub username and email are visible to every recruiter who visits your profile. Avoid handles like "coder_rahul99". Use your real name or a clean, professional variation.

Remedy: Setup a clean real-name profile
PITFALL 05

Installing too many VS Code extensions and slowing it down

Each extension slows down VS Code's startup and can cause conflicts. Install only the eight extensions listed in this essay. You will add a few more in later essays when you actually need them. Extensions you don't use are just weight.

Remedy: Stick to the core 8 extensions initially
08

Real World — Setup standards at big companies

The tools you are setting up today are not "learning tools." They are production tools. The exact same tools — used by the same standards — power the software at the biggest tech companies on earth.

Google
Google engineers primarily use an internal IDE called Cider (web-based), but VS Code is widely used for local development. Google's internal build system (Blaze, open-sourced as Bazel) runs via terminal. Git is used for all code. Google engineers who work on web products use JavaScript (frontend) and Python or Go (backend) — exactly the stack you are learning. The key difference at Google is scale: their PostgreSQL equivalents (Spanner, BigQuery) are Google-built, but the SQL concepts you learn are directly transferable.
Meta (Facebook)
Meta engineers use internal tools like Nuclide (based on VS Code's architecture). Their main languages are Hack (PHP variant), C++, Python, and JavaScript/React. React was invented at Meta — you will learn React in Phase 2. Meta runs millions of servers on Linux. The Linux command line skills you build here are the exact skills Meta engineers use daily to SSH into servers and debug production issues.
Amazon / AWS
Amazon engineers use VS Code widely, along with JetBrains IDEs. The stack varies by team, but Node.js, Python, and PostgreSQL are common across AWS services. Amazon's coding interview rounds often ask you to write code on a shared screen — they watch how you use your editor, how fast you navigate, whether you use keyboard shortcuts. A fluent developer environment gives a subtle but real signal of experience.
The GitHub Signal

Recruiters at Google, Meta, and Amazon routinely check GitHub profiles before phone screens. A profile with 6 months of daily commits, 3 deployed projects, and clean README files communicates dedication more powerfully than any resume line. Your GitHub profile page is a living document of your growth. Start building it today.

09

Interview Angle — FAANG screen observation

Dev environment questions are not common in FAANG technical rounds, but your environment speaks for you before you say a word.

Scenario — Live Coding Round

"Can you share your screen and solve this problem?"

When you share your screen, the interviewer sees your VS Code. They notice: Are your extensions giving you helpful hints (good, expected)? Is your terminal integrated? Are you using keyboard shortcuts or hunting with the mouse? Do you have Git integrated? None of this disqualifies you — but someone who clearly lives in their editor every day looks more experienced than someone who is visibly unfamiliar with their own tools.
Common Question — "Walk me through your development setup"

"What tools do you use day-to-day and why did you choose them?"

After this essay, your answer: "I use VS Code as my primary editor with Prettier for auto-formatting and ESLint for catching errors in real-time. I run Node.js for JavaScript backend work and Python for scripting and AI integration. I use Git with SSH authentication connected to GitHub — I commit every day. For databases I use PostgreSQL locally with pgAdmin for visual inspection. On Windows I work inside WSL2 so my environment matches the Linux servers I deploy to." This answer signals genuine competence.
Technical Question — "What is the difference between Git and GitHub?"

"Can you explain Git versus GitHub? Many people confuse them."

Git is a version control system — software that runs on your local machine and tracks changes to your files over time. GitHub is a web platform that hosts Git repositories remotely. Git can exist without GitHub (you can use it purely locally). GitHub cannot exist without Git (it is built on top of Git). The analogy: Git is the filing system in your office. GitHub is a secure warehouse where you store copies of those files and share them with colleagues.
10

Explain It Test — Dynamic Revision Cards

Say each answer out loud before clicking a card to reveal its answer. This is how understanding becomes yours.

Flashcard 01
What is the difference between Node.js and npm? Why do you get both when you install Node.js?
Click card to flip ↗
Answer 01
Node.js is the JavaScript execution runtime. npm is the Node Package Manager used to download libraries. They are bundled because npm is essential for managing dependencies in Node projects.
Click card to flip back ↗
Flashcard 02
Why is the GitHub contribution graph important for a FAANG job search, specifically without a degree?
Click card to flip ↗
Answer 02
It provides objective, timestamped proof of consistency. 180 consecutive green days shows recruiters discipline and active daily building habits that degrees cannot measure.
Click card to flip back ↗
Flashcard 03
What is SSH and why do you use it to connect to GitHub instead of a username and password?
Click card to flip ↗
Answer 03
SSH is a cryptographic secure communication protocol. It verifies your local private key against your remote public key, preventing password exposure and saving typing time.
Click card to flip back ↗
Flashcard 04
What is WSL2 and why is it recommended for Windows users doing web development?
Click card to flip ↗
Answer 04
WSL2 runs a native Linux kernel inside Windows. It ensures command tools, configurations, and paths match the actual Linux servers where your code eventually runs.
Click card to flip back ↗
Flashcard 05
Why does VS Code's "format on save" feature matter, and what would happen without it?
Click card to flip ↗
Answer 05
It automatically standardizes code styles on save. Without it, formatting becomes inconsistent, causing noisy Git diffs and reducing code readability for team reviews.
Click card to flip back ↗
11

Do This Today — Workspace Verification Tasks

Complete these setup tasks to establish your local development cockpit before advancing to terminal commands. Click each row to toggle its status.

Task 01 — Set up your VS Code Editor Workspace
Install stable VS Code, search and add all 8Extensions, enable "Format on Save", and set Tab Size to 2.
Task 02 — Establish Runtimes (Node.js & Python)
Install Node.js LTS, run a node command-line log check, install Python, and verify PATH configuration.
Task 03 — Link Git and GitHub Cloud via SSH Keys
Install Git, set global user name/email settings, create a GitHub profile, generate SSH keys, and verify authentication.
Task 04 — Confirm Local Database and Client Utilities
Install PostgreSQL, save root admin passwords, verify pgAdmin connection, and install Postman.
Task 05 — Windows Users: Configure Native WSL2 Linux Kernel
Run WSL install command in Administrator PowerShell, set Linux logins, and connect VS Code to WSL Ubuntu shell.
Verification Step

Open VS Code, open the integrated terminal (Ctrl+`), and run node --version && git --version && python3 --version. If all three show version numbers, your environment is complete. Move to Essay 0.2.

12

Takeaways & Terms

1
Your contribution graph starts today. Commit at least once a day to establish your track record of dedication.
2
Git is local version control. GitHub is the cloud repository server. Master this distinction for interviews.
3
Configure your environment correctly once, then let it fade into the background. Eliminate friction to focus on code.

Terms to Know

IDE
Integrated Development Environment. A code editor equipped with compilation, execution, and debugging tools.
Version Control
Software system that tracks history files over time, preventing code overrides.
npm
Node Package Manager. Command CLI program to manage dependencies in backend projects.
SSH
Secure Shell. Cryptographic secure communication protocol used to push commits to cloud accounts.
LTS
Long-Term Support. Stable software releases guaranteed to receive updates for several years.
WSL2
Windows Subsystem for Linux version 2. Executes native Linux kernels inside Windows systems.
PATH
System environment list variable where the terminal searches for CLI command programs.
Repository (Repo)
A directory tracked by Git, recording the chronological log of all changes.

Roadmap Account