Build-Your-Own-X: подборка ресурсов, помогающих освоить навыки программирования

Build-Your-Own-X: подборка ресурсов, помогающих освоить навыки программирования 111

Собрание подробных пошаговых руководств по воссозданию различных технологий с нуля. Подход «учись, создавая» помогает глубоко понять технологии и является отличным способом изучения программирования.

#Ai工具箱 #Ai开源项目

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 подходит для тех, кто хочет изучить низкоуровневые принципы технологий на практике. Независимо от того, начинающий вы программист или опытный, здесь можно найти подходящий для себя материал.

Инструменты по теме "Build-Your-Own-X: подборка ресурсов, помогающих освоить навыки программирования"