I'm trying to think back to my university days (literally 10 years ago). For me, my CS degree provided a bunch of those foundations for me (and yeah, my professors got me to read textbooks, but it's been so long that I've forgotten them). So I don't have specific advice.
What I will say though, is understanding the fundamentals is important. As bland as it seems, research how a dictionary/hashmap works, and research big-O notation at a high level.
And my favourite esoteric resource, for anyone programming languages with proper integer types (i.e., not JS, but WASM is fine): graphics.stanford.edu/~seander/bit...
I'm trying to think back to my university days (literally 10 years ago). For me, my CS degree provided a bunch of those foundations for me (and yeah, my professors got me to read textbooks, but it's been so long that I've forgotten them). So I don't have specific advice.
What I will say though, is understanding the fundamentals is important. As bland as it seems, research how a dictionary/hashmap works, and research big-O notation at a high level.
And my favourite esoteric resource, for anyone programming languages with proper integer types (i.e., not JS, but WASM is fine):
graphics.stanford.edu/~seander/bit...
Thanks for the response. That resource feels like a cheat sheet for math-based CP problems. :)