CS self-learning
Structure and Interpretation of Computer Programs (SICP).
Computer Systems. A Programmer’s Perspective.
The Algorithm Design Manual.
Mathematics for Computer Science.
Foundation Mathematics for Computer Science - A visual Approach.
Operating Systems - Three Easy Pieces
Readings in Database Systems
Designing data-intensive applications.
Scala
which is aimed at people completely new to programming.
which is aimed at professional developers who are new to Scala;
which is about building system using Cats.