Nix 101 (3 Days)
Nix 101 (3 Days)
- Total sales tax is determined upon entry of your address.
- Pick the training with the right language, date, and timezone.
Nix 101 Online Class - 3 Days
Online class: Participate from anywhere.
Target Audience
You are already convinced of Nix but find the learning curve extremely steep. The documentation explains a lot, but doesn't provide you the right abstractions in the right order. You are going to use Nix in a real-life project and want to do it right.
Discover the power of Nix and its most important foundational concepts in just 3 days! We'll guide you through the essentials, so you'll be ready to conquer complex concepts with ease. You'll learn how to streamline your workflow and get up and running in no time!
Class Goals
We teach from first principles instead of offering simple internet tutorials. Our aim is to enable you to solve future problems yourself.
In this class, you will learn how to:
- Define declarative development environments
- Create reproducible, cacheable packages
- Manage, patch, pin dependencies
- Cross-compile projects (or at least prepare your project for that)
- Extend nixpkgs with complex overlays
- Create your own corporate package set
- Use Nix with and without Flakes
Class Content
The class provides a mix of theory and practice sessions. In the theory sessions, the teacher motivates the upcoming knowledge session with real-life examples. The practice sessions are exercises which each participant can download and solve on their machine alone or in a team, receiving help from the teacher anytime.
Using Nix
- Installing Nix
- Ad-Hoc Nix Shells
- Package Management
- Garbage Collection ♻️
Nix Language Basics
- Nix Language ㊙️
- Purely functional programming with lazy evaluation (Nix)
- Importing and using Nixpkgs in Expressions
- Create Derivations
Input Determinism
- Understanding how the Nix Sandbox works
- Importing from Nix PATH
- Pinning Inputs 📌
- Tooling for Pinning 🧰
Stdenv Basics
- mkDerivation
- Fetching Code 🧲
- Trivial Builders 🏗️
- Language-Specific Builders
Basic Nix Patterns
- Project Structure
- callPackage 📞
- Anti-Patterns
Advanced Stdenv
- Source Filtering
- Cross Compilation
- Patching Code
Overriding Packages
- Overlays
- Overlay Composition
- Anti-Patterns
Flakes ❄️
- Why Flakes
- Enabling Flakes
- Flake Structure
Recommended Prerequisites
You have:
- A GNU/Linux (any distribution) or macOS computer
We provide a NixOS baremetal cloud machine as a fallback solution for you (accessible via SSH)
- Basic programming/scripting skills
- Basic GNU/Linux and Bash knowledge
Included in the Purchase
- Participation in the online class
- SSH access to the training server as a fallback solution
- Preparation mail (one week before class)
- Personal Certificate as PDF
- Personal copy of the high-quality class slides as PDF
Organizational details
Language, date, and timezone: Please select the correct checkout variant at the beginning of this product page!
Classes are held daily from 9AM to 5PM in the selected time zone.
We have 1 hour lunch break and several shorter breaks during the day.
We provide trainings in the following timezones:
- CEST: UTC+2, Central European Summer Time
- CET: UTC+1, Central European (Winter) Time
- USA Time:
- Pacific Time: 7AM - 3PM
- Mountain Time: 8AM - 4PM
- Central Time: 9AM - 5PM
- Eastern Time: 10AM - 6PM
- PT, MT, CT, ET as refered to on Wikipedia
You will receive meeting invites which display the class times in your timezone.