[![GitHub license](https://img.shields.io/github/license/microsoft/Web-Dev-For-Beginners.svg)](https://github.com/microsoft/Web-Dev-For-Beginners/blob/master/LICENSE) [![GitHub contributors](https://img.shields.io/github/contributors/microsoft/Web-Dev-For-Beginners.svg)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/graphs/contributors/) [![GitHub issues](https://img.shields.io/github/issues/microsoft/Web-Dev-For-Beginners.svg)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/issues/) [![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/Web-Dev-For-Beginners.svg)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/pulls/) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com) [![GitHub watchers](https://img.shields.io/github/watchers/microsoft/Web-Dev-For-Beginners.svg?style=social&label=Watch&maxAge=2592000)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/watchers/) [![GitHub forks](https://img.shields.io/github/forks/microsoft/Web-Dev-For-Beginners.svg?style=social&label=Fork&maxAge=2592000)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/network/) [![GitHub stars](https://img.shields.io/github/stars/microsoft/Web-Dev-For-Beginners.svg?style=social&label=Star&maxAge=2592000)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/stargazers/) [![Open in Visual Studio Code](https://open.vscode.dev/badges/open-in-vscode.svg)](https://open.vscode.dev/microsoft/Web-Dev-For-Beginners) # Веб-разработка для Начинающих - О Курсе Специалисты из Microsoft Azure Cloud Advocates рады представить 12-ти недельный обучающий курс, состоящий из 24-х уроков, в котором будет рассказано об основах JavaScript, CSS и HTML. К каждому уроку прилагается: викторина, которую стоит пройти перед уроком, викторина, которую стоит пройти после урока, текстовый урок, решение поставленных в уроке задач, задания и многое другое. Наша стратегия обучения на проектах-примерах, позволяет вам применять полученные знания, прямо во время обучения - проверенный способ закрепить новые навыки. **От всей души благодарим наших авторов: Jen Looper, Chris Noring, Christopher Harrison, Jasmine Greenaway, Yohan Lasorsa, Floor Drees, и художника зарисовок Tomomi Imura!** # Давайте начнем! > **Преподавателям.** Му подготовили [несколько советов](for-teachers.ru.md) о том, как использовать этот курс. Будем рады узнать о ваших впечатлениях на [нашем форуме](https://github.com/microsoft/Web-Dev-For-Beginners/discussions/categories/teacher-corner)! > **Ученикам.** Чтобы самостоятельно пройти этот курс, сделайте fork этого репозитория и выполняйте упражнения из данного курса. Начните с предурочной викторины, затем прочтите урок, после чего завершите оставшиеся задания и активности. Постарайтесь самостоятельно создавать проекты, используя информацию из уроков, нежели просто копировать текст из предложенных нами решений. Однако, вы всегда сможете найти код-решение в папке /solutions для каждого ориентированного на проект урока. Хорошей идеей будет собраться с друзьями и пройти курс всем вместе. Для дпльнейшего изучения мы рекомендуем почетить [Microsoft Learn](https://docs.microsoft.com/users/jenlooper-2911/collections/jg2gax8pzd6o81?WT.mc_id=academic-13441-cxa), а также посмотреть видеоматериалы, приведённые ниже. [![Promo video](../images/web.gif)](https://youtube.com/watch?v=R1wrdtmBSII "Видео-Презентация") Автор GIF-анимации [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) > 🎥 Кликните на изображение выше, чтобы посмотреть видео о нашем проекте и людях, создавших его! ## Стратегии обучения При построении этого курса, мы придерживались двух педагогических принципов: помнить о том, что курс ориентирован на обучение, путем проектирования и что он должен содержать большое количество викторин. По окончании обычения, ученики создадут игру, тренирующую навыки печати, виртуальный террариум, "зелёное" расширение для браузера, игру типа "Space Invaders" и банковское приложение для бизнеса, изучат основы JavaScript, HTML и CSS, а также набор современных инструментов для веб-разработчика сегодня. > 🎓 Вы можете пройти несколько первых уроков, используя нашу пошаговую систему обучения [Learn Path](https://docs.microsoft.com/learn/paths/web-development-101?WT.mc_id=academic-13441-cxa) на сайте Microsoft Learn! Проектно-ориентированная стратегия обучения позволяет сделать процесс обучения более привлекательным и облегчить закрепление полученных навыков и информации. Мы также написали несколько уроков, чтобы помочь вам познакомиться с основами JavaScript. Эти уроки совмещены с видео из коллекции уроков "[Знакомсвто с JavaScript](https://channel9.msdn.com/Series/Beginners-Series-to-JavaScript?WT.mc_id=academic-13441-cxa)". Некоторые из авторов этих видео также принимали участие и в создании этого курса. В дополнение, простая викторина перед уроками позволяет заинтересовать ученика в изучении темы, в то время как вторая викторина после занятия позволяет закрепить полученные знания. Этот курс был создан, чтобы быть занимательным для каждого. Вы можете пройти курс от начала до конца или изучить лишь его часть. Проекты, которые вы будете делать на протяжении курса, просты вначале и станут более сложными по завершении 12-ти недельного курса. Мы намеренно не раскрывали тему фреймворков JavaScript, чтобы сконцентрироваться получении базовых навыков, необходимых веб-разработчику. Следующим шагом, после прохождения этого курса, мы рекомендуем изучить Node.js, воспользовавшись этим набором видео-уроков: "[Знакомство с Node.js](https://channel9.msdn.com/Series/Beginners-Series-to-Nodejs?WT.mc_id=academic-13441-cxa)" > Вы можете ознакомиться с нашей [политикой взаимодействия с сообществом](../CODE_OF_CONDUCT.md), [правила внесения собственного вклада в развитие проекта](../CONTRIBUTING.md) и [правилами для переводчиков](../TRANSLATIONS.md). Мы очень ждём ваших конструктивных отзывов! ## Каждый урок включает в себя: - необязательную зарисовку - необязательное вспомогательное видео - викторину для разминки перед уроком - текстовый урок - для проектно-ориентированных уроков, пошаговое описание того, как построить проект - проверку знаний - "вызов" - вспомогательную литература - задания - викторину для прохождения после урока > **На заметку о викторинах**: все викторины находятся в [этом приложении](https://happy-mud-02d95f10f.azurestaticapps.net/), всего мы подготовили 48 викторин, в каждой из которых по три вопроса. Ссылки на них расположены в уроках, но вы можете взаимодействовать с викторинами в отдельности. Для этого, обратитесь к инструкциям в папке `quiz-app`. Эти инструкции активно локализуются. ## Уроки | | Наименование проекта | Получаемые знания | Цели обучения | Ссылка на урок | Автор | | :-: | :------------------------------------------------------: | :--------------------------------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------: | :---------------------: | | 01 | Начало | Введение в Программирование и Инструменты | Узнаем об основах, стоящих за большинством языков программирование и о программном обеспечении, которое помогает профессиональным разработчиками в их делах. | [Введение в программирование и инструменты](../1-getting-started-lessons/1-intro-to-programming-languages/translations/README.ru.md) | Jasmine | | 02 | Начало | Основы GiHhub, работа в команде | Как использовать GitHub в своих проектах, как писать од в команде | [Введение в GutHub](../1-getting-started-lessons/2-github-basics/translations/README.ru.md) | Floor | | 03 | Начало | Доступность | Изучите основы доступности сети | [Основы доступности](../1-getting-started-lessons/3-accessibility/README.md) | Christopher | | 04 | Основы JavaScript | Типы данных в JavaScript | Введение в типы данных в JavaScript. | [Типы данных](../2-js-basics/1-data-types/README.md) | Jasmine | | 05 | Основы JavaScript | Функции и Методы | Узнайте о функциях и методах, чтобы регулировать поведение и логику приложений. | [Функции и Методы](../2-js-basics/2-functions-methods/README.md) | Jasmine and Christopher | | 06 | Основы JavaScript | Принятие решений в JavaScript | Изучите, как задавать условия, если ваш код использует логику, основывающуюся на принятии решений. | [Принятие решений](../2-js-basics/3-making-decisions/README.md) | Jasmine | | 07 | Основы JavaScript | Массивы и Циклы | Изучите работу с данными, используя массивы и циклы в JavaScript. | [Массивы и Циклы](../2-js-basics/4-arrays-loops/README.md) | Jasmine | | 08 | [Террариум](../3-terrarium/solution/README.md) | HTML в действии | Постройте онлайн террариум, используя HTML, акцентируем внимание на построении разметки. | [Введение в HTML](../3-terrarium/1-intro-to-html/README.md) | Jen | | 09 | [Террариум](../3-terrarium/solution/README.md) | CSS в действии | Сделайте свой онлайн террариум уникальным, используя CSS. Акцентируем внимание на стилизации страницы, в том числе с элементами, реагирующими на пользователя. | [Введение в CSS](../3-terrarium/2-intro-to-css/README.md) | Jen | | 10 | [Террариум](../3-terrarium/solution/README.md) | Иерархия в JavaScript, взаимодействие со страницей | Постройте JavaScript, превращающий ваш террариум в интерактивное потяни-и-отпусти приложение. Акцентируем внимание на взаимодействие со страницей и иерархиях в JavaScript. | [Иерархия в JavaScript, взаимодействие со страницей](../3-terrarium/3-intro-to-DOM-and-closures/README.md) | Jen | | 11 | ["Печатная игра"](../4-typing-game/solution/README.md) | Постройте "Печатную игру" | Научитесь использовать события с клавиатуры, чтобы управлять своим приложением JvaScript. | [Программирование, основанное на событиях](../4-typing-game/typing-game/README.md) | Christopher | | 12 | ["Зелёное" расширение для браузера](../5-browser-extension/solution/README.md) | Работа с браузерами | Изучите, как работают браузеры, их историю и сделайте свои первые шаги в разработке расширений для браузера. | [О браузерах](../5-browser-extension/1-about-browsers/README.md) | Jen | | 13 | ["Зелёное" расширение для браузера](../5-browser-extension/solution/README.md) | Строим форму, обращаемся к API и сохраняем данные | Постройте элементы JavaScript для своего расширения, чтобы обращаться к API, используя сохраненные данные. | [API, формы и хранение данных](../5-browser-extension/2-forms-browsers-local-storage/README.md) | Jen | | 14 | ["Зелёное" расширение для браузера](../5-browser-extension/solution/README.md) | Фоновые процессы в браузере, эффективность | Используйте фоновые процессы браузера, чтобы изменять иконку вашего расширения, изучите работу с сетью и узнайте, какие оптимизации можно применить к вашему проекту. | [Фоновые процессы и эффективность](../5-browser-extension/3-background-tasks-and-performance/README.md) | Jen | | 15 | [Космическая игра](../6-space-game/solution/README.md) | Более сложная разработка игр с использованием JavaScript | Узнайте о наследовании, используя Классы и Композиции, а также паттерн Pub/Sub в качестве подготовки к построению игры. | [Введение в более сложную разработку игр](../6-space-game/1-introduction/README.md) | Chris | | 16 | [Космическая игра](../6-space-game/solution/README.md) | Рисование с использованием Canvas | Изучите Canvas API, чтобы рисовать элементы на экране. | [Рисование с помощью Canvas](../6-space-game/2-drawing-to-canvas/README.md) | Chris | | 17 | [Космическая игра](../6-space-game/solution/README.md) | Двигаем элементы на экране | Узнайте, как вы можете заставить объекты на экране двигаться, используя координатную систему Canvas API | [Двигаем элементы](../6-space-game/3-moving-elements-around/README.md) | Chris | | 18 | [Космическая игра](../6-space-game/solution/README.md) | Обработка столкновений | Заставьте элементы сталкиваться друг с другом при нажатии на клавиши, а также добавьте cooldown-функцию, чтобы повысить эффективность игры. | [Обработка столкновений](../6-space-game/4-collision-detection/README.md) | Chris | | 19 | [Космическая игра](../6-space-game/solution/README.md) | Подсчет очков | Совершайте математические вычисления, основываясь на статусе игры и уровне игрока. | [Подсчет очков](../6-space-game/5-keeping-score/README.md) | Chris | | 20 | [Космическая игра](../6-space-game/solution/README.md) | Окончание и перезапуск игры | Изучите то, как заканчивать и заново начинать игру, включая очистку ресурсов и обнуление переменных. | [Условия окончания](../6-space-game/6-end-condition/README.md) | Chris | | 21 | [Банковское приложение](../7-bank-project/solution/README.md) | Пути и Шаблоны в веб-приложениях HTML | Изучмите как начать построение мультистраничного вебсайта с использованием путей и шаблонов HTML. | [Пути и Шаблоны в HTML](../7-bank-project/1-template-route/README.md) | Yohan | | 22 | [Банковское приложение](../7-bank-project/solution/README.md) | Постройте форму для входа и регистрации | Изучите построение форм и их валидацию | [Формы](../7-bank-project/2-forms/README.md) | Yohan | | 23 | [Банковское приложение](../7-bank-project/solution/README.md) | Методы обработки и использования информации | Как информация проходит через ваше приложение, как обрабатывать, хранить и уничтожать её. | [Информация](../7-bank-project/3-data/README.md) | Yohan | | 24 | [Банковское приложение](../7-bank-project/solution/README.md) | Концепции управления состояниями | Изучите, как ваше приложение запоминает состояния и как эти пользоваться. programmatically | [Управление состояниями](../7-bank-project/4-state-management/README.md) | Yohan | ## Оффлайн доступ Вы можете использовать эьту документацию оффлайн при помощи [Docsify](https://docsify.js.org/#/). Сделайте fork этого репозитория, [установите Docsify](https://docsify.js.org/#/quickstart) на ваш компьютер, а затем в корневой директории этого репозитория воспользуйтесь командой `docsify serve`. Вебсайт будет доступен по адресу `localhost:3000`. ## PDF Все уроки в формате PDF доступны [здесь](https://microsoft.github.io/Web-Dev-For-Beginners/pdf/readme.pdf) ## Другие курсы Наша команда создает и другие курсы! Рекомендуем взглянуть: - [Машинное Обучение для Начинающих](https://aka.ms/ml-beginners) - [IoT для Начинающих](https://aka.ms/iot-beginners) - [Data Science для Начинающих](https://aka.ms/datascience-beginners)