I am a fresh software engineering graduate and I am looking for something to improve my problem solving skills, while I did learn about basic algorithms and data structures, I feel like I could learn further more, I know about big O, fast sorting algorithms, dynamic programming, backtracking, binary trees (Although I do not think I know everything about them), I also know about low level memory concepts.
I am sure I forgot to mention some of the stuff I also know about, but I hope the ones I mentioned give a good insights on where I should move onto next.
I agree, and here’s a few different avenues of examples:
If trying to get past interviews, Leet code and hacker rank can be great. They’re not so great for real world problems, but not bad.
Advent of code is a good middle ground between theory and practice in my opinion.
To really learn real world problem solving, I’d recommend implement a specification, without looking at existing implementations. For example, make a basic regex engine (formal Regular Expressions not PCRE expressions), or try to implement the C Preprocessor, or the JS event loop.