I originally wrote this guide to onboard underclassmen studying CS at Berkeley onto building web apps, then rewrote it to be for anyone who wants to learn by doing 😄
<aside> 📌
consume all links in order
feel free to smartly use ChatGPT or other LLMs to explain errors and help you debug, but DO NOT use them to fully code for you until you’ve completed this guide imho u will learn better
google anything you don’t know how to do - this is a skill you develop with practice
</aside>
Learn what HTML, CSS, JavaScript, and TypeScript are - 6 min 40 sec at 1x speed
install Homebrew if ur on MacOS - 1 minute
install nvm - ≤5 minutes
at the time of writing this means you run curl -o- [<https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh>](<https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh>) | bash
in your terminal, then add these lines to your ~/.zshrc
file:
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \\. "$NVM_DIR/nvm.sh" # This loads nvm
by editing the file ie run open .zshrc
in your terminal, then copy and paste these two lines at the bottom of the file. Then save the file, quit the terminal app, and open it again. Now when you run nvm
in your terminal it should spit out Node Version Manager (v0.39.5)
and a long list of commands.
use nvm to install node LTS. At the time of writing you should run nvm install 'lts/*'
in your terminal - <1 minute
install VSCode if you don’t already have it - ≤5 min
learn JavaScript
this will take a while, if you already know how to code then don’t spend a ton of time on steps 6 & 7
learn TypeScript
Learn how to read documentation - 12 min
Layman Explained: Reading documentation
<aside> 📌 You do not have to remember everything, as long as you know where to look to derive the truth.
</aside>
Learn React - go through all of the React learn pages. At the time of writing these are Quick Start, Installation, Describing the UI**,** Adding Interactivity, Managing State, & Escape Hatches. I suggest you code alongside the docs by running the example code you see locally, then tinker with it and observe what changes.
Complete the Next.js React Foundations course
Complete the Next.js Foundations course
Learn what Tailwind CSS is
Git!
the fun stuff! - 10 min
Front-end web development is changing, quickly
Deliverable
Tailwind-styled text somewhere - read the TailwindCSS docs
throw in a fun Aceternity component somewhere
set upshadcn/ui
build a form that renders a toast message on submit, exactly like the example in step 4 of the shadcn ui form docs
→ Go through the shadcn form docs step by step, as well as the react hook form and zod docs if the shadcn form docs are confusing.
deploy your app to Vercel
Learn about HTTP requests and APIs - 24 minutes at 1x speed
RESTful APIs in 100 Seconds // Build an API from Scratch with Node.js Express
Deliverable
🗒️ Docs to Read:
fetch
📚 Objective: Apply what you've learned from previous lessons to build a Next.js app from scratch that fetches and renders data from the random user API.
Requirements:
fetch()
Feel free to go beyond these requirements. Use shadcn-ui
or any other component library you prefer.
shadcn/ui deep dive