A few things that I’m reading this week and want to recommend.
My path to learning Rust is probably like many. I read The Book. I did some coding exercises (exercism and leetcode mostly). I tried my hand at contributing and starting some Rust projects. I read many articles and watched many talks.
While I’ve had some success, I wish I would have had the advice from Learning Rust in 2020 at the very start. As the author says, The Book is a great resource (and I think you should read it), but it can be overwhelming (I gave up the first time and went back to my Scala). With coding exercises, you’ll find that some aren’t relevant, some don’t work, and sometimes they just don’t exist.
In Learning Rust in 2020, the author shares an in-depth evaluation of different Rust resources for learning and offers his recommendation for how to learn Rust. Obviously everyone learns differently, but it has a lot of information that could save you the time from having to figure it out for yourself.
After tinkering with my own Rust libraries, x-callback-url & rust-pocket, I feel more confident that I can be productive with Rust. Now that I’m at this stage, I’ve started looking for talks and articles on writing idiomatic rust and best practices. That is when I came across the talk Pascal Hertleif - Writing Idiomatic Libraries in Rust - YouTube. It gives a nice overview of the speaker’s article Elegant Library APIs in Rust - Pascal’s Scribbles.
Elegant Library APIs in Rust - Pascal’s Scribbles is a collection of best practices in areas such as naming, error handling, laziness, patterns, and documentation (I listed that one last, so you didn’t just run off to read the article in excitement). If you’re finding yourself looking for inspiration for API design in another library’s source code, skimming The Book for API specific recommendations, or from posts on StackOverflow, read this article and keep it open as you learn how to improve your Rust APIs.
NOTE Here is a message from the bottom of the post: “Update 2017-04-27: Since writing that post, @brson of the Rust Libs Team has published a pretty comprehensive Rust API Guidelines document that includes my advice here and a lot more.”
I’m a sucker for learning about cognitive biases. I just find them fascinating. The hot-cold empathy gap is one of the many cognitive biases we can fall victim of in our lives.
NOTE If you just asked yourself, “What is a cognitive bias?” You should check out The Cognitive Biases Tricking Your Brain to find out what you’re missing.
The gist of the hot-cold empathy gap is that people underestimate the affect of emotions on their decision making. The hot-cold empathy gap: Why even smart, sensitive people make bad judgments is a friendly article, framed around parenting, that explains this cognitive bias, how it can affect parents and their children, and it even gives some tips on how to manage the bias.
While the article isn’t software related (and it certainly doesn’t directly have anything to do with the Rust articles above), I’d encourage you to give the article a read. Awareness and understanding of cognitive biases, like the hot-cold empathy gap, can help you be more mindful of your actions and help you understand and reason about the the actions of others (and maybe even help them!).
ONE MORE THING If you’re interested in learning more about the hot-cold empathy gap and also have an interest in medical decision making, check out Hot–Cold Empathy Gaps and Medical Decision Making