Web Development for Beginners – A Curriculum

Web Development for Beginners – A Curriculum

My professor says this is smart.

Azure Cloud Advocates at Microsoft are pleased to offer a 12-week, 24-lesson curriculum all about JavaScript, CSS, and HTML basics. Each lesson includes pre- and post-lesson quizzes, written instructions to complete the lesson, a solution, an assignment and more. Our project-based pedagogy allows you to learn while building, a proven way for new skills to ‘stick’.

Hearty thanks to our authors Jen Looper, Chris Noring, Christopher Harrison, Jasmine Greenaway, Yohan Lasorsa, Floor Drees, and sketchnote artist Tomomi Imura!

Teachers, we have included some suggestions on how to use this curriculum. We’d love your feedback in our discussion forum!

Students, to use this curriculum on your own, fork the entire repo and complete the exercises on your own, starting with a pre-lecture quiz, then reading the lecture and completing the rest of the activities. Try to create the projects by comprehending the lessons rather than copying the solution code; however that code is available in the /solutions folders in each project-oriented lesson. Another idea would be to form a study group with friends and go through the content together. For further study, we recommend Microsoft Learn and by watching the videos mentioned below.

Gif by Mohit Jaisal

🎥 Click the image above for a video about the project and the folks who created it!

We have chosen two pedagogical tenets while building this curriculum: ensuring that it is project-based and that it includes frequent quizzes. By the end of this series, students will have built a typing game, a virtual terrarium, a ‘green’ browser extension, a ‘space invaders’ type game, and a business-type banking app, and will have learned the basics of JavaScript, HTML, and CSS along with the modern toolchain of today’s web developer.

🎓 You can take the first few lessons in this curriculum as a Learn Path on Microsoft Learn!

By ensuring that the content aligns with projects, the process is made more engaging for students and retention of concepts will be augmented. We also wrote several starter lessons in JavaScript basics to introduce concepts, paired with video from the “Beginners Series to: JavaScript” collection of video tutorials, some of whose authors contributed to this curriculum.

In addition, a low-stakes quiz before a class sets the intention of the student towards learning a topic, while a second quiz after class ensures further retention. This curriculum was designed to be flexible and fun and can be taken in whole or in part. The projects start small and become increasingly complex by the end of the 12 week cycle.

While we have purposefully avoided introducing JavaScript frameworks so as to concentrate on the basic skills needed as a web developer before adopting a framework, a good next step to completing this curriculum would be learning about Node.js via another collection of videos: “Beginner Series to: Node.js”.

Find our Code of Conduct, Contributing, and Translation guidelines. We welcome your constructive feedback!

Each lesson includes:

optional sketchnote
optional supplemental video
pre-lesson warmup quiz
written lesson
for project-based lessons, step-by-step guides on how to build the project
knowledge checks
a challenge
supplemental reading
post-lesson quiz

A note about quizzes: All quizzes are contained in this app, for 48 total quizzes of three questions each. They are linked from within the lessons but the quiz app can be run locally; follow the instruction in the quiz-app folder. They are gradually being localized.


Project Name
Concepts Taught
Learning Objectives
Linked Lesson

Getting Started
Introduction to Programming and Tools of the Trade
Learn the basic underpinnings behind most programming languages and about software that helps professional developers do their jobs
Intro to Programming Languages and Tools of the Trade

Getting Started
Basics of GitHub, includes working with a team
How to use GitHub in your project, how to collaborate with others on a code base
Intro to GitHub

Getting Started
Learn the basics of web accessibility
Accessibility Fundamentals

JS Basics
JavaScript Data Types
The basics of JavaScript data types
Data Types

JS Basics
Functions and Methods
Learn about functions and methods to manage an application’s logic flow
Functions and Methods
Jasmine and Christopher

JS Basics
Making Decisions with JS
Learn how to create conditions in your code using decision-making methods
Making Decisions

JS Basics
Arrays and Loops
Work with data using arrays and loops in JavaScript
Arrays and Loops

HTML in Practice
Build the HTML to create an online terrarium, focusing on building a layout
Introduction to HTML

