Found in 5 comments on Hacker News
62951413 · 2021-10-05 · Original thread
I know two DB bibles which explain how a DB engine actually works. It's much more interesting reading than another SQL manual. But it's not awfully practical if you have no particular interest in DB technology. And both are pretty dense. * https://www.amazon.com/Database-Systems-Complete-Book-2nd/dp * https://www.amazon.com/Database-System-Concepts-Abraham-Silb...

There's a very cool not-quite-alternativE: https://leanpub.com/how-query-engines-work. It covers a fair chunk of DB technology but not storage. Definitely check out their repository at https://github.com/andygrove/how-query-engines-work/tree/mai... .

A companion to DDIA would be https://www.amazon.com/Database-Internals-Deep-Distributed-S... (especially its treatment of LSM trees which is harder to come by).

silentsea90 · 2021-07-05 · Original thread
The book referenced on the blog post seems interesting:

Database Internals: A Deep Dive into How Distributed Data Systems Work https://www.amazon.com/_/dp/1492040347

abhijat · 2021-06-02 · Original thread
Sure, I mostly went through this playlist https://www.youtube.com/playlist?list=PLSE8ODhjZXjbohkNBWQs_... (I haven't seen all the videos yet).

Also some parts of this book https://www.amazon.com/Database-Internals-Deep-Distributed-S... were very useful when working on the file structure.

I also just recently saw this project https://cstack.github.io/db_tutorial/ which builds a database in C. I have not gone through it but it seems like quite a good resource.

For the overall design the CMU playlist is the most helpful.

oumua_don17 · 2019-12-31 · Original thread
+10 for this. I will elaborate further, hoping this gives you a good starting template.

- Programming: Learn two languages: Python and C

- Algorithms and Data Structures: Implement each data structure in the two languages above and implement a few algorithms of each type.

- Computer Architecture: For the referred excellent book, implement all assignments in any one language. Go head and burn the design on an FPGA, get the computer running on real hardware.

- OS: Having done ECS above, you should be in good shape to write your own OS: there is xv6, Xinu, Minix and many to choose from. Again have your OS running at least in a VM.

- Computer Networking: Write your own HTTP server in C.

- Math for CS: I would say focus on learning math essential for games, some linear algebra and leave it there. When you encounter a relevant field; AI or games, you should be in a position to pick up more math if required.

- Databases: Recently a book has been published on database internals, which is strongly recommended. Work through this book.

- Languages and Compilers: Learn a lisp, write a lisp interpreter (should introduce you to some FP concepts) and then working through Concepts, Techniques and Models of Computer Programming should be a good foundation.

Whether you are a student or working full time, these above are time consuming but well worth the ROI if you put in the effort. Be creative and ensure that you publish all your work as part of your portfolio. Good luck!!!

[1] https://www.amazon.com/Database-Internals-Deep-Distributed-S...

dominotw · 2019-09-21 · Original thread
I have three things for you

1. Designing data intenstive applications

2. Database internals https://www.amazon.com/Database-Internals-deep-dive-distribu...

3. Andy Pavlo's database course videos at cmu and guest lecture series https://www.youtube.com/channel/UCHnBsf2rH-K7pn09rb3qvkA

Fresh book recommendations delivered straight to your inbox every Thursday.