Перейти к основному содержимому

CS50W: Web-разработка на Python и Javascript


firstdigital

Почему Web-разработка?

150 тыс руб

Средняя зарплата в сфере web-разработки в России для специалиста с опытом 3-5 лет

20+ тыс вакансий

В сфере web-разработки в России, и в десятки раз больше в мире, в том числе удаленно

Востребованно

web-разработка - одно из самых востребованных направлений в IT с учетом необходимости разработки самых разнообразных сайтов, платформ и систем корпорациями, госсектором и стартапами

Почему этот курс?

Учитесь у лучших

Освойте web-разработку, пройдя курс от инструкторов Гарвардского университета, который стабильно признается в топ-3 в сфере компьютерных наук в мире

Бесплатно

Все материалы курса доступны БЕСПЛАТНО. Получите сертификат об успешном окончании курса за дополнительную плату

Основа профессий

Засчитайте курс как часть одной из IT-профессий first digital, являющихся сильным сигналом для работодателей

Авторы оригинального курса

Дэвид Дж. Малан

Профессор практики компьютерных наук имени Гордона МакКея

Гарвардский университет

Брайан Ю

Старший преподаватель по компьютерным наукам

Гарвардский университет

Как проходит обучение

Видеолекции

Смотрите видеоуроки в любое время, на любом устройстве, занятия разбиты на 10-30 минутные уроки чтобы встроится в Ваше расписание

Практика

Закрепите новый материал выполнением практического задания с автопроверкой кода

Сообщество

Присоединяйтесь к онлайн форуму и чату для студентов для обсуждения заданий и обмена опытом

Сертификат

Получите сертификат об окончании курса, составьте из отдельных курсов свою IT-профессию

Трудоустройство

Скоро!

Откликайтесь на вакансии на закрытом сайте по поиску работы и эксклюзивные карьерные мероприятия, получите консультацию с занимающим позицию, которую Вы хочетите получить

Программа курса

10 недель

6-9 часов в неделю

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

Ожидаемый уровень знаний: знание основ программирования на уровне курса CS50x

Неделя
Описание

0

HTML, CSS

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

  • HTML и его элементы (заголовки, выделение текста, ссылки, маркеры списка, картинки, новые строки, таблицы, формы)
  • Document Object Model (DOM)
  • Формы
  • CSS: стили и их параметры
  • CSS-селекторы
  • CSS-псевдоклассы
  • Адаптивный веб-дизайн
  • Flexbox, grid
  • Bootstrap
  • Sass (Synthetically awesome Style sheets)

1

Git

На данной неделе мы рассмотрим Git – систему для контроля версий и коллаборации внутри команды разработчиков. Мы рассмотрим следующие темы:

  • Git
  • GitHub
  • Коммиты (Commits)
  • Конфликты слияния
  • Ветвь (управление версиями)
  • Форк (Forking)
  • Пул-реквесты (Pull-requests)
  • GitHub Pages – простой способ опубликовать статический сайт

2

Python

На данной неделе мы рассмотрим Python – широко используемый язык программирования для создания динамических веб-сайтов. Мы рассмотрим следующие темы:

  • Переменные
  • Formatted strings
  • Условия
  • Последовательности – strings, lists, tuples, sets, dictionaries, loops
  • Функции
  • Модули
  • Объектно-ориентированное программирование
  • Функциональное программирование: декораторы, lambda-функции
  • Исключения (except)

3

Django

На данной неделе мы рассмотрим Django – популярный фреймворк для бэкэнда. Мы рассмотрим следующие темы:

  • Статические и динамические сайты
  • HTTP – как это работает
  • Маршрутизация
  • Шаблоны, условные операторы, стили
  • Таски (tasks)
  • Формы
  • Сессии

4

SQL, модели и миграции

На данной неделе мы рассмотрим SQL – язык, используемый для хранения и запроса информации, а также рассмотрим методы Django, облегчающие работу с SQL базами данных. Мы рассмотрим следующие темы:

  • Типы баз данных
  • Типы колонок
  • SELECT и его использование в терминале с UPDATE, DELETE, функциями
  • Функции (AVERAGE, COUNT, MAX, MIN, SUM)
  • Объединение таблиц - Запрос JOIN, индексирование, потенциальные проблемы SQL (внедрение SQL-кода, состояние гонки)
  • Django-модели
  • Миграция
  • Работа с командной строкой Shell
  • Запуск приложения
  • Django админ
  • Многие ко многим (many-to-many)
  • Пользователи и аутентификация

5

JavaScript

На данной неделе мы рассмотрим JavaScript – язык программирования, который позволяет сделать сайты более быстрыми и интерактивными. Мы рассмотрим следующие темы:

  • JavaScript – отличия и преимущества языка
  • Ивенты (Events)
  • Переменные Variables
  • querySelector
  • Манипуляции с DOM - JavaScript консоль, стрелочные функции (Arrow Functions), создаем TODO List
  • Интервалы
  • Локальное хранение
  • API - JavaScript-объекты, пример с информацией о курсе валют

6

Пользовательский интерфейс (UI)

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

  • Одностраничные приложения
  • Скроллинг (в том числе бесконечный)
  • Анимация
  • React

7

Тестирование, CI/CD

На данной неделе мы рассмотрим различные методы, позволяющие настроить процесс обновления веб сайтов. Мы рассмотрим следующие темы:

  • Assert
  • Разработка через тестирование (Test-driven development)
  • Модульное тестирование (Unit testing)
  • Тестирование приложение Django
  • Тестирование на стороне клиента
  • Selenium - инструмент для автоматизации действий веб-браузера
  • Принципы CI/CD (Continuous Integration and Continuous Delivery)
  • Непрерывная интеграция с GitHub Actions
  • Docker

8

Масштабируемость и безопасность

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

  • Преимущества и недостатки облачных сервисов
  • Вертикальное и горизонтальное масштабирование
  • Балансировка нагрузки
  • Автомасштабирование (Autoscaling)
  • Масштабирование баз данных и репликация
  • Кэширование
  • Фишинговые атаки
  • HTTPS
  • Криптосистемы с открытым и закрытым ключом
  • Безопасность баз данных
  • Управление API для безопасности
  • Атаки с использованием JavaScript и методы защиты против них
  • Межсайтовая подделка запроса (Cross-site request forgery)

Финальный проект

К концу курса вы выполните 5 проектов, каждый из которых будет использовать освоенные во время лекций знания:

  • Проект 0: Разработка интерфейса посадочной страницы Google: поиск по текксту, поиск картинок, и расширенного поиска
  • Проект 1: создание онлайн-энциклопедии наподобие Википедии
  • Проект 2: разработкае сайта-аукциона электронную торговую площадку наподобие eBay, который позволил бы пользователям размещать лоты на аукционы, делать ставки, комментировать объявления и добавлять объявления в «список наблюдения»
  • Проект 3: разработка интерфейса для почтового клиента, который выполняет вызовы API для отправки и получения электронных писем
  • Проект 4: создание социальной сети, похожей на Twitter, где можно было бы публиковать сообщения и подписываться на пользователей

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

  • Ваше веб-приложение должно в значительной степени отличаться от других проектов в этом курсе
  • Ваше веб-приложение должно использовать Django (включая хотя бы одну модель) на бэкенде и JavaScript на фронтенде
  • Ваше веб-приложение должно адаптироваться к мобильным устройствам

Что вы освоите в результате прохождения курса

Освоите основы проектирования базы данных, масштабирования, обеспечения безопасности и удобства пользования вэб-приложением

Освоите основы сразу нескольких языков программирования, систем и фреймворков, включая:

Реализовав 5 проектов, позволяющих всесторонне закрепить знания, Вы научитесь писать и использовать API, создавать интерактивные пользовательские интерфейсы и использовать облачные сервисы, такие как GitHub и Heroku

Приобретете знания и опыт в области принципов, языков и инструментов, которые позволят вам разрабатывать и развертывать приложения в интернете

Сертификат об успешном окончании курса

Все материалы курса доступны БЕСПЛАТНО

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

Пример сертификата:

Сертификат может иметь самостоятельную ценность

А может использоваться для зачета курса как части профессии Web-разработчик first digital, являющихся сильным сигналом для работодателей.

Внести в список