|
|
1 week ago | |
|---|---|---|
| .. | ||
| 1-getting-started-lessons | 1 week ago | |
| 2-js-basics | 1 week ago | |
| 3-terrarium | 1 week ago | |
| 4-typing-game | 1 week ago | |
| 5-browser-extension | 1 week ago | |
| 6-space-game | 1 week ago | |
| 7-bank-project | 1 week ago | |
| 8-code-editor/1-using-a-code-editor | 1 week ago | |
| 9-chat-project | 1 week ago | |
| 10-ai-framework-project | 1 week ago | |
| Git-Basics | 1 week ago | |
| docs | 1 week ago | |
| lesson-template | 1 week ago | |
| memory-game | 1 week ago | |
| quiz-app | 1 week ago | |
| .co-op-translator.json | 1 week ago | |
| AGENTS.md | 1 week ago | |
| CODE_OF_CONDUCT.md | 1 week ago | |
| CONTRIBUTING.md | 1 week ago | |
| README.md | 1 week ago | |
| SECURITY.md | 1 week ago | |
| SUPPORT.md | 1 week ago | |
| _404.md | 1 week ago | |
| for-teachers.md | 1 week ago | |
README.md
Web Development for Beginners - A Curriculum
Learn di fundamentals of web development wit our 12-week comprehensive course by Microsoft Cloud Advocates. Each of di 24 lessons go deep into JavaScript, CSS, and HTML through hands-on projects like terrariums, browser extensions, and space games. Join quizzes, discussions, and practical assignments. Improve your skills and sabi well well wit our effective project-based method. Start your coding journey today!
Join di Azure AI Foundry Discord Community
Follow dis steps to start to use these resources:
- Fork di Repository: Click
- Clone di Repository:
git clone https://github.com/microsoft/Web-Dev-For-Beginners.git - Join Di Azure AI Foundry Discord and meet experts and other developers
🌐 Multi-Language Support
Supported via GitHub Action (Automated & Always Up-to-Date)
Arabic | Bengali | Bulgarian | Burmese (Myanmar) | Chinese (Simplified) | Chinese (Traditional, Hong Kong) | Chinese (Traditional, Macau) | Chinese (Traditional, Taiwan) | Croatian | Czech | Danish | Dutch | Estonian | Finnish | French | German | Greek | Hebrew | Hindi | Hungarian | Indonesian | Italian | Japanese | Kannada | Korean | Lithuanian | Malay | Malayalam | Marathi | Nepali | Nigerian Pidgin | Norwegian | Persian (Farsi) | Polish | Portuguese (Brazil) | Portuguese (Portugal) | Punjabi (Gurmukhi) | Romanian | Russian | Serbian (Cyrillic) | Slovak | Slovenian | Spanish | Swahili | Swedish | Tagalog (Filipino) | Tamil | Telugu | Thai | Turkish | Ukrainian | Urdu | Vietnamese
You go prefer to Clone Locally?
Dis repository get 50+ language translations wey increase di download size well well. To clone without translations, use sparse checkout:
git clone --filter=blob:none --sparse https://github.com/microsoft/Web-Dev-For-Beginners.git cd Web-Dev-For-Beginners git sparse-checkout set --no-cone '/*' '!translations' '!translated_images'Dis go give you everything wey you need make you complete di course with faster download.
If you want make we support any other translation languages dem dey listed here
🧑🎓 You be student?
Go visit Student Hub page where you go find beginner resources, Student packs and even ways to get free certificate voucher. Na dis page you go dey bookmark and dey check from time to time as we dey switch content every month.
📣 Announcement - New GitHub Copilot Agent mode challenges to complete!
New Challenge don add, find "GitHub Copilot Agent Challenge 🚀" for most chapters. Na new challenge wey you fit complete using GitHub Copilot and Agent mode. If you never use Agent mode before e fit no just generate text but e fit also create and edit files, run commands and more.
📣 Announcement - New Project to build using Generative AI
New AI Assistant project don add, check am project
📣 Announcement - New Curriculum on Generative AI for JavaScript just release
No miss our new Generative AI curriculum!
Visit https://aka.ms/genai-js-course to start!
- Lessons wey cover everything from basics to RAG.
- Interact wit historic characters using GenAI and our companion app.
- Fun and interesting story, you go dey time travel!
Each lesson get assignment to complete, knowledge check and challenge to guide you to learn topics like:
- Prompting and prompt engineering
- Text and image app generation
- Search apps
Visit https://aka.ms/genai-js-course to start!
🌱 How to Start
Teachers, we don put some suggestions on how to use dis curriculum. We go like hear your feedback for our discussion forum!
Learners, for each lesson, start with pre-lecture quiz then read lecture material well, complete different activities and check your understanding wit post-lecture quiz.
To make your learning better, connect wit other learners so una fit work on projects together! Discussions dey encouraged for our discussion forum where our moderators team go dey available to answer your questions.
To continue your education, we recommend make you explore Microsoft Learn for extra study materials.
📋 How to set up your environment
Dis curriculum get development environment wey don ready! As you start you fit choose run di curriculum for Codespace (na browser-based, no installation needed environment), or locally for your computer using text editor like Visual Studio Code.
Create your repository
To fit save your work easy, e good make you create your own copy of dis repository. You fit do am by clicking di Use this template button for top of di page. E go create new repository inside your GitHub account with copy of di curriculum.
Follow these steps:
- Fork the Repository: Click "Fork" button for di top-right corner of dis page.
- Clone the Repository:
git clone https://github.com/microsoft/Web-Dev-For-Beginners.git
Running di curriculum inside Codespace
For your copy of dis repository wey you create, click Code button then select Open with Codespaces. E go create new Codespace for you to work.
Run di curriculum locally on your computer
To run dis curriculum locally for your computer, you need text editor, browser and command line tool. Our first lesson, Introduction to Programming Languages and Tools of the Trade, go guide you through different options for all these tools to choose the one wey suit you pass.
We recommend make you use Visual Studio Code as your editor, e get built-in Terminal. You fit download Visual Studio Code here.
-
Clone your repository to your computer. You fit do am by clicking Code button and copy the URL:
CodeSpace Then, open Terminal inside Visual Studio Code and run dis command, change
<your-repository-url>to di URL wey you just copy:git clone <your-repository-url> -
Open di folder for Visual Studio Code. You fit do dis by clicking File > Open Folder and select di folder wey you just clone.
Recommended Visual Studio Code extensions:
- Live Server - make you fit preview HTML pages inside Visual Studio Code
- Copilot - to help you write code quick
📂 Each lesson get:
- optional sketchnote
- optional supplemental video
- pre-lesson warmup quiz
- written lesson
- for project-based lessons, step-by-step guides on how to build di project
- knowledge checks
- one challenge
- supplemental reading
- assignment
- post-lesson quiz
Note about quizzes: All di quizzes dey inside di Quiz-app folder, get 48 quizzes with three questions each. Dem dey available here di quiz app fit run for local or you fit deploy am go Azure; just follow di instruction inside
quiz-appfolder.
🗃️ Lessons
| Project Name | Concepts Taught | Learning Objectives | Linked Lesson | Author | |
|---|---|---|---|---|---|
| 01 | Getting Started | Introduction to Programming and Tools of the Trade | Learn di basic foundation behind most programming languages and about software wey dey help professional developers do dia work | Intro to Programming Languages and Tools of the Trade | Jasmine |
| 02 | Getting Started | Basics of GitHub, includes working with a team | How to use GitHub for your project, how to collaborate with others on code | Intro to GitHub | Floor |
| 03 | Getting Started | Accessibility | Learn di basics of web accessibility | Accessibility Fundamentals | Christopher |
| 04 | JS Basics | JavaScript Data Types | Learn di basics of JavaScript data types | Data Types | Jasmine |
| 05 | JS Basics | Functions and Methods | Learn about functions and methods to manage how your app logic dey flow | Functions and Methods | Jasmine and Christopher |
| 06 | JS Basics | Making Decisions with JS | Learn how to create conditions for your code using decision-making methods | Making Decisions | Jasmine |
| 07 | JS Basics | Arrays and Loops | Work with data using arrays and loops inside JavaScript | Arrays and Loops | Jasmine |
| 08 | Terrarium | HTML in Practice | Build di HTML to create online terrarium, focus on building di layout | Introduction to HTML | Jen |
| 09 | Terrarium | CSS in Practice | Build di CSS to style the online terrarium, focus on basics of CSS including making di page responsive | Introduction to CSS | Jen |
| 10 | Terrarium | JavaScript Closures, DOM manipulation | Build di JavaScript make di terrarium work as drag/drop interface, focus on closures and DOM manipulation | JavaScript Closures, DOM manipulation | Jen |
| 11 | Typing Game | Build a Typing Game | Learn how to use keyboard events to run di logic of your JavaScript app | Event-Driven Programming | Christopher |
| 12 | Green Browser Extension | Working with Browsers | Learn how browsers dey work, their history, and how to scaffold first elements of browser extension | About Browsers | Jen |
| 13 | Green Browser Extension | Building a form, calling an API and storing variables in local storage | Build JavaScript elements of your browser extension to call API using variables wey dem store local | APIs, Forms, and Local Storage | Jen |
| 14 | Green Browser Extension | Background processes in the browser, web performance | Use browser background processes to manage extension icon; learn about web performance and some optimizations to make | Background Tasks and Performance | Jen |
| 15 | Space Game | More Advanced Game Development with JavaScript | Learn about Inheritance using Classes and Composition, and di Pub/Sub pattern, to prepare for building game | Introduction to Advanced Game Development | Chris |
| 16 | Space Game | Drawing to canvas | Learn about Canvas API, wey dem dey use to draw things for screen | Drawing to Canvas | Chris |
| 17 | Space Game | Moving elements around the screen | Discover how elements fit move using cartesian coordinates and Canvas API | Moving Elements Around | Chris |
| 18 | Space Game | Collision detection | Make elements collide and react to each other using keypresses, add cooldown function to keep di game performance | Collision Detection | Chris |
| 19 | Space Game | Keeping score | Do math calculations based on di game status and performance | Keeping Score | Chris |
| 20 | Space Game | Ending and restarting the game | Learn about how to end and restart di game, including how to clean assets and reset variable values | The Ending Condition | Chris |
| 21 | Banking App | HTML Templates and Routes in a Web App | Learn how to create scaffold for multipage website architecture using routing and HTML templates | HTML Templates and Routes | Yohan |
| 22 | Banking App | Build a Login and Registration Form | Learn about building forms and handling validation routines | Forms | Yohan |
| 23 | Banking App | Methods of Fetching and Using Data | Learn how data flow inside and outside your app, how to fetch am, store am, and delete am | Data | Yohan |
| 24 | Banking App | Concepts of State Management | Learn how your app dey keep state and how to manage am programmatically | State Management | Yohan |
| 25 | Browser/VScode Code | Working with VScode | Learn how to use code editor | Use VScode Code Editor | Chris |
| 26 | AI Assistants | Working with AI | Learn how to build your own AI assistant | AI Assistant project | Chris |
🏫 Pedagogy
Our curriculum design get two main pedagogy principles:
- project-based learning
- frequent quizzes
Di program teach di fundamentals of JavaScript, HTML, and CSS, plus di newest tools and techniques wey web developers today dey use. Students go get chance to build hands-on experience by building typing game, virtual terrarium, eco-friendly browser extension, space-invader-style game, and banking app for businesses. By di end of di series, students go sabi well well about web development.
🎓 You fit take first few lessons for dis curriculum as a Learn Path for Microsoft Learn!
By making sure content dey align with projects, processes go dey more interesting for students and concept retention go stronger. We also write small starter lessons on JavaScript basics to introduce concepts, plus one video from "Beginners Series to: JavaScript" video tutorials, some authors for the curriculum self.
Plus, one low-stakes quiz before class set mind for student to learn topic, then second quiz after class to make sure retention. This curriculum design make e flexible and fun, fit take all or part. Projects dey start small and grow more complex as di 12-week cycle dey end.
Even though we no put JavaScript frameworks to focus on basic skills wey web developer must get before dem start framework, next step after dis curriculum fit be to learn Node.js with other videos: "Beginner Series to: Node.js".
Visit our Code of Conduct and Contributing rules. We dey always happy to get your proper feedback!
🧭 Offline access
You fit run this documentation offline by using Docsify. Fork this repo, install Docsify on your local machine, then for root folder of this repo, type docsify serve. Di website go dey serve for port 3000 for your localhost: localhost:3000.
PDF of all di lessons fit find here.
🎒 Other Courses
Our team dey produce oda courses! Make you check am out:
LangChain
Azure / Edge / MCP / Agents
Generative AI Series
Core Learning
Copilot Series
Getting Help
If you jam bodi wey dey struggle or get any question about how to build AI apps. Join di other learners and beta developers wey dey talk about MCP. Na one supportive community wey dey always welcome question and dey share knowledge freely.
If you get product feedback or errors wey dey happen as you dey build, visit:
License
Dis repository get MIT license. Make you check di LICENSE file to sabi more.
Disclaimer: Dis document na translation wey AI translation service Co-op Translator do. Even though we dey try make am correct, abeg sabi say automated translations fit get some errors or mistake. The original document wey e be for im own language na the correct source. For important matter, e good make professional human translation dey. We no go responsible for any wrong understanding or wahala wey fit happen because of dis translation.


