Skip to main content
Career progress—
intermediatePage 4 of 13

Foundational Skills

Nine skill areas in rough priority order. Don't move on until you're solid on each.

Foundational Skills

In one line: Nine skill areas in rough priority order — HTML/CSS/JS, Git, the command line, HTTP, SQL, TypeScript, one framework, basic backend, and AI assistants.

In plain English

Treat this as a checklist, not a curriculum. You don't need a bootcamp or a course to learn these — you need to build things that force you to use each one. Every working web developer has these nine in their toolbox; the difference between juniors and seniors is depth, not breadth.

In rough order of priority. Don't move on until you're solid on each.

1. HTML, CSS, and JavaScript Fundamentals​

The actual language of the web. No framework saves you from understanding these.

What to learn:

  • HTML semantics (when to use <article> vs <section> vs <div>).
  • CSS layout (Flexbox, Grid, container queries).
  • CSS responsive design (mobile-first, breakpoints).
  • JavaScript fundamentals: variables, functions, closures, async/await, promises.
  • DOM manipulation (querySelector, addEventListener).
  • The event loop.
  • Modules (ESM).

Resources:

  • MDN Web Docs (mozilla.org) — Canonical reference.
  • JavaScript.info — Excellent JavaScript tutorial.
  • Web.dev (Google's resource) — Modern web development guides.
  • CSS Tricks — Practical CSS patterns.

Don't skip this layer. Engineers who jump straight to React without learning JS struggle the moment things deviate from tutorials.

2. Git and Version Control​

Universal across every job.

What to learn:

  • Basic flow: clone, add, commit, push, pull.
  • Branching and merging.
  • Pull requests.
  • Resolving merge conflicts.
  • Rebasing (when and why).
  • Reading git history.
  • Using GitHub (or GitLab/Bitbucket).

Resources:

  • The Git Book (git-scm.com/book/en/v2) — Comprehensive.
  • GitHub's Learning Lab — Interactive tutorials.

3. The Command Line​

You'll use it daily forever.

What to learn:

  • File navigation (cd, ls, pwd, mkdir, rm, cp, mv).
  • Permissions (chmod, chown).
  • Process management (ps, kill, top).
  • Text processing (grep, awk, sed, find).
  • Pipes and redirection.
  • SSH.
  • Basic shell scripting.

Resources:

  • The Missing Semester (missing.csail.mit.edu) — MIT's practical CS course.
  • "Learn Enough Command Line to Be Dangerous."

4. HTTP and How the Web Works​

You can't debug what you don't understand. This is covered in detail in Foundations (Chapters 1–2).

5. SQL and Databases​

Almost every job involves a database.

What to learn:

  • Basic queries (SELECT, JOIN, WHERE, GROUP BY).
  • Indexes and query performance.
  • Transactions and ACID.
  • Schema design (normalization, foreign keys).
  • Migrations.

Resources:

  • Use The Index, Luke! (use-the-index-luke.com) — How databases really work.
  • SQLBolt — Interactive SQL tutorial.

6. TypeScript​

The modern JavaScript baseline.

What to learn:

  • Basic types and interfaces.
  • Generics.
  • Utility types (Partial, Pick, Omit).
  • Type narrowing.
  • Strict mode.

Resources:

  • The TypeScript Handbook (typescriptlang.org/docs/handbook) — Official.
  • Total TypeScript (totaltypescript.com) — In-depth course (paid but excellent).

7. One Framework Deeply​

Pick one and get good. React + Next.js is the highest-demand combo, but Vue + Nuxt or Svelte + SvelteKit are excellent alternatives.

What to learn (in React context):

  • Components, props, state.
  • Hooks (useState, useEffect, useMemo, useCallback).
  • Server vs client components.
  • Data fetching patterns.
  • Routing.
  • Form handling.

Resources:

  • React docs (react.dev) — Massively improved in recent years.
  • Next.js docs (nextjs.org) — Excellent.
  • Frontend Masters (paid, but worth it for serious learners).

8. Basic Backend​

Even if you're frontend-focused, understand how the other side works.

What to learn:

  • Building a REST API.
  • Authentication basics.
  • Database queries from your backend.
  • Error handling and validation.
  • Deployment.

You don't need to be a backend expert as a frontend developer, but knowing the basics makes you a better engineer overall.

9. AI Coding Assistants​

Now a core skill.

What to learn:

  • Using Cursor, GitHub Copilot, Claude Code, or similar.
  • Writing prompts that get good results.
  • Reviewing and editing AI-generated code critically.
  • Knowing when AI is wrong.

The skill is judgment, not generation. AI can produce a lot of code; deciding which to keep is what matters.

Try it yourself: a "depth check" for each skill

For any skill above, try this: open a blank file and build a tiny demo without a tutorial. For example:

  • JS depth check: Write a debounce function from scratch in 5 minutes.
  • CSS depth check: Build a responsive card grid with Flexbox and Grid — no framework.
  • Git depth check: Take a feature branch, rebase it onto a moved main, resolve a conflict.
  • SQL depth check: Write a query that joins 3 tables and groups by a calculated column.

If you can't do these confidently, that's the area to invest in next.

Highlight: priority order is intentional

The list above is roughly in dependency order. HTML/CSS/JS unlocks everything else. Git is needed before you can collaborate. HTTP is needed before you can debug anything that crosses the network. SQL is needed before any non-trivial backend. Don't skip ahead to "one framework deeply" without items 1–4 solid — that's the most common cause of "I built the tutorial but I can't build anything else."

Common mistakes​

Where people commonly trip up
  • Treating the list as nine boxes to tick off. The point is depth, not coverage. "I did the React tutorial" is not item 7 done. You finish an item when you can build something non-trivial in it from a blank file.
  • Learning a framework before HTTP and SQL. You'll get React components rendering and still be unable to explain why your fetch returns 401 or why your query takes 4 seconds. Items 4 and 5 unlock more debugging power than item 7.
  • Outsourcing the fundamentals to AI. Letting Copilot write your first closures, your first SQL joins, your first async/await means you never internalize them. Use AI to check your understanding, not to skip past it.
  • Skipping the command line because "the IDE has buttons for that." Every server you touch in production is a shell. Engineers who can't grep, ssh, or read a process list lose hours every week to tasks that should take seconds.
  • Calling TypeScript "optional." In 2026 it's the default for almost every greenfield project and most legacy ones are migrating. Learn it alongside JS, not "after you're comfortable."

Page checkpoint​

Checkpoint Quiz

Did the foundational skills stick?

Required

What's next​

→ Continue to Building a Portfolio to turn these skills into evidence employers can see.