up

Расширенный Full-stack. От идеи до MVP. Графы на практике

Освойте процессы разработки от идеи до MVP

1 February 2022 - 31 December 2023 г.
The program has already started
387 days
Before the end of the enrollment
  • Additional professional education

    level of education

  • Russian

    program language

  • 14 weeks

    program duration

  • about 4 hours per week

    needed to educate

  • 2 credit points

    72 academic hour

  • Cost 10900 Р

    for studying

About program

Данная программа состоит из двух курсов: 

Курс 1. Расширенный Full-stack. От идеи до MVP

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

В ходе курса мы покажем своё видение на процесс разработки. Будут даны самые начальные теоретические сведения о React и Flutter; обсудим и покажем как управлять состоянием клиентского приложения с помощью паттернов Redux и BLoС. Подчеркнем, это не начальный курс по всем используемым технологиям, это курс-интегратор определенного набора сведений воедино в целях получения готового программного продукта. Безусловно, такой подход потребует от слушателя, еще не прошедшего подобного пути, максимальной концентрации внимания и желания самостоятельно углубиться в дивный мир современных технологий.

Можно рассматривать данный курс как шаблон для создания ПО на начальных этапах работы разработчика.

Действующая web-версия разрабатываемого ПО расположена по адресу: https://nomref.xyz

 

Курс 2. Расширенный Full-stack. Графы на практике

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

Современная разработка ПО предполагает освоение множества технологий и постоянное обновление знаний вслед за стремительно меняющимся набором популярных программ и языков. Этот процесс освоения технологий крайне энергозатратен и отнимает большое количество времени, поэтому становится актуальным применение принципа Learning-by-doing. Мы используем актуальные в 2021 году версии программного обеспечения. 

Для успешного освоения материала потребуется начальное знание JavaScript и основ функционирования Nodejs, HTML, CSS, понимание основ сети интернет, а также операционных систем. Отсутствие минимально необходимого количества знаний можно компенсировать Вашим желанием и упорством. 

Практическая часть будет реализована на популярном языке программирования JavaScript с использованием среды исполнения Nodejs. Использование именно этого языка обусловлено весьма широким вовлечением теории графов в современное пользовательское программное обеспечение. Стремительный темп развития социальных сетей привел к созданию множества инструментов и спецификаций, например, GraphQL. Развитие технической базы привело к внедрению в повседневную жизнь картографических сервисов, работа которых во многом основана на применении знаний в области теории графов. Сегодня существует большое количество независимых решений по оптимизации поиска на сложных графах, и поиск продолжается в разных направлениях. В данной сфере ещё очень много работы, мы же в этом курсе сделаем первый маленький шаг в изучении такой многообещающей области математики.

Действующая web-версия разрабатываемого ПО расположена по адресу: https://graphs101.xyz/

Format

Дистанционный

Program's program

Курс 1. Расширенный Full-stack. От идеи до MVP

Модуль 1. Введение.

Модуль 2. Серверная часть и база данных. Моделирование данных.

Модуль 3. Серверная часть и база данных. Гео-данные.

Модуль 4. Разработка web-клиента. React, Redux.

Модуль 5. Разработка web-клиента.

Модуль 6. Разработка web-клиента.

Модуль 7. Разработка  мобильного клиента. Flutter, BLoC.

Модуль 8. Разработка мобильного клиента.

Модуль 9. Deployment.

 

Курс 2. Расширенный Full-stack. Графы на практике

Модуль 1. Основы теории графов

Модуль 2. Карта и картографические данные

Модуль 3. GraphQL

Модуль 4. Apollo-клиент

Модуль 5. Apollo-клиент. Построение маршрутов

Education results

По результатам освоения курса слушатель будет знать:

1. Клиент-серверную архитектуру;

2. Основы HTTP, RESTful API;

3. Паттерны управления состоянием клиентского приложения Redux, BLoC;

4. Основы теории графов;

5. Принцип организации клиент-серверной архитектуры для GraphQL с использованием пакета Apollo;

6. Принципы построения прообраза картографического сервиса на базе React, React-Leaflet и Open Street Map.

 

По результатам освоения курса слушатель будет владеть:

1. Основами языков программирования JavaScript и Dart;

2. Фреймворками React и Flutter;

3. Инструментом Postman;

4. Начальными навыками написания клиентского приложения;

5. Начальными навыками написания серверного приложения;

6. Навыками размещения приложения на сервисе Heroku.

 

По результатам освоения курса слушатель будет уметь:

1. Реализовывать клиентские приложения для браузера и мобильных устройств Android и iOS;

2. Реализовывать серверные приложения, разворачивать их в облаке;

3. Настраивать удаленную базу данных и работать с ней;

4. Строить графы из исходных картографических данных;

5. Составлять программы поиска маршрутов в соответствии с базовыми алгоритмами для графов;

6. Составлять схемы данных GraphQL для базовых графов.

Education directions

Для успешного освоения материала потребуются базовые знания в программировании и алгоритмизации, базовые знания HTML, CSS, JavaScript, большим подспорьем будет знание стандартов современного JS (ES6). Мы не будем останавливаться для разбора конструкций JavaScript, использующих стрелочные функции и промисы, деструктуризацию и т.д. Если у Вас есть достаточно уверенное понимание указанных тем, Вам будет достаточно просто получить базовые сведения о системе React из любого интенсивного курса, обратите особое внимание на использование функциональных компонентов, поскольку использоваться будут только они. Это несколько облегчит понимание принципов использования виджетов в мобильном клиенте. Точно также будет проще сопоставить возможности систем хранения состояния Redux и BLoC. Предполагается, что Вы умеете пользоваться Git, знаете основные команды своей операционной системы (Windows, Linux, MacOS) и имеете опыт использования терминала. К моменту, когда мы подойдем к построению приложения с использованием Flutter, надеемся, Вы уже будете готовы к интенсивному погружению в язык Dart, что будет значительно проще для уверенных программистов на JavaScript/React/Redux. Понятно, что для того чтобы пройти весь этот путь потребуется максимальная концентрация и оптимистический настрой.

Подсевалов Иван Алексеевич


Position: преподаватель Академической гимназии им. Д. К. Фаддеева

Courses in program