As someone who didn’t formally study computing in any capacity, I find that I gravitate towards material that reinforces fundamental concepts. I do have some education background, and I think learning how a human learns, and by extension, how to approach teaching concepts to a human, have firmly entrenched the idea that concepts help build on each other to improve your understanding of complex concepts. That summarizes down to the idea that knowing fundamentals helps learn more complex concepts. Or something to that extent, since I’m wanting to formally phrase my line of thought here in this post.
With that in mind, I’ve a few texts that have been sitting in my stack of sticky notes that I’d like to share on this blog. This shares the double purpose of making it publicly available to readers who may not have come across these texts, and also serves as a bookmark so that I can effectively remove them from my sticky note backlog while managing to keep track of the texts.
I make no comment as to the validity of the texts, but overall the comments on Hacker News in response to their posting, as well as their reviews, all seem favorable. The verbiage of some reviewers also seems almost “attached”, in that readers of these texts have strong feelings towards the content and its contribution to their personal successes.
How to Design Programs by by Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi. This is a text that’s particularly interesting to me because, just having read a few pages, it focuses on meeting the reader where they are. A particularly intriguing commenter mentioned a similar course on the subject called Systematic Program Design available on EdX. Hacker News Discussions
Operating Systems: Three Easy Pieces Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau (University of Wisconsin-Madison) is a text focusing on core operating system concepts which has always been an interesting topic. Hacker News Discussion
The Mediocre Programmer by Craig Maloneyis a text on managing your programming skill set. As someone who was largely formally educated in systems and computing by mentorship, the internet, and tinkering, this text is on my radar as it poses to help bridge the gap between your perception of your technical knowledge and skills, and the perceived goal (i.e. what you want to achieve in computing). That’s just from a skim of the text. Hacker New Discussion.
That’s it! Three less sticky notes on the stack. And as an aside, for whatever reason I kept wanting to type “Hackery News”. That’s a great name. Ycombinator should pick that up.
[UPDATE 2021-04-30] I came across this text which reminds me of the Operating Systems textbook above, and I wanted to mark it as something interested to read in the future as well. Computer Science from the Bottom Up