Программирование js: Основы JavaScript — Изучение веб-разработки

Содержание

Курс «JS: Программирование, управляемое данными»: обучение онлайн, 9 уроков

курс

3716 студентов 3069 сообщений

Последнее обновление: 29 августа 2022

Включено в курс

9 уроков (видео и/или текст)

8 упражнений в тренажере

33 проверочных теста

Дополнительные материалы

Помощь в «Обсуждениях»

Доступ к остальным курсам платформы

Чему вы научитесь

  • Делать свое ООП с типами и диспетчеризацией
  • Использовать инверсию зависимостей для изменения поведения кода без его переписывания
  • Создавать классы и использовать их в JavaScript
  • Применять полиморфизм для уменьшения количества условных конструкций и дублирования

Описание

В течение этого курса мы будем писать собственную карточную игру и знакомиться с такими важными концепциями программирования, как пользовательские типы, динамическая диспетчеризация по типу, позволяющая писать ёмкий, универсальный код, полиморфизм, передача сообщений между сущностями и, конечно, основы важнейшей темы — объектно-ориентированного программирования. Также мы перейдем к разработке через тесты (test driven development).

ООП Динамическая диспетчеризация типы данных Объекты

Уроки курса

Продолжительность 11 часов

  • Введение

    Познакомиться с курсом и с проектом карточной игры, над которым мы будем работать в течение всего курса, по ходу знакомясь с важными концепциями программирования.

    теория

  • Игровой дизайн: карточный бой

    Продумать игровой дизайн нашей карточный игры: как работает игра, как выглядит структура программы и как устроен процесс игры. Проработать поведение программы через тесты.

    теория

    тесты

    упражнение

  • Инверсия

    Улучшить один важный аспект игры, который не позволял нам полноценно тестировать ход игры.

    теория

    тесты

    упражнение

  • Помеченные данные

    Разобрать недостатки текущей реализации нашей игры. Разобраться с понятием «помеченных данных», которое является одним из важнейших аспектов всего курса.

    теория

    тесты

    упражнение

  • Диспетчеризация по типу. Аддитивность.

    Понять, что такое аддитивные программы и как динамическая диспетчеризация поможет нам строить такие программы. Разобраться, что такое диспетчеризация в контексте программирования и типов.

    теория

    тесты

    упражнение

  • Объекты

    Познакомиться с объектами в контексте современного, общепринятого понятия объектно-ориентированного программирования. Понять, как динамическая диспетчеризация дала возможность работать с объектами в ООП.

    теория

    упражнение

  • Нативные объекты

    Рассмотреть объекты, встроенные в сам язык JavaScript, с учетом знаний об объектах, которые мы получили ранее. Разобраться с тем, как объекты определяются как константы, но при этом могут изменяться.

    теория

    тесты

    упражнение

  • Классы

    Познакомиться с классом — структурой, которая позволяет создавать объекты.

    Рассмотреть механизм создания новых объектов с помощью ‘new’.

    теория

    тесты

    упражнение

  • Полиморфизм

    Познакомиться с понятием полиморфизма в языках программирования. Разобрать три типа полиморфизма.

    теория

    тесты

    упражнение

Формат обучения

Тимур Ахметов19 ноября 2020

У меня прозрение! Я уже прошел всю «профессию», но только после этого урока по-настоящему понял:

  1. что такое ООП и зачем оно нужно
  2. как работает «передача сообщений»
  3. разницу между объектами в контексте ООП и типом данных Object в JS

Неиспользование в данном курсе специфического для языка синтаксиса действительно помогло лучше понять фундаментальные концепции программирования!


Lidia M16 августа 2019

После пройденной профессии PHP этот курс очень хорошо зашел. Более глубокое понимание темы ООП, чем популярное «это там, где классы и объекты»))


Dima26 ноября 2020

потрясающе как из пар строились точки в координатной плоскости, а теперь с их же помощью динамическая диспетчеризация. это конечно высший пилотаж


Владимир Дранников21 апреля 2020

Отличное задание, было круто. На поиски решений ушли почти сутки, но это того стоило. Немножко запарился с вызовом функции для дамага и с тернарниками, коих я написал в большом колличестве. Решение учителя мне показалось досточно сложным для понимания, пришлось переписать его несколько раз, чтобы врубиться.


