The links on this page lead to a variety of tutorials and training materials. Whether you are just starting out, learning the basics, or are an old hand at web development, you can find helpful resources here for best practices. These resources are created by forward-thinking companies and web developers who have embraced open standards and best practices for web development and that provide or allow translations, through an open content license such as Creative Commons.

HTML Tutorials

Introductory level

Introduction to HTML
What HTML is, what it does, its history in brief, and what the structure of an HTML document looks like. The articles that follow this one look at each individual part of HTML in much greater depth.
Basic Structure of a Web Page (SitePoint)
Learn how HTML elements fit together into the bigger picture.
MDN HTML Element Reference
A comprehensive reference for HTML elements, and how the different browsers support them.
HTML Challenges (Wikiversity)
Use these challenges to hone your HTML skills (for example, "Should I use an <h2> element or a <strong> element?"), focusing on meaningful mark-up.

Advanced level

Tips for Authoring Fast-Loading HTML Pages
Optimize web pages to provide a more responsive site for visitors and reduce the load on your web server and Internet connection.
HTML5 Tutorials (HTML5 Rocks)
Take a guided tour through code that uses HTML5 features.
Semantics in HTML5 (A List Apart)
Learn meaningful markup that is extensible and backwards- and forwards-compatible.
Canvas Tutorial
Learn how to draw graphics using scripting using the canvas element.
HTML5 Doctor
Articles about using HTML5 right now.
The Joy of HTML5 Audio (Elated)
Learn how to use the HTML audio element to embed sounds in your web pages easily. Lots of code examples are included in the tutorial.

Javascript Tutorials

Introductory level

JavaScript First Steps
JavaScript tutorial for beginners being written as part of MDN's Learning Area.
Codecademy (Codecademy)
Codecademy is a easy way to learn how to code JavaScript. It's interactive and you can do it with your friends.
Getting Started with JavaScript
What is JavaScript and how can it help you?
JavaScript Best Practices (WebPlatform.org)
Learn about some of the obvious and (not so) obvious best practices when writing JavaScript.

Intermediate level

A Re-Introduction to JavaScript
A recap of the JavaScript programming language aimed at intermediate-level developers.
Eloquent JavaScript
A comprehensive guide to intermediate and advanced JavaScript methodologies.
Speaking JavaScript (Dr. Axel Rauschmayer)
For programmers who want to learn JavaScript quickly and properly, and for JavaScript programmers who want to deepen their skills and/or look up specific topics.
Essential JavaScript Design Patterns (Addy Osmani)
An introduction to essential JavaScript design patterns.
The JavaScript Programming Language (YUI Blog)
Douglas Crockford explores the language as it is today, and how it came to be.
Introduction to Object-Oriented JavaScript
Learn about the JavaScript object model.

Advanced level

JavaScript Guide
A comprehensive, regularly updated guide to JavaScript for all levels of learning from beginner to advanced.
You Don't Know JS (Kyle Simpson)
A series of books diving deep into the core mechanisms of the JavaScript language.
Learning Advanced JavaScript (John Resig)
John Resig's guide to advanced JavaScript.
Introducing the JavaScript DOM (Elated)
What is the Document Object Model, and why is it useful? This article gives you a gentle introduction to this powerful JavaScript feature.
An Inconvenient API: The Theory of the DOM (YUI Blog)
Douglas Crockford explains the Document Object Model.
Advanced JavaScript (YUI Blog)
Douglas Crockford looks closely at code patterns from which JavaScript programmers can choose in authoring their applications.
JavaScript Garden
Documentation of the most quirky parts of JavaScript.
Exploring ES6 (Dr. Axel Rauschmayer)
Reliable and in-depth information on ECMAScript 6.
Non-Blocking JavaScript Downloads (YUI Blog)
Tips on improving the download performance of pages containing JavaScript.
Javascipt Patterns
A JavaScript pattern and antipattern collection that covers function patterns, jQuery patterns, jQuery plugin patterns, design patterns, general patterns, literals and constructor patterns, object creation patterns, code reuse patterns, DOM.
How browsers work
A detailed research article describing different modern browsers, their engines, page rendering etc.
JavaScript Videos (GitHub)
A collection of JavaScript videos to watch.

Extension Development

Writing your first WebExtension
A walk through creating a WebExtension for Firefox, from start to finish.
Adding a button to the toolbar
Adding buttons to the browser toolbar using WebExtension.
Modifying a web page
A walk through of modifying a web page using WebExtensions.
Intercepting HTTP Requests
Using WebExtensions to intercept and modify requests.

CSS Tutorials

Introductory level

CSS Getting Started
This tutorial introduces you to Cascading Style Sheets (CSS). It guides you through the basic features of CSS with practical examples that you can try for yourself on your own computer.
CSS Selector Classes (Wikiversity)
What are classes in CSS?
External CSS (Wikiversity)
Using CSS from an external style sheet.
Adding a Touch of Style (W3C)
A brief beginner's guide to styling web pages with CSS.
Common CSS Questions
Common questions and answers for beginners.
CSS Selectors
An introduction to CSS selectors

Intermediate level

CSS Reference
Complete reference to CSS, with details on support by Firefox and other browsers.
CSS Challenges (Wikiversity)
Flex your CSS skills, and see where you need more practice.
CSS Positioning 101 (A List Apart)
Using positioning for standards-compliant, table-free layout.
Progressive Enhancement with CSS (A List Apart)
Integrate progressive enhancement into your web pages with CSS.
Fluid Grids (A List Apart)
Design layouts that fluidly resize with the browser window, while still using a typographic grid.

Advanced level

Using CSS Transforms
Apply rotation, skewing, scaling, and translation using CSS.
CSS Transitions
CSS transitions, part of the draft CSS3 specification, provide a way to animate changes to CSS properties, instead of having the changes take effect instantly.
Quick Guide to Implement Web Fonts with @font-face (HTML5 Rocks)
The @font-face feature from CSS3 allows you to use custom typefaces on the web in an accessible, manipulatable, and scalable way.
Starting to Write CSS (David Walsh)
An introduction to tools and methodologies to write more succinct, maintainable, and scalable CSS.