Repositori ini adalah kompilasi panduan langkah demi langkah yang ditulis dengan baik untuk menciptakan kembali teknologi favorit kami dari awal.
Apa yang tidak dapat saya ciptakan, saya tidak mengerti - Richard Feynman.
Ini cara yang bagus untuk belajar.
Perender 3D
Realitas Tertambah
Klien BitTorrent
Blockchain / Mata Uang Kripto
Bot
Alat Baris Perintah
Basis data
Buruh pelabuhan
Emulator / Mesin Virtual
Kerangka / Perpustakaan Front-end
Permainan
Git
Tumpukan Jaringan
Jaringan Syaraf
Sistem Operasi
Mesin Fisika
Bahasa Pemrograman
Mesin Regex
Mesin Pencari
Kerang
Mesin Templat
Penyunting Teks
Sistem Pengenalan Visual
Mesin Voxel
Peramban Web
Server Web
Tidak dikategorikan
3D Renderer
Anda sendiriC++ : Pengantar Ray Tracing: Metode Sederhana untuk Membuat Gambar 3D
C++ : Cara kerja OpenGL: rendering perangkat lunak dalam 500 baris kode
C++ : Mesin raycasting Wolfenstein 3D
C++ : Rendering Berbasis Fisik: Dari Teori Hingga Implementasi
C++ : Ray Tracing dalam Satu Akhir Pekan
C++ : Rasterisasi: Implementasi Praktis
C# / TypeScript / JavaScript : Mempelajari cara menulis mesin lunak 3D dari awal dalam C#, TypeScript, atau JavaScript
Java / JavaScript : Buat penyaji 3D Anda sendiri
Java : Cara membuat mesin render 3D sederhana Anda sendiri di Java murni
JavaScript / Pseudocode : Grafik Komputer dari awal
Python : Pemodel 3D
Augmented Reality
Anda sendiriC# : Cara: Tutorial Aplikasi Augmented Reality untuk Pemula dengan Vuforia dan Unity 3D [video]
C# : Cara Unity ARCore [video]
C# : Tutorial Portal AR dengan Unity [video]
C# : Cara membuat Naga dalam Augmented Reality di Unity ARCore [video]
C# : Tutorial Cara Augmented Reality AR: Portal ARKit ke Terbalik [video]
Python : Augmented Reality dengan Python dan OpenCV
BitTorrent Client
Anda sendiriC# : Membangun klien BitTorrent dari awal di C#
Go : Membangun klien BitTorrent dari awal di Go
Nim : Menulis Parser Bencode
Node.js : Tulis klien bittorrent Anda sendiri
Python : Klien BitTorrent dengan Python 3.5
Blockchain / Cryptocurrency
Anda sendiriATS : Blockchain Fungsional
C# : Memprogram Blockchain di C#
Crystal : Tulis blockchain dan algoritma PoW Anda sendiri menggunakan Crystal
Go : Membangun Blockchain di Go
Go : Kodekan blockchain Anda sendiri dalam waktu kurang dari 200 baris Go
Java : Membuat Blockchain Pertama Anda dengan Java
JavaScript : Implementasi mata uang kripto dalam kurang dari 1500 baris kode
JavaScript : Bangun Blockchain Anda sendiri di JavaScript
JavaScript : Pelajari & Bangun Blockchain JavaScript
JavaScript : Membuat blockchain dengan JavaScript
JavaScript : Cara Meluncurkan Cryptocurrency Siap Produksi Anda Sendiri
JavaScript : Menulis Blockchain di Node.js
Kotlin : Mari terapkan mata uang kripto di Kotlin
Python : Pelajari Blockchain dengan Membangun Satu
Python : Bangun blockchain Anda sendiri: tutorial Python
Python : Pengantar Praktis tentang Blockchain dengan Python
Python : Ayo Bangun Blockchain Terkecil
Ruby : Memprogram Blockchain Langkah-demi-Langkah (Edisi Buku Naskah)
Scala : Cara membangun blockchain sederhana berbasis aktor
TypeScript : Naivecoin: tutorial untuk membangun mata uang kripto
TypeScript : NaivecoinStake: tutorial untuk membangun mata uang kripto dengan konsensus Proof of Stake
Rust : Membangun Blockchain di Rust & Substrat
Bot
Anda sendiriHaskell : Gulung bot IRC Anda sendiri
Node.js : Membuat Bot AI Facebook Messenger Sederhana dengan API.ai di Node.js
Node.js : Cara membuat bot telegram yang responsif
Node.js : Buat bot Perselisihan
Node.js : gifbot - Membangun Aplikasi GitHub
Node.js : Membangun AI Chatbot Sederhana Dengan Web Speech API dan Node.js
Python : Cara Membuat Bot Slack Pertama Anda dengan Python
Python : Cara membuat Slack Bot dengan Python menggunakan Slack Events API & Django dalam waktu kurang dari 20 menit
Python : Buat Bot Reddit
Python : Cara Membuat Bot Reddit [video]
Python : Cara Membuat Bot Telegram Menggunakan Python
Python : Buat Bot Twitter dengan Python Menggunakan Tweepy
Python : Membuat Bot Reddit dengan Python & PRAW [video]
R : Bangun Bot Perdagangan Cryptocurrency dengan R
Rust : Bot untuk Starcraft dalam Rust, C atau bahasa lainnya
Command-Line Tool
Anda sendiriGo : Visualisasikan kontribusi git lokal Anda dengan Go
Go : Membangun aplikasi baris perintah dengan Go: lolcat
Go : Membangun perintah cli dengan Go: cowsay
Go : Go CLI tutorial: klon keberuntungan
Nim : Menulis alternatif simpanan untuk mengelola dotfiles
Node.js : Buat alat CLI dalam Javascript
Rust : Aplikasi baris perintah di Rust
Rust : Menulis Alat Baris Perintah di Rust
Database
Anda sendiriC : Mari Membangun Database Sederhana
C++ : Bangun Redis Anda Sendiri dari Awal
C# : Bangun Basis Data Anda Sendiri
Clojure : Basis Data Terinspirasi Arkeologi
Crystal : Mengapa Anda harus membangun Database NoSQL Anda sendiri
Go : Bangun Database Anda Sendiri dari Awal: Persistensi, Pengindeksan, Konkurensi
Pergi : Bangun Redis Anda Sendiri dari Awal
JavaScript : Dagoba: database grafik dalam memori
Python : DBDB: Basis Data Tempat Tidur Anjing
Python : Tulis miniatur Redis Anda sendiri dengan Python
Ruby : Bangun toko KV Anda sendiri yang cepat dan persisten di Ruby
Rust : Bangun klien dan server Redis Anda sendiri
Docker
Anda sendiriC : Kontainer Linux dalam 500 baris kode
Go : Bangun Kontainer Anda Sendiri Menggunakan Kurang dari 100 Baris Go
Go : Membuat container dari awal di Go [video]
Python : Lokakarya tentang container Linux: Membangun Kembali Docker dari Awal
Python : Tiruan bukti konsep Docker, ditulis dalam 100% Python
Shell : Docker diimplementasikan di sekitar 100 baris bash
Emulator / Virtual Machine
Anda sendiriC : Penerjemah bytecode buatan sendiri
C : Mesin virtual di C
C : Tulis Mesin Virtual Anda Sendiri
C : Menulis emulator Game Boy, Cinoop
C++ : Cara menulis emulator (penerjemah CHIP-8)
C++ : Tutorial emulasi (penerjemah CHIP-8)
C++ : Tutorial emulasi (emulator GameBoy)
C++ : Tutorial emulasi (emulator Sistem Master)
C++ : Emulator NES Dari Awal [video]
Cadel Umum : CHIP-8 di Cadel Umum
JavaScript : Emulasi GameBoy dalam JavaScript
Python : Dasar-dasar Emulasi: Tulis Emulator/Interpreter Chip 8 Anda sendiri
Rust : 0dmg: Mempelajari Rust dengan membuat sebagian emulator Game Boy
Front-end Framework / Library
Anda sendiriJavaScript : WTF adalah JSX (Mari Membangun Renderer JSX)
JavaScript : Panduan DIY untuk membuat React Anda sendiri
JavaScript : Membangun React Dari Awal [video]
JavaScript : Gooact: Bereaksi dalam 160 baris JavaScript
JavaScript : Pelajari cara kerja paket React Reconciler dengan membuat React DOM ringan Anda sendiri
JavaScript : Buat Redux untuk Diri Anda Sendiri
JavaScript : Ayo Menulis Redux!
JavaScript : Redux: Menerapkan Penyimpanan dari Awal [video]
JavaScript : Bangun AngularJS Sederhana Anda sendiri dalam 200 Baris JavaScript
JavaScript : Buat AngularJS Anda Sendiri
JavaScript : Cara menulis DOM Virtual Anda sendiri
JavaScript : Membangun kerangka frontend, dari awal, dengan komponen (templating, state, VDOM)
JavaScript : Buat React Anda sendiri
JavaScript : Membuat Renderer React Kustom [video]
Game
Anda sendiriC : Pahlawan Buatan Tangan
C : Cara Memprogram game NES di C
C : Mesin Catur Di C [video]
C : Ayo Buat: Dave yang Berbahaya [video]
C : Pelajari Pemrograman Video Game di C [video]
C : Mengkodekan Pemecah Sudoku di C [video]
C : Mengkode RPG Rogue/Nethack di C [video]
C : Tentang Tetris dan Implementasi Ulang
C++ : Penembusan
C++ : Pemrograman Game Awal v2.0
C++ : Tutorial Tetris di platform C++ independen yang berfokus pada logika permainan untuk pemula
C++ : Membuat Ulang Cavestory di C++ [video]
C++ : Merekonstruksi Cerita Gua [video]
C++ : Penjajah Luar Angkasa dari Awal
C# : Pelajari C# dengan Membangun RPG Sederhana
C# : Membuat Game Roguelike di C#
C# : Membangun RPG C#/WPF
Go : Game Dengan Go [video]
Java : Membuat Kode Game Engine 2D menggunakan Java - Kursus Lengkap untuk Pemula [video]
Java : Pengembangan Game 3D dengan LWJGL 3
JavaScript : Game terobosan 2D menggunakan Phaser
JavaScript : Cara Membuat Flappy Bird di HTML5 Dengan Phaser
JavaScript : Mengembangkan Game dengan React, Redux, dan SVG
JavaScript : Bangun game 8-Ball Pool Anda sendiri dari awal [video]
JavaScript : Cara Membuat Roguelike Pertama Anda
JavaScript : Berpikirlah seperti seorang programmer: Cara membuat Snake hanya menggunakan JavaScript, HTML & CSS
Lua : BYTEPATH
Python : Mengembangkan Game Dengan PyGame
Python : Membuat Game dengan Python & Pygame [pdf]
Python : Tutorial Roguelike Direvisi
Ruby : Mengembangkan Game Dengan Ruby
Ruby : Ular Ruby
Rust : Petualangan di Rust: Game 2D Dasar
Rust : Tutorial Roguelike di Rust + tcod
Git
Anda sendiriHaskell : Mengimplementasikan kembali “git clone” di Haskell dari bawah ke atas
JavaScript : Gitlet
JavaScript : Bangun GIT - Pelajari GIT
Python : Klien Git secukupnya untuk membuat repo, melakukan, dan mendorong dirinya sendiri ke GitHub
Python : Tulis Git untuk diri Anda sendiri!
Python : ugit: Pelajari Git Internal dengan Membangun Git Sendiri
Ruby : Membangun kembali Git di Ruby
Network Stack
Anda sendiriC : Panduan Beej untuk Pemrograman Jaringan
C : Mari kita membuat kode tumpukan TCP/IP
C / Python : Bangun VPN/Virtual Switch Anda sendiri
Ruby : Cara membangun tumpukan jaringan di Ruby
Neural Network
Anda sendiriC# : OCR Jaringan Neural
F# : Membangun Jaringan Neural di F#
Go : Bangun perceptron multilayer dengan Golang
Go : Cara membangun jaringan saraf tiruan sederhana dengan Go
Go : Membangun Jaringan Neural dari Awal di Go
JavaScript / Java : Jaringan Syaraf Tiruan - Sifat Kode [video]
JavaScript : Jaringan saraf dari awal untuk ahli bahasa JavaScript (Bagian 1 — Perceptron)
Python : Jaringan Neural dalam 11 baris Python
Python : Menerapkan Jaringan Neural dari Awal
Python : Pengenalan Karakter Optik (OCR)
Python : Klasifikasi rambu lalu lintas dengan jaringan konvolusional
Python : Hasilkan Musik menggunakan LSTM Neural Network di Keras
Python : Pengantar Jaringan Neural Konvolusional
Python : Jaringan Neural: Zero to Hero
Operating System
Anda sendiriPerakitan : Menulis Bootloader x86 Kecil
Majelis : Baking Pi – Pengembangan Sistem Operasi
C : Membangun tumpukan perangkat lunak dan perangkat keras untuk komputer sederhana dari awal [video]
C : Sistem Operasi: Dari 0 hingga 1
C : Buku kecil tentang pengembangan OS
C : Gulung mainan UNIX-clone OS Anda sendiri
C : Kernel 101 – Mari kita menulis Kernel
C : Kernel 201 – Mari kita menulis Kernel dengan dukungan keyboard dan layar
C : Bangun kernel multitasking minimal untuk ARM dari awal
C : Cara membuat OS dari awal
C : Tutorial Malloc
C : Meretas memori virtual
C : Belajar pengembangan sistem operasi menggunakan kernel Linux dan Raspberry Pi
C : Pengembangan sistem operasi untuk Dummies
C++ : Tulis Sistem Operasi Anda sendiri [video]
C++ : Menulis Bootloader
Rust : Menulis OS di Rust
Rust : Tambahkan Tutorial Sistem Operasi RISC-V Rust
(apa saja) : Linux dari awal
Physics Engine
Anda sendiriC : Tutorial Fisika Video Game
C++ : Seri permainan fisika oleh Allen Chou
C++ : Cara Membuat Mesin Fisika Kustom
C++ : Tutorial Mesin Fisika 3D [video]
JavaScript : Cara Kerja Mesin Fisika
JavaScript : Deteksi Tabrakan Fase Luas Menggunakan Partisi Spasial
JavaScript : Bangun mesin fisika 2D sederhana untuk game JavaScript
Programming Language
Anda sendiri(apa saja) : mal - Membuat Cadel
Majelis : Jonesforth
C : Pengumpul Sampah Pertama Bayi
C : Bangun Lisp Anda Sendiri: Pelajari C dan buat bahasa pemrograman Anda sendiri dalam 1000 baris kode
C : Menulis Pengumpul Sampah Sederhana di C
C : C interpreter yang menafsirkan dirinya sendiri.
C : Versi AC & x86 dari "Let's Build a Compiler" oleh Jack Crenshaw
C : Sebuah perjalanan yang menjelaskan cara membuat kompiler dari awal
C++ : Menulis Kompiler Mainan Anda Sendiri Menggunakan Flex
C++ : Cara Membuat Kompiler [video]
C++ : Kaleidoskop: Mengimplementasikan Bahasa dengan LLVM
F# : Memahami Kombinator Parser
Elixir : Mengungkap misteri kompiler dengan menulis [video] Anda sendiri
Pergi : Kompiler Super Kecil
Go : Pemindaian Leksikal di Go [video]
Haskell : Mari Membangun Kompiler
Haskell : Tulis Haskell untuk Anda
Haskell : Tulis Skema Anda Sendiri dalam 48 Jam
Haskell : Tuliskan Skema untuk Anda
Java : Crafting interpreter: Buku pegangan untuk membuat bahasa pemrograman
Java : Membuat Bahasa JVM
JavaScript : Kompiler Super Kecil
JavaScript : Penerjemah Super Kecil
JavaScript : Penerjemah Lisp Kecil
JavaScript : Bagaimana mengimplementasikan bahasa pemrograman dalam JavaScript
JavaScript : Mari kita menulis Lisp
OCaml : Menulis Kompiler C
OCaml : Menulis Lisp, seri
Pascal : Mari Membangun Kompiler
Python : Penerjemah Python yang Ditulis dengan Python
Python : lisp.py: Buat juru bahasa Lisp Anda sendiri
Python : Cara Menulis Penerjemah Lisp dengan Python
Python : Mari Membangun Penerjemah Sederhana
Python : Buat Bahasa Pemrograman Interpretasi Sederhana Anda Sendiri [video]
Python : Dari Kode Sumber Ke Kode Mesin: Bangun Kompiler Anda Sendiri Dari Awal
Racket : Raket Cantik: Cara membuat bahasa pemrograman sendiri dengan Racket
Ruby : Kompiler Dari Awal
Ruby : Kompiler penurunan harga dari awal di Ruby
Rust : Jadi Anda Ingin Membangun VM Bahasa
Rust : Mempelajari Kombinator Parser Dengan Rust
Swift : Membangun LISP dari awal dengan Swift
TypeScript : Bangun Kompiler WebAssembly Anda sendiri
Regex Engine
Anda sendiriC : Pencocokan Ekspresi Reguler
C : Pencocokan Ekspresi Reguler Bisa Sederhana dan Cepat
Go : Cara membuat mesin regex dari awal
JavaScript : Bangun Mesin Regex dalam Kurang dari 40 Baris Kode
JavaScript : Cara mengimplementasikan ekspresi reguler dalam javascript fungsional menggunakan turunan
JavaScript : Menerapkan Mesin Ekspresi Reguler
Perl : Cara Kerja Regex
Python : Bangun Mesin Ekspresi Reguler Anda Sendiri: Pelacakan Mundur, NFA, DFA
Scala : Tanpa Sihir: Ekspresi Reguler
Search Engine
Anda sendiriCSS : Mesin pencari di CSS
Python : Membangun mesin pencari menggunakan Redis dan redis-py
Python : Membangun Mesin Pengindeksan Ruang Vektor dengan Python
Python : Membangun Mesin Pencari Berbasis Python [video]
Python : Membuat pencarian teks belajar dari umpan balik
Python : Menemukan Kata Penting dalam Teks Menggunakan TF-IDF
Shell
Anda sendiriC : Tutorial - Menulis Shell di C
C : Ayo buat cangkang!
C : Menulis Shell UNIX
C : Bangun Shell Anda Sendiri
C : Tulis shell di C
Go : Menulis shell sederhana di Go
Rust : Bangun Shell Anda Sendiri menggunakan Rust
Template Engine
Anda sendiriJavaScript : Mesin template JavaScript hanya dalam 20 baris
JavaScript : Memahami Templat Mikro JavaScript
Python : Pendekatan: Membangun mesin templat mainan dengan Python
Python : Mesin Templat
Ruby : Cara menulis mesin template dalam waktu kurang dari 30 baris kode
Text Editor
Anda sendiriC : Buat Editor Teks Anda Sendiri
C++ : Merancang Editor Teks Sederhana
Python : Tutorial Python: Membuat Editor Teks Anda Sendiri [video]
Python : Buat Editor Teks Python Sederhana!
Ruby : Membangun Editor Teks Kolaboratif Menggunakan Rails
Rust : Hecto: Buat editor teks Anda sendiri di Rust
Visual Recognition System
Anda sendiriPython : Mengembangkan Sistem Pengenalan Plat Nomor dengan Machine Learning dengan Python
Python : Membangun Saluran Pengenalan Wajah dengan Pembelajaran Mendalam di Tensorflow
Voxel Engine
Anda sendiriC++ : Mari Membuat Mesin Voxel
Java : Tutorial Mesin Java Voxel [video]
Web Browser
Anda sendiriRust : Mari kita membangun mesin browser
Python : Rekayasa Peramban
Web Server
Anda sendiriC# : Menulis Server Web dari Awal
Node.js : Bangun Server Web Anda Sendiri Dari Awal Dalam JavaScript
Node.js : Mari membuat kode server web dari awal dengan NodeJS Streams
Node.js : ayo-bangun-ekspresikan
PHP : Menulis server web dalam PHP murni
Python : Server Web Sederhana
Python : Mari Membangun Server Web.
Python : Aplikasi web dari awal
Python : Membangun Server HTTP dasar dari awal dengan Python
Python : Mengimplementasikan RESTful Web API dengan Python & Flask
Ruby : Membangun server websockets sederhana dari awal di Ruby
(apa saja) : Dari NAND ke Tetris: Membangun Komputer Modern Dari Prinsip Pertama
Paduan : Kebijakan Asal-Sama
C : Cara Menulis Pemutar Video Kurang dari 1000 Baris
C : Pelajari cara menulis tabel hash di C
C : Dasar-dasar emulator terminal
C : Tulis Panggilan Sistem
C : Sol - Broker MQTT dari awal
C++ : Buat headset VR Anda sendiri seharga $200
C++ : Cara kerja X Window Managers dan cara menulisnya
C++ : Menulis Debugger Linux
C++ : Bagaimana intro 64k dibuat
C++ : Buat Mesin Game Anda sendiri
C# : C# Jaringan: Membuat server obrolan TCP, game TCP, UDP Pong, dan lainnya
C# : Memuat dan merender animasi kerangka 3D dari awal di C# dan GLSL
Clojure : Membangun pemeriksa ejaan
Pergi : Bangun Emulator Terminal Sederhana Dalam 100 Baris Golang
Ayo : Mari Membuat Load Balancer Sederhana
Buka : Pengkodean Video dari Awal
Java : Cara Membuat Aplikasi Reddit Android [video]
JavaScript : Buat Bundel Modul Anda Sendiri - Minipack
JavaScript : Pelajari Janji JavaScript dengan Membangun Janji dari Awal
JavaScript : Mengimplementasikan janji dari awal (cara TDD)
JavaScript : Terapkan metode Anda sendiri — call(), apply() dan bind() di JavaScript
JavaScript : Algoritma JavaScript dan Struktur Data
JavaScript : Bangun aplikasi pemesanan kendaraan dengan React Native
JavaScript : Buat AdBlocker Anda Sendiri dalam (Secara Harfiah) 10 Menit
Kotlin : Bangun Cache Anda Sendiri
Lua : Membangun CDN dari Awal untuk Mempelajari CDN
Nim : Menulis Parser Protokol Redis
Nim : Menulis sistem Build
Nim : Menulis Kerangka MiniTest
Nim : Menulis Parser DMIDecode
Nim : Menulis Parser INI
Nim : Menulis Pemeriksa Tautan
Nim : Menulis Layanan Pemendekan URL
Node.js : Bangun generator situs statis dalam 40 baris dengan Node.js
Node.js : Membangun Server Single Sign On (SSO) Sederhana Dan Solusi Dari Awal Di Node.js.
Node.js : Cara membuat aplikasi Node CLI dunia nyata dengan Node.js
Node.js : Membangun Server DNS di Node.js
PHP : Tulis MVC Anda sendiri dari awal di PHP
PHP : Buatlah blog Anda sendiri
PHP : PHP Modern Tanpa Kerangka
PHP : Kode Mesin Pencari Web dalam PHP
Python : Membangun Perpustakaan Pembelajaran Mendalam [video]
Python : Cara Membuat Pemindai Dokumen Seluler Kick-Ass Hanya dalam 5 Menit
Python : Sistem Integrasi Berkelanjutan
Python : Sistem Rekomendasi dengan Python: Tutorial Pemula
Python : Tulis pendeteksi SMS-spam dengan Scikit-learn
Python : Mesin Rekomendasi Berbasis Konten Sederhana dengan Python
Python : Prediksi Pasar Saham dengan LSTM dengan Python
Python : Membangun Generative Adversarial Network (GAN) sederhana menggunakan Tensorflow
Python : Pelajari Algoritma ML dengan coding: Pohon Keputusan
Python : Algoritma Penguraian Kode JSON
Python : Bangun plugin Git Anda sendiri dengan python
Ruby : Pedometer di Dunia Nyata
Ruby : Membuat aplikasi Desktop Linux dengan Ruby
Rust : Membangun server DNS di Rust
Rust : Menulis Layanan Obrolan yang Skalabel dari Awal
Rust : WebGL + Rust: Tutorial Dasar Air
TypeScript : Tiny Package Manager: Mempelajari cara kerja npm atau Yarn
Kiriman diterima, cukup kirimkan PR, atau buat masalah
Bantu kami meninjau kiriman yang tertunda dengan meninggalkan komentar dan "reaksi"
Repositori ini merupakan hasil karya banyak kontributor. Ini dimulai oleh Daniel Stefanovic, dan sekarang dikelola oleh CodeCrafters, Inc. Sejauh mungkin berdasarkan hukum, CodeCrafters, Inc. telah melepaskan semua hak cipta dan hak terkait atau tetangga atas karya ini.