Dmitry Fedotov18 января 2020

Спасибо за такой прекрасный курс, было очень интересно!)

Парадигмы программирования — JavaScript — Дока

Кратко

Секция статьи «Кратко»

Программировать можно по-разному. Набор приёмов и понятий, которые определяют «как писать», называют парадигмой.

В этой статье мы рассмотрим, какие парадигмы в программировании бывают и чем они отличаются друг от друга.

Программа — это инструкция. Когда вы объясняете другу, как к вам доехать, вы, в принципе, программируете.

Объяснение, как к вам добраться, можно построить по-разному. Можно просто назвать адрес, а можно рассказать в деталях, где свернуть, на какую сторону улицы перейти, в какой дом зайти.

Например:

«Выходи на Александра Невского, сверни налево и иди до перекрёстка, там перейдёшь дорогу, свернёшь налево и пройдёшь до 38 дома, обойди дом, так как вход со двора, дойди до 2 подъезда слева и набери 2468, поднимись на четвёртый этаж, тридцать третья квартира.

Или:

«Адрес: ул. Свободы, д. 38, кв. 33, домофон 2468.»

Обе инструкции — об одном и том же, но в них есть одно значительное отличие.

Стили объяснения

Секция статьи «Стили объяснения»

Первая инструкция объясняет, как добраться до нужного места. Она описывает в деталях, какие действия и в какой момент надо предпринять. По сути — это набор команд, которые нужно выполнить, чтобы достичь результата.

Такой стиль объяснения (или программирования) называется императивным.

Вторая же инструкция объясняет, что мы должны получить в результате — где друг должен оказаться. Нам не особо важно, как он или она туда доберётся, важно — куда.

Такой стиль программирования называется декларативным.

Императивный стиль

Секция статьи «Императивный стиль»

Чтобы лучше понять разницу между императивным и декларативным стилями, давайте напишем небольшую функцию для нахождения всех нечётных элементов в массиве. Сперва сделаем это императивно:

function onlyOdd(array) {  const result = []  for (const element of array) {    if (element % 2 !== 0) {      result.push(element)    }  }  return result}
          function onlyOdd(array) {
  const result = []
  for (const element of array) {
    if (element % 2 !== 0) {
      result.push(element)
    }
  }
  return result
}

Заметьте, как мы строим эту функцию. Мы как бы говорим:

  • сперва присвой переменной result значение [];
  • затем пройдись по каждому элементу в массиве array;
    • проверь, что значение этого элемента нечётное;
    • если это так, добавь этот элемент в result;
  • после — верни result
    .

То есть наша императивная функция — это набор конкретных команд, которые выполняются последовательно одна за другой.

Декларативный стиль

Секция статьи «Декларативный стиль»

Теперь попробуем ту же функцию написать декларативно, то есть не вдаваясь в детали:

function onlyOdd(array) {  return array.filter((element) => element % 2 !== 0)}
          function onlyOdd(array) {
  return array.filter((element) => element % 2 !== 0)
}

Мы говорим, что нам надо отфильтровать массив по указанному критерию. При этом нам не важно, как будет осуществлена эта фильтрация. Нам даже не важно, кто этим будет заниматься — нам лишь важно, какой массив на выходе мы хотим получить.

Разница между подходами

Секция статьи «Разница между подходами»

Разница между этими подходами — в деталях реализации. В первом случае детали описываем мы сами, во втором они от нас скрыты.

Декларативный подход читается в среднем легче, хотя на написание в обоих стилях времени может уходить одинаковое количество (но это тоже зависит от конкретных разработчиков, потому что кто-то мог привыкнуть к конкретному стилю).

Человеческий мозг может держать одновременно в памяти ограниченное количество объектов. Если мы работаем с какой-то сложной системой, нам будет трудно одновременно помнить и о том, что она делает, и о том, как она устроена.

Императивный стиль смешивает назначение программы и детали её реализации, в то время как декларативный старается описывать только назначение.

