Hi there! Welcome to the inaugural email of my newsletter!
What I've Been Writing
This week I've been working on an ebook idea I had a couple weeks ago, that being a "gentle introduction to the command line" for folks who lack experience with terminals, programming, and the other nitty gritty of the command line.
I got the idea as I was writing for another ebook, one aimed at teaching Elixir as an introduction to software development. It occurred to me that, well, a newb to computers probably won't have a great grasp of the command line...so why not split the long explanations and tangents from that book into a new one?
In the process I've realized there's a lot of knowledge involved in basic command line fluency, and it's really hard to keep the tangents contained and the book flowing well.
Just in a week or so of writing, I've already gone into:
- commands and programs
- REPLs and interpreters
- compiled languages vs interpreted languages
- shell programs
- the Linux file system
- navigating the file system
- relative vs absolute paths
- timestamps
- the duality of programs as files
- environment variables
- the `PATH` variable
- variable expansion
And I'm only 5000 words in!
I guess all that to say, it's important for experienced developers to keep in mind that we have built up a lot of lived knowledge and someone else, whether more or less experienced, may have a very different knowledge graph.
So let's do our best to make our graphs, and others' graphs, a little more complete every day!
Cool Reads and Peeps
The creator of Elixir, José Valim, posted a nice write-up on server vs client state in web applications and how the LiveView library as part of the full-stack Phoenix framework aims to keep it as simple as possible.