Learn
Practical developer references, organized by topic.
HTML
Structure the web: documents, links, forms, media and semantic layout.
HTML: getting started
What HTML actually is, how a browser turns it into a page, and the smallest valid document you can write.
Elements and attributes
Tags, content, attributes, and the difference between void elements and containers β the vocabulary everything else builds on.
Headings, paragraphs and text
How to structure text so it reads well, ranks well, and works for screen readers β including the heading levels everyone gets wrong.
Links and images
Anchor hrefs, relative vs absolute paths, target behavior, and images that are accessible, responsive, and fast.
Lists and tables
Three kinds of lists, and building data tables that are semantically correct instead of layout hacks.
Forms and inputs
Labels, input types, validation and submission β everything needed to build forms that people can actually complete.
Semantic layout
Replacing div soup with header, nav, main, article, aside and footer β and why it matters beyond tidiness.
Media and embedding
Video, audio, iframes and SVG β including the attributes you need for autoplay, captions, and sandboxing third-party content.
CSS
Style it right: the cascade, selectors, the box model, flexbox and grid.
CSS: getting started
How a stylesheet attaches to HTML, how rules are read, and the cascade that decides which declaration wins.
Selectors and specificity
The selector vocabulary β combinators, attributes, pseudo-classes β plus a reliable way to reason about specificity.
The box model
Content, padding, border and margin β plus collapsing margins and how sizing math really works.
Flexbox
One-dimensional layout done properly: main vs cross axis, alignment, growth factors, and the properties that trip people up.
CSS Grid
Two-dimensional layout: tracks, the fr unit, placement by line or area, and responsive grids without media queries.
Responsive design
Media queries, fluid units, and modern container queries β building layouts that adapt instead of breaking.
JavaScript
Behaviour in the browser: types, functions, the DOM, events and async code.
JavaScript basics
Variables, the seven primitives, type coercion, and the == vs === decision that causes most beginner bugs.
Functions and scope
Parameters, defaults, arrow functions, closures and this β the ideas behind almost every JavaScript interview question.
Arrays and iteration
The methods that replace most for-loops β map, filter, reduce, find β and when mutation versus copying matters.
Objects and destructuring
Property shorthand, spread merging, optional chaining, and copying objects without the reference traps.
Working with the DOM
Selecting elements, reading and writing content safely, creating nodes, and why innerHTML deserves caution.
Events
addEventListener, bubbling and capturing, delegation for dynamic lists, and forms without page reloads.
Async JavaScript and fetch
Promises, async/await, real fetch usage with error handling, cancellation, and running tasks concurrently.
Python
Clean, readable scripting: strings, collections, functions, files and errors.
Python: getting started
Running Python, indentation as syntax, variables, and the built-in types you touch in every script.
Strings
Slicing, f-strings, the methods you actually use, and why joins beat concatenation in loops.
Lists, dicts and comprehensions
Slicing, mutability gotchas, comprehension syntax, and choosing the right collection for the job.
Functions and modules
Arguments, returns, scoping, lambdas, and organizing code into importable modules.
Errors, files and virtualenvs
Reading tracebacks, using context managers safely, handling JSON, and keeping dependencies isolated.
SQL
Talk to databases: querying, joining, aggregating, writing and indexing.
SELECT: reading data
Choosing columns, filtering rows, sorting, and limiting β the shape of nearly every query you will write.
Joins
INNER, LEFT, RIGHT and FULL joins explained with row counts β plus the accidental fan-out that ruins aggregates.
Aggregation and GROUP BY
COUNT, SUM, AVG and friends; HAVING versus WHERE; and why COUNT(*) differs from COUNT(col).
INSERT, UPDATE, DELETE
Changing data safely: returning clauses, transactions, upserts, and the missing WHERE clause everybody learns once.
Indexes and query speed
How indexes actually help, composite column order, and reading a query plan to find the real bottleneck.
Git
Version control you can trust: commits, branches, remotes and recovery.
Git basics
The three areas every file lives in, the daily commit loop, and writing history worth reading later.
Branching and merging
Creating branches, switching safely, merging versus rebasing, and keeping a messy history out of main.
Remotes and collaboration
Cloning, pushing, fetching versus pulling, and understanding what origin/main actually points at.
Undoing mistakes
restore, reset and revert β and how git reflog rescues commits you thought were gone forever.
Conflicts, stash and cherry-pick
Reading conflict markers, resolving without losing work, shelving changes mid-task, and copying single commits.
Linux
Command line fluency: navigation, permissions, text tools, processes and SSH.
Shell basics and navigation
Paths, the commands used every day, and how to read a command line rather than memorizing flags.
Files and permissions
Reading rwx bits, chmod usage without magic numbers, ownership, and finding files quickly.
Working with text
grep, less, head/tail, pipes and redirection β composing small tools into exactly the answer you need.
Processes, ports and jobs
Inspecting what runs, stopping it gracefully, checking which port is busy, and keeping work alive after logout.
SSH, packages and services
Key-based login without passwords, copying files safely, installing software, and managing services.
HTTP
How the web moves: methods, status codes, headers, caching, CORS and TLS.
HTTP methods
GET, POST, PUT, PATCH and DELETE β what each promises about safety, idempotency, and when to use it.
HTTP status codes
The codes that actually matter in production β and the ones applications routinely get wrong.
HTTP headers
Content negotiation, auth, compression and security headers β the metadata that controls real behaviour.
Caching and conditional requests
Cache-Control in plain language, ETags versus Last-Modified, and revalidation with 304 responses.
CORS explained
Why the browser blocks cross-origin reads, how preflight works, and the headers that fix it properly.
HTTPS and TLS
What TLS actually protects, how certificates get validated, renewal automation, and mixed content traps.
Encodings
How text and binary become bytes: Base64, URL encoding, UTF-8.
Base64 encoding
What Base64 is, why it exists, how it works, and the cases where it is the wrong tool.
URL encoding (percent-encoding)
Why spaces and symbols in a URL get turned into %20 and friends, and the difference between query and path encoding.
UTF-8 and character sets
Why 'one character = one byte' is wrong, what code points are, and how UTF-8 became the default for the web.
Hashing & checksums
Fingerprints for integrity and passwords: MD5, SHA-1, SHA-256.
Hash functions: MD5, SHA-1, SHA-256
What a cryptographic hash is, how the common algorithms differ, and why MD5/SHA-1 are retired for security.
Checksums & verifying files
How to confirm a downloaded file is intact and unmodified using a checksum, and the limits of the technique.
Data formats
JSON and CSV: shape, rules, and safe conversion.
JSON basics
The shape of JSON, how it maps to language types, and the easy mistakes that produce invalid JSON.
CSV vs JSON
When a flat table beats nested documents, and how to convert between them safely.
Dates & time
Timestamps, UTC, and why time zones are harder than they look.
Unix timestamps & UTC
Why storing time as a single number avoids almost every timezone bug, and the 2038 problem you should know about.
Time zones & UTC offsets
Why 'UTC+8' lies, what IANA zone names are for, and how to avoid the classic off-by-one date bugs.
Regular expressions
The daily regex constructs, with runnable examples.