Плюсы и минусы зависят от контекста:

  • Если вам нужно детально описать какое-то действие — например при разработке конкретного алгоритма — то больше подходит императивный подход;
  • Если вы работаете на уровне бизнес-логики, то лучше писать декларативно, а детали реализации скрыть в более низком уровне абстракций.

Парадигмы императивного стиля

Секция статьи «Парадигмы императивного стиля»

Стили программирования развивались много лет, и за это время в каждом появились практики и приёмы, которые со временем стали парадигмами.

Процедурное программирование

Секция статьи «Процедурное программирование»

Функция onlyOdd(), которую мы написали ранее в императивном стиле, как раз похожа на одну из парадигм —

процедурное программирование.

Это парадигма, в которой последовательные команды собираются в подпрограммы.

Между собой эти подпрограммы общаются через общую память. Если проводить аналогию с функциями, то они бы общались через глобальные переменные. Как это работает, можно узнать подробнее из статьи «Области видимости».

/*  Как пример мы можем рассмотреть программу,    которая использует «подпрограммы» (в нашем случае функции),    меняя состояние памяти (в нашем случае простой массив битов).    Состояние памяти потом может быть использовано,    например, для работы с каким-то устройством. */let memory = [0, 0, 0, 0, 0, 0, 0, 0]function invertSmallestBit() {  memory[7] = Number(!memory[7])  return memory}function invertBiggestBit() {  memory[0] = Number(!memory[0])  return memory}invertSmallestBit()// [0, 0, 0, 0, 0, 0, 0, 1]invertBiggestBit()// [1, 0, 0, 0, 0, 0, 0, 1]invertSmallestBit()// [1, 0, 0, 0, 0, 0, 0, 0]
          
/* Как пример мы можем рассмотреть программу, которая использует «подпрограммы» (в нашем случае функции), меняя состояние памяти (в нашем случае простой массив битов). Состояние памяти потом может быть использовано, например, для работы с каким-то устройством. */ let memory = [0, 0, 0, 0, 0, 0, 0, 0] function invertSmallestBit() { memory[7] = Number(!memory[7]) return memory } function invertBiggestBit() { memory[0] = Number(!memory[0]) return memory } invertSmallestBit() // [0, 0, 0, 0, 0, 0, 0, 1] invertBiggestBit() // [1, 0, 0, 0, 0, 0, 0, 1] invertSmallestBit() // [1, 0, 0, 0, 0, 0, 0, 0]

Из подпрограмм появилось понятие модулей, но само по себе процедурное программирование не очень удобно в плане переиспользования кода.

Объектно-ориентированное программирование

Секция статьи «Объектно-ориентированное программирование»

Самая популярная парадигма императивного стиля — ООП. Это настолько большая тема, что мы собрали о ней отдельный лонгрид.

ООП (объектно-ориентированное программирование) — парадигма, в которой сущности в программе представляются в виде объектов.

Каждый объект — экземпляр какого-то класса, некой абстрактной сущности, в которой описано поведение.

/*  Основные понятия ООП: классы и экземпляры классов.    Класс можно воспринимать как чертёж,    по которому создаются объекты.    Экземпляр класса — это созданный по чертежу объект. *//*  Класс User описывает, какие поля (name, admin)    и методы (isAdmin, nameOf) будет содержать созданный    по этому классу объект. */class User {  constructor(name) {    this.name = name    this.admin = false  }  isAdmin() {      return this.admin  }  nameOf() {      return this.name  }}/*  Объекты создаются с помощью new.    Свежесозданный объект содержит всё,    что было описано в классе User. */const user = new User('Alex')console.log(user.isAdmin())// falseconsole.log(user.nameOf())// 'Alex'/*  Плюс классов в том, что они позволяют    единожды описать все одинаковые поля и методы,    которые должны быть у однотипных объектов. */const anotherUser = new User('Alice')console.log(anotherUser.isAdmin())// falseconsole.log(anotherUser.nameOf())// 'Alice'
          