CSS in Practice
Build the CSS to style the online terrarium, focusing on the basics of CSS including making the page responsive
Introduction to CSS

JavaScript Closures, DOM manipulation
Build the JavaScript to make the terrarium function as a drag/drop interface, focusing on closures and DOM manipulation
JavaScript Closures, DOM manipulation

Typing Game
Build a Typing Game
Learn how to use keyboard events to drive the logic of your JavaScript app
Event-Driven Programming

Green Browser Extension
Working with Browsers
Learn how browsers work, their history, and how to scaffold the first elements of a browser extension
About Browsers

Green Browser Extension
Building a form, calling an API and storing variables in local storage
Build the JavaScript elements of your browser extension to call an API using variables stored in local storage
APIs, Forms, and Local Storage

Green Browser Extension
Background processes in the browser, web performance
Use the browser’s background processes to manage the extension’s icon; learn about web performance and some optimizations to make
Background Tasks and Performance

Space Game
More Advanced Game Development with JavaScript
Learn about Inheritance using both Classes and Composition and the Pub/Sub pattern, in preparation for building a game
Introduction to Advanced Game Development

Space Game
Drawing to canvas
Learn about the Canvas API, used to draw elements to a screen
Drawing to Canvas

Space Game
Moving elements around the screen
Discover how elements can gain motion using the cartesian coordinates and the Canvas API
Moving Elements Around

Space Game
Collision detection
Make elements collide and react to each other using keypresses and provide a cooldown function to ensure performance of the game
Collision Detection

Space Game
Keeping score
Perform math calculations based on the game’s status and performance
Keeping Score

Space Game
Ending and restarting the game
Learn about ending and restarting the game, including cleaning up assets and resetting variable values
The Ending Condition

Banking App
HTML Templates and Routes in a Web App
Learn how to create the scaffold of a multipage website’s architecture using routing and HTML templates
HTML Templates and Routes

Banking App
Build a Login and Registration Form
Learn about building forms and handing validation routines

Banking App
Methods of Fetching and Using Data
How data flows in and out of your app, how to fetch it, store it, and dispose of it

Banking App
Concepts of State Management
Learn how your app retains state and how to manage it programmatically
State Management

Offline access
You can run this documentation offline by using Docsify. Fork this repo, install Docsify on your local machine, and then in the root folder of this repo, type docsify serve. The website will be served on port 3000 on your localhost: localhost:3000.

A PDF of all of the lessons can be found here

Other Curricula
Our team produces other curricula! Check out:

Machine Learning for Beginners
IoT for Beginners
Data Science for Beginners

Read More
Share this on knowasiak.com to discuss with people on this topicSign up on Knowasiak.com now if you’re not registered yet.

Related Articles

Windows 11 Guide

A guide on setting up your Windows 11 Desktop with all the essential Applications, Tools, and Games to make your experience with Windows 11 great! Note: You can easily convert this markdown file to a PDF in VSCode using this handy extension Markdown PDF. Getting Started Windows 11 Desktop Bypass Windows 11’s TPM, CPU and…

What’s recent in Emacs 28.1?

By Mickey Petersen It’s that time again: there’s a new major version of Emacs and, with it, a treasure trove of new features and changes.Notable features include the formal inclusion of native compilation, a technique that will greatly speed up your Emacs experience.A critical issue surrounding the use of ligatures also fixed; without it, you…

Show HN: Hiring Without Whiteboards

A list of companies (or teams) that don’t do “whiteboard” interviews. “Whiteboards” is used as a metaphor, and is a symbol for the kinds of CS trivia questions that are associated with bad interview practices. Whiteboards are not bad – CS trivia questions are. Using sites like HackerRank/LeetCode probably fall into a similar category. The…

Pure CSS Art Gallery

~ Message from the author ~Eugenics on Nature (GMO)The critically questioning of the subject Eugenics on Nature (GMO) caused the author of CSS-ART.COM to be attacked. His businesses, home and personal belongings were destroyed, he had to endure unnatural slander, violence and an orchestrated underhand death threat that shows a link with GMO.The author of…


Your email address will not be published. Required fields are marked *