Books I think you should read
General CS stuff
Structure and Interpretation of Computer Programs
PLT
Types and Programming Languages
Programming Language Foundations in Agda
The Little Typer
Implementation of programming languages
Crafting Interpreters
Programming Languages: Application and Interpretation
Haskell
Thinking with Types: Type-Level Programming in Haskell
Learn You a Haskell
Math and quasi-math
Category Theory for Programmers
(with the
video lectures
on YT)
Category theory in context
To Mock a Mockingbird
Set theory