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.
- 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. 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
Fresh book recommendations delivered straight to your inbox every Thursday.