Build-Your-Own-X: подборка ресурсов, помогающих освоить навыки программирования
Build-Your-Own-X: подборка ресурсов, помогающих освоить навыки программированияОписание
Что такое build-your-own-x?
Этот репозиторий под названием build-your-own-x собирает множество хороших подробных пошаговых руководств по воссозданию различных технологий с нуля, помогая людям учиться через создание популярных технологий самостоятельно. Идея вдохновлена словами Ричарда Фейнмана: «Чего я не могу создать, того я не могу понять», что означает, что только сделав что-то самому, можно по-настоящему понять, как работает технология. Акцент на глубоком понимании технологий через их создание — отличный способ изучения программирования.

Основное содержание Own-X
3D-связанное
3D-рендерер: есть введение в трассировку лучей на C++ для отрисовки 3D-изображений, а также руководства по написанию 3D-софт-движка на C#, TypeScript или JS.
Дополненная реальность (AR): есть вводное руководство по AR на C# с Vuforia и Unity 3D, а также руководство по ARKit на C# (с видео).
Сетевые и распределённые технологии
BitTorrent-клиент: есть руководство о том, как самостоятельно сделать BitTorrent-клиент.
Блокчейн/Криптовалюта: например, руководство по созданию криптовалюты на основе доказательства доли владения NaivecoinStake на TypeScript.
Сетевой стек: есть материалы по созданию собственного сетевого стека.
Чат-боты: есть руководство по созданию простого AI-бота для Facebook Messenger на Node.js (с использованием API.ai), а также руководство по созданию Slack-бота за 20 минут на Python с использованием Slack Events API и Django.
Инструменты командной строки: есть руководство по созданию собственных инструментов командной строки.
Базы данных
Создание баз данных: например, руководство по созданию базы данных с нуля на Go, охватывающее персистентность, индексацию, конкурентность и другие аспекты.
Контейнеры: есть руководство по созданию собственного Docker.
Эмуляторы/Виртуальные машины: есть руководство по созданию собственного эмулятора или виртуальной машины.
Фронтенд-фреймворки/библиотеки
React: руководство по изучению работы React Reconciler через создание облегчённого React DOM, а также руководство по созданию фронтенд-фреймворка с нуля с компонентами (шаблоны, состояние, VDOM).
Игры
Разработка различных игр: есть руководство по созданию кроссплатформенного Тетриса на C++ (в основном описывает логику игры для новичков), руководство по созданию игры «Змейка» на JS, HTML, CSS, а также руководство по созданию игр на Python с использованием Pygame.
Системы контроля версий: есть руководство по созданию простого Git-клиента на Python, который может создавать репозитории, делать коммиты и отправлять код в GitHub.
Сетевые протоколы: есть материалы по созданию собственного сетевого стека.
Нейронные сети
Создание нейронных сетей: например, руководство по созданию нейронной сети для JS-программистов на JS (начиная с перцептрона, часть первая), руководство по созданию движка регулярных выражений на Python (с различными подходами: бэктрекинг, NFA, DFA и др.), а также руководство по созданию нейронной сети с нуля на JS.
Операционные системы
Разработка операционных систем: есть видеоруководство по созданию стека программного и аппаратного обеспечения для простого компьютера на C, включая Kernel 201 с поддержкой клавиатуры и экрана, а также руководство по изучению создания ОС с использованием ядра Linux и Raspberry Pi.
Физические движки: есть руководство по созданию собственного физического движка.
Языки программирования
Создание различных языков: есть руководства по созданию собственного Lisp на C (менее 1000 строк), «Let's Build a Compiler» на C и x86, руководство по созданию интерпретатора на Java, руководство по созданию компилятора от исходного кода до машинного кода на Python, а также руководство по созданию собственного языка программирования на Racket.
Движки регулярных выражений: есть руководство по созданию регулярных выражений функциональным методом на JS (с использованием производных), а также руководство по созданию собственного движка регулярных выражений на Python (с бэктрекингом, NFA, DFA и др.).
Поисковые системы: есть руководство по созданию собственной поисковой системы.
Командные оболочки: есть руководство по созданию собственной оболочки.
Шаблонизаторы: есть руководство по созданию собственного шаблонизатора.
Текстовые редакторы: есть руководство по созданию собственного текстового редактора.
Системы распознавания образов
Распознавание автомобильных номеров: руководство по распознаванию номерных знаков с использованием Python и машинного обучения.
Распознавание лиц: руководство по созданию пайплайна распознавания лиц на Python с TensorFlow.
Воксельные движки: есть руководство по созданию собственного воксельного движка.
Веб-браузеры: есть руководство по созданию собственного браузера.
Веб-серверы: есть руководство по созданию собственного сервера.
Прочее
От NAND до Tetris: материалы по созданию современного компьютера с базовых принципов.
Руководства в стиле vibe coding: руководства по BYOX, выполненные в стиле vibe coding.
Сетевые технологии на C#: включая руководства по созданию TCP-чат-сервера, TCP-игры, UDP-пинг-понга и другие сетевые руководства на C#.
3D-анимация на C#: руководство по загрузке и рендерингу 3D-скелетной анимации с нуля на C# и GLSL.
JavaScript: например, реализация методов call(), apply() и bind() в JS.
Node.js: включая руководства по созданию простого сервера и решения Single Sign-On (SSO) с нуля на Node.js.
Python: например, создание простого сканера мобильных документов за 5 минут на Python, а также руководство по созданию простой генеративно-состязательной сети (GAN) с использованием TensorFlow.
Репозиторий Own-X подходит для тех, кто хочет изучить низкоуровневые принципы технологий на практике. Независимо от того, начинающий вы программист или опытный, здесь можно найти подходящий для себя материал.
Помощник сценариста▸
AI Приложения
AI Новости