# C-Project-Based-Tutorials A list of C tutorials that work through the creation of small and or large projects. ## Books - [Build Your Own Lisp](http://www.buildyourownlisp.com/) - [Crafting Interpreters](http://www.craftinginterpreters.com/) - [The little book about OS development](https://littleosbook.github.io/) - [Operating Systems: From 0 to 1](https://tuhdo.github.io/os01/) - [Beej's Guide to Network Programming](http://beej.us/guide/bgnet/html/multi/index.html) - [Sudoku Programming with C](https://www.amazon.com/dp/1484209966/) - [Making 8-bit Arcade Games in C](https://www.amazon.com/dp/1545484759/) - [A Retargetable C Compiler: Design and Implementation](https://www.amazon.com/dp/0805316701/) - [Game Engine Black Book: Wolfenstein 3D](https://www.amazon.com/dp/1539692876/) ## Articles - [Let's Build a Simple Database](https://cstack.github.io/db_tutorial/) - [Linux Containers in 500 Lines of Code](https://blog.lizzie.io/linux-containers-in-500-loc.html) - [Let's Write a Malloc](https://danluu.com/malloc-tutorial/) - [A Regular Expression Matcher](https://www.cs.princeton.edu/courses/archive/spr09/cos333/beautiful.html) - [Write a Shell in C](https://brennan.io/2015/01/16/write-a-shell-in-c/) - [Writing a FUSE Filesystem](https://www.cs.nmsu.edu/~pfeiffer/fuse-tutorial/) - [Build Your Own Text Editor](https://viewsourcecode.org/snaptoken/kilo/) - [Write a hash table in C](https://github.com/jamesroutley/write-a-hash-table) - [Let’s write a Kernel](https://arjunsreedharan.org/post/82710718100/kernel-101-lets-write-a-kernel) - [How to Program an NES game in C](https://nesdoug.com/) - [Baby's First Garbage Collector](http://journal.stuffwithstuff.com/2013/12/08/babys-first-garbage-collector/) - [Implementing a virtual machine in C](https://felixangell.com/blog/virtual-machine-in-c) - [Scheme from Scratch](http://peter.michaux.ca/articles/scheme-from-scratch-introduction) - [Writing a C Compiler](https://norasandler.com/2017/11/29/Write-a-Compiler.html) - [Let's code a TCP/IP stack](http://www.saminiir.com/lets-code-tcp-ip-stack-1-ethernet-arp/) - [Write a C Interpreter](https://github.com/lotabout/write-a-C-interpreter) - [Hack the Virtual Memory](https://blog.holbertonschool.com/hack-virtual-memory-stack-registers-assembly-code/) - [Multiplayer WebSocket Game server written in C](http://www.gamedevcraft.com/2016/08/part-1-multiplayer-websocket-game.html) - [Emulator 101](http://emulator101.com/) - [How to Program a Text Adventure in C](https://helderman.github.io/htpataic/htpataic01.html) ## Video Series - [Chess Engine In C](https://www.youtube.com/playlist?list=PLZ1QII7yudbc-Ky058TEaOstZHVbT-2hg) - [Learn Video Game Programming in C](https://www.youtube.com/playlist?list=PLT6WFYYZE6uLMcPGS3qfpYm7T_gViYMMt) - [Let's Make: Dangerous Dave](https://www.youtube.com/playlist?list=PLSkJey49cOgTSj465v2KbLZ7LMn10bCF9) - [Coding A Sudoku Solver in C](https://www.youtube.com/playlist?list=PLkTXsX7igf8edTYU92nU-f5Ntzuf-RKvW) - [Coding a Rogue/Nethack RPG in C](https://www.youtube.com/playlist?list=PLkTXsX7igf8erbWGYT4iSAhpnJLJ0Nk5G) - [Learn Socket Programming in C from Scratch](https://www.udemy.com/learn-socket-programming-in-c-from-scratch/) - [Bitwise](https://github.com/pervognsen/bitwise) - [Handmade Hero](https://handmadehero.org/)