/* Основные понятия ООП: классы и экземпляры классов. Класс можно воспринимать как чертёж, по которому создаются объекты. Экземпляр класса — это созданный по чертежу объект. */ /* Класс User описывает, какие поля (name, admin) и методы (isAdmin, nameOf) будет содержать созданный по этому классу объект. */ class User { constructor(name) { this.name = name this.admin = false } isAdmin() { return this.admin } nameOf() { return this.name } } /* Объекты создаются с помощью new. Свежесозданный объект содержит всё, что было описано в классе User. */ const user = new User('Alex') console.log(user.isAdmin()) // false console.log(user.nameOf()) // 'Alex' /* Плюс классов в том, что они позволяют единожды описать все одинаковые поля и методы, которые должны быть у однотипных объектов. */ const anotherUser = new User('Alice') console.log(anotherUser.isAdmin()) // false console.log(anotherUser.nameOf()) // 'Alice'

ООП характеризуется 4 основными аспектами:

  • Абстракцией — выделением таких характеристик объекта, которые достаточно точно описывают его поведение, но не вдаются в детали;
  • Инкапсуляцией — размещением данных внутри того объекта, который их использует;
  • Полиморфизмом — умением работать с разными типами объектов или данных;
  • Наследованием — умением объекта «забирать по наследству» свойства или характеристики от объектов-родителей.

Стоит отметить, что у наследования есть несколько нерешаемых проблем, из-за чего разработчики больше предпочитают наследованию композицию.

Плюсы ООП

Самый важный плюс — это удобство моделирования систем. Когда каждый компонент системы представлен в виде объекта, отношения между этими объектами проще регламентировать и зафиксировать.

Большая часть энтерпрайз-инструментов для моделирования и документации (UML, DFD, IDEF, Entity-relations) основана именно на объектно-ориентированном представлении систем.

Ещё один плюс — это изученность подхода. ООП достаточно старо, и о нём написано очень много книг и рекомендаций, а минусы хорошо изучены. Поэтому и велосипедов писать по ходу написания приложения не надо.

Минусы ООП

Один из принципов ООП — это инкапсуляция, из-за которой доступ к данным может быть ограничен. Если мы хотим этими данными поделиться, то может случиться, что доступ к ним хотят получить сразу несколько объектов.

С чтением проблем обычно нет, но если какие-то объекты хотят данные изменить, то мы наткнёмся на проблему конкурентных вычислений.

Представим, чтобы Google Docs спроектированы без учёта этой проблемы. Если два пользователя одновременно правят один и тот же документ, то правки одного могли бы затирать правки другого. Не круто.

Но это минус не только ООП, а вообще любой парадигмы, в которой есть общая память или общие данные.

Ещё одна проблема — это наследование. Простое наследование не всегда полностью отражает отношения компонентов.

Например, чайник с таймером должен наследоваться от чайника или от таймера? Хороший ответ — от того и от другого (a.k.a множественное наследование). Правильный ответ — наследованию стоит предпочесть композицию.

Парадигмы декларативного стиля

Секция статьи «Парадигмы декларативного стиля»

На контрасте с императивным стилем развивался и декларативный. В нём люди тоже собирали лучшие практики, которые со временем стали парадигмами.

Логическое программирование

Секция статьи «Логическое программирование»

В целом это скорее математика, чем программирование. Его суть заключается в том, чтобы, используя математические доказательства и законы логики, решать бизнес-задачи.

Чтобы использовать логическое программирование, необходимо уметь переводить любую задачу на язык математики.

Логическое программирование часто используется для моделирования процессов.

Для примера нам бы понадобилось тащить сюда математическую модель для него, а это надолго. Поэтому приводить примеры мы, пожалуй, не станем :–)

(Но дадим ссылку на jsprolog, который часто используется для подобного рода задач.)

Функциональное программирование

Секция статьи «Функциональное программирование»

Самая известная парадигма декларативного стиля — функциональное программирование.

В этой парадигме понятие функции близко к математическому понятию функции. То есть это штука, которая как-то преобразует входные данные.

Особенность функции в этой парадигме в том, что она должна быть чистой, то есть должна зависеть только от аргументов и не может иметь никаких побочных эффектов.

Побочный эффект — это какое-либо изменение внешней среды.

Если функция меняет глобальную переменную или, например, вызывает метод внешнего объекта, то она меняет внешнюю среду. Это и есть побочный эффект.

