Основы программирования
Курс ориентирован на людей, не имеющих опыта в программировании. Для начала обучения достаточно владеть компьютером на уровне самого обычного пользователя. Все обучение будет проходить в браузере и вам не потребуется устанавливать дополнительное ПО. Вы узнаете что такое программа, как она выполняется, познакомитесь с основными операциями в программировании. Доступным языком мы расскажем об основных типах данных, массивах, ветвлении, циклах и функциях. Вы получите опыт решения простых, но интересных задач, что даст вам почву для того, чтобы научиться решать задачи гораздо более серьёзные.
Урок 1. Программа, переменные и типы данных
После урока у вас появится представление о том, что такое программа, что она состоит из инструкций и данных, узнаете скалярные типы данных в JS, сможете написать программу, умножающую два числа, введённые пользователем, и выводящую результат.
Урок 2. Блок-схемы и ветвления
После урока вы будете иметь представление о том, как визуализировать алгоритмы с помощью блок-схем, понимать работу операторов сравнения, понимать как использовать ветвление и какие задачи оно решает
Урок 3. Циклы
После урока вы будете иметь представление о том, как визуализировать циклические алгоритмы с помощью блок-схем, понимать как использовать циклы и какие задачи они решают.
Урок 4. Функции
После урока вы будете иметь представление о том, какие проблемы решает вынос кода в функции, уметь создавать функции, в том числе принимающие аргументы.
Урок 5. Массивы
После урока вы будете иметь представление о том, какую задачу решают массивы, уметь создавать массивы, добавлять и получать его элементы.
Java. Уровень 1. 1 месяц.
Java SE 8 и выше
Курс для начинающих разработчиков, тех, кто хочет быстро освоить основы объектно-ориентированного программирования (ООП) и научиться создавать собственные проекты. Главной особенностью курса является сочетание изучения теоретических основ языка Java и практических онлайн-тренировок под руководством преподавателя.
Урок 1. Java. Введение
Особенности платформы Java, инструменты разработчика, написание первой программы “Hello, World!”. Переменные, константы, примитивные типы данных и принципы работы с ними. Методы. Условные операторы.
Урок 2. Основные конструкции
Циклы, оператор switch, кодовые блоки, области видимости переменных, массивы.
Урок 3. Практика
Разбор практических примеров использования базовых элементов языка Java, работа с консолью.
Урок 4. Крестики-нолики в процедурном стиле
Применяем полученные знания для написания консольной программы “Крестики-нолики”.
Урок 5. Введение в ООП
Введение в объектно-ориентированное программирование. Классы, объекты, конструкторы, инкапсуляция и модификаторы доступа.
Урок 6. Продвинутое ООП
Углубленное изучение вопросов объектно-ориентированного программирования: наследование, полиморфизм.
Урок 7. Практика ООП и работа со строками
Разбор практических примеров применения ООП при разработке приложений. Работа с классами String, StringBuilder, StringBuffer.
Урок 8. Написание приложения с графическим интерфейсом
Основы работы с библиотекой Swing. Основное окно приложения, элементы управления и их компоновка. Написание приложения с графическим интерфейсом, сборка проекта.
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 к транзакционной системе.
Java. Уровень 2. 1 месяц.
Продвинутый курс
Курс для тех, кто хочет укрепить свои знания в Java. На курсе ученики осваивают теорию и параллельно под руководством преподавателя с нуля разрабатывают полноценный проект на Java, получая таким образом практический опыт применения сложных объектно-ориентированных концепций, характерных для языка. Перед прохождением курса рекомендуется освоить курс для новичков: "Java. Уровень 1".
Урок 1. Объектно-ориентированное программирование Java
Углубленное изучение вопросов ООП в Java: основные принципы ООП, абстрактные классы, интерфейсы.
Урок 2. Исключения
Концепция обработки исключений, её сравнение с традиционным механизмом обработки ошибок, блок try-catch-finally, типы исключений, стандартные исключения в Java и их роль, выброс исключения из метода
Урок 3. Коллекции
Виды контейнеров в Java: List, Map, Set. Основные реализации и приемы использования, проход по элементам коллекции, сравнение и сортировка элементов коллекции
Урок 4. Продвинутые вопросы создания графического интерфейса
Создание собственных элементов управления. Работа с графикой. Обработка событий
Урок 5. Многопоточность
Потоки в Java, способы создания и управления состояниями потоков, основные проблемы при работе с потоками и синхронизация.
Урок 6. Работа с сетью
Сокеты. Написание простого эхо-сервера и консольного клиента.
Урок 7. Написание сетевого чата. Часть I
Написание клиентской и серверной части чата. Многопоточная обработка клиентских подключений.
Урок 8. Написание сетевого чата. Часть II
Разработка интерфейса для клиентской части. Авторизация. Механизмы взаимодействия клиента и сервера.
Java. Уровень 3. 1 месяц.
Профессиональная разработка программного обеспечения
Курс предназначен для тех, кто хочет узнать о продвинутых возможностях языка Java и получить практический опыт в написании приложений. Для успешного прохождения курса студентам необходимо понимать базовые понятия программирования и иметь начальный опыт работы с Java. Курс охватывает все основные темы, необходимые для профессиональной работы.
Урок 1. Обобщения
Что такое обобщения, обобщенные классы, методы и интерфейсы, наследование обобщенных классов, ограничения при работе с обобщениями
Урок 2. Базы данных
Реляционные базы данных, язык запросов SQL. Операторы SELECT, INSERT, UPDATE, DELETE. Подключение к базе через JDBC, отправка запросов и обработка результатов
Урок 3. Средства ввода-вывода
Обзор средств ввода-вывода. Байтовые, символьные, буферизированные потоки. Сетевое взаимодействие, сериализация/десериализация объектов
Урок 4. Многопоточность. Часть I
Многопоточность в Java, разделяемая память, управление потоками и вопросы синхронизации, взаимодействие потоков исполнения, взаимная блокировка
Урок 5. Многопоточность. Часть II
Классы для работы с многопоточностью, Concurrent collections, разбор практических примеров
Урок 6. Обзор средств разработки
Логирование. Тестирование с использованием JUnit, написание тестов, класс Assert
Урок 7. Reflection API и аннотации
Понятие рефлексия, тип данных Class, метаданные классов, доступ к полям и методам, аннотации и их использование, написание собственных аннотаций.
Урок 8. Подготовка к собеседованию
Подготовка к собеседованию и разбор вопросов по всему курсу Java
Алгоритмы Java. Интерактивный курс. 1 месяц.
Алгоритмы Java. Интерактивный курс
Курс посвящен использованию структур данных и алгоритмов в программировании на Java. С помощью структур данных определяется способ хранения данных в памяти компьютера. В курсе будут рассморены следующие структуры данных: массивы, стек, очередь, списки, графы, деревья, хэш-таблицы. Для каждой структуры данных будут рассмотрены алгоритмы, которые обеспечивают различные операции над этими структурами, например, поиск или сортировка. Курс рассчитан на слушателей, которые освоили основной курс по Java SE.
Урок 1. Алгоритмы и структуры данных
Что такое алгоритмы и структуры данных; Пример использования алгоритмов и структур данных при разработке ПО; Для чего нужны алгоритмы и структуры данных; Алгоритмы и структуры данных в Java; Принципы хранения данных в Java; Ссылочные типы данных; Примитивные типы данных; Абстрактные типы данных; Что такое сложность алгоритма; В чем выражается сложность алгоритма; О-большое; Принципы определения эффективности структуры данных.
Урок 2. Массивы и сортировка
Что такое массивы и их применение; Одномерные и двумерные массивы; Класс arrays; Пример массива и класса arrays; Что такое сортировка; Для чего необходима сортировка; Сортировка встроенным методом sort(); Быстрая сортировка; Эффективность быстрой сортировки; Для чего необходима реализация поиска; Как реализовывается линейный поиск; Как реализовывается двоичный поиск; Сложность алгоритмов; Для чего необходима сортировка методом вставки; Реализация сортировки методом вставки; Эффективность сортировки методом вставки; Для чего необходима сортировка методом выбора; Реализация сортировки методом выбора; Эффективность сортировки методом выбора; Для чего необходима сортировка пузырьком; Реализация сортировки пузырьком; Эффективность сортировки пузырьком.
Урок 3. Коллекции, списки, связанные списки и итераторы
Что такое коллекции; Что реализуют коллекции; Что такое списки; Преимущества и недостатки списков; Методы преобразования массива в список или коллекцию; Что такое двусторонние списки; Для чего нужны двусторонние списки; Эффективность связанных списков; Что такое итератор; Для чего нужен итератор; Методы итератора; Пример итератора; Как добавить объект или элемент в список; Как удалить объект или элемент из списка; Как получить объект или элемент из списка; Что такое метод insert и его реализация; Что такое метод delete и его реализация; Пример LinkedList; Что такое связанные списки; Для чего нужны связанные списки; Реализация просто связанного списка.
Урок 4. Стеки и очереди
Добавление элемента в очередь; Удаление элемента из очереди; Получение элемента из очереди; Создание стека; Добавление элемента в стек; Удаление элемента из стека; Получение элемента из стека; Проверка стека пуст ли он; Программный пример использования стека; Что такое очередь; Для чего нужна очередь; Преимущества и недостатки очереди; Эффективность очереди; Что такое стек; Для чего нужен стек; Преимущества и недостатки стека; Эффективность стека; Какие вспомогательные методы для очереди существуют; Для чего нужны вспомогательные метода очереди; Что такое циклический перенос; Для чего нужен циклический перенос; Что такое дек; Для чего нужен дек; Методы дек; Что такое приоритетная очередь; Для чего нужны приоритетные очереди; Эффективность приоритетной очереди; Пример приоритетной очереди; Что такое стек и очередь на базе связанного списка; Для чего нужно реализовывать стек и очередь на базе связанного списка; Как реализовать стек и очередь на базе связанного списка.
Урок 5. Рекурсия
Что такое бесконечная рекурсия; Как реализовать бесконечную рекурсию; Для чего нужна бесконечная рекурсия; Что такое правильная рекурсия в программировании; Как реализовать правильную рекурсию; Что такое рекурсия; Использование рекурсии; Пример рекурсии в математической практике; Что такое цикл в программировании; Какие отличия цикла от рекурсии в программировании; Что такое рекурсивный двоичный поиск; Для чего нужен рекурсивный двоичный поиск; Как реализовать рекурсивный двоичный поиск; Для чего необходима сортировка методом выбора; Реализация сортировки методом выбора; Эффективность сортировки методом выбора; Что такое стек вызовов; Как работает стек вызовов; Что такое стек вызовов с рекурсией; Нюансы и переполнение стека вызовов.
Урок 6. Деревья
Что такое бинарная пирамида; Для чего нужна бинарная пирамида; Использование бинарной пирамиды; Эффективность бинарной пирамиды; Что такое деревья; Для чего нужны деревья; Деревья вне программирования; Деревья в программирования; Эффективность двоичного дерева; Что такое красные-черные деревья; Для чего нужны красные-черные деревья; Что такое обход дерева; Как реализовать обход дерева; Как реализовать поиск максимума и минимума; Для чего необходима пирамидальная сортировка; Реализация пирамидальной сортировки; Эффективность пирамидальной сортировки; Поиск узла дерева; Вставка узла дерева; Как создавать узлы; Как создавать дерево; Реализация удаления узлов дерева.
Урок 7. Графы
Что такое графы; Для чего нужны графы; Где применяются графы; Графы в Java; Что такое вершины; Что такое ребра; Что такое матрицы смежности; Для чего нужны матрицы смежности; Что такое списки смежности; Для чего нужны списки смежности; Понятие обхода; Что такое метод обхода в глубину; Для чего нужен метод обхода в глубину; Как реализуется метод обхода в глубину; Что такое метод обхода в ширину; Для чего нужен метод обхода в ширину; Как реализовать метод обхода в ширину.
Урок 8. Хеш-таблицы
Что такое хеширование и хеш-таблицы; Для чего нужно хеширование; Что такое двойное хеширование; Как реализовать двойное хеширование; Что такое ключи и для чего они нужны; Что такое коллизии и какое их значение; Как бороться с коллизиями; Что такое открытая адресация; Для чего нужна открытая адресация; Что такое линейное пробирование; Для чего нужно линейное пробирование; Как реализовать линейное пробирование; Для чего необходимо увеличение хеш-таблицы; Как реализовать увеличение хеш-таблицы; Что такое квадратичное пробирование; Как реализовать хеш-функцию; Что такое суммирование; Что такое возведение в степень.
HTML/CSS. Видео-курс. 1 месяц.
HTML/CSS. Видео-курс
HTML/CSS — язык гипертекстовой разметки, основа для изучения серверных языков программирования. Изучив html, вы сможете создать адаптивную веб-страницу или веб-сайт. Изучив css — сможете оформить свёрстанный сайт. Чтобы отработать полученные знания — делайте практические задания. Мы их не проверяем, но выполнять их важно: так у вас появятся базовые навыки профессиональной вёрстки.
Урок 1. Основные понятия в веб-разработке
Знакомство, вводная информация настройка visual studio code,горячие клавиши, установка расширений. Создание html документа Структура html документа. Виды и атрибуты тегов Отладчик браузера
Урок 2. Основы языка разметки документов HTML
Списки в html Спецсимволы и комментарии Гиперссылки (локальные, абсолютные, якоря) Типы изображений для web; Формы и их элементы. Просмотр, редактирование, поиск ошибок через отладчик браузера
Урок 3. Основы языка оформления стилей документа CSS
Введение в стили Способы подключения стилей Селекторы Базовые свойства стилей (px, %, background, color, border) часть 1 Базовые свойства стилей (width, height, font, list-style, текст) Вложенность наследование и группирование свойств
Урок 4. Основные тэги для вёрстки, Псевдоклассы и псевдоэлементы
Основные теги div, span, создание блочной структуры Отступы у элементов Обтекаемые элементы Псевдоклассы Псевдоэлементы Таблицы
Урок 5. Основы позиционирования, работа с Flexbox
Свойство display Что такое flexbox (горизонтальное и вертикальное расположение) Порядок отображения, многострочность, смещение отдельного блока Задание гибких размеров для блоков Position: relative и absolute
Урок 6. Работа с макетом дизайна в формате Figma
Что такое макет и какие виды макетов бывают Знакомство с программой Figma, нарезка макета Определение размеров блоков, создание блочной структуры Добавление стилей из макета Создание сайта по макету. Часть 1 Создание сайта по макету. Часть 2
Урок 7. Основы создания адаптивного сайта
Гибкие размеры блоков, адаптивного сайта Эмуляция мобильных устройств Медиа-запросы Прижатие подвала к нижней части экрана Практика создания адаптивного сайта Практика создания адаптивного сайта часть 2
Урок 8. Стандарты web и вспомогательные инструменты
Инструменты разработчика. Часть 1 Загрузка проектов на сервер Кроссбраузерность Знакомство с Boostrap Знакомство с препроцессором Sass Практическое использование препроцессора Sass
Основы веб-разработки на Spring Framework. 1 месяц.
Создание веб-приложений на Java
Курс знакомит с фреймворком Spring, с особенностями его взаимодействия с другими программными платформами. Студенты освоят подключение и конфигурирование Spring, специфику доступа к данным. Пошагово разберут этапы разработки и способы улучшения проектов: шаблонизацию, интернационализацию, валидацию. Изучат технологию защиты приложения с использованием Spring Security. Применят полученные знания при разработке интернет-магазина.
Урок 1. Основы Java EE
Урок 2. Введение в Spring
Урок 3. Spring MVC
Урок 4. Spring Boot
Урок 5. Java Persistence API. Hibernate. Часть 1
Урок 6. Java Persistence API. Hibernate. Часть 2
Урок 7. Spring Data
Урок 8. Thymeleaf
Урок 9. Spring REST. Часть 1
Урок 10. Spring REST. Часть 2
Урок 11. Spring Security
Урок 12. Практика
Стажировка в 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. Подведение итогов, демонстрация выпускного проекта
Демонстрация рабочего прототипа студентами. Обсуждение полученных результатов. Обратная связь от преподавателя. Напутствие.