|
|
3 months ago | |
|---|---|---|
| .. | ||
| 1-getting-started-lessons | 4 months ago | |
| 2-js-basics | 6 months ago | |
| 3-terrarium | 6 months ago | |
| 4-typing-game | 6 months ago | |
| 5-browser-extension | 6 months ago | |
| 6-space-game | 6 months ago | |
| 7-bank-project | 6 months ago | |
| 8-code-editor/1-using-a-code-editor | 6 months ago | |
| 9-chat-project | 6 months ago | |
| 10-ai-framework-project | 6 months ago | |
| Git-Basics | 6 months ago | |
| docs | 6 months ago | |
| lesson-template | 3 months ago | |
| memory-game | 6 months ago | |
| quiz-app | 6 months ago | |
| .co-op-translator.json | 3 months ago | |
| AGENTS.md | 3 months ago | |
| CODE_OF_CONDUCT.md | 6 months ago | |
| CONTRIBUTING.md | 6 months ago | |
| README.md | 3 months ago | |
| Roadmap.md | 6 months ago | |
| SECURITY.md | 6 months ago | |
| SUPPORT.md | 6 months ago | |
| _404.md | 6 months ago | |
| for-teachers.md | 6 months 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 inside JavaScript, CSS, and HTML wit hand-on projects like terrariums, browser extensions, and space games. Join quizzes, discussions, and practical assignments. Make your skills better and make you sabi more wit our correct project-based way to learn. Start your coding journey today!
Join di Azure AI Foundry Discord and meet experts and other developers dem.
Follow these 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 The Azure AI Foundry Discord and meet experts and other developers dem
🌐 Multi-Language Support
Supported via GitHub Action (Automated & Always Up-to-Date)
Prefer to Clone Locally?
This repository get over 50 language translations wey increase di download size well-well. To clone without translations, use sparse checkout:
Bash / macOS / Linux:
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'CMD (Windows):
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"This one go give you everything you need to complete di course wit faster download.
If you want make we add more translations, di languages wey we support dey here. here
🧑🎓 You student?
Visit Student Hub page wey go get beginning resources, student packs and even chance to collect free certificate voucher. Na page for you to bookmark and check from time to time as we dey change content monthly.
📣 Announcement - New GitHub Copilot Agent mode challenges to complete!
New Challenge don add, look for "GitHub Copilot Agent Challenge 🚀" inside plenty chapters. Na new challenge for you to complete using GitHub Copilot and Agent mode. If you never use Agent mode before e fit no only generate text but fit also create and edit files, run commands and more.
📣 Announcement - New Project to build using Generative AI
New AI Assistant project just add, try am project
📣 Announcement - New Curriculum on Generative AI for JavaScript just released
No miss our new Generative AI curriculum!
Visit https://aka.ms/genai-js-course to start!
- Lessons wey cover everything from basics to RAG.
- Talk with historical characters using GenAI and our companion app.
- Fun and interesting story, you go like time travel!
Each lesson get assignment to complete, knowledge check and challenge wey go guide you for di learning of topics like:
- Prompting and prompt engineering
- Text and image app generation
- Search apps
Visit https://aka.ms/genai-js-course to start!
🌱 Getting Started
Teachers, we don include some suggestions on how to use this curriculum. We go like hear your feedback for our discussion forum!
Learners, for every lesson, start wit pre-lecture quiz come follow wit reading the lecture material, complete the different activities and check your understanding with post-lecture quiz.
To make your learning better, join with your friends to work on the projects together! Discussions dey encouraged for our discussion forum where our moderators go dey ready to answer your questions.
To increase your education, we highly recommend to explore Microsoft Learn for more study materials.
📋 Setting up your environment
This curriculum get development environment wey ready to go! As you dey start, you fit choose to run the curriculum for Codespace (browser-based, no install needed environment), or locally for your computer using text editor like Visual Studio Code.
Create your repository
To make e easy for you to save your work, e good make you create your own copy of this repository. You fit do am by clicking Use this template button dey top of the page. This go create new repository for your GitHub account with copy of the curriculum.
Follow these steps:
- Fork di Repository: Click di "Fork" button for top-right corner of this page.
- Clone di Repository:
git clone https://github.com/microsoft/Web-Dev-For-Beginners.git
Running curriculum in Codespace
Inside your copy of this repository wey you create, click Code button then select Open with Codespaces. This go create new Codespace for you to work inside.
Running curriculum locally on your computer
To run this curriculum 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 show you different options for each of these tools to choose which one work best for you.
We recommend to use Visual Studio Code as your editor wey get built-in Terminal. You fit download Visual Studio Code here.
-
Clone your repository for your computer. You fit do dis by clicking the Code button and copy di URL:
Den, open Terminal for Visual Studio Code and run dis command, replace
<your-repository-url>wit 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 - to preview HTML pages within Visual Studio Code
- Copilot - to help you write code faster
📂 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
- assignment
- post-lesson quiz
A note about quizzes: All quizzes dey inside di Quiz-app folder, 48 total quizzes wey get three questions each. Dem dey available here di quiz app fit run locally or e fit deployed to Azure; follow di instruction wey dey di
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 underpinnings behind most programming languages and about software wey dey help professional developers do their jobs | 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 wit others for code base | Intro to GitHub | Floor |
| 03 | Getting Started | Accessibility | Learn di basics of web accessibility | Accessibility Fundamentals | Christopher |
| 04 | JS Basics | JavaScript Data Types | Di basics of JavaScript data types | Data Types | Jasmine |
| 05 | JS Basics | Functions and Methods | Learn about functions and methods to manage application logic 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 in JavaScript | Arrays and Loops | Jasmine |
| 08 | Terrarium | HTML in Practice | Build di HTML to create online terrarium, focus on building layout | Introduction to HTML | Jen |
| 09 | Terrarium | CSS in Practice | Build di CSS to style di online terrarium, focus on di basics of CSS including making di page responsive | Introduction to CSS | Jen |
| 10 | Terrarium | JavaScript Closures, DOM manipulation | Build di JavaScript to make di terrarium function 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 drive di logic of your JavaScript app | Event-Driven Programming | Christopher |
| 12 | Green Browser Extension | Working with Browsers | Learn how browsers work, their history, and how to scaffold di 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 di JavaScript elements of your browser extension to call API using variables wey dem store inside local storage | APIs, Forms, and Local Storage | Jen |
| 14 | Green Browser Extension | Background processes in the browser, web performance | Use di browser background processes to manage di extension’s 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 both 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 di Canvas API, wey dem dey use to draw elements for screen | Drawing to Canvas | Chris |
| 17 | Space Game | Moving elements around the screen | Discover how elements fit get motion using cartesian coordinates and di Canvas API | Moving Elements Around | Chris |
| 18 | Space Game | Collision detection | Make elements collide and react to each other using keypresses and provide cooldown function to make sure say di game perform well | Collision Detection | Chris |
| 19 | Space Game | Keeping score | Perform math calculations based on di game’s status and performance | Keeping Score | Chris |
| 20 | Space Game | Ending and restarting the game | Learn about ending and restarting di game, including cleaning up assets and resetting variable values | The Ending Condition | Chris |
| 21 | Banking App | HTML Templates and Routes in a Web App | Learn how to create scaffold of 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 | How data dey flow in and out of your app, how to fetch am, store am, and dispose am | Data | Yohan |
| 24 | Banking App | Concepts of State Management | Learn how your app retain state and how to manage am programmatically | State Management | Yohan |
| 25 | Browser/VScode Code | Working with VScode | Learn how to Using a 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 major pedagogical principles wey dey mind:
- project-based learning
- frequent quizzes
Di program dey teach fundamentals of JavaScript, HTML, and CSS, as well as di latest tools and techniques wey today's web developers dey use. Students go get chance to develop hands-on experience by building typing game, virtual terrarium, eco-friendly browser extension, space-invader-style game, and banking app for business. By end of di series, students go get solid understanding of web development.
🎓 You fit take di first few lessons inside this curriculum as Learn Path for Microsoft Learn!
By making sure say content match projects, di process dey more interesting for students and dem go remember di concepts better. We also write some starter lessons for JavaScript basics to introduce concepts, paired with video from "Beginners Series to: JavaScript" video tutorials collection, some authors for am help write dis curriculum.
Plus, low-stakes quiz before class set student intention to learn topic, while second quiz after class dey help retention. This curriculum design to be flexible and fun and students fit take am all or part. Projects start small and dey increase in complexity by end of 12-week cycle.
Even though we purposely no add JavaScript frameworks to focus on basic skills wey web developer need before e start to use framework, the next step after dis curriculum na to learn Node.js using another video collection: "Beginner Series to: Node.js".
Visit our Code of Conduct and Contributing guidelines. We dey welcome your constructive feedback!
🧭 Offline access
You fit run dis documentation offline by using Docsify. Fork dis repo, install Docsify for your local machine, then for di root folder of dis repo, type docsify serve. Di website go dey served for port 3000 on your localhost: localhost:3000.
A PDF of all di lessons fit waka find here.
🎒 Odda Kurs
Our team dey produce oda kurs dem! Check am out:
LangChain
Azure / Edge / MCP / Agents
Generative AI Series
Core Learning
Copilot Series
Getting Help
If you jam or get any question about how to build AI apps. Join other learners and experienced developers to yan about MCP. Na supportive community wey dey open for questions and wey knowledge dey share freely.
If you get product feedback or error while you dey build, waka go:
License
Dis repository dey licensed under di MIT license. See di LICENSE file for more info.
Disclaimer: Dis dokument don get translate wit AI translation service wey dem call Co-op Translator. Even though we dey try make am correct, abeg sabi say automated translations fit get mistake or no too correct. Di original dokument wey dey im original language na di true correct source. For important matter dem, e good make professional human translator do am. We no go nor carry any kain blame if person no understand well or if e misinterpret di translation wey we provide.