// Эта функция чистая:function double(x) {  return x * 2}/*  При одинаковых вызовах она    всегда возвращает одинаковый результат. */double(2)// 4double(2)// 4double(2)// 4// Следующая функция нечистая:let x = 1function double() {  x *= 2  return x}/*  Она меняет (или мутирует) переменную x,    которая находится снаружи области видимости функции. */double()// 2double()// 4double()// 8// Эта функция — тоже нечистая:function double() {  return x * 2}/*  Она зависит от переменной    из области видимости снаружи функции. */// При одинаковых вызовах ответ может быть разным:x = 1double()// 2x = 2double()// 4
          // Эта функция чистая:
function double(x) {
  return x * 2
}
/*  При одинаковых вызовах она
    всегда возвращает одинаковый результат.  */
double(2)
// 4
double(2)
// 4
double(2)
// 4
// Следующая функция нечистая:
let x = 1
function double() {
  x *= 2
  return x
}
/*  Она меняет (или мутирует) переменную x,
    которая находится снаружи области видимости функции. */
double()
// 2
double()
// 4
double()
// 8
// Эта функция — тоже нечистая:
function double() {
  return x * 2
}
/*  Она зависит от переменной
    из области видимости снаружи функции. */
// При одинаковых вызовах ответ может быть разным:
x = 1
double()
// 2
x = 2
double()
// 4

Плюсы ФП

Мощь функционального программирования проявляется в параллельных вычислениях. Так как нет никакого общего состояния или общей памяти, параллелить вычисления можно сколько угодно, никаких негативных последствий это не вызовет.

Кроме этого чистые функции отлично тестируются, потому что не требуют сложной настройки теста. Мы прекрасно видим, что функции потребуется для проверки, потому что всё находится в списке аргументов.

Минусы ФП

Первый минус — потребление памяти. ФП требует, чтобы не было побочных эффектов. Значит, если мы хотим изменить какой-то объект, нам надо создать свежую копию этого объекта и менять её. Иногда это может приводить к большому количеству данных, которые надо держать в памяти.

Вселенная — это побочный эффект. Концепция чистых функций — это замечательно, но ФП в чистейшем его виде просто невозможно, потому что общение с пользователем, сетью, обработка ошибок — либо сами по себе побочные эффекты, либо включают их в себя.

На практике

Секция статьи «На практике»

Саша Беспоясов советует

Секция статьи «Саша Беспоясов советует»

Как мы видели, программировать в чистейшем функциональном стиле зачастую невозможно. Но на самом деле программировать в чистейшем объектно-ориентированном виде тоже не всегда необходимо.

Выбор парадигмы зависит от многих факторов: договорённости, язык программирования, привычки и прочее. Но один из таких факторов — удобство решения задачи.

Если очевидно, что задачу можно решить одной функцией, то нет необходимости городить ООП-шный зоопарк. И так же нет смысла отказываться от плюсов ФП, если нам нужно работать с побочными эффектами.

Мультипарадигменные языки

Секция статьи «Мультипарадигменные языки»

Для большой части задач так мы вовсе можем использовать и ФП, и ООП, и процедурное, и логическое программирование. И есть языки, которые не привязаны к конкретной парадигме. JavaScript как раз один из таких языков. (Именно поэтому мы могли описать пример для каждой парадигмы на нём.)

Мы можем писать на JS в любой парадигме, которой захотим (В ООП, правда, — с небольшими ограничениями и поправками на систему прототипов).

Давайте попробуем решить одну и ту же задачу в рамках ООП и ФП. Напишем модуль, который будет прибавлять и отнимать значения.

В стиле ООП

Секция статьи «В стиле ООП»
class Calculator {  // Храним (инкапсулируем) значение  // внутри модуля в поле value.   constructor(initial = 0) {    this.value = initial  }  // При добавлении увеличиваем value  // на указанное количество.  add(x) {    this.value += x  }  // При вычитании уменьшаем value  // на указанное количество.  subtract(x) {    this.value -= x  }  valueOf () {      return this.value  }}// Создаём экземпляр класса// с начальным состоянием, равным 0.const calculator = new Calculator()calculator.add(3)console.log(calculator.valueOf())// 3calculator.add(4)console.log(calculator.valueOf())// 7calculator.subtract(1)console.log(calculator.valueOf())// 6
          class Calculator {
  // Храним (инкапсулируем) значение
  // внутри модуля в поле value.
  constructor(initial = 0) {
    this.value = initial
  }
  // При добавлении увеличиваем value
  // на указанное количество.
  add(x) {
    this.value += x
  }
  // При вычитании уменьшаем value
  // на указанное количество.
  subtract(x) {
    this.value -= x
  }
  valueOf () {
      return this.value
  }
}
// Создаём экземпляр класса
// с начальным состоянием, равным 0. 
const calculator = new Calculator()
calculator.add(3)
console.log(calculator.valueOf())
// 3
calculator.add(4)
console.log(calculator.valueOf())
// 7
calculator.subtract(1)
console.log(calculator.valueOf())
// 6

В стиле ФП

Секция статьи «В стиле ФП»
// Функция будет принимать 2 параметра,// потому что состояния,// где бы хранилось первое значение, нет.// Функция должна зависеть только от аргументов.function add(a, b) {  return a + b}// Здесь точно так же.function subtract(a, b) {  return a - b}// Вызывали бы наши функции мы так:console.log(add(0, 3))// 3console.log(add(3, 4))// 7console.log(subtract(7, 1)) // 6// Или одной строкой:console.log(  subtract(add(add(0, 3), 4), 1))// 6
          // Функция будет принимать 2 параметра,
// потому что состояния,
// где бы хранилось первое значение, нет.
// Функция должна зависеть только от аргументов.
function add(a, b) {
  return a + b
}
// Здесь точно так же.
function subtract(a, b) {
  return a - b
}
// Вызывали бы наши функции мы так:
console. log(add(0, 3))
// 3
console.log(add(3, 4))
// 7
console.log(subtract(7, 1)) // 6
// Или одной строкой:
console.log(
  subtract(add(add(0, 3), 4), 1)
)
// 6

Онлайн-курс — Введение в программирование на JavaScript (Хавьер Усобиага Феррер)


Активируйте курс с кодом подарка


Испанский с английскими субтитрами

  • 98% положительных отзывов (459)
  • 16597 студентов
  • 25 уроков (3ч 2м)
  • 14 дополнительных ресурсов (11 файлов)
  • Онлайн и в своем собственном темпе
  • Доступно в приложении
  • Аудио: испанский
  • испанский, английский, португальский, немецкий, французский, итальянский, польский, нидерландский
  • Уровень: Средний
  • Неограниченный доступ навсегда

JavaScript известен как «язык, на котором работает Интернет». Он был разработан для повышения интерактивности любой веб-страницы. Это один из самых важных языков программирования наряду с HTML и CSS.

Это вводный курс по JavaScript, начиная с основ — синтаксиса и переменных — и заканчивая такими понятиями, как условные операторы, массивы, циклы и события, используя игру на запоминание, которую вы шаг за шагом строите, следуя указаниям Хавьера Усобиаги. , веб-дизайнер и основатель студии Swwweet с более чем десятилетним опытом работы в этой области.

Если это ваш первый опыт веб-дизайна, было бы неплохо пройти курс Хавьера Усобиаги «Введение в адаптивную веб-разработку с использованием HTML и CSS».

перед запуском этого.

Чему вы научитесь на этом онлайн-курсе?

Содержание курса

Подробнее

Познакомьтесь с Хавьером поближе. Он рассказывает о своей работе и самых больших влияниях в мире дизайна и веб-разработки.

Получите лучшее представление о JavaScript — для чего он используется и почему он является одним из основополагающих языков веб-программирования, наряду с HTML и CSS. Узнайте, как настроить редактор кода для более удобной работы, а затем узнайте, как включить JavaScript в веб-страницу.

Ваше первое знакомство с JavaScript связано с переменными, функциями, событиями и циклами, которые вы научитесь писать вместе с другими основными дополнительными функциями JavaScript.

Отсюда начните разработку игры на память, начав с массива или списка значений, представляющих колоду карт для вашей игры.

Добавьте события и случайные розыгрыши карт, чтобы немного усложнить задачу.

Теперь пришло время добавить первый интерактивный элемент в вашу игру на развитие памяти: пометить выбранную пару карт как совпадающую или неправильную. Постепенно добавляйте больше функций, относящихся к определенной части сценария, таких как «совпадение» и «неправильно», а также управляйте обратной связью для каждого из результатов.

Чтобы еще больше усложнить задачу, добавьте в интерфейс таймер, уровни сложности, звуковые эффекты и дополнительные детали.

Завершите просмотр различных дополнительных библиотек ресурсов, которые может предложить JavaScript, включая jQuery, React и Vue.

Что представляет собой проект этого курса?

Создать обновление для игры на развитие памяти, созданное на протяжении всего курса, включая новые правила, исправления ошибок и эффекты.

Проекты курсантов

  • Автор: otra_ale

  • Автор: soria.c

  • Изалузбель

  • +57

Для кого этот онлайн-курс?

Всем, кто интересуется веб-дизайном.

Требования и материалы

Для прохождения этого курса вам потребуются базовые знания HTML и CSS, а также компьютер с редактором кода.


Отзывы


Хавьер Усобиага более десяти лет работает веб-дизайнером и фронтенд-разработчиком, а также является соучредителем студии Swwweet вместе с Мартой Армадой.

Ему также нравится проводить семинары по веб-дизайну в таких престижных школах, как Elisava и IDEP.

Хавьер понимает Интернет во всей его полноте, не только то, насколько красивым он может быть на экране, но и насколько он удобен для пользователя на всех устройствах и в различных контекстах.

По его собственным словам, «скорость загрузки и отклика страницы так же важна, как и эстетика, а в нашей работе это часто упускается из виду».


Содержание


Чего ожидать от курса Domestika

  • Учитесь в своем собственном темпе

    Наслаждайтесь обучением дома без установленного расписания и с помощью простого метода. Вы сами задаете темп.

  • Учитесь у лучших профессионалов

    Изучите ценные методы и техники, объясненные ведущими экспертами в области творчества.

  • Познакомьтесь с опытными учителями

    Каждый эксперт учит тому, что у него получается лучше всего, с четкими инструкциями, искренней страстью и профессиональным пониманием на каждом уроке.

  • Сертификаты

    Плюс

    Если вы являетесь участником Plus или PRO, получите специальный сертификат, подписанный вашим учителем для каждого курса. Поделитесь им в своем портфолио, социальных сетях или где угодно.

  • Получите места в первом ряду

    Видео высочайшего качества, чтобы вы не упустили ни одной детали. С неограниченным доступом вы можете смотреть их столько раз, сколько вам нужно, чтобы усовершенствовать свою технику.

  • Делитесь знаниями и идеями

    Задавайте вопросы, запрашивайте отзывы или предлагайте решения. Поделитесь своим опытом обучения с другими учащимися в сообществе, которые так же увлечены творчеством, как и вы.

  • Присоединяйтесь к глобальному творческому сообществу

    Сообщество является домом для миллионов людей со всего мира, которые любопытны и увлечены исследованием и выражением своего творчества.

  • Смотрите профессионально подготовленные курсы

    Domestika курирует свой список учителей и самостоятельно разрабатывает каждый курс, чтобы обеспечить высококачественное онлайн-обучение.


Часто задаваемые вопросы

Что такое онлайн-курсы «Доместики»?

Курсы Domestika — это онлайн-курсы, которые предоставляют вам инструменты и навыки, необходимые для выполнения определенного проекта. На каждом этапе проекта видеоуроки сочетаются с дополнительными учебными материалами, поэтому вы можете учиться на практике. Курсы Domestika также позволяют вам делиться своими проектами с учителем и другими учениками, создавая динамичное сообщество курса.

Когда курсы начинаются и когда заканчиваются?

Все курсы на 100% онлайн, поэтому после их публикации курсы начинаются и заканчиваются в любое время. Вы задаете темп урока. Вы можете вернуться, чтобы просмотреть то, что вас больше всего интересует, и пропустить то, что вы уже знаете, задать вопросы, ответить на вопросы, поделиться своими проектами и т. д.

Что входит в курсы «Доместики»?

Курсы разделены на разные блоки. Каждое из них содержит уроки, информационный текст, задания и практические упражнения, которые помогут вам шаг за шагом выполнять проект, а также дополнительные дополнительные ресурсы и файлы для загрузки. У вас также будет доступ к эксклюзивному форуму, где вы сможете взаимодействовать с учителем и другими учениками, а также делиться своей работой и проектом курса, создавая вокруг курса сообщество.

Вам дали курс?

Вы можете активировать полученный курс, зайдя на страницу активации и введя свой подарочный код.

Когда я получу сертификат о прохождении курса? Plus

Если вы являетесь участником Plus или PRO, после прохождения курса вы сразу же получите персональный сертификат. Вы можете увидеть все свои сертификаты в разделе «Сертификаты» вашего профиля. Вы можете загрузить свои сертификаты в формате PDF и поделиться ссылкой в ​​Интернете. Узнать больше о сертификатах

Программирование с помощью JavaScript | Coursera

Об этом курсе

1 293 749 недавних просмотров

JavaScript — это язык программирования, лежащий в основе современной сети. В этом курсе вы изучите основные концепции веб-разработки с помощью JavaScript. Вы будете работать с функциями, объектами, массивами, переменными, типами данных, HTML DOM и многим другим. Вы узнаете, как использовать JavaScript, и откроете для себя интерактивные возможности современных технологий JavaScript. Наконец, вы узнаете о практике тестирования кода и о том, как написать модульный тест с помощью Jest.

Гибкие сроки

Гибкие сроки

Сброс сроков в соответствии с вашим графиком.

Совместно используемый сертификат

Совместно используемый сертификат

Получите сертификат по завершении

100% онлайн

100% онлайн

Начните немедленно и учитесь по собственному графику.

Coursera Labs

Coursera Labs

Включает практические учебные проекты.

Узнайте больше о Coursera Labs Внешняя ссылка Начальный уровень

Начальный уровень

Нет! Учащимся не требуется предварительный опыт веб-разработки. Только базовые навыки интернет-навигации и желание начать кодирование.

Количество часов на выполнение

Прибл. 42 часа на выполнение

Доступные языки

Английский

Субтитры: английский

Чему вы научитесь

  • Создание простых кодов JavaScript.

  • Создание и управление объектами и массивами.

  • Написание модульных тестов с использованием Jest

Навыки. .

Совместно используемый сертификат

Совместно используемый сертификат

Получите сертификат по завершении

100% онлайн

100% онлайн

Начните немедленно и учитесь по собственному графику.

Coursera Labs

Coursera Labs

Включает практические учебные проекты.

Узнайте больше о Coursera Labs Внешняя ссылка Начальный уровень

Начальный уровень

Нет! Учащимся не требуется предварительный опыт веб-разработки. Только базовые навыки интернет-навигации и желание начать кодирование.

Количество часов на выполнение

Прибл. 42 часа на выполнение

Доступные языки

Английский

Субтитры: английский

Инструктор

Преподавал Meta Mast.

139,333 Ученики

50 Курсы

Предлагаемые

Metalies

.

. Сертификаты Meta Professional создают возможности для того, чтобы любой человек, независимо от образования, образования или опыта, мог освоить высококачественные навыки, чтобы построить быстрорастущую карьеру — для начала работы не требуется никакой степени или опыта. Meta также предлагает учебные курсы по метавселенной, чтобы информировать людей, бренды, предприятия и профессионалов о возможностях, которые она предоставляет, и о том, что она означает для нашего мира сегодня и в будущем.

Reviews

4.7

Filled StarFilled StarFilled StarFilled StarHalf Filled Star

164 reviews

  • 5 stars

    76.34%

  • 4 stars

    18.25%

  • 3 stars

    3.87%

  • 2 звезды

    0,55%

  • 1 звезда

    0,96%0003 от HAA 5 августа 2022 г.

    Отличный курс. Тем не менее, небольшое улучшение оценок и тестов было бы здорово. Спасибо Meta и Coursera.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *