tvl-depot/users/wpcarro/website/blog/content/english/lets-learn-nix.md
Vincent Ambo 019f8fd211 subtree(users/wpcarro): docking briefcase at '24f5a642'
git-subtree-dir: users/wpcarro
git-subtree-mainline: 464bbcb15c
git-subtree-split: 24f5a642af
Change-Id: I6105b3762b79126b3488359c95978cadb3efa789
2021-12-14 02:15:47 +03:00

2.3 KiB

title date draft
Lets Learn Nix 2020-03-13T21:50:47Z false

Background

Nix may be the most useful tool that I use. I consider it as valuable as Git or Emacs. My friend, David (@dmjio), first introduced me to Nix when we worked together at a Haskell startup in NYC. Before this, I had been managing my system configuration using software that I wrote -- first in Bash, then in Python, then in Golang.

It took me awhile to understand Nix. I left the NYC startup, joined Google, and relocated to London. Here I met another Nix-enlightened monk, Vincent (@tazjin), who patiently taught me enough Nix to become self-reliant and productive.

Many resources exist to learn Nix; the Nix community on IRC continues to help me and others effectively use Nix. I'm creating this series to write the tutorials that I would have found useful when I started learning Nix. If you are just beginning your Nix journey, I hope these tutorials help you.

Goals

I aim to make each tutorial in the "Let's Learn Nix" series:

  • Actionable: Readers will be writing code.
  • Digestible: Readers should be able to finish each tutorial in fifteen minutes.
  • Reproducible: Readers should expect the output of their code to match what these tutorials claim they should see.

About the author

My name is William (@wpcarro). My three favorite tools are Git, Emacs, and Nix. I am an American expat currently working at Google in London. While during the day I primarily write Java, Python, and TypeScript, I prefer functional programming. I use Nix to deploy software and manage the multiple machines across which I work.

Let's Begin

Before we get started, Nix is a programming language. To familiarize yourself with the syntax, semantics, and idioms, consider reading this brief Nix One Pager. I recommend keeping it around as a reference.

When I was first learning Nix, I wanted to use it to manage my dotfiles. Our first tutorial will help you get started: Let's Learn Nix: Dotfiles