Recommended Reading for Programmers
Here are some resources I recommend for programmers. I am a systems programmer, thus my affection for Rust in particular and a general bias towards systems programming topics.
Recommended Rust Resources & Reading#
Here are a few links to materials that helped me get my bearings in Rust, and understand it deeper.
Many of these are bog-standard, and the same materials others would recommend. This is a good thing. Rust is an extremely well-polished programming language with an excellent community. Trust them about the idioms. Trust the programming language. If you don’t understand why Rust made a certain decision, know that there is almost certainly a well-considered, important reason, and that includes its choices of commonly-recommended documentation.
Beginners#
- Of course, The Book is the absolutely indispensable canonical reference for the programming language.
- O’Reilly’s book is also well worth reading
- For those who like exercises, Rustlings is incredibly well-done.
- For those coming, like I did, from C and C++, Learn Rust the Dangerous Way is a great resource.
- Rust has a relatively small standard library. Some external dependencies are practically standard, and have their own tutorials and documentation. Among these are Tokio, Serde, and log.
Intermediate#
- Rust for Rustaceans is a nice “second semester” course in Rust, covering all the things that every advanced Rust programmer really should know, and no longer has to learn the hard way. This contained a lot of especially useful information for the serious software engineering and dependency management considerations involved in maintaining a library and publishing a crate.
- Faster than Lime, as far as I can tell, straddles beginner and intermediate.
Unsafe Rust#
- There are a lot of misunderstandings about
unsafe
in Rust, but most can be cleared up by reading the Rustonomicon. Even if you don’t personally have occasion to useunsafe
, it is an essential part of the language, and the crates that you depend on – whose source code you should be reading – will use it. - Learn Rust With Entirely Too Many Linked Lists is a project to teach Rust by programming the data structure it is perhaps least well-suited to.
- Ralf Jung on undefined behavior:
- Ralf Jung’s series on pointers/memory models:
Articles#
- Typestate Pattern in Rust
- An introduction to Oxide’s new operating system and debugger, Hubris and Humility
- Rust can help with the environment as well
- Not Rust, but systems programming relevant: structure packing
- Why Discord is switching from Go to Rust
- A thorough treatise on why Go is bad
Other Programming Reading#
Essential resources#
- For C:
- For C++: Scott Meyers Effective C++ series
- For OS: Design and Implementation of the FreeBSD Operating System
- General-purpose introduction
- I’ve not read A Data-Centric Introduction to Computing, but I understand it’s very good
Articles#
- Hillel Wayne’s three part series on how software engineers truly are engineers.
- Hillel Wayne also has good things to say about why comments are good actually, for not only “why” but also “what.”
Classics, for the vibes#
- In the beginning was the command line – please note that this is a book.
- The Rise of Worse is Better – please note that I am literally trying to unseat C++, and I am not an advocate of the Worse is Better philosophy
- The UNIX-HATERS Handbook
- The Jargon File
- C++ Frequently Questioned Answers
Subscribe
Find out via e-mail when I make new posts! You can also use RSS (RSS for technical posts only) to subscribe!
Comments
If you want to send me something privately and anonymously, you can use my admonymous to admonish (or praise) me anonymously.
comments powered by Disqus