Skip to content

BASILAHAMED/codezen-io

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 

Repository files navigation

CodeZen 🧘‍♂️

Learn by building real software from scratch. No magic, no frameworks—just pure engineering.

License: MIT PRs Welcome Discord

🌟 What is CodeZen?

CodeZen is a hands-on learning platform where you build real software tools from first principles. Inspired by CodeCrafters, we take you on a journey from int main() to a production-ready application—teaching you the underlying systems, protocols, and patterns that power modern software.

🎯 Our Philosophy

  • No black boxes: Understand every line of code you write
  • Incremental complexity: Start simple, add features step-by-step
  • Real-world relevance: Build tools you'd actually use
  • Community-driven: Learn together, share solutions

📚 Current Tracks

1. Build Your Own HTTP Server (Go)

Learn networking, HTTP protocol, concurrency, and system design by building a production-ready HTTP server from scratch.

What you'll build:

  • ✅ TCP socket server
  • ✅ HTTP/1.1 parser
  • ✅ Static file serving
  • ✅ Routing & middleware
  • ✅ Concurrent request handling
  • ✅ Graceful shutdown
  • ✅ Configuration management
  • ✅ Logging & metrics

Skills gained:

  • Go concurrency patterns (goroutines, channels)
  • Network programming
  • HTTP protocol internals
  • System design & architecture
  • Testing & benchmarking

Estimated time: 8-12 hours (self-paced)

🚀 Getting Started

Prerequisites

  • Go 1.21+ (install)
  • Basic understanding of Go syntax
  • Curiosity and persistence!

Quick Start

# Clone the repository
git clone https://github.com/BASILAHAMED/codezen-io.git
cd codezen-io

# Start with the first step
cd projects/01-http-server/step-01-tcp-server
cat README.md

📖 How It Works

Each project is broken into small, manageable steps:

  1. Read the step description - Understand what you need to build
  2. Write the code - Implement the functionality yourself
  3. Run tests - Verify your implementation
  4. Check the solution - Compare with reference implementation
  5. Move to next step - Build complexity incrementally

Step Structure

projects/01-http-server/
├── step-01-tcp-server/
│   ├── README.md          # Step instructions
│   ├── starter-code/      # Minimal code to start
│   ├── tests/             # Test suite
│   └── solution/          # Reference implementation (hidden until you're ready)
├── step-02-http-parser/
├── step-03-static-files/
└── ...

🤝 Contributing

We welcome contributions! Whether you want to:

  • Add new projects/tracks
  • Improve existing content
  • Fix bugs or improve tests
  • Translate content
  • Share your CodeZen journey

Please see CONTRIBUTING.md for guidelines.

📜 License

MIT © Basil Ahamed and contributors


🙏 Acknowledgments

Inspired by CodeCrafters and the incredible educators who believe in learning by doing.

Star this repo if CodeZen helps you learn!


Made with ❤️ by the CodeZen community

Releases

No releases published

Packages

 
 
 

Contributors

Languages