Welcome to the MDN learning area. This set of articles aims to guide complete beginners to web development with all that they need to start coding websites.
The aim of this area of MDN is not to take you from "beginner" to "expert" but to take you from "beginner" to "comfortable." From there, you should be able to start making your way, learning from the rest of MDN, and other intermediate to advanced resources that assume a lot of previous knowledge.
If you are a complete beginner, web development can be challenging — we will hold your hand and provide enough detail for you to feel comfortable and learn the topics properly. You should feel at home whether you are a student learning web development (on your own or as part of a class), a teacher looking for class materials, a hobbyist, or someone who just wants to understand more about how web technologies work.
The content in the learning area is being added to regularly. We have started keeping Learning area release notes to show what has changed — keep checking back frequently!
If you have questions regarding topics you'd like to see covered or feel are missing, drop us a message on our Discourse forum.
We have put together a course that includes all the essential information you need to work towards your goal.
Get started
If you are a complete beginner to web development, we'd recommend that you start by working through our Getting started with the web module, which provides a practical introduction to web development.
If you have a bit of knowledge already, the next step is to learn HTML and CSS in detail: start with our Introduction to HTML module and move on to our CSS first steps module.
If you are comfortable with HTML and CSS already, or you are mainly interested in coding, you'll want to move on to JavaScript or server-side development. Begin with our JavaScript first steps and Server-side first steps modules.
After mastering the essentials of vanilla HTML, CSS, and JavaScript, you should learn about client-side web development tools, and then consider digging into client-side JavaScript frameworks, and server-side website programming.
Note: Our glossary provides terminology definitions. Besides, if you have a specific question about web development, our Common questions section may have something to help you.
Random glossary entry
The following is a list of all the topics we cover in the MDN learning area.
Provides a practical introduction to web development for complete beginners.
HTML is the language that we use to structure the different parts of our content and define what their meaning or purpose is. This topic teaches HTML in detail.
CSS is the language that we can use to style and layout our web content, as well as adding behavior like animation. This topic provides comprehensive coverage of CSS.
JavaScript is the scripting language used to add dynamic functionality to web pages. This topic teaches all the essentials needed to become comfortable with writing and understanding JavaScript.
Web forms are a potent tool for interacting with users — most commonly, they are used for collecting data from users, or allowing them to control a user interface. In the articles listed below, we'll cover all the essential aspects of structuring, styling, and interacting with web forms.
Accessibility is the practice of making web content available to as many people as possible regardless of disability, device, locale, or other differentiating factors. This topic gives you all you need to know.
Web performance is the art of making sure web applications download fast and are responsive to user interaction, regardless of a user's bandwidth, screen size, network, or device capabilities.
This topic covers the tools developers use to facilitate their work, such as cross-browser testing tools, linters, formatters, transformation tools, version control systems, deployment tools, and client-side JavaScript frameworks.
Even if you are concentrating on client-side web development, it is still useful to know how servers and server-side code features work. This topic provides a general introduction to how the server-side works and detailed tutorials showing how to build up a server-side app using two popular frameworks: Django (Python) and Express (Node.js).
The code examples you'll encounter in the Learning Area are all available on GitHub. If you want to copy them all to your computer, the easiest way is to download a ZIP of the latest master code branch.
If you prefer to copy the repo in a more flexible way that allows for automatic updates, you can follow the more complex instructions:
git clone https://github.com/mdn/learning-area
cd
command).You can update the learning-area
repository with any changes made to the master version on GitHub with the following steps:
learning-area
directory using cd
. For example, if you were in the parent directory:
cd learning-area
git pull
If you want to get in touch with us about anything, the best way is to drop us a message on our Discourse forum. We'd like to hear from you about anything you think is wrong or missing on the site, requests for new learning topics, requests for help with items you don't understand, or any other questions or concerns.
If you're interested in helping develop/improve the content, take a look at how you can help and get in touch! We are more than happy to talk to you, whether you are a learner, teacher, experienced web developer, or someone else interested in helping to improve the learning experience.
Our newsletter for web developers, which is an excellent resource for all levels of experience.
An excellent resource for aspiring web developers — Learn JavaScript in an interactive environment, with short lessons and interactive tests, guided by automated assessment. The first 40 lessons are free, and the complete course is available for a small one-time payment.
A great series of videos explaining web fundamentals, aimed at absolute beginners to web development. Created by Jérémie Patonnier.
A great interactive site for learning programming languages from scratch.
Basic coding theory with a gamified learning process. Mainly focused on beginners.
Basic coding theory and practice, primarily aimed at children/complete beginners.
Free and open courses for learning tech skills, with mentorship and project-based learning.
Interactive site with tutorials and projects to learn web development.
A framework for entry-level web literacy and 21st-century skills, which also provides access to teaching activities sorted by category.
Thousands of interactive JavaScript challenges.