I’ve received emails from people asking me for good resources to better understand the articles. I honestly think books are your best allies when you want to learn a complex topic from scratch or try to remember them after a long time. They are always available whenever you need them and (most) publishers, especially those related to academia, have special attention to the quality of information.
So, I’ve compiled a simple bibliography here. Most of them relate to my uni days while others were recommended by friends. The list is categorised by research area.
This is the main topic of the articles: Finding out how everything is interconnected. This focuses on how CPUs and memory work.
Structured Computer Organization by Andrew S. Tanenbaum is a good introduction to this topic. It provides both historical and technical foundation to many areas. If you don’t know where to start, pick this one. The author also wrote other books focusing on specific topics (Operating Systems, Networking, etc) which made my 2nd-year-student life much easier.
Computer Architecture: A Quantitative Approach by John Hennessy et al. covers modern solutions to more complex problems with computers. Case studies are relatively recent, but they assume basic knowledge of those areas. My uni professors strongly recommended this book for our computer architecture class. It’s an expensive one, so you’ll have to think of it as an important investment.
Introduction to ARM by Dave Thomas is a nice (and free) online course that helps put all the theory into practice using the ARM instruction set as reference.
This topic gets pretty dense within minutes. Computer graphics has evolved exponentially during the last decades, so it’s hard to keep up. On the other hand, the articles here won’t dive too deep or show a lot of math, but they will occasionally mention algebraic functions.
This involves a wide range of disciplines, including theoretical subjects like calculus and physics; and more practical ones like electrical circuits and digital signal processing.
There’s no source code included in any article, but there are a lot of references that assume basic knowledge of C, data structures (i.e. FIFO queues) and just a bit of boolean algebra.
I hope this list assists you in your continuous learning of computing science. I bet many other sources may help you as well, especially on the internet. But in the case of the latter, try to never settle for the first thing you read.
You see, every time I gather information to write the articles, you’d be surprised how much nonsense and misinformation I have to filter out. Don’t get me wrong, I think the popularity of the internet makes it an infinite and impressively accessible source of information. And, to be fair, some mistakes may be unintentional, yet that (mis)information can still be found. All in all, I’ve noticed that looking for accurate and verified sources is becoming increasingly challenging over time.
At uni, whenever we had to write an essay, student work was always overseen and judged by academic professionals. Outside academia, however, content is free from any restrictions, but also from mandatory review, source verification and so on.
These are two different worlds, there’s nothing wrong with that and I don’t intend this to turn into a social essay. So I’d just like to remind readers that if you are reading this, you are in the ‘internet world’. So please, never settle on a single source, always find ways to contrast whatever you just read. That includes this website as well - I’m trying my best to keep the writings as accurate as possible, but I can’t be an exception to this rule.
This is why every article has a ‘Keep reading’ text next to the ‘Sources’ section: I don’t want you to feel satisfied after you read an article, I intend you use your growing interest as a driving force to continue your research from other people. In that way, you will eventually distinguish a real piece of information from nonsense.
I’ve got to thank university for teaching me that discipline, it’s not the kind of thing you find in a manual, so I wanted to share it with you.