Х р ж ш ц

Х р ж ш ц

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

· Резюме

· LinkedIn

· Фриланс: заказчики, постановка ТЗ

· Работа в студии/команде

· Монетизация: 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 (устарел, но концепции)

Report Page