Your favorite pieces of technical writing?
65 points by dubiouslittlecreature
65 points by dubiouslittlecreature
Or just favorite things you've seen on here. Written by real people, not AI generated.
Just writing down what popped into my head.
Everything Bob Nystrom: Game Programming Patterns, Crafting Interpreters, and blog.
Other blog posts:
Books:
Graphics Pipelines for Young Bloods has a neat quote:
The primary audience for this post is the set of newer graphics programmers (say, less than 3 years of experience) or programmers that have worked with traditional pipelines and want to get up to speed on changes in, say, the last 10 years or so.
So it seems like an appropriate sequel to Ryg's' deeper (but older) dive on the subject: A trip through the Graphics Pipeline!
P.S. It's not technical writing per se, but I also asked Ryg to give a related talk some years ago. All three resources should be a Christmas bonanza for graphics nerds :)
My personal favorite: The Dolphin blog post on Ubershaders
Reading this post when it came out was absolutely mind-blowing. Now that more and more compute is being done on GPUs, it doesn't feel quite as revolutionary now, but what a crazy idea it was at the time.
Rust Atomics and Locks is definitely the best technical book I have read in a long while.
I really enjoy Amir Patel's blog Red Blob Games, which contains a lot of good interactive visual blog posts on algorithms for game development.
Tef is also good at writing, I particularly like the post How do you cut a monolith in half?.
In terms of actually useful articles:
I'm sure if I dig through my disorganized obsidian vault I could find more, but those are the ones which were the most helpful for me. Interestingly they seem to be more on the social side rather than purely technical.
However if you're open to pure snark, I've got a few more (there are others, but I'm trying to keep them substantial, and at least fairly evergreen):
https://lexi-lambda.github.io/blog/2019/11/05/parse-don-t-validate/
A lot of Alexis' writing is my favorite as it changed how I think about programming. I really like the personality that comes through in the writing and the presentation of the site.
I went through my bookmarks and ran into these:
The best book I've read - Data-Oriented Design. It's becoming more mainstream now but I don't always know if the right things have been taken away from it... a lot of the focus is on throughput, not just data layout.
Code: The Hidden Language of Computer Hardware and Software
My favorite book to gift! And just behind, is the "other" amazing "Code" book:
Simon Singh- The Code Book: The Science of Secrecy from Ancient Egypt to Quantum Cryptography
Simon Singh- The Code Book: The Science of Secrecy from Ancient Egypt to Quantum Cryptography
Yes! I loved that book. Hopefully, it will someday get a second edition, to update its last chapters. And maybe even start a new challenge :-)
Sharing some of the older classics. I find it refreshing to see how people were thinking when the frontier of our craft was unexplored:
Program Development by Stepwise Refinement - Niklaus Wirth
Notes on structured programming - Dijkstra
Abstraction Mechanisms in CLU - Barbara Liskov
In particular the CLU language was very forward looking. I find it ironic that Liskov is so well known for Inheritence, which she did work on, but her work before that eschewed inheritance entirely and focused on other abstractions. After her work on sub-typing she shifted to distributed systems (I think) so that represents only a small part of her career.
Structured programming with goto statements by Knuth is also interesting as a mid-1970s view from someone who uses assembly language as a pedagogical pseudocode, to see the hard version of what Dijkstra, Hoare, Wirth, et al. were arguing against. And for the infamous quote that is so frequently misused out of context.
Strachey’s fundamental concepts in programming languages is also foundational because so many ideas were clearly articulated there for the first time. It’s a nice snapshot of that point in time in the late 1960s when computer science was starting to get a grip on plt.
USB3: why it's a bit harder than USB2 is one I keep coming back to.
It explains a consumer-observable market phenomenon (USB3 hardware is much more expensive), and explains it on several different levels for readers with different levels of background knowledge.
In addition to a lot of the other articles, I really enjoyed Speculation in JavaScriptCore. Foundational text in JIT compiler design imo
Big fan of matklad’s Simple but Powerful Pratt Parsing and Resilient LL Parsing Tutorial and go back to them a lot when writing parsers.
NLP (almost) From Scratch. it does a great job of describing the "why should I care?" and the "what" (for something that was a completely new paradigm to most of the paper's audience).
Still one of my favourite pieces of technical communication, Andrew Kelly from 2013:
Statically Recompiling NES Games into Native Executables with LLVM and Go
Showing my age, maybe:
Not only do I wholeheartedly agree with you, these three books have persisted in my collection and are sitting on a shelf behind me to this day. Have I cracked them open in the past decade? Likely not, but just looking at them reminds me of pivotal times in my life and education and I can't bear to part with them.
The first I also got from my father (basement bookshelf in my case, not desk). The second I bought myself. The third, IIRC, was a hand-me-down from @pushxcx cleaning out his bookshelves and taking pity on a young college student.
Good memories all around and absolutely solid writing.
Books: