Este repositorio es una compilación de guías paso a paso bien escritas para recrear proyectos basados en nuevas tecnologías desde cero: Una gran manera de aprender.
Contenidos
Construye tu propio renderizado 3D
- C++: Introducción al trazado de rayos: un método simple para crear imágenes en 3D
- C++: cómo funciona OpenGL: procesamiento de software en 500 líneas de código
- C++: motor de emisión de rayos de Wolfenstein 3D
- C++: Representación basada en la física: de la teoría a la implementación
- C++: Rasterización: una implementación práctica
- C# / TypeScript / JavaScript: aprender a escribir un motor de software 3D desde cero en C#, TypeScript o JavaScript
- Java/JavaScript: crea tu propio renderizador 3D
- Java: cómo crear su propio motor de renderizado 3D simple en Java puro
- JavaScript / Pseudocódigo: gráficos por computadora desde cero
- Python: un modelador 3D
Construye tu propia realidad aumentada
- C#: Cómo: Tutorial de la aplicación de realidad aumentada para principiantes con Vuforia y Unity 3D
- C#: Cómo usar Unity ARCore [vídeo]
- C#: Tutorial de AR Portal con Unity
- C#: Cómo crear un Dragón en Realidad Aumentada en Unity ARCore
- C#: Tutorial de AR de realidad aumentada: Portal ARKit al revés
- Python: Realidad Aumentada con Python y OpenCV
Construye tu propio cliente BitTorrent
- C#: Creación de un cliente BitTorrent desde cero en C#
- Go: Creación de un cliente BitTorrent desde cero en Go
- Nim: escribir un analizador Bencode
- Node.js: escribe tu propio cliente bittorrent
- Python: un cliente de BitTorrent en Python 3.5
Construye tu propio blockchain o criptomoneda
- ATS: cadena de bloques funcionales
- C#: Programación de Blockchain en C#
- Crystal: escriba su propio algoritmo blockchain y PoW usando Crystal
- Go: Construyendo Blockchain en Go
- Go: codifica tu propia cadena de bloques en menos de 200 líneas de Go
- Java: creando su primera cadena de bloques con Java
- JavaScript: una implementación de criptomonedas en menos de 1500 líneas de código
- JavaScript: crea tu propia cadena de bloques en JavaScript
- JavaScript: aprenda y crea una cadena de bloques de JavaScript
- JavaScript: Creación de una cadena de bloques con JavaScript
- JavaScript: Cómo lanzar su propia criptomoneda lista para producción
- JavaScript: escribir una cadena de bloques en Node.js
- Kotlin: implementemos una criptomoneda en Kotlin
- Python: aprenda cadenas de bloques construyendo una
- Python: construya su propia cadena de bloques: un tutorial de Python
- Python: una práctica de Blockchain con Python
- Python: construyamos la cadena de bloques más pequeña
- Ruby: Programación de cadenas de bloques paso a paso (edición de libro de manuscritos)
- Scala: cómo construir una cadena de bloques simple basada en actores
- TypeScript: Naivecoin: un tutorial para construir una criptomoneda
- TypeScript: NaivecoinStake: un tutorial para construir una criptomoneda con el consenso de Prueba de participación
Construye tu propio bot
- Haskell: lanza tu propio bot de IRC
- Java: Cómo hacer un bot de Twitter ruso aterrador con Java
- Node.js: Creación de un simple bot AI de Facebook Messenger con API.ai en Node.js
- Node.js: cómo hacer un bot de telegrama receptivo
- Node.js: Crear un bot de Discord
- Node.js: gifbot – Creación de una aplicación de GitHub
- Node.js: creación de un bot de chat con IA simple con Web Speech API y Node.js
- Python: Cómo construir su primer bot de Slack con Python
- Python: cómo crear un bot de Slack con Python utilizando la API de eventos de Slack y Django en menos de 20 minutos
- Python: crea un bot de Reddit
- Python: Cómo hacer un bot de Reddit
- Python: Cómo crear un bot de Telegram usando Python
- Python: cree un bot de Twitter en Python usando Tweepy
- Python: creación de un bot de Reddit con Python y PRAW
- R: Cree un bot de comercio de criptomonedas con R
- Rust: Un bot para Starcraft en Rust, C o cualquier otro lenguaje
Construye tu propia herramienta de línea de comandos
- Go: visualiza tus contribuciones locales de git con Go
- Go: cree una aplicación de línea de comandos con Go: lolcat
- Go: Construyendo un comando cli con Go: cowsay
- Go: Go CLI tutorial: clon de la fortuna
- Nim: escribir una alternativa de almacenamiento para administrar archivos de puntos
Construye tu propia base de datos
- C: Construyamos una base de datos simple
- C++: Implementación de un almacén de valores clave
- C#: crea tu propia base de datos
- Clojure: una base de datos inspirada en la arqueología
- Crystal: Por qué debería crear su propia base de datos NoSQL
- JavaScript: Dagoba: una base de datos de gráficos en memoria
- Python: DBDB: base de datos de camas para perros
- Python: escriba su propio Redis en miniatura con Python
Construye tu propio Docker
- C: contenedores de Linux en 500 líneas de código
- Go: construya su propio contenedor usando menos de 100 líneas de Go
- Go: Creación de un contenedor desde cero en Go [vídeo]
- Python: un taller sobre contenedores de Linux: reconstruir Docker desde cero
- Python: una imitación de prueba de concepto de Docker, escrita 100% en Python
- Shell: Docker implementado en alrededor de 100 líneas de bash
Construye tu propio emulator o máquina virtual
- C: Máquina virtual en C
- C: escriba su propia máquina virtual
- C: Escribiendo un emulador de Game Boy, Cinoop
- C++: Cómo escribir un emulador (intérprete CHIP-8)
- C++: tutorial de emulación (intérprete CHIP-8)
- C++: tutorial de emulación (emulador de GameBoy)
- C++: tutorial de emulación (emulador de sistema maestro)
- C++: emulador de NES desde cero [vídeo]
- Common Lisp: CHIP-8 en Common Lisp
- JavaScript: emulación de GameBoy en JavaScript
- Python: conceptos básicos de emulación: escribe tu propio emulador/intérprete de Chip 8
Construye tu propio framework o librería front-end
- JavaScript: WTF es JSX (Construyamos un renderizador JSX)
- JavaScript: una guía de bricolaje para construir su propio React
- JavaScript: Construyendo React From Scratch
- JavaScript: Gooact: reaccionar en 160 líneas de JavaScript
- JavaScript: Reaccionar elementos internos
- JavaScript: aprenda cómo funciona el paquete React Reconciler creando su propio React DOM ligero
- JavaScript: Construya usted mismo un Redux
- JavaScript: ¡Escribamos Redux!
- JavaScript: Redux: Implementación de Store desde cero
- JavaScript: cree su propio AngularJS simplificado en 200 líneas de JavaScript
- JavaScript: haz tu propio AngularJS
- JavaScript: Cómo escribir tu propio DOM virtual
- JavaScript: Creación de un marco frontend, desde cero, con componentes (plantillas, estado, VDOM)
- JavaScript: crea tu propio React
- JavaScript: creación de un renderizador React personalizado
Construye tu propio juego
- C: Héroe hecho a mano
- C: Cómo programar un juego de NES en C
- C: Motor de ajedrez en C [vídeo]
- C: Vamos a hacer: Dangerous Dave
- C: Aprende a programar videojuegos en C
- C: Programando un Sudoku Solver en C
- C: Codificación de un Rogue/Nethack RPG en C
- C: Sobre Tetris y Reimplementación
- C++: ruptura
- C++: Programación de juegos para principiantes v2.0
- C++: tutorial de Tetris en la plataforma C++ independiente centrado en la lógica del juego para principiantes
- C++: Rehacer Cavestory en C++
- C++: Reconstrucción de Cave Story [vídeo]
- C++: Invasores del espacio desde cero
- C#: aprenda C# creando un juego de rol simple
- C#: Creación de un juego Roguelike en C#
- C#: crea un juego de rol C#/WPF
- Go: Juegos con Go [vídeo]
- Java: desarrollo de juegos en 3D con LWJGL 3
- JavaScript: juego de fugas en 2D con Phaser
- JavaScript: Cómo hacer Flappy Bird en HTML5 con Phaser
- JavaScript: desarrollo de juegos con React, Redux y SVG
- JavaScript: crea tu propio juego de billar de 8 bolas desde cero [vídeo]
- JavaScript: cómo hacer tu primer roguelike
- JavaScript: Piense como un programador: cómo construir Snake usando solo JavaScript, HTML y CSS
- Lua: BYTEPATH
- Python: desarrollo de juegos con PyGame
- Python: Creación de juegos con Python y Pygame [pdf]
- Python: tutorial de Roguelike revisado
- Ruby: desarrollo de juegos con Ruby
- Rubí: Serpiente Rubí
- Rust: aventuras en Rust: un juego básico en 2D
- Rust: Tutorial de Roguelike en Rust + tcod
Construye tu propio git
- Haskell: Reimplementación de “git clone” en Haskell de abajo hacia arriba
- JavaScript: gilet
- JavaScript: compilar GIT – aprender GIT
- Python: solo lo suficiente de un cliente de Git para crear un repositorio, confirmar y enviarse a sí mismo a GitHub
- Python: ¡Escríbete un Git!
- Ruby: Reconstruyendo Git en Ruby
Construye tu propia red de Stack
- C: Guía de programación de red de Beej
- C: Codifiquemos una pila TCP/IP
- Ruby: Cómo construir una pila de red en Ruby
Construye tu propia red neuronal
- C#: OCR de red neuronal
- F#: creación de redes neuronales en F#
- Go: construya un perceptrón multicapa con Golang
- Go: Cómo construir una red neuronal artificial simple con Go
- Go: Creación de una red neuronal desde cero en Go
- JavaScript/Java: Redes neuronales: la naturaleza del código
- JavaScript: implementación de redes neuronales en JavaScript, con un ejemplo
- JavaScript: redes neuronales desde cero para lingüistas de JavaScript (Parte 1: el perceptrón)
- Python: una red neuronal en 11 líneas de Python
- Python: implementar una red neuronal desde cero
- Python: reconocimiento óptico de caracteres (OCR)
- Python: clasificación de señales de tráfico con una red convolucional
- Python: genera música usando la red neuronal LSTM en Keras
- Python: una introducción a las redes neuronales convolucionales
Construye tu propio sistema operativo
- Ensamblaje: escribir un cargador de arranque Tiny x86
- Ensamblaje: Baking Pi – Desarrollo de sistemas operativos
- C: Construcción de una pila de software y hardware para una computadora simple desde cero
- C: Sistemas Operativos: De 0 a 1
- C: El pequeño libro sobre el desarrollo del sistema operativo
- C: Haz rodar tu propio juguete UNIX-clone OS
- C: Kernel 101 – Escribamos un Kernel
- C: Kernel 201 – Escribamos un Kernel con soporte para teclado y pantalla
- C: Cree un kernel multitarea mínimo para ARM desde cero
- C: Cómo crear un sistema operativo desde cero
- C: tutorial Malloc
- C: Hackear la memoria virtual
- C: Aprendizaje del desarrollo del sistema operativo utilizando el kernel de Linux y Raspberry Pi
- C: Desarrollo de sistemas operativos para Dummies
- C++: escribe tu propio sistema operativo
- C++: escribir un gestor de arranque
- Rust: escribir un sistema operativo en Rust
Construye tu propia ingeniería física
- C: Tutorial de Física de Videojuegos
- C++: serie de física de juegos de Allen Chou
- C++: Cómo crear un motor de física personalizado
- C++: tutorial del motor de física 3D [vídeo]
- JavaScript: cómo funcionan los motores de física
- JavaScript: Detección de colisión de fase amplia mediante partición espacial
- JavaScript: cree un motor de física 2D simple para juegos de JavaScript
Construye tu propio lenguaje de programación
- (cualquiera): mal – Hacer un Lisp
- Montaje: Jonesforth
- C: El primer recolector de basura del bebé
- C: Cree su propio Lisp: aprenda C y cree su propio lenguaje de programación en 1000 líneas de código
- C: escribir un recolector de basura simple en C
- C: Intérprete de C que se interpreta a sí mismo.
- C: versión AC y x86 de “Let’s Build a Compiler” de Jack Crenshaw
- C: Un viaje que explica cómo construir un compilador desde cero
- C++: escribir su propio compilador de juguetes usando Flex
- C++: Cómo crear un compilador [vídeo]
- C++: Caleidoscopio: Implementación de un lenguaje con LLVM
- F#: comprensión de los combinadores del analizador
- Elixir: Desmitificando compiladores escribiendo el tuyo propio
- Go: el compilador súper pequeño
- Go: Exploración léxica en Go
- Haskell: Construyamos un compilador
- Haskell: Escríbete un Haskell
- Haskell: Escriba usted mismo un esquema en 48 horas
- Haskell: escribirte un esquema
- Java: creación de intérpretes: un manual para hacer lenguajes de programación
- Java: creación del lenguaje JVM
- JavaScript: el compilador súper pequeño
- JavaScript: el intérprete superpequeño
- JavaScript: intérprete de Little Lisp
- JavaScript: Cómo implementar un lenguaje de programación en JavaScript
- OCaml: escribir un compilador de C
- OCaml: Escribiendo un Lisp, la serie
- Pascal: Construyamos un compilador
- Python: un intérprete de Python escrito en Python
- Python: lisp.py: crea tu propio intérprete de Lisp
- Python: cómo escribir un intérprete Lisp en Python
- Python: construyamos un intérprete simple
- Python: haga su propio lenguaje de programación interpretado simple
- Racket: Beautiful Racket: Cómo hacer tus propios lenguajes de programación con Racket
- Ruby: un compilador desde cero
- Ruby: Compilador Markdown desde cero en Ruby
- Rust: entonces desea crear una máquina virtual de lenguaje
- Rust: Aprendizaje de combinadores de analizador con Rust
- Swift: Construyendo un LISP desde cero con Swift
- TypeScript: crea tu propio compilador WebAssembly
Construye tu propia ingeniería de expresiones regulares
- C: un comparador de expresiones regulares
- C: La coincidencia de expresiones regulares puede ser simple y rápida
- JavaScript: cree un motor Regex en menos de 40 líneas de código
- JavaScript: cómo implementar expresiones regulares en javascript funcional usando derivados
- JavaScript: Implementación de un motor de expresiones regulares
- Perl: cómo funcionan las expresiones regulares
- Scala: Sin magia: Expresiones regulares
Construye tu propio motor de búsqueda
- CSS: Un motor de búsqueda en CSS
- Python: Construyendo un motor de búsqueda usando Redis y redis-py
- Python: Creación de un motor de indexación de espacio vectorial en Python
- Python: creación de un motor de búsqueda basado en Python [vídeo]
- Python: hacer que la búsqueda de texto aprenda de los comentarios
- Python: encontrar palabras importantes en el texto usando TF-IDF
Construye tu propio shell
- C: Tutorial – Escribir un Shell en C
- C: ¡Construyamos un caparazón!
- C: Escritura de un UNIX Shell
- C: Construya su propio caparazón
- Go: escribir un shell simple en Go
- Rust: construye tu propio caparazón usando Rust
Construye tu propia plantillas
- JavaScript: motor de plantillas de JavaScript en solo 20 líneas
- JavaScript: comprensión de las microplantillas de JavaScript
- Python: Enfoque: Creación de un motor de plantillas de juguetes en Python
- Python: un motor de plantillas
- Ruby: Cómo escribir un motor de plantilla en menos de 30 líneas de código
Construye tu propio editor de texto
- C: Cree su propio editor de texto
- C++: Diseño de un editor de texto simple
- Python: Tutorial de Python: Cree su propio editor de texto
- Python: ¡Cree un editor de texto de Python simple!
- Ruby: crea un editor de texto colaborativo usando Rails
Construye tu propio sistema de reconocimiento visual
- Python: desarrollo de un sistema de reconocimiento de matrículas con aprendizaje automático en Python
- Python: construcción de una canalización de reconocimiento facial con aprendizaje profundo en Tensorflow
Construye tu propio motor Voxel
- C++: Hagamos un motor Voxel
- Java: Hagamos un motor voxel
- Java: Tutorial del motor Java Voxel [vídeo]
Construye tu propio servidor web
- C#: escribir un servidor web desde cero
- Node.js: codifiquemos un servidor web desde cero con NodeJS Streams
- Node.js: permite-construir-express
- PHP: escribir un servidor web en PHP puro
- Python: un servidor web simple
- Python: Construyamos un servidor web.
- Python: aplicación web desde cero
- Python: construyendo un servidor HTTP básico desde cero en Python
- Python: Implementación de una API web RESTful con Python y Flask
- Ruby: Construyendo un servidor websockets simple desde cero en Ruby
Sin categorizar
- (cualquiera): De NAND a Tetris: construyendo una computadora moderna desde los primeros principios
- Aleación: la política del mismo origen
- C: Cómo escribir un reproductor de video en menos de 1000 líneas
- C: Aprende a escribir una tabla hash en C
- C: Los conceptos básicos de un emulador de terminal
- C: escribir una llamada al sistema
- C: Sol – Un corredor MQTT desde cero
- C++: crea tus propios auriculares VR por $ 200
- C++: cómo funcionan los administradores de ventanas X y cómo escribir uno
- C++: escribir un depurador de Linux
- C++: Cómo se hace una introducción de 64k
- C#: Redes C#: Cree un servidor de conversación TCP, juegos TCP, UDP Pong y más
- C#: carga y representación de animaciones esqueléticas en 3D desde cero en C# y GLSL
- Clojure: Construyendo un corrector ortográfico
- Go , vamos a crear un balanceador de carga simple
- Java: cómo crear una aplicación Android Reddit
- JavaScript: Cree su propio paquete de módulos – Minipack
- JavaScript: aprenda promesas de JavaScript creando una promesa desde cero
- JavaScript: Implementando promesas desde cero (modo TDD)
- JavaScript: implemente su propio método: call (), apply () y bind () en JavaScript
- JavaScript: algoritmos de JavaScript y estructuras de datos
- JavaScript: Cómo hacer una IA evolutiva de Tetris
- JavaScript: cree una aplicación de transporte compartido con React Native
- Kotlin: crea tu propio caché
- Nim: escribir un analizador de protocolo Redis
- Nim: escribir un sistema de compilación
- Nim: escribir un marco de MiniTest
- Nim: escribir un analizador DMIDecode
- Nim: escribir un analizador INI
- Nim: escribir un verificador de enlaces
- Nim: escribir un servicio de acortamiento de URL
- Node.js: crea un generador de sitios estáticos en 40 líneas con Node.js
- Node.js: creación de un servidor y una solución de inicio de sesión único simple (SSO) desde cero en Node.js.
- Node.js: cómo crear una aplicación CLI de Node del mundo real con Node
- PHP: escriba su propio MVC desde cero en PHP
- PHP: Haz tu propio blog
- PHP: PHP moderno sin un marco
- PHP: codifique un motor de búsqueda web en PHP
- Python: crea una biblioteca de aprendizaje profundo [vídeo]
- Python: cómo construir un escáner de documentos móvil Kick-Ass en solo 5 minutos
- Python: sistema de integración continua
- Python: Sistemas de recomendación en Python: Tutorial para principiantes
- Python: Escribir detector de spam de SMS con Scikit-learn
- Python: un motor de recomendación simple basado en contenido en Python
- Python: predicciones del mercado de valores con LSTM en Python
- Python: cree su propio código fuente de corrección de errores con Luby Transform Codes
- Python: construcción de una red adversa generativa (GAN) simple usando Tensorflow
- Python: aprenda algoritmos de ML codificando: árboles de decisión
- Python: Algoritmo de decodificación JSON
- Ruby: un podómetro en el mundo real
- Ruby: Creación de una aplicación de escritorio Linux con Ruby
- Rust: Construyamos un motor de navegador
- Rust: Construyendo un servidor DNS en Rust
- Rust: escribir un servicio de chat escalable desde cero
- TypeScript: Tiny Package Manager: Aprende cómo funciona npm o Yarn
Este repositorio es el trabajo de varios colaboradores y fue iniciado por Daniel Stefanovic y ahora es mantenido por CodeCrafters y se encuentra bajo licencia de dominio público.