Х р ж ш ц
Rick AstleyПОЛНАЯ ПРОГРАММА (ФИНАЛЬНАЯ ВЕРСИЯ)
---
НУЛЕВОЙ КУРС: ФУНДАМЕНТАЛЬНАЯ БАЗА IT
ГЛАВА 0.1: ИСТОРИЯ И УСТРОЙСТВО ЭВМ
· От счётов до транзистора
· Реле, лампы, транзисторы
· Закон Мура и многоядерность
· Логические вентили: AND, OR, NOT, XOR
· Постройка 4-битного сумматора в Minecraft редстоуном
· Архитектура фон Неймана
· Шина данных и команд
· Гарвардская архитектура
· RISC vs CISC
ГЛАВА 0.2: УСТРОЙСТВО ПАМЯТИ
· Иерархия памяти: Регистры CPU, Кэш L1/L2/L3, RAM, SSD/HDD
· Латентность и скорость доступа
· Указатели и ссылки
· Стек и Куча (Stack vs Heap)
· Сборщик мусора (GC)
· Примитивные типы vs объекты
· Выделение и освобождение памяти
· Фрагментация памяти
· Copy-on-Write
· Memory-mapped файлы
ГЛАВА 0.3: ОПЕРАЦИОННЫЕ СИСТЕМЫ (LINUX DEEP DIVE)
· Ядро и Userspace
· Системные вызовы (syscalls)
· Процессы и Потоки (Threads)
· Планировщик задач
· Гонки данных (Data race)
· Deadlock, Livelock, Starvation
· Примитивы синхронизации: Lock, Mutex, Semaphore, Barrier
· Виртуальная память
· Страничная память
· Swap и его влияние на производительность
· Файловая система: ext4, ZFS, права доступа
· Bash и терминал
· Переменные окружения
· SSH и удаленное управление
· systemd
· Cron и автоматизация
ГЛАВА 0.4: АЛГОРИТМЫ И СТРУКТУРЫ ДАННЫХ
· Big O нотация: O(1), O(n), O(log n), O(n²), O(n!)
· Массивы (Array)
· Связные списки (LinkedList): односвязные, двусвязные, кольцевые
· Хеш-таблицы (HashMap): коллизии, цепочки, открытая адресация
· Деревья (Tree): бинарные, AVL, красно-черные, B-деревья
· Стеки и Очереди
· Деки (Deque)
· Приоритетные очереди (PriorityQueue)
· Графы: ориентированные, неориентированные, взвешенные
· Алгоритмы сортировки: быстрая, слиянием, Timsort
· Алгоритмы поиска: бинарный, BFS, DFS, A*
· Рекурсия и стек вызовов
· Динамическое программирование
· Жадные алгоритмы
ГЛАВА 0.5: СЕТЕВЫЕ ОСНОВЫ
· Модель OSI (7 уровней)
· Модель TCP/IP
· IP-адресация: IPv4, IPv6, маски подсети
· TCP: трехэтапное рукопожатие, окно перегрузки
· UDP: датаграммы
· Порты и NAT
· DNS
· Клиент-серверная архитектура
· Сериализация и десериализация
· JSON, XML, NBT, Protocol Buffers, FlatBuffers
· HTTP/HTTPS: методы, заголовки, статус-коды
· REST API
· WebSocket
· Сокеты: блокирующие и неблокирующие
ГЛАВА 0.6: КОМПИЛЯТОРЫ И ИНТЕРПРЕТАТОРЫ
· Исходный код
· Лексический анализ (токенизация)
· Синтаксический анализ (AST)
· Семантический анализ
· Компиляция
· Байт-код
· JIT-компиляция
· AOT-компиляция
· Интерпретаторы
· JVM (Java Virtual Machine): структура, области памяти
· ClassLoader: загрузка, верификация, линковка
· GC: Mark&Sweep, Copying, Generational, G1GC, ZGC, Shenandoah
· Gradle и Maven: жизненный цикл, плагины
· Управление зависимостями: транзитивные зависимости, конфликты версий
· Репозитории: Maven Central, JCenter, Modrinth Maven
ГЛАВА 0.7: ПАТТЕРНЫ ПРОЕКТИРОВАНИЯ
· Порождающие: Одиночка (Singleton), Фабрика (Factory), Абстрактная фабрика, Строитель (Builder), Прототип
· Структурные: Адаптер, Мост, Компоновщик, Декоратор, Фасад, Прокси, Приспособленец
· Поведенческие: Наблюдатель, Стратегия, Команда, Цепочка обязанностей, Состояние, Шаблонный метод, Посетитель, Итератор, Посредник, Хранитель
· Архитектурные: MVC, MVP, MVVM, Чистая архитектура, Гексагональная архитектура
· Внедрение зависимостей (Dependency Injection)
· Service Locator
· Event Bus
ГЛАВА 0.8: ДИСКРЕТНАЯ МАТЕМАТИКА И ЛОГИКА
· Булева алгебра
· Таблицы истинности
· Комбинаторика: перестановки, размещения, сочетания
· Теория вероятностей: случайные величины, распределения, матожидание
· Системы счисления: двоичная, восьмеричная, шестнадцатеричная, двоично-десятичная
· Побитовые операции: &, |, ^, ~, <<, >>, >>>
· Битовые маски и флаги
· Представление чисел с плавающей точкой (IEEE 754)
· Множества и операции над ними
· Отношения и функции
ГЛАВА 0.9: ТЕОРИЯ ИНФОРМАЦИИ
· Энтропия и количество информации
· Бит, байт, полуслова, слова
· Кодировки: ASCII, ANSI, Windows-1251, KOI8-R, UTF-8, UTF-16, UTF-32
· BOM (Byte Order Mark)
· Сжатие без потерь: RLE, Хаффман, LZ77, Deflate, Zlib
· Сжатие с потерями
· Хеш-функции: CRC32, MD5, SHA-1, SHA-256
· Коллизии хешей
· Форматы данных: NBT, SNBT, Region, Anvil
---
ЭТАП 1: JAVA (ПОЛНЫЙ КУРС)
ОСНОВЫ ЯЗЫКА
· Синтаксис Java
· Примитивные типы и классы-обертки
· Строки: String, StringBuilder, StringBuffer
· Массивы
· Условные операторы
· Циклы
· Операторы перехода
ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ
· Классы и объекты
· Поля и методы
· Конструкторы
· Модификаторы доступа: private, default, protected, public
· Наследование: extends, super
· Инкапсуляция
· Полиморфизм: перегрузка, переопределение
· Абстрактные классы
· Интерфейсы: default методы, static методы, private методы
· Функциональные интерфейсы
ПРОДВИНУТЫЕ ТЕМЫ JAVA
· Аннотации: встроенные, пользовательские, процессоры аннотаций
· Исключения: checked, unchecked, try-with-resources
· Коллекции: List, Set, Queue, Deque, Map
· Generics: wildcards, type erasure, PECS
· Лямбда-выражения
· Stream API: intermediate, terminal, parallel streams
· Optional
· Date/Time API (java.time)
· Рефлексия (Reflection API)
· Прокси: динамические прокси
· Работа с файлами: NIO.2, FileChannel
· Сериализация: Serializable, Externalizable, transient
· Многопоточность: Thread, Runnable, Callable, Future
· ExecutorService, ThreadPoolExecutor, ForkJoinPool
· synchronized, volatile, atomic пакет
· Lock, ReentrantLock, ReadWriteLock
· Condition
· Semaphore, CountDownLatch, CyclicBarrier, Phaser
· Concurrent коллекции
· CompletableFuture
· ThreadLocal
· Класслоадеры: иерархия, кастомные ClassLoader'ы
· JMX для мониторинга
· WeakReference, SoftReference, PhantomReference
ИНСТРУМЕНТЫ РАЗРАБОТКИ
· JDK: javac, java, jar, javadoc
· IntelliJ IDEA: настройка, хоткеи, Live Templates, Postfix Completion
· Дебаггер: breakpoints, conditional breakpoints, evaluate expression, frame, watches
· Gradle: build.gradle, settings.gradle, tasks, dependencies, configurations
· Gradle Wrapper
· Многомодульные проекты
---
ЭТАП 1.5: ТЕСТИРОВАНИЕ
· JUnit 4 и JUnit 5
· Assertions, Assumptions
· Жизненный цикл: @BeforeEach, @AfterEach, @BeforeAll, @AfterAll
· @Disabled, @Tag, @Nested, @RepeatedTest, @ParameterizedTest
· Mockito: @Mock, @Spy, @InjectMocks, when, verify, ArgumentCaptor
· Mock статических методов (MockedStatic)
· AssertJ: fluent assertions
· Тестирование исключений
· Тестирование времени
· Покрытие кода: JaCoCo
· Интеграционное тестирование
· GameTest Framework (Minecraft)
· Mock окружения без запуска клиента/сервера
---
ЭТАП 2: DATA DRIVEN (MINECRAFT JSON)
ДАТАПАКИ
· Структура датапака: pack.mcmeta, data/
· Пространства имен (namespace)
· Функции: .mcfunction, условия, планировщик
· Предикаты: инвентарь, погода, здоровье, статистика
· Предметные модификаторы: изменение предметов, атрибуты
· Рецепты: shaped, shapeless, cooking, smithing, stonecutting
· Теги: блоки, предметы, функции, сущности
· Лут-таблицы: роллы, пулы, функции, условия
· Прогрессии (Advancements): триггеры, критерии, награды
· Измерения и типы измерений
· Миры (World Presets)
· Плоские миры (Flat Level Generator Presets)
---
ЭТАП 3: MINECRAFT MODDING
ПОДГОТОВКА
· MDK установка и настройка
· Маппинги: MCP, Yarn, Mojang Official
· runClient, runServer, runData
· Mixin: конфигурация, @Mixin, @Shadow, @Inject, @Redirect, @Overwrite, @ModifyArg, @ModifyVariable, @At, @Slice
· AccessWideners и AccessTransformers
· Рефакторинг под новые версии
РЕГИСТРАЦИЯ
· Реестры (Registries)
· DeferredRegister
· Регистрация блоков
· Регистрация предметов
· Регистрация сущностей
· Регистрация измерений
· Регистрация биомов
· Регистрация структур
· Регистрация эффектов зелий
· Регистрация чар
· Регистрация звуков
· Регистрация партиклов
· Регистрация контейнеров и GUI
МОДЕЛИ И ТЕКСТУРЫ
· Модели блоков в JSON: elements, faces, rotation
· Multipart и кастомные модели
· Модели предметов: generated, handheld, layers
· OBJ модели
· BakedModel и кастомный рендер
· Текстуры: анимация, метаданные
· Locate language файлы
БЛОКИ
· BlockBehaviour.Properties
· BlockEntity (Tile Entity)
· BlockStates и свойства
· Hitbox и коллизии
· Взаимодействие с блоком
· Светимость и затемнение
· Redstone взаимодействие
ПРЕДМЕТЫ
· Item.Properties
· Кастомные инструменты: скорость, уровень добычи
· Кастомная броня: материалы, модели
· Еда: голод, насыщение, эффекты
· BucketItem
· BlockItem
СУЩНОСТИ
· EntityType
· Entity (LivingEntity, Mob, Player)
· Кастомный AI: GoalSelector, TargetSelector
· Рендер сущностей: Model, Renderer
· Сущности-блоки (FallingBlockEntity)
МИР И ГЕНЕРАЦИЯ
· Чанки и Section
· Биомы: температура, осадки, цвета
· Плоттеры биомов
· Шум: Perlin, Simplex, Octave
· Карты высот
· Кастомные структуры: Jigsaw, Processor
· Генерация руд
· Генерация растений
· Уровни и измерения
GUI
· Экран (Screen)
· Контейнер (Container)
· Слоты
· Кнопки, текст, изображения
· Прогресс-бары
· JEI интеграция
· TOP/WTHIT интеграция
СЕТЬ
· Пакеты: регистрация, отправка, обработка
· CustomPayload
· Buffer: FriendlyByteBuf
· Логическая сторона: физическая vs логическая
· Thread-safety в сети
КАПАБИЛИТИ И ДАННЫЕ
· Capabilities (Forge) / Component (Fabric)
· Persistent Data
· Attachments (NeoForge)
· Data Components (1.20.5+)
· Сохранение и загрузка NBT
ЭНЕРГЕТИКА
· Forge Energy (FE)
· Tesla
· Реализация хранилищ
· Провода и передача
· Генераторы
· Машины-потребители
ЖИДКОСТИ
· Fluid
· FluidType
· Ведра
· Блоки жидкостей
· Рендер жидкостей
---
ЭТАП 3.5: БЕЗОПАСНОСТЬ
· Проверка входных данных в командах
· Защита от SQL-инъекций: PreparedStatement
· Защита от Command Injection
· Защита от XSS в чате
· Проверка прав доступа: OP, Permissions API
· Rate Limiting и защита от спама
· Безопасность NBT: предотвращение крашей
· Подпись модов: JAR Signatures
· Защита от реверс-инжиниринга: обфускация
· Проверка целостности клиента
· Античит-проверки: движения, взаимодействия, пакетов
---
ЭТАП 4: СЕРВЕРНАЯ РАЗРАБОТКА
ОСНОВЫ СЕРВЕРА
· Запуск Paper/Purpur/Spigot сервера
· EULA
· server.properties
· bukkit.yml, spigot.yml, paper.yml, purpur.yml
· Флаги JVM: -Xms, -Xmx, -XX, -Dfile.encoding
· GC тюнинг: G1GC, ZGC, Shenandoah
· Оптимизация сервера: спаун-чейки, entity activation range, mob caps
· Профайлинг: Spark, Timings, JProfiler, VisualVM, async-profiler
· Flame graphs
· Heap dumps и анализ MAT
BUKKIT/API
· JavaPlugin
· Команды: CommandExecutor, TabCompleter
· Listeners и события
· Конфигурация: YAML, конфиги
· Мир, чанки, блоки
· Инвентари
· Энтити
· Метаданные
· Скины и профили
ПРОКСИ
· BungeeCord: конфигурация, плагины
· Velocity: современная альтернатива
· RedisBungee
· Прокси-команды
· Переключение серверов
· Шаринг данных между серверами
· Plugin messaging
БАЗЫ ДАННЫХ
· SQLite: файловая БД
· MySQL: серверная БД
· H2, PostgreSQL
· JDBC: Connection, Statement, ResultSet
· PreparedStatement
· Connection pooling: HikariCP
· ORM: Hibernate, Ebean
· Миграции: Flyway, Liquibase
ЭКОНОМИКА И ПЛАГИНЫ
· Vault API
· Регистрация экономики
· Приватные территории: WorldGuard API, GriefPrevention API
· WorldEdit API
· Citizens API
· ProtocolLib
---
ЭТАП 5: ПРОДВИНУТАЯ ИНЖЕНЕРИЯ
МАТЕМАТИКА
· Векторы: сложение, скалярное произведение, векторное произведение
· Матрицы: 4x4, трансформации
· Кватернионы
· Углы: Yaw, Pitch, Roll
· Интерполяция: Lerp, Slerp, Easing
· Ray tracing
· Пересечение лучей с AABB
· Преобразования координат
РЕНДЕРИНГ
· OpenGL основы
· Шейдеры: GLSL, vertex, fragment
· VBO, VAO
· Текстуры
· Освещение
· Тени
· Пост-обработка
· Fabric Rendering API
ПРОЦЕДУРНАЯ ГЕНЕРАЦИЯ
· Шум Перлина
· Шум Simplex
· OpenSimplex
· Фракталы
· L-системы
· Клеточные автоматы
· Генетические алгоритмы
ОПТИМИЗАЦИЯ
· A* и Jump Point Search
· Spatial Hashing
· Octree, Quadtree
· LOD (Level of Detail)
· Chunk Caching
· Бенчмаркинг: JMH
· Асинхронная генерация чанков
· Мультипоточная обработка сущностей
---
ЭТАП 6: ДЕВОПС И ИНФРАСТРУКТУРА
КОНТРОЛЬ ВЕРСИЙ
· Git: init, clone, add, commit, push, pull, fetch
· Ветвление: branch, checkout, merge, rebase
· Удаленные репозитории: origin, upstream
· .gitignore
· Submodules
· Cherry-pick, stash
· Разрешение конфликтов
CI/CD
· GitHub Actions: workflow, jobs, steps
· Автосборка мода при пуше
· Автотесты
· Автопубликация на Modrinth/CurseForge
· GitLab CI
· Jenkins
· Maven Central публикация
КОНТЕЙНЕРИЗАЦИЯ
· Docker: Dockerfile, build, run
· Docker Compose
· Образы серверов Minecraft
· Монтирование томов
· Сети в Docker
· Kubernetes: pods, services, deployments
ОБЛАКА
· AWS EC2
· Google Cloud Compute
· Hetzner
· Настройка firewall
· Load balancing
· Авто-масштабирование
МОНИТОРИНГ
· Prometheus
· Grafana
· Метрики сервера
· Алерты
---
ЭТАП 7: ЭКОСИСТЕМА И ИНТЕГРАЦИЯ
ПЛАТФОРМЫ
· Modrinth: публикация, API
· CurseForge: публикация, API
· GitHub Packages
АВТОРИЗАЦИЯ
· Mojang API
· Yggdrasil
· Microsoft OAuth 2.0
· Своя система авторизации
ЛАУНЧЕРЫ
· Prism Launcher
· MultiMC
· ATLauncher
· Разработка своего лаунчера
ФОРМАТЫ
· Anvil region format: .mca
· Chunk format
· NBT: TAG_Compound, TAG_List, TAG_String, TAG_Int и т.д.
ИНТЕГРАЦИИ
· Discord Rich Presence
· Discord Webhook
· Twitch интеграция
---
ЭТАП 8: ПОРТИРОВАНИЕ И ПОДДЕРЖКА
· Портирование с 1.12 на 1.16
· Портирование с 1.16 на 1.18
· Портирование с 1.18 на 1.19
· Портирование с 1.19 на 1.20
· Портирование с 1.20 на 1.20.5 (Data Components)
· Портирование с Forge на Fabric
· Портирование с Fabric на Forge
· Портирование на NeoForge
· Backporting для старых версий
· LTS версии Minecraft
· Поддержка нескольких версий одновременно
---
ЭТАП 9: SOFT SKILLS И ПРОФЕССИОНАЛЬНОЕ РАЗВИТИЕ
ТЕХНИЧЕСКИЙ АНГЛИЙСКИЙ
· Чтение документации
· Написание комментариев и JavaDoc
· Перевод технических терминов
· Общение на форумах и Discord
ИНФОРМАЦИОННЫЙ ПОИСК
· Google Fu: кавычки, site:, filetype:
· Поиск по GitHub
· Поиск по Stack Overflow
· Чтение исходников Minecraft
· Чтение исходников модов
ОШИБКИ И ОТЛАДКА
· Чтение stacktrace
· Минимальный воспроизводимый пример
· Написание баг-репортов
· Взаимодействие с issue трекерами
СООБЩЕСТВО
· Discord: Fabric, Forge, NeoForge, Paper
· Reddit: r/feedthebeast, r/admincraft
· Форумы: Minecraft Forum, SpigotMC
· Этикет: FAQ, поиск перед вопросом
OPEN SOURCE
· Форк репозитория
· Pull Request
· Code Review: принятие критики
· Релизы и тегирование
· Лицензии: MIT, GPL, LGPL, Apache, All Rights Reserved
ДОКУМЕНТИРОВАНИЕ
· JavaDoc: @param, @return, @throws, @since, @deprecated
· README: описание, установка, использование
· CONTRIBUTING.md
· LICENSE
· CHANGELOG.md
· Wiki на GitHub
· Документация для пользователей
УПРАВЛЕНИЕ
· Семантическое версионирование (SemVer 2.0)
· Управление версиями в Gradle
· Roadmap
· Milestones
КАРЬЕРА
· Портфолио на GitHub
· Резюме
· Фриланс: заказчики, постановка ТЗ
· Работа в студии/команде
· Монетизация: Patreon, Boosty, платные моды
---
ИНСТРУМЕНТЫ (СВОДНЫЙ СПИСОК)
ОСНОВНЫЕ
· ОС: Linux (Fedora, Ubuntu, Arch, Debian)
· IDE: IntelliJ IDEA Ultimate/Community, Eclipse, VS Code
· Язык: Java 8, 11, 17, 21
· Сборка: Gradle, Maven
· VCS: Git, GitHub, GitLab, Bitbucket
ДИАГНОСТИКА
· Профайлинг: Spark, VisualVM, JProfiler, async-profiler
· Память: Eclipse MAT, jmap, jhat
· Сеть: Wireshark, TCPDump
· Minecraft: Minema, ReplayMod
ТЕСТИРОВАНИЕ
· Юнит-тесты: JUnit 5, Mockito, AssertJ
· Интеграционные: GameTest Framework
· Покрытие: JaCoCo
БАЗЫ ДАННЫХ
· SQLite, MySQL, PostgreSQL, H2
· HikariCP
· Flyway, Liquibase
· Hibernate, Ebean
ИНФРАСТРУКТУРА
· Docker, Docker Compose
· Kubernetes
· GitHub Actions, Jenkins, GitLab CI
· Prometheus, Grafana
3D/МОДЕЛИРОВАНИЕ
· Blockbench
· Blender
· Paint.NET / GIMP / Photoshop
· Aseprite
ПРОЧЕЕ
· NBT Explorer
· NBT Studio
· Region Fixer
· MCEdit (устарел, но концепции)