Это самоучитель программирования с нуля для начинающих
Для того, чтобы научиться программированию в целом — необходимо понимать основы программирования. Этот открытый мини-курс создавался в помочь всем, кто толко начал разбираться в программировании
Длительность: 8 недель
Формат обучения: онлайн (практические задания, самостоятельная работа)
Уровень: для начинающих
Нагрузка: 10-15 часов в неделю
Модуль 1: Введение в программирование и алгоритмическое мышление (1 неделя)
Темы:
- Что такое программирование и области его применения
- Алгоритмы: определение, свойства, способы записи
- Базовые алгоритмические конструкции (ветвления, циклы)
- Псевдокод и блок-схемы
- Оценка сложности алгоритмов (Big O)
Практика:
- Составление алгоритмов для решения простых задач
- Анализ готовых алгоритмов и оценка их эффективности
- Создание первой программы
Модуль 2: Базовые структуры данных (1 неделя)
Темы:
- Понятие структур данных и их классификация
- Массивы и их особенности (одномерные и многомерные)
- Связные списки (односвязные и двусвязные)
- Операции над базовыми структурами данных
- Практические задачи с использованием массивов и списков
Практика:
- Решение задач с использованием массивов
- Реализация базовых операций со связными списками
- Сравнение производительности различных структур данных
Модуль 3: Продвинутые структуры данных (1 неделя)
Темы:
- Стеки и очереди: принципы работы и области применения
- Деревья: основные понятия, виды, обходы
- Бинарные деревья поиска
- Графы: представление в памяти, основные алгоритмы
- Хеш-таблицы и хеш-функции
Практика:
- Реализация стека и очереди
- Решение задач с использованием деревьев
- Поиск кратчайшего пути в графе
- Реализация простой хеш-таблицы
Модуль 4: Командная строка и Git (1 неделя)
Темы:
- Основы работы с командной строкой
- Базовые команды и утилиты (cd, ls, mkdir, cp, mv)
- Системы контроля версий: концепция и преимущества
- Git: основные понятия (репозиторий, коммит, ветка)
- Базовые операции в Git (init, add, commit, push, pull)
Практика:
- Работа с файловой системой через командную строку
- Создание репозитория и первый коммит
- Работа с ветками и слияние изменений
- Разрешение конфликтов при слиянии
Модуль 5: Объектно-ориентированное программирование (1 неделя)
Темы:
- Парадигмы программирования (процедурное, ООП, функциональное)
- Основные концепции ООП: инкапсуляция, наследование, полиморфизм
- Классы и объекты: свойства и методы
- Видимость и области видимости
- Конструкторы и деструкторы
Практика:
- Проектирование классов для решения задач
- Реализация иерархии классов с использованием наследования
- Демонстрация полиморфизма на практических примерах
- Моделирование реальных объектов с помощью классов
Модуль 6: Принципы проектирования программного обеспечения (1 неделя)
Темы:
- SOLID-принципы:
- S: Принцип единственной ответственности
- O: Принцип открытости/закрытости
- L: Принцип подстановки Лисков
- I: Принцип разделения интерфейса
- D: Принцип инверсии зависимостей
- DRY (Don’t Repeat Yourself)
- KISS (Keep It Simple, Stupid)
- YAGNI (You Aren’t Gonna Need It)
Практика:
- Анализ и рефакторинг кода с применением принципов SOLID
- Выявление и устранение повторяющегося кода (DRY)
- Упрощение сложных решений (KISS)
- Код-ревью и обсуждение возможных улучшений
Модуль 7: Основы сетевых технологий (1 неделя)
Темы:
- Модель OSI и стек протоколов TCP/IP
- Основные протоколы прикладного уровня (HTTP/HTTPS)
- Система доменных имен (DNS)
- Принципы клиент-серверного взаимодействия
- Основы безопасности в сетях
Практика:
- Работа с HTTP-запросами через API
- Использование инструментов для анализа сетевого трафика
- Настройка простого веб-сервера
- Разбор структуры HTTP-запросов и ответов
Модуль 8: Итоговый проект (1 неделя)
Темы:
- Объединение полученных знаний в комплексном проекте
- Планирование и архитектура проекта
- Работа с документацией
- Тестирование и отладка
Практика:
- Разработка небольшого приложения, использующего:
- Различные структуры данных
- Принципы ООП
- Git для версионирования
- Сетевое взаимодействие (при необходимости)
- Презентация проекта и получение обратной связи
Формат занятий:
- Самостоятельная работа: 4-6 часов в неделю
- Проверка домашних заданий: по запросу в комментариях под уроками