Основы программирования
Основы программирования
Курс ориентирован на людей, не имеющих опыта в программировании. Для начала обучения достаточно владеть компьютером на уровне самого обычного пользователя. Все обучение будет проходить в браузере и вам не потребуется устанавливать дополнительное ПО. Вы узнаете что такое программа, как она выполняется, познакомитесь с основными операциями в программировании. Доступным языком мы расскажем об основных типах данных, массивах, ветвлении, циклах и функциях. Вы получите опыт решения простых, но интересных задач, что даст вам почву для того, чтобы научиться решать задачи гораздо более серьёзные.
Урок 1. Программа, переменные и типы данных
После урока у вас появится представление о том, что такое программа, что она состоит из инструкций и данных, узнаете скалярные типы данных в JS, сможете написать программу, умножающую два числа, введённые пользователем, и выводящую результат.
Урок 2. Блок-схемы и ветвления
После урока вы будете иметь представление о том, как визуализировать алгоритмы с помощью блок-схем, понимать работу операторов сравнения, понимать как использовать ветвление и какие задачи оно решает
Урок 3. Циклы
После урока вы будете иметь представление о том, как визуализировать циклические алгоритмы с помощью блок-схем, понимать как использовать циклы и какие задачи они решают.
Урок 4. Функции
После урока вы будете иметь представление о том, какие проблемы решает вынос кода в функции, уметь создавать функции, в том числе принимающие аргументы.
Урок 5. Массивы
После урока вы будете иметь представление о том, какую задачу решают массивы, уметь создавать массивы, добавлять и получать его элементы.
Основы языка Swift. 1 месяц.
Современные технологии программирования под Apple на Swift 5.2, Xcode 11
Swift - новый язык от Apple, появился в середине 2014 года. Несмотря на свою новизну, он стремительно развивается и включает в себя все лучшие конструкции программирования, заимствованные из множества современных языков. Специалистов, знающих Swift, на рынке сейчас единицы. Этот курс поможет вам изучить синтаксические основы Swift и получить хороший опыт программирования на данном языке.
Урок 1. Введение в программирование
Вводное занятие. Знакомство с языком. Основные типы данных. Xcode, Playground. Переменные, константы и коллекции данных. Дебаггер.
Урок 2. Синтаксис и основные операторы Swift
Продолжение изучения синтаксических конструкций языка и основных операторов
Урок 3. Комплексные типы данных
Знакомство с комплексными данными. Структуры. Перечисления. Свойства и методы. Конструктор.
Урок 4. Введение в ООП — объектно-ориентированное программирование
Как описывать объекты реального мира и создавать их по описанию. Классы и объекты. Наследование. ARC и введение в управление памятью.
Урок 5. ООП: требование к классам, протоколы, расширения, полиморфизм, композиция
Описываем требования к классам. Протоколы. Расширения. Полиморфизм. Композиция.
Урок 6. Продвинутое ООП
Техники настоящих гуру. Дженерики. Замыкания. Subscripting. Функции высшего порядка.
Урок 7. Управление ошибками в приложениях
Учимся искать ошибки и предсказывать их появление. Исключения try/catch. Error.
Урок 8. Консультация с преподавателем
Git. Базовый курс
Основы работы с Git
13 роликов научат вас основам работы с системы контроля версий Git. Вы узнаете, почему она важна в современной разработке. Изучите базовые понятия: репозиторий, коммиты, ветки и тэги. Освоите ключевые операции: создание и клонирование репозитория, слияние веток, запрос истории изменений и многое другое. После обучения вы будете готовы использовать Git для подготовки домашних заданий на курсах по программированию на любом языке. Кроме того, вы приблизитесь к прохождению собеседования, где несколько вопросов обычно посвящены системе контроля версий.
Урок 1. Введение в Git
Урок 2. Установка и настройка Git
Урок 3. Основные команды терминала
Урок 4. Работа с репозиториями в Git
Урок 5. Управление файлами репозитория
Урок 6. История изменений
Урок 7. Работа с ветками репозитория
Урок 8. Публикация репозитория
Урок 9. Слияния веток
Урок 10. Управление версиями
Урок 11. Создание pull-request
Урок 12. Сложные операции
Урок 13. Работа с Fork-репозиториями
Основы баз данных. 20 уроков.
Проектирование БД и запросы SQL
Базы данных (БД) - это системы хранения и обработки данных, для доступа к которым используется язык SQL (Structured Query Language). Любой современный сайт, игра или настольное приложение нуждаются в хранении данных. На данный момент существует множество различных систем управления базами данных (СУБД), самой популярной является MySQL. “Основы баз данных” - это 20 интенсивных видео-уроков (по 10 минут), где мы вместе пройдём все этапы проектирования БД на примере интернет-магазина с использованием языка запросов SQL. После этого курса вы сможете использовать различные базы данных, такие как MS SQL и Postgre Sql, так как синтаксис языка SQL для них практически не отличается.
Урок 1. Реляционные базы данных
Чем отличается БД от СУБД; какие базы данных называются реляционными; обзор современных СУБД.
Урок 2. Установка СУБД
Установка СУБД MySql и графического приложения Mysql Workbench.
Урок 3. Проектирование базы данных, нормальные формы
Проектирование данных в Excel; нормальные формы; первичный ключ.
Урок 4. SQL-команда CREATE
Создание таблиц в графическом интерфейсе MySql Workbench; команда CREATE; типы данных; работа в консоли.
Урок 5. SQL-команда INSERT
Заполнение таблиц данными с помощью графического интерфейса; команда INSERT; AUTO INCREMENT.
Урок 6. SQL-команды SELECT и WHERE
Получение и фильтрация данных с помощью SQL-команд SELECT и WHERE; проверка на NULL; фильтрация данных по нескольким условиям.
Урок 7. SQL-команды DISTINCT, ORDER BY, LIMIT
Получение и фильтрация данных с помощью SQL-команд DISTINCT и LIMIT; сортировка с помощью команды ORDER BY.
Урок 8. SQL-команды DELETE и UPDATE
Обновление и удаление данных с помощью SQL-команд DELETE и UPDATE; фильтрация данных с помощью WHERE IN.
Урок 9. Согласованность данных
Понятие согласованности или консистентности данных.
Урок 10. Внешний ключ
Понятие внешнего ключа и ограничений на значения столбцов; FOREIGN KEY CONSTRAINTS.
Урок 11. Создание таблиц с отношением “многие ко многим”
Добавление корзины в базу данных интернет-магазина.
Урок 12. Составной первичный ключ
Использование составного первичного ключа при проектировании таблицы с отношением “многие ко многим”.
Урок 13. Объединение данных из нескольких таблиц
Получение данных из нескольких взаимосвязанных таблиц; несостоятельность подхода с использованием нескольких SELECT-ов.
Урок 14. Оператор INNER JOIN
Объединение данных из нескольких таблиц с помощью оператора INNER JOIN.
Урок 15. Операторы LEFT JOIN, RIGHT JOIN
Объединение данных из нескольких таблиц с помощью операторов LEFT JOIN и RIGHT JOIN.
Урок 16. Оператор UNION
Объединение результатов нескольких SQL-запросов с помощью оператора UNION.
Урок 17. Агрегирующие функции
Агрегирующие функции COUNT, SUM, MIN, MAX.
Урок 18. Оператор GROUP BY
Группировка выбранного набора строк с использованием оператора GROUP BY.
Урок 19. Индексы
Фильтрация в GROUP BY с использованием HAVING; увеличение скорости выполнения запросов с использованием индексов.
Урок 20. Транзакции
Понятие транзакции; оператор TRANSACTION; требования ACID к транзакционной системе.
Пользовательский интерфейс iOS-приложений. 1 месяц.
Swift 5.2 Xcode 12
Какие основные особенности большинства современных мобильных приложений? Взаимодействие с сервисом. Отображение и изменение данных на внешнем сервере! Не бывает приложений без пользовательского интерфейса. Это лицо вашего проекта. С его помощью можно привлекать и удерживать пользователей. Реализовав связь с сервисом, вы сможете организовать взаимодействие пользователей между собой, либо с вашим бизнесом.
Урок 1. Проектирование интерфейса, часть 1. Разбор основных сетевых возможностей и их применение на практике
Разбор основных сетевых возможностей и применение их на практике.
Урок 2. Проектирование интерфейса, часть 2. Добавление экранов. Переходы между экранами. UINavigationController. Segue
Добавление экранов. Переходы между экранами. UInavigationController. Segue.
Урок 3. Проектирование интерфейса, часть 3. Отображаем данные в виде таблицы. UITableViewController, UITableViewCell, UICollectionViewController, UICollectionViewCell
Отображаем данные в виде таблицы. UITableViewController, UITableViewCell, UICollectionViewController.
Урок 4. Создание кастомных UI-компонентов
Рисование с помощью CoreGraphics. @IBDesignable и @IBInspectable. CALayer: тени, границы, маска, градиент. Трансформация. Обработка пользовательских жестов. UIControl. UIAppearance.
Урок 5. Консультация с преподавателем 1
Урок 6. Кастомизация коллекций
Создание кастомных ячеек таблицы, header и footer view. Создание кастомных ячеек коллекции, supplementary views. Работа с UICollectionViewFlowLayout. Создание кастомного collection view layout.
Урок 7. Анимации, часть 1. Простые анимации UIView. Анимации переходов между UIView. Анимации слоя. Пружинные анимации
Простые анимации UIView. Анимации переходов между UIView. Анимации слоя. Пружинные анимации.
Урок 8. Анимации, часть 2. Группы анимаций. Кривые Безье и их анимирование. 3D-анимации. UIViewPropertyAnimator
Keyframe-анимации. Группы анимаций. Кривые Безье и их анимирование. 3D-анимации. UIViewPropertyAnimator.
Урок 9. Анимация переходов между экранами
Анимация переходов между UIViewController. Интерактивные переходы между view controllers. Создание собственного segue.
Урок 10. Консультация с преподавателем 2
Клиент-серверные iOS-приложения. 1 месяц.
Swift 5.2, Xcode 12
Вы освоите приемы разработки высоконагруженых приложений. Поработаете с файлами и архивами. Научитесь управлять процессами в фоновом режиме, оптимизировать работу приложения по загрузки больших объемов данных. Также вы освоите методы разработки приложений с универсальным интерфейсом. Получите опыт работы с популярным Backend сервисом Firebase от Google. А также поучаствуете в процессе публикации приложения в AppStore.
Урок 1. Применение паттернов Observer, Singleton и Delegate
Изучаем реализацию самых популярных паттернов в iOS. Знакомимся с NotificationCenter.
Урок 2. Работа с сетью
Учимся работать с сетевыми запросами. Анатомия HTTP-запросов. Обзор инструментов и библиотек для работы с сетевыми запросами. Отправка запросов с помощью URLSession.
Урок 3. Mapping json
Преобразуем json-ответ сервера в объекты приложения. Анатомия json-формата. JSONSerialization.
Урок 4. Хранение данных
Обзор инструментов и библиотек для постоянного хранения данных в приложении. UserDefaults, Файлы. CoreData. SQLite, Realm, Keychain.
Урок 5. Консультация с преподавателем 1
Урок 6. Realm — система управления объектной базой данных
Детальный обзор Realm. Сохранение, извлечение, удаление, фильтрация данных
Урок 7. Уведомления в Realm
Отслеживаем изменения в Realm. Автоматическое обновление UI.
Урок 8. Firebase backend
Используем внешний сервер для хранения данных приложения. Осваиваем Firebase Framework. Подключаем механизмы «Регистрация» и «Авторизация пользователей».
Урок 9. Механика работы App Store
Размещаем приложение в App Store. Изучаем возможности монетизации мобильных приложений.
Урок 10. Консультация с преподавателем 2
Производительность iOS-приложений. 1 месяц.
Swift 5.2 Xcode 12
На курсе будут разбираться понятия и технологии многопточности, кэширования, устранение проблем, связанных с производительностью пользовательского интерфейса.
Урок 1. Параллельное программирование. Thread.
Знакомство с понятиями многопоточного и асинхронного кода. Управление потоками. RunLoop. Thread.
Урок 2. Параллельное программирование. GCD
Изучаем библиотеку Grand Central Dispatch и упрощаем управление потоками.
Урок 3. Параллельное программирование. NSOperation
Знакомство с библиотекой NSOperation для организации многопоточного кода и параллельного выполнения задач.
Урок 4. Консультация
Урок 5. Асинхронный код. Концепции Futures и Promises
Введение Концепция Promise/Future Немного теории Практика
Урок 6. Практики работы с UITableView и UICollectionView
Ищем проблемы в работе таблиц и коллекций. Отказываемся от AutoLayout в пользу верстки на фреймах. Обрабатываем данные в параллельном потоке, кэшируем изображения.
Урок 7. Паттерны ленты новостей
Паттерн pull-to-refresh. Паттерн infinite scrolling. Расчет размера ячеек для загружаемых в будущем изображений.
Урок 8. Консультация
Алгоритмы и структуры данных. Базовый курс.. 1 месяц.
Эффективные решения вычислительных задач
Фундаментальный курс «прокачивает» базовые знания computer science. Дает понимание, как работает язык программирования и действуют применяемые в коде команды и решения. На примере языка С студенты смогут «пощупать» механизмы, которые лежат в основе современных фреймворков. Курс дает знания, отличающие программиста от «юзера», пишущего код.
Урок 1. Простые алгоритмы
Введение в C. Структуры. Алгоритмы.
Урок 2. Асимптотическая сложность алгоритма. Рекурсия
Асимптотическая сложность алгоритма. Рекурсивный перебор. Ханойская башня.
Урок 3. Поиск в массиве. Простые сортировки
Поиск в одномерном массиве. Интерполяционный поиск. Сортировка массива.
Урок 4. Динамическое программирование. Поиск возвратом
Наибольшая общая подпоследовательность. Динамическое программирование. Поиск с возвратом. Задача о восьми ферзях.
Урок 5. Динамические структуры данных
Стек, очередь. Создание стека с использованием массива. Динамические структуры данных.
Урок 6. Деревья
Двоичные деревья поиска. Хеш-функция. MD5. Хеш-таблицы.
Урок 7. Графы. Алгоритмы на графах.
Графы, обход графа в ширину и глубину. Волновой алгоритм. «Жадные алгоритмы».
Урок 8. Сложные сортировки
Сортировка Хоара (Quick sort). Пирамидальная сортировка (Heap sort) Сортировка слиянием (Merge sort). Сортировка подсчетом (CountingSort). Алгоритм со списком (pigeonhole sorting). Блочная сортировка.
Стажировка в GeekBrains. 2 месяца.
В формате вебинаров
Во время стажировки студентам предстоит поработать в режиме удаленной занятости над Open Source-проектом либо стартапом. Студентам будет предложено выбрать один из набора доступных для разработки проектов. Студенты научатся работать в команде, коммуницировать с другими разработчиками, product- и project-менеджерами, дизайнерами, изучат гибкие методологии, фреймворк SCRUM, освоят принципы дистанционной работы. Результат стажировки — умение работать в команде, пополнение портфолио, возможность указать работу над проектом в качестве профильного опыта работы в резюме. Стажировка проходит в формате дистанционной работы с частичной занятостью, еженедельными встречами-статусами с преподавателем в формате вебинара.
Урок 1. Знакомство, выбор проекта
Какие роли бывают в разработке. Product Manager, Project Manager, разработчик, дизайнер. Что такое MVP. Архитектура современного сервиса. Как разработчики взаимодействуют между собой. REST API, Web Socket. Backend, Frontend, мобильные приложения. Микросервисная архитектура. Основы удаленной работы. Запись в команды.
Урок 2. Методологии разработки
Обзор методологий. Каскад (водопад), Agile-манифест, Канбан, Скрам. Где и для чего применяются. Смешанные методологии.
Урок 3. Методология SCRUM
Работа по SCRUM. Планирование спринта. Причесывание бэклога (backlog grooming). Цель спринта. Инкремент. Гибкая методология в условиях дистанционной работы. Таск-трекеры (Trello, Favro)/
Урок 4. User Story Mapping
Типы задач. Декомпозиция задач. Построение карты пользовательских историй. Работа над пользовательскими историями. Работа с ТЗ по водопаду и в гибких методологиях.
Урок 5. Ответственность, мотивация, личностный рост
Чем и как мотивировать себя. Какие уровни мотивации бывают. Как не сгореть на работе. И как не забить на работу.
Урок 6. Написание резюме
Как написать резюме, чтобы HR его не отсеял. Как заинтересовать работодателя. Как продемонстрировать навыки, полученные в учебе, если профильного опыта работы пока еще нет.
Урок 7. Предварительное подведение итогов, подготовка к защите проекта
Разбор студенческих резюме. Предварительное подведение итогов. Немного о стартапах, монетизации, инвесторах.
Урок 8. Подведение итогов, демонстрация выпускного проекта
Демонстрация рабочего прототипа студентами. Обсуждение полученных результатов. Обратная связь от преподавателя. Напутствие.