Full Stack Developer
Ship complete products: interface, API, database, authentication, and deployment.
Internet
What happens between typing a URL and seeing a page.
- How the internet works — Clients, servers, IP addresses, and how packets travel between them.
- HTTP and HTTPS — Requests, responses, methods, status codes, headers, and TLS.
- DNS and domain names — How a domain name resolves to an address and what records control it.
- Hosting — Where websites live: static hosting, servers, and platforms.
- How browsers work — Parsing, layout, painting, and the rendering pipeline.
HTML
The structure and meaning of every web page.
- HTML basics — Document structure, elements, attributes, links, images, and lists.
- Semantic HTML — Choose elements for their meaning: headings, landmarks, article, nav, and more.
- Forms and validation — Inputs, labels, built-in validation, and submitting data.
- Accessibility — Build pages that work with keyboards and assistive technology.
CSS
Style, layout, and responsive design.
- CSS basics — Selectors, the cascade, specificity, the box model, and units.
- Flexbox — One-dimensional layout for rows and columns.
- CSS Grid — Two-dimensional layout with tracks, areas, and alignment.
- Responsive design — Media queries, fluid sizing, and container queries.
- Custom properties — Design tokens and theming with CSS variables.
JavaScript
The language of the web.
- Language fundamentals — Variables, types, functions, scope, closures, and control flow.
- The DOM and events — Select, change, and respond to elements in the page.
- Promises and async/await — Handle asynchronous work, errors, and the event loop.
- Modules — Split code into files with import and export.
- Fetching data — Call APIs with fetch, handle JSON, and deal with failures.
TypeScript
Add static types to JavaScript.
- Types and interfaces — Primitives, objects, unions, and describing the shape of data.
- Narrowing — Refine union types with guards and discriminated unions.
- Generics — Write reusable, type-safe functions and types.
- Project configuration — tsconfig options and strict mode.
Git and GitHub
Track changes and collaborate with other developers.
- Commits and history — Stage, commit, and inspect changes in a repository.
- Branching and merging — Work in isolation and combine changes safely.
- Pull requests — Review and merge work with GitHub.
React
Build interfaces from components.
- Components and JSX — Compose UI from small functions that return markup.
- State and props — Pass data down and keep local state close to where it is used.
- Effects — Synchronize with external systems, and learn when not to use an effect.
- Routing — Map URLs to screens with React Router.
- Server state — Fetch, cache, and update remote data with TanStack Query.
Node.js
Run JavaScript on the server.
- Runtime and modules — The event loop, ES modules, and the standard library.
- Package managers — Install, version, and publish dependencies with npm.
- Building an HTTP server — Handle routes, middleware, and errors.
- Configuration and environment — Keep secrets and settings out of source code.
APIs
Design interfaces other programs can rely on.
- REST principles — Resources, methods, status codes, and pagination.
- Validation and errors — Reject bad input early and return consistent error shapes.
- GraphQL — Query exactly the data a client needs.
- Documenting APIs — Describe endpoints with OpenAPI.
Databases
Store and query data reliably.
- SQL fundamentals — Select, join, group, and filter data.
- Schema design — Tables, relations, keys, and normalization.
- Indexes and transactions — Keep queries fast and updates consistent.
- NoSQL stores — Document, key-value, and cache stores and when to choose them.
Authentication and security
Identify users and protect their data.
- Sessions and tokens — Cookies, JWTs, and how to store them safely.
- OAuth 2.0 and OpenID Connect — Delegate sign-in to providers like Google.
- Common vulnerabilities — Injection, XSS, CSRF, and the OWASP Top 10.
Testing
Ship changes with confidence.
- Unit tests — Test small pieces of logic in isolation.
- Integration tests — Verify that modules work together.
- End-to-end tests — Automate real user flows in a browser.
Deployment
Get your application in front of users.
- Containers with Docker — Package an application and its dependencies.
- CI/CD — Automate tests and releases on every change.
- Cloud hosting — Choose between static hosts, serverless, and managed servers.
- Logging and monitoring — Notice and diagnose problems in production.