*A comprehensive, beginner-friendly guide to learning the Nix language form the ground up down to last details *
This repository is intended to give beginners and intermediate programmers familirity to Nix programming in indepth way, documentation is heavily packed explaining every single steps
- Writing first program, Hello world (covered in ch00)
- Data types (covered in ch01)
- Sets (covered in ch02)
- Lists (covered in ch03)
- Functions - Extended (covered in ch04)
- Lazy Evaluation (covered in ch05)
- Set attribute selection, inheritance and merging (covered in ch06)
- Working with files & paths (covered in ch07)
- Debugging & Tracing (covered in ch08)
- Working with common libraries (covered in ch09)
- Working with Module system utilities (covered in ch10)
- Understanding function signatures (covered in ch11)
- File System Operations
- Lazy Evaluation Patterns
- Debugging Techniques
Future Content Preview
- Derivation Patterns
- Working with Nix flakes
- NixOS Module System
- Advanced Package Composition
- Performance Optimization
- Real-world Project Templates
Learning Path
focuses on practical understanding over theoretical perfection:
- Learn essential concepts with clear examples
- Build skills progressively
- Avoid common pitfalls
- Learn what you'll actually use
# official docs & other resources
recursive_learning = throw "confusion";
# this repo focuses on
learning_path = lib.foldl (acc: x -> acc + x) 0 [
"clarity"
"examples"
"practicality"
];
You can contibute to the repo for beginners and intermediates to learn actively, you'r contributions matter: If you: Found a bug? Open an Issue Got an idea? Suggest Content Fixed a typo? Submit PR
🔧 Under Active Development - New content daily
⭐ Star to Show Support - Helps others find this resource
⭐ Star to Show Support - Helps others